Utilities for building applications
Project description
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
# Just for demonstration, of course env vars shouldn't be set in python
os.environ["COLOR"] = "RED"
os.environ["TEMPERATURE"] = "50"
os.environ["DISABLE_AUTOTUNE"] = "y"
class Config(BaseConfig):
COLOR: str
TEMPERATURE: int
DISABLE_AUTOTUNE: bool
assert Config.COLOR == "RED"
assert Config.TEMPERATURE == 50
assert Config.DISABLE_AUTOTUNE is True
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"
os.environ["DISABLE_AUTOTUNE"] = "I can't sing but I pretend to be a singer"
class Config(BaseConfig):
COLOR: str
TEMPERATURE: int
AMOUNT: int = None
DISABLE_AUTOTUNE: bool = None
try:
validate_config(Config)
except ValidationError as error:
for attribute_error in error.errors:
print(attribute_error)
Output:
DISABLE_AUTOTUNE: Invalid value. Required type: <class 'bool'>
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
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
datek_app_utils-0.4.0.tar.gz
(4.7 kB
view details)
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 datek_app_utils-0.4.0.tar.gz.
File metadata
- Download URL: datek_app_utils-0.4.0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.9.16 Linux/6.5.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23d8526663be6c4c7c057b4ee771f406a3041cfb7d3f625cf55167bb3540226e
|
|
| MD5 |
b7db2d89fb15ed1741efeef87daa4238
|
|
| BLAKE2b-256 |
489b44e73124c5704cb7b5b23e62dd9adda78b093ea8381d7075b1c0eaeeb5c4
|
File details
Details for the file datek_app_utils-0.4.0-py3-none-any.whl.
File metadata
- Download URL: datek_app_utils-0.4.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.9.16 Linux/6.5.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8331797b59ac63f0ff241404c041c9e255ee34b372036351353167eef5abed5
|
|
| MD5 |
2055e54b00bd9d1aecf6b04a9f0b3c8d
|
|
| BLAKE2b-256 |
2ef0ad2dc93d4507223b154616fa10e7cd3e496096a828312e5cfc550a88bc85
|