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
CONFIGis defined, it will be used to determine the location of the config file - otherwise a file
./config.yamlis 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.yamlexists, 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
TIMEZONEis 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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file service-bootstrap-0.0.5.tar.gz.
File metadata
- Download URL: service-bootstrap-0.0.5.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb8c2d69ddb855ce6b0bc6f176df73437e4bb5665e35f32cebb47a240ee04566
|
|
| MD5 |
295079f02e234a4c72d9affb8a266f0e
|
|
| BLAKE2b-256 |
955e1533ebfb7ee0432fdcd02a8ab03d84f2e2c59072de642317f61e10977247
|
File details
Details for the file service_bootstrap-0.0.5-py3-none-any.whl.
File metadata
- Download URL: service_bootstrap-0.0.5-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
605055de07d20091afe5d4fe2775705d9844cdc77a6beb84a1852cf2da0e9026
|
|
| MD5 |
ebcc6a8170685bbd007566e3220d10f0
|
|
| BLAKE2b-256 |
510e730e95d7cf41be81974a096094e1f8eb73b3e062bcbcce43a9cdbd328993
|