Metadata-Version: 2.1
Name: gdaps
Version: 0.6.5
Summary: Generic Django Apps Plugin System
Keywords: django,plugins
Author-email: Christian González <office@nerdocs.at>
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Django :: 3.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
Requires-Dist: django >=3.2
Requires-Dist: nltk >=3.6
Requires-Dist: semantic-version >=2.9
Requires-Dist: black >=22.3 ; extra == "dev"
Requires-Dist: pytest >=6 ; extra == "dev"
Requires-Dist: pytest-django >=4.4 ; extra == "dev"
Requires-Dist: pytest-cov ==2.7.1 ; extra == "dev"
Requires-Dist: pytest-mock >=3.6 ; extra == "dev"
Requires-Dist: sphinx >=4 ; extra == "dev"
Requires-Dist: sphinx_rtd_theme >=0.5 ; extra == "dev"
Requires-Dist: keyring >=22 ; extra == "dev"
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: pytest >=7.0 ; extra == "test"
Requires-Dist: pytest-cov >=2.7 ; extra == "test"
Requires-Dist: pytest-django >=4.5 ; extra == "test"
Project-URL: Documentation, https://gdaps.readthedocs.org
Project-URL: Home, https://gdaps.readthedocs.org
Project-URL: Source, https://gitlab.com/nerdocs/gdaps
Project-URL: Tracker, https://gitlab.com/nerdocs/gdaps/issues
Provides-Extra: dev
Provides-Extra: doc
Provides-Extra: test


The GDAPS library allows Django to make real "pluggable" apps.

A standard Django "app" is *reusable* (if done correctly), but is not *pluggable*,
like being distributed and "plugged" into a Django main application without modifications. GDAPS is filling this gap.

The reason you want to use GDAPS is: **you want to create an application that should be extended via plugins**. GDAPS consists of a few bells and twistles where Django lacks "automagic":

* Apps are automatically found using setuptools' entry points
* Apps can provide their own URLs (they are included and merged into urlpatterns automatically)
* Apps can define ``Interfaces``, that other GDAPS apps then can implement
* Apps can provide Javascript frontends that are found and compiled automatically (WorkInProgress)

## Support

You can support me in various ways.

* Test the code and write bug reports.
* Write code
* Write ideas (as bug report)
* Support this work financially. Feel free to send me a few bucks vie Ethereum at **0xf29f45a3632a1721b9ea3795808337eba06e1814**:
![Ethereum QR-code](docs/0xf29f45a3632a1721b9ea3795808337eba06e1814.jpeg)

## Credits

I was majorly influenced by other plugin systems when writing this code, big thanks to them:

* Marty Alchin's [Simple plugin framework](http://martyalchin.com/2008/jan/10/simple-plugin-framework/)
* The [PyUtilib](https://github.com/PyUtilib/pyutilib) library
* [The Pretix ecosystem](https://pretix.eu/)
* [Yapsy](http://yapsy.sourceforge.net/)
* [Django-Rest-Framework](https://www.django-rest-framework.org/)
* [Graphene-Django](http://docs.graphene-python.org/projects/django/en/latest/)

## License

GDAPS is licensed under the **GNU Public License v3.0 or later**, see [License](LICENSE.md).


