Name | gdaps JSON |
Version |
0.8.5
JSON |
| download |
home_page | None |
Summary | Generic Django Apps Plugin System |
upload_time | 2023-12-23 12:07:51 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.6 |
license | None |
keywords |
django
plugins
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
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 template hooks that can be filled with plugins' content
## Limitations
* GDAPS interfaces cannot inherit classes that import models (like `PermissionRequiredMixin`), as the declaration is too early in the Django setup process, and apps aren't loaded at that time.
## Contribute
You can support me in various ways.
* Test the code and write bug reports.
* Write code
* Suggest ideas (as bug report)
## 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 **BSD License**, see [License](LICENSE.md).
Raw data
{
"_id": null,
"home_page": null,
"name": "gdaps",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "django,plugins",
"author": null,
"author_email": "Christian Gonz\u00e1lez <office@nerdocs.at>",
"download_url": "https://files.pythonhosted.org/packages/2c/3c/0189ec19d197a4a9bfff734764f94fccaf958880c732983fce706f251762/gdaps-0.8.5.tar.gz",
"platform": null,
"description": "\nThe GDAPS library allows Django to make real \"pluggable\" apps.\n\nA standard Django \"app\" is *reusable* (if done correctly), but is not *pluggable*,\nlike being distributed and \"plugged\" into a Django main application without modifications. GDAPS is filling this gap.\n\nThe 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\":\n\n* Apps are automatically found using setuptools' entry points\n* Apps can provide their own URLs (they are included and merged into urlpatterns automatically)\n* Apps can define ``Interfaces``, that other GDAPS apps then can implement\n* Apps can provide template hooks that can be filled with plugins' content\n\n\n## Limitations\n\n* GDAPS interfaces cannot inherit classes that import models (like `PermissionRequiredMixin`), as the declaration is too early in the Django setup process, and apps aren't loaded at that time.\n\n\n## Contribute\n\nYou can support me in various ways.\n\n* Test the code and write bug reports.\n* Write code\n* Suggest ideas (as bug report)\n\n\n## Credits\n\nI was majorly influenced by other plugin systems when writing this code, big thanks to them:\n\n* Marty Alchin's [Simple plugin framework](http://martyalchin.com/2008/jan/10/simple-plugin-framework/)\n* The [PyUtilib](https://github.com/PyUtilib/pyutilib) library\n* [The Pretix ecosystem](https://pretix.eu/)\n* [Yapsy](http://yapsy.sourceforge.net/)\n* [Django-Rest-Framework](https://www.django-rest-framework.org/)\n* [Graphene-Django](http://docs.graphene-python.org/projects/django/en/latest/)\n\n## License\n\nGDAPS is licensed under the **BSD License**, see [License](LICENSE.md).\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Generic Django Apps Plugin System",
"version": "0.8.5",
"project_urls": {
"Documentation": "https://gdaps.readthedocs.org",
"Home": "https://gdaps.readthedocs.org",
"Source": "https://gitlab.com/nerdocs/gdaps",
"Tracker": "https://gitlab.com/nerdocs/gdaps/issues"
},
"split_keywords": [
"django",
"plugins"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2ae5ecb44cbdaac59eb62674820ad6352c6e579c6b13dac839dd5734b948be6b",
"md5": "4ee0afeb6679047bc8928bc5833d4f49",
"sha256": "cd31c7fb3974a13fbe6a9b25d34db1b00b24613a258347c94800380679afdb12"
},
"downloads": -1,
"filename": "gdaps-0.8.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4ee0afeb6679047bc8928bc5833d4f49",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 30650,
"upload_time": "2023-12-23T12:04:26",
"upload_time_iso_8601": "2023-12-23T12:04:26.228658Z",
"url": "https://files.pythonhosted.org/packages/2a/e5/ecb44cbdaac59eb62674820ad6352c6e579c6b13dac839dd5734b948be6b/gdaps-0.8.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2c3c0189ec19d197a4a9bfff734764f94fccaf958880c732983fce706f251762",
"md5": "b8c7d3458111654dd1807018863ff11e",
"sha256": "120205ce07c12ef1bed4a11cbe28c48a46716ac9ab2b47b38410f63d495c13e6"
},
"downloads": -1,
"filename": "gdaps-0.8.5.tar.gz",
"has_sig": false,
"md5_digest": "b8c7d3458111654dd1807018863ff11e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 6050893,
"upload_time": "2023-12-23T12:07:51",
"upload_time_iso_8601": "2023-12-23T12:07:51.723280Z",
"url": "https://files.pythonhosted.org/packages/2c/3c/0189ec19d197a4a9bfff734764f94fccaf958880c732983fce706f251762/gdaps-0.8.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-23 12:07:51",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "nerdocs",
"gitlab_project": "gdaps",
"lcname": "gdaps"
}