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 hashes)

Uploaded Source

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