Skip to main content

Django Boot Core Starter

Project description

Django Boot Core - Starter

PyPI - Version GitHub Workflow Status (with event) GitHub issues Static Badge

Core starter library for Django Boot.

This library will initialize Rhazes ApplicationContext by default and registers some beans on it.

Usage

First, add Django Boot Starter to INSTALLED_APPS:

INSTALLED_APPS = [
    ...,
    "django_boot_core",
]

Then assure you have these two settings in your settings.py:

DJANGO_BOOT = {
    "DI_PACKAGES": [],  # packages containing beans which you want to be scanned in your project
    "DI_SCAN_STARTERS": False,
    "APPLICATION_CONFIGURATION": {
        ... # Configuration for ApplicationConfiguration. Read below
    }
}

Application Configuration Parser

Main benefit of using this library is that you will have ApplicationConfiguration bean registered for you.

This bean allows you to use configuration files for different services (beans) in your project easily.

django_boot_core.services.ApplicationConfiguration is an autoconfigured extension on top of parse_it library.

To configure ApplicationConfiguration (and ParseIt class) try changing these values in the settings.

# settings.py

DJANGO_BOOT = {
    "APPLICATION_CONFIGURATION": {
        # Read what blow items do in `parse_it` documentation.
        "LOCATION": os.path.join(BASE_DIR, "application_config"), # Optional, Location to read configuration files from
        "CONFIG_TYPE_PRIORITY": ..., # optional
        "GLOBAL_DEFAULT_VALUE": ..., # optional
        "TYPE_ESTIMATE": ..., # optional
        "RECURSE": ..., # optional
        "FORCE_ENVVARS_UPPERCASE": ..., # optional
        "ENVVAR_PREFIX": ..., # optional
        "SUFFIX_MAPPING": ..., # optional
        "ENVVAR_DIVIDER": ..., # optional
        "NONE_VALUES": ..., # optional
    }
}

Default configuration location (directory) (in case BASE_DIR is set in settings.py) would be {BASE_DIR}/application_config.

Write your own starter apps

You can make Django Boot scan your apps by default without having to add anything specific in settings DI_PACKAGES by ending your app names in _starter.

To enable this feature you need to specify DJANGO_BOOT["DI_SCAN_STARTERS"] = True in settings.

DJANGO_BOOT = {
    "DI_SCAN_STARTERS": True,
    # other configurations here
}

Example: you have an app called polls and it requires some beans to be registered into ApplicationContext. You can rename the app to polls_starter instead and this library will automatically pick it to scan.

Alternatively (perhaps for performance reasons as well) you can skip this and just let other developers know that which packages then need to add to settings DI_PACKAGES after they install your app.

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-boot-core-starter-0.2.0.tar.gz (5.0 kB view details)

Uploaded Source

File details

Details for the file django-boot-core-starter-0.2.0.tar.gz.

File metadata

File hashes

Hashes for django-boot-core-starter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 228bea8e56e71910cfaca600ed68ef6868254cf8a94c41c3d6c786ec3206c149
MD5 62a1155f6aa6f6e479e29e99697bf444
BLAKE2b-256 20e3dd97bc959d5b859dc73099f562b082e285a6320ea53f6efe4d7fc344d944

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