Skip to main content

Utilities for building applications

Project description

codecov Code style: black License: MIT

Utilities for building applications.

Contains:

  • Config loading from environment
  • Bootstrap for logging
  • Base class for creating async workers
  • Async timeout decorator, which is very useful for writing async tests

Examples:

Env config

import os

from datek_app_utils.env_config.base import BaseConfig

os.environ["COLOR"] = "RED"
os.environ["TEMPERATURE"] = "50"


class Config(BaseConfig):
    COLOR: str
    TEMPERATURE: int


assert Config.COLOR == "RED"
assert Config.TEMPERATURE == 50

The Config class casts the values automatically. Moreover, you can test whether all the mandatory variables have been set or not.

import os

from datek_app_utils.env_config.base import BaseConfig
from datek_app_utils.env_config.utils import validate_config
from datek_app_utils.env_config.errors import ValidationError

os.environ["COLOR"] = "RED"


class Config(BaseConfig):
    COLOR: str
    TEMPERATURE: int
    AMOUNT: int = None


try:
    validate_config(Config)
except ValidationError as error:
    for attribute_error in error.errors:
        print(attribute_error)

Output:

TEMPERATURE: Not set. Required type: <class 'int'>

Async timeout decorator

from asyncio import sleep, run
from datek_app_utils.async_utils import async_timeout


@async_timeout(0.1)
async def sleep_one_sec():
    await sleep(1)

    
run(sleep_one_sec())

Output:

TimeoutError

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

datek_app_utils-0.3.6.tar.gz (4.7 kB view hashes)

Uploaded Source

Built Distribution

datek_app_utils-0.3.6-py3-none-any.whl (7.7 kB view hashes)

Uploaded Python 3

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