Skip to main content

A simple tool that allows you to specify app dependencies and middleware dependencies in your application, and also allow you to add default values for your additional configurations, after then load all your application settings into your project's settings.

Project description

django-app-requires

A simple tool that allows you to specify app dependencies and middleware dependencies in your application, and also allow you to add default values for your additional configurations, after then load all your application settings into your project's settings.

Install

pip install django-app-requires

Usage

your_app/__init__.py

app_requires = [
    "your",
    "required",
    "apps",
]

app_middleware_requires = [
    "your",
    "required",
    "middlewares",
]

# Django's setting key must be in upper case.
# default values will be overrided by items in pro/settings.py.

app_setting_defaults = {
    "HELLO": "WORLD",
}

app_setting_callbacks = {
    "your_app.setting_callbacks.callback1",
}

your_app/setting_callbacks.py

def callback1(globals):
    globals["EXTRA_ITEM"] = "EXTRA_VALUE"

pro/settings

INSTALLED_APPS = [
    ...
    'your_app',
    ...
]

#
# at the bottom of settings.py
#
from django_app_requires import patch_all
patch_all()

# so the final INSTALLED_APPS = [
#     "your",
#     "required",
#     "apps",
#     "your_app",
#     "django_app_requires",
# ]

# so the final MIDDLEWARE = [
#    ...
#    "your",
#    "required",
#    "middlewares",
#    ...
# ]

# so the final you got a new setting item:
# HELLO = "WORLD"

## so the final you got a new setting item which provided by callback1:
# EXTRA_ITEM = "EXTRA_VALUE"

Releases

v0.1.0

  • First release.

v0.1.1

  • Add fastutils & magic-import in requirements.txt.
  • Fix problems of recursive required.

v0.2.0

  • Add collect_requirements function. Removed

v0.2.1

  • Don't scan all app, exclude third-part apps.
  • Suggest to use collect_requirements command before doing project package.

v0.2.2

  • Output sorting.

v0.2.3

  • Remove collect_requirements command.
  • Test with Django 3.2.

v0.2.4

  • We are not care about Django's version and fastutils' version, so let the end user to choose the version.

v0.2.5

  • Fix bdist_wheel problem that including useless files.

v0.3.0

  • Rename add_app_requires to load_app_requires.
  • Add load_app_middleware_requires.
  • Add load_app_setting_defaults.
  • Add load_app_setting_callbacks.
  • Add patch_all to load_app_requires, load_app_middleware_requires, load_app_setting_defaults and load_app_setting_callbacks.

v0.3.1

  • Fix app_setting_callbacks duplicate load problem.

v0.3.2

  • Doc update.
  • Use zenutils.

v0.3.3

  • Doc update.

v0.3.4

  • Fix unit tests.

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

django-app-requires-0.3.4.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

django_app_requires-0.3.4-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file django-app-requires-0.3.4.tar.gz.

File metadata

  • Download URL: django-app-requires-0.3.4.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for django-app-requires-0.3.4.tar.gz
Algorithm Hash digest
SHA256 78cc468c536ce7eeea0a4330efe9d690b2d677246aba1c91feeafc122616d8f2
MD5 ba00826822d1ce0fd21af525e058f4a8
BLAKE2b-256 0cf14602cd6ffa075c051c18f8e2688a574d1306f4e13b0d6bad58fc00d5b229

See more details on using hashes here.

File details

Details for the file django_app_requires-0.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for django_app_requires-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 195496fc9ffc055d1fbf4d0c7e8cc975da3e36c0a6d020c88e043e583a4dd0bd
MD5 8dda0c841873e7e150e2d8b30b97039d
BLAKE2b-256 b1a325fded403dcd2ed56d8e2c736f7b2e3b2b7b8cb51fb969505448e8185ccb

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