manage application data and functionality in one place
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for application_builder-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e1c105d83decb21e9dfabc8b35a961dcdec1f84093242592a77cd8438797df7 |
|
MD5 | 72e7988783460ad93819424c43848795 |
|
BLAKE2b-256 | 782e79be478a111e776d32e1d5b46d1d8f2c355cbcbfb724030046c9e4ba0fdc |