Skip to main content

Generic Django Apps Plugin System

Project description

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:

License

GDAPS is licensed under the BSD License, see License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gdaps-0.8.5.tar.gz (6.1 MB view details)

Uploaded Source

Built Distribution

gdaps-0.8.5-py3-none-any.whl (30.6 kB view details)

Uploaded Python 3

File details

Details for the file gdaps-0.8.5.tar.gz.

File metadata

  • Download URL: gdaps-0.8.5.tar.gz
  • Upload date:
  • Size: 6.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for gdaps-0.8.5.tar.gz
Algorithm Hash digest
SHA256 120205ce07c12ef1bed4a11cbe28c48a46716ac9ab2b47b38410f63d495c13e6
MD5 b8c7d3458111654dd1807018863ff11e
BLAKE2b-256 2c3c0189ec19d197a4a9bfff734764f94fccaf958880c732983fce706f251762

See more details on using hashes here.

File details

Details for the file gdaps-0.8.5-py3-none-any.whl.

File metadata

  • Download URL: gdaps-0.8.5-py3-none-any.whl
  • Upload date:
  • Size: 30.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for gdaps-0.8.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cd31c7fb3974a13fbe6a9b25d34db1b00b24613a258347c94800380679afdb12
MD5 4ee0afeb6679047bc8928bc5833d4f49
BLAKE2b-256 2ae5ecb44cbdaac59eb62674820ad6352c6e579c6b13dac839dd5734b948be6b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page