Skip to main content

Magic Config

A simple library for easy handling of .env files and environment variables configurations.

This library is a class for working with configurations. The class is implemented as a singleton, which allows you to always have exactly one instance of the same data registry everywhere.

The configuration data itself is taken from the .env file or from environment variables.

Installation

pip install magic-config

Upgrade

pip install --upgrade magic-config

Pypi url: https://pypi.org/project/magic-config/

Example:

DEBUG=1 myapp.py

My app script:

from magic_config import Config

# You can access to variables as property of class object
if Config.DEBUG:
  ...

# You can access to variables in lower case (and camel case, and other case)
if Config.debug:
  ...

# You can access to variables as key of dict object
if Config["debug"]:
  ...

Configure custom variables

# You can add variables to the object

# as dict
MagicConfig({
    "Number": 456,
    "Boolean": True
})

# as named arguments
MagicConfig(
    Number=456,
    Boolean=True
)

Prepared autogenerators for DB URIs

For example in .env file you can write only this data:

MONGO_HOST="127.0.0.1"
MONGO_USER="user"
MONGO_PWD="*****"
MONGO_DB="test"
MONGO_PORT=27017

and in code you can call the MONGO_URL

from magic_config import Config

Config.MONGO_URL

# output:
# mongodb://user:passwd@127.0.0.1:27017/test?authSource=admin&tls=false

Set type casting for environment variables

For example if you create in source root magic.config file and write:

DEBUG="bool"
DEBUG_STEP="bool"
DEBUG_USER_ID="int"

then you run

DEBUG=1 DEBUG_STEP=1 DEBUG_USER_ID=1 DEBUG_USER_ID=10011888 python server.py
Config.DEBUG # True
Config.DEBUG_STEP # True
Config.DEBUG_USER_ID # int(10011888)

Custom file path

Instead default .env file in source root you can configure path to .env file:

# for example

env_file = os.path.realpath(os.path.dirname(os.path.realpath(__file__)) + "/../my.env")
MagicConfig(env_file=env_file)

Metadata

Release files for magic-config 0.1.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for magic-config 0.1.13
File Size Uploaded
magic-config-0.1.13.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for magic-config 0.1.13
File Interpreter ABI Platform
magic_config-0.1.13-py3-none-any.whl Python 3 none any Details

Total release size: 14.5 kB

Release files / magic-config-0.1.13.tar.gz

Download URL magic-config-0.1.13.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
769ca72e04042a1c8cd83415984c12ff9dce67f43864e44d798771e44f604975
BLAKE2b-256 checksum
How to use checksums
5a98d40f77687853b4e9e5df73e414ecbf42605de3674e906c738b434fb56952
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release files / magic_config-0.1.13-py3-none-any.whl

Download URL magic_config-0.1.13-py3-none-any.whl
Size 4.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf40a44d462227d1ce732a9a58a34fb64dfa6465ad016bcc35ab559d97cb0ad2
BLAKE2b-256 checksum
How to use checksums
a7e7c4a79da007d9f6e307f6784721ef0bd1e8cc424a27642823a963a1094161
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.0

Release history Release notifications | RSS feed

This release

0.1.13 This release

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page