egos-helpers
A python library for helper functions. Used in the egos-tech projects.
Functions
gather_environ: Return a dict of environment variables correlating to the keys dict.get_environ_value: Resolve a single value from an environment variable or its_FILEcompanion (file-based secrets).short_msg: Truncates the message tocharscharacters and adds two dots at the end.strtobool: Converts a string to a booleanredact: Replaces inmessagetheparamstring withreplace_valuekey_to_title: Converts a key in the forma_is_bto a title in the formA Is Bslugify: Converts a string to a URL-safe slug of at mostmax_lengthcharacterssetup_logger: Sets up and returns a logger, optionally with a GELF handlerget_formatter: Builds the log record formatter, which adds source locations atDEBUG
See egos_helpers/core.py for the full description of each function.
Usage example
Install egos-helpers:
python3 -m venv .venv
source .venv/bin/activate
# if you don't have a requirements.txt file
pip install -U egos-helpers
# if you do have a requirements.txt file
pip install -U -r requirements.txt
In your python project:
from egos_helpers import gather_environ
class MyClass:
keys = {
"key_one": {
"default": ["one", 2],
"type": "list",
},
"key_two": {
"hidden": True,
"default": False,
"type": "boolean",
},
"key_three": {
"default": {},
"type": "filter",
},
"key_four": {
"default": None,
"redact": True,
"type": "string",
},
"key_five": {
"default": 12,
"type": "int",
},
"key_six": {
"default": "INFO",
"type": "enum",
"values": ["DEBUG", "INFO", "WARNING", "ERROR"],
},
"key_seven": {
"default": "12",
"deprecated": True,
"replaced_by": "key_five",
"type": "int",
},
}
def __init__(self):
envkeys = gather_environ(keys=MyClass.keys)
print(envkeys)
With KEY_ONE=one, KEY_THREE=foo=bar, KEY_FOUR=super_secret_string, KEY_FIVE=33,
KEY_SIX=WARNING and the rest unset, gather_environ returns:
{
"key_one": ["one"],
"key_two": False,
"key_three": {"foo": "bar"},
"key_four": "super_secret_string",
"key_five": 33,
"key_six": "WARNING",
}
key_seven is deprecated and unset, so it is left out. A key that is unset returns its
default exactly as declared, without being converted to the key's type.
File-based secrets
Use get_environ_value to resolve a value from either an environment variable or a
<NAME>_FILE file path (the container secrets convention). It reads <NAME>_FILE
first (returning the file contents stripped of surrounding whitespace), falls back
to <NAME>, and returns None when neither is set. Setting both raises an error.
So does an unreadable <NAME>_FILE path.
from egos_helpers import get_environ_value
# MYAPP_TOKEN=secret123 -> "secret123"
# MYAPP_TOKEN_FILE=/run/secrets/t -> contents of the file, stripped
token = get_environ_value("MYAPP_TOKEN")
Metadata
Release files for egos-helpers 1.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| egos_helpers-1.3.3.tar.gz | 12.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| egos_helpers-1.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.1 kB
Release files / egos_helpers-1.3.3.tar.gz
| Download URL | egos_helpers-1.3.3.tar.gz |
|---|---|
| Size | 12.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
337c81c0e5c2c6003a8668b4388ef7b07e15de8e9c32f3799c424effefc3c1f6
|
|
BLAKE2b-256 checksum How to use checksums |
ee86542246b7697dee041d3862adb5ca45b8924482c6faf3c87a15037a0c0981
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.3 CPython/3.14.5 Linux/7.0.0-28-generic
|
Release files / egos_helpers-1.3.3-py3-none-any.whl
| Download URL | egos_helpers-1.3.3-py3-none-any.whl |
|---|---|
| Size | 12.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1e8a82815898ad437c6ce5961530215ebbf6496c7f2f562df6490dcb0b6fc3d6
|
|
BLAKE2b-256 checksum How to use checksums |
1abc40edcee1aa2c001653bd68103406a7ffd6a42cc3ca8c33c31ab95819bcc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.3.3 CPython/3.14.5 Linux/7.0.0-28-generic
|