Skip to main content

Generic plugin environment, perfectly fitting into the Django ecosystem

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.9.1.tar.gz (30.4 kB view details)

Uploaded Source

Built Distribution

gdaps-0.9.1-py3-none-any.whl (32.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gdaps-0.9.1.tar.gz
  • Upload date:
  • Size: 30.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for gdaps-0.9.1.tar.gz
Algorithm Hash digest
SHA256 fb1a114d62fccf25957696f108ef30f861e3e5a320a76160a17d679366231934
MD5 0ef85e0e22324427f3f1b316fd19bc19
BLAKE2b-256 b49a5a4e6e33941fcabd56f5b17b1fec271018b9c9680ca9f0f0fcc0a599d480

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gdaps-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 32.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for gdaps-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 076df210ce9949c2faa8aa353019254582371d9532229512d0bacd9166faf6d3
MD5 6e82a0919cbd0b6129ea49b99056eb42
BLAKE2b-256 b109a45c9ed2b1e2a87650b6c38c77349a1786d6cac0f1499f0762d1390e919e

See more details on using hashes here.

Supported by

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