Application Builder
The goal of application builder is to have a single object that connects settings and the current application environment in one place. This object can then be used throughout your python application,
as a central spot for checking which environment the application is running under and for gettings settings accordingly.
Usage Example
from application_builder.application import Application
# our settings class must support 2 functions `load()` and `settings()`.
class MySettingsManager:
def __init__(self, env, app_root):
self._env = env
self._root = app_root
def load(self):
# json/yaml/python files could be loaded here
self._data = {
'test' : { 'db' : 'localhost' },
'dev' : { 'db' : 'some.server.com' }
}
def settings(self):
return self._data
def settings_init_fn(env: str, app_root: str):
sm = MySettingsManager(env, app_root)
return sm
# Let's assume MYAPP_ENV='dev'
myapp = Application(
name = 'myapp',
app_env_varname: 'MYAPP_ENV',
app_root_dir: '/path/to/myapp',
# sometimes you might need to do a lot more
# than just instantiate a class, that's why you need to pass a function
settings_class_init_fn: settings_init_fn
)
myapp.add_path('settings', 'config/settings')
myapp.add_path('data', 'data')
myapp.boot()
myapp.current_environment() # 'dev'
myapp.settings() # { 'db' : 'some.server.com' }
myapp.paths('root') # /path/to/myapp
myapp.paths('settings') # /path/to/myapp/config/settings
myapp.paths('data') # /path/to/myapp/data
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file application_builder-0.1.2.tar.gz.
File metadata
- Download URL: application_builder-0.1.2.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d11a06ac0a2ed38be3f3eb2660869e391c1a8d9c451ed68f4030ade0153889f3
|
|
| MD5 |
b52ac717178f1c59adbc664af9859542
|
|
| BLAKE2b-256 |
9989efcc5c7d179b83fd30e92cec63f4b6c0d20690e41e0d6251282f2be8bdee
|