Framework for setting up service
Project description
service-bootstrap
Helper for starting up a service in python
Function start_service()
Usage:
from bootstrap.bootstrap import start_service
config, logger, timezone = start_service()
Configuration
start_service()
will look for a config YAML file and load it into a dict,
using the following algorithm:
- if the env variable
CONFIG
is defined, it will be used to determine the location of the config file - otherwise a file
./config.yaml
is expected to be present
The file will be parsed and returned as a first returned variable
Logging
start_service()
will configure the logger will in the following way:
- if
./logging.yaml
exists, it will be loaded into a dict and used to configure logging (using dictConfig) - otherwise the default logging format will be applied, which is defined as writing logs on INFO level to stdout
Additionally, start_service()
will look for ./loglevels.yaml
file with the following structure:
'apscheduler.scheduler': 'ERROR',
'apscheduler.executors.default': 'WARN'
and use this file to configure per-logger log levels. Note that the settings two mentioned above
('apscheduler.scheduler': 'ERROR'
and 'apscheduler.executors.default': 'WARN'
) will be used as a
default.
Finally, start_service()
will create a logger called main
, log two messages
logger.info("Starting application!")
logger.info("Your timezone is %s" % timezone)
and return this logger as a second returned variable
Timezone
The third returned variable will contain the local timezone as a string (f.ex Europe/Warsaw
), detected using
the following algorithm:
- if the env variable
TIMEZONE
is defined, it will be used - otherwise timezone will be autodetected using tzlocal
Note on YAML loading
All yaml files are loaded using load_yaml()
and may contain env variables!
Function load_yaml()
Usage:
from bootstrap.utils import load_yaml
content = load_yaml("file.yaml")
It will load the content of file.yaml
into a dict resolving ENV variables
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
Built Distribution
Hashes for service_bootstrap-0.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 605055de07d20091afe5d4fe2775705d9844cdc77a6beb84a1852cf2da0e9026 |
|
MD5 | ebcc6a8170685bbd007566e3220d10f0 |
|
BLAKE2b-256 | 510e730e95d7cf41be81974a096094e1f8eb73b3e062bcbcce43a9cdbd328993 |