gdaps


Namegdaps JSON
Version 0.8.5 PyPI version JSON
download
home_pageNone
SummaryGeneric Django Apps Plugin System
upload_time2023-12-23 12:07:51
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseNone
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"
}
        
Elapsed time: 0.16951s