Base library of python 3.6+ and asyncio, include log, config, event, metric etc.
Project description
basepy
Basic library for python 3.6+, includes:
- config loader
- structure logger
- program metrics (statsd)
- exception logger (via sentry)
- datastructures for asyncio
log
Very simple and powerful log system, support structure log. It's not depends on python builtin logging
module.
import asyncio
from basepy.asynclog import logger
logger.add("stdout")
async def main():
await logger.info("hello")
await logger.info("stuct", a=1, b=2, hello='world')
asyncio.run(main())
And the code will generated.
[2020-02-01 11:42:07 +0800] [local.72267] [INFO] [hello]
[2020-02-01 11:42:07 +0800] [local.72267] [INFO] [stuct] [a = 1] [b = 2] [hello = "world"]
config
Config module is easy and powerful settings configuration with following features.
- keep secrets related in sperate file
.secrets.toml
- keep local config in sperate file
settings.local.toml
or.secrets.local.toml
, the local settings will override the settings for the same key.
So, config files should looks like
application
├── .secrets.local.toml
├── .secrets.toml
├── settings.local.toml
└── settings.toml
The .secrets.toml
should contains several keys, like
signing_secret = "local_a"
access_token = "local_b"
To access secrets in program, just use settings.secrets
from basepy.config import settings
print(settings.secrets.signing_secret) # will print "local_a"
The settings.toml
can contains very complex setting, for example
[log]
handlers = ["stdout", "local_fluent"]
[log.stdout]
handler_type = "stdout"
level = "debug"
[log.local_fluent]
handler_type = "fluent"
host = "127.0.0.1"
port = 24224
tag = "basepy"
level = "info"
To access normal setting, just use settings.key
from basepy.config import setting
print(setting.log.handlers)
more
Please refer the docs directory.
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
basepy-0.5.tar.gz
(28.9 kB
view hashes)
Built Distribution
basepy-0.5-py3-none-any.whl
(32.8 kB
view hashes)