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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gdaps-0.15.0-py3-none-any.whl (53.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gdaps-0.15.0.tar.gz
  • Upload date:
  • Size: 61.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gdaps-0.15.0.tar.gz
Algorithm Hash digest
SHA256 c8ea8f79a6a705383775768be1b89f4d1c81ca5b693461b40b3185559d5aad4f
MD5 2e5611b45814f5b050c672ba2bc3016a
BLAKE2b-256 7eb50db775a40ab79d1924d7f8c4b7d58d40c037977a4fdfa9e9c045cc1b02cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gdaps-0.15.0-py3-none-any.whl
  • Upload date:
  • Size: 53.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gdaps-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cb263c5a57bce731f79a26a83ffbbd98d64f55362ada108e557d4a53d4c3377f
MD5 9b08a1d1e0acd3d169342599896d6e8d
BLAKE2b-256 2efbfe468680f71a051905112b1dc5121b642b2c1bf30453c4d0487e5443bef0

See more details on using hashes here.

Supported by

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