Skip to main content

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:

  1. if ./logging.yaml exists, it will be loaded into a dict and used to configure logging (using dictConfig)
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

service-bootstrap-0.0.5.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

service_bootstrap-0.0.5-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

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

Hashes for service-bootstrap-0.0.5.tar.gz
Algorithm Hash digest
SHA256 bb8c2d69ddb855ce6b0bc6f176df73437e4bb5665e35f32cebb47a240ee04566
MD5 295079f02e234a4c72d9affb8a266f0e
BLAKE2b-256 955e1533ebfb7ee0432fdcd02a8ab03d84f2e2c59072de642317f61e10977247

See more details on using hashes here.

File details

Details for the file service_bootstrap-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for service_bootstrap-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 605055de07d20091afe5d4fe2775705d9844cdc77a6beb84a1852cf2da0e9026
MD5 ebcc6a8170685bbd007566e3220d10f0
BLAKE2b-256 510e730e95d7cf41be81974a096094e1f8eb73b3e062bcbcce43a9cdbd328993

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page