Panaetius
This package provides:
- Functionality to read user variables from a
config.ymlor environment variables. - A convenient default logging formatter printing
jsonthat can save to disk and rotate. - Utility functions.
Config
options
skip_header_init
If skip_header_init=True then the config_path will not use the header_variable as the
sub-directory in the config_path.
E.g
CONFIG = panaetius.Config("tembo", "~/tembo/.config", skip_header_init=True)
Will look in ~/tembo/config/config.yml.
If skip_header_init=False then would look in ~/tembo/config/tembo/config.yml.
Module
Convenient to place in a package/sub-package __init__.py.
See Tembo for an example: https://github.com/tembo-pages/tembo-core/blob/main/tembo/cli/__init__.py
Example snippet to use in a module:
"""Subpackage that contains the CLI application."""
import os
from typing import Any
import panaetius
from panaetius.exceptions import LoggingDirectoryDoesNotExistException
if (config_path := os.environ.get("TEMBO_CONFIG")) is not None:
CONFIG: Any = panaetius.Config("tembo", config_path, skip_header_init=True)
else:
CONFIG = panaetius.Config(
"tembo", "~/tembo/.config", skip_header_init=True
)
panaetius.set_config(CONFIG, "base_path", "~/tembo")
panaetius.set_config(CONFIG, "template_path", "~/tembo/.templates")
panaetius.set_config(CONFIG, "scopes", {})
panaetius.set_config(CONFIG, "logging.level", "DEBUG")
panaetius.set_config(CONFIG, "logging.path")
try:
logger = panaetius.set_logger(
CONFIG, panaetius.SimpleLogger(logging_level=CONFIG.logging_level)
)
except LoggingDirectoryDoesNotExistException:
_LOGGING_PATH = CONFIG.logging_path
CONFIG.logging_path = ""
logger = panaetius.set_logger(
CONFIG, panaetius.SimpleLogger(logging_level=CONFIG.logging_level)
)
logger.warning("Logging directory %s does not exist", _LOGGING_PATH)
This means in ./tembo/cli/cli.py you can
import tembo.cli
# access the CONFIG instance + variables from the config.yml
tembo.cli.CONFIG
Script
Create ./config/config.yml in the same directory as the script.
In the script initialise a CONFIG object:
import pathlib
import panaetius
CONFIG = panaetius.Config(
"teenagers_scraper", str(pathlib.Path(__file__).parents[0] / ".config"), skip_header_init=True
)
Set variables in the same way as the module above.
quickstart logging
import panaetius
def get_logger():
logging_dir = pathlib.Path(__file__).parents[0] / "logs"
logging_dir.mkdir(parents=True, exist_ok=True)
CONFIG = panaetius.Config("training_data_into_gcp", skip_header_init=True)
panaetius.set_config(CONFIG, "logging.level", "DEBUG")
panaetius.set_config(CONFIG, "logging.path", logging_dir)
return panaetius.set_logger(CONFIG, panaetius.SimpleLogger(logging_level=CONFIG.logging_level))
Utility Functions
Squasher
Squashes a json object or Python dictionary into a single level dictionary.
Metadata
Release files for panaetius 2.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| panaetius-2.3.5.tar.gz | 8.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| panaetius-2.3.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.7 kB
Release files / panaetius-2.3.5.tar.gz
| Download URL | panaetius-2.3.5.tar.gz |
|---|---|
| Size | 8.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dd2712f124449b6bc1c3e0fed6baf6b42a9802a5c5fe25411f11a7d7751899ce
|
|
BLAKE2b-256 checksum How to use checksums |
9be10f27e15cfe61b842a3b84eb5e9fc747c583425ff84000d749e11e73a771e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.12 CPython/3.7.12 Darwin/21.2.0
|
Release files / panaetius-2.3.5-py3-none-any.whl
| Download URL | panaetius-2.3.5-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
96794e7fd63b4f156ee2ca4c6380b4a3c13d2d1c7e550f92de476b5cd91ea9c5
|
|
BLAKE2b-256 checksum How to use checksums |
adbc3d12bd9a03bd7591fd7e36bdd93b02dc45d04b6d460b9af82b89e9bc5eb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.12 CPython/3.7.12 Darwin/21.2.0
|