Environment variable helpers
Project description
Roskarl
Is a tiny module for environment variables.
For pipeline configuration via environment variables, see Marshal.
Requires
Python 3.11.0+
How to install
pip install roskarl
Example usage
from roskarl import (
env_var,
env_var_bool,
env_var_cron,
env_var_float,
env_var_int,
env_var_iso8601_datetime,
env_var_list,
env_var_rfc3339_datetime,
env_var_tz,
env_var_dsn,
DSN
)
All functions return None if the variable is not set. An optional default parameter can be provided to return a fallback value instead.
value = env_var(name="STR_VAR", default="fallback")
str
value = env_var(name="STR_VAR")
returns str
bool
value = env_var_bool(name="BOOL_VAR")
returns bool — accepts true or false (case insensitive)
tz
value = env_var_tz(name="TZ_VAR")
returns str if value is a valid IANA timezone (e.g. Europe/Stockholm)
list
value = env_var_list(name="LIST_VAR", separator="|")
returns list[str] if value is splittable by separator
int
value = env_var_int(name="INT_VAR")
returns int if value is numeric
float
value = env_var_float(name="FLOAT_VAR")
returns float if value is a float
cron
value = env_var_cron(name="CRON_EXPRESSION_VAR")
returns str if value is a valid cron expression
datetime (ISO8601)
value = env_var_iso8601_datetime(name="DATETIME_VAR")
returns datetime if value is a valid ISO8601 datetime string — timezone is optional
2026-01-01T00:00:00
2026-01-01T00:00:00+00:00
datetime (RFC3339)
value = env_var_rfc3339_datetime(name="DATETIME_VAR")
returns datetime if value is a valid RFC3339 datetime string — timezone is required
2026-01-01T00:00:00+00:00
DSN
Note: Special characters in passwords must be URL-encoded.
from urllib.parse import quote
password = 'My$ecret!Pass@2024'
encoded = quote(password, safe='')
print(encoded) # My%24ecret%21Pass%402024 <--- use this
value = env_var_dsn(name="DSN_VAR")
returns DSN object if value is a valid DSN string, formatted as:
postgresql://username:password@hostname:5432/database_name
The DSN object exposes the following attributes:
| Attribute | Type | Example |
|---|---|---|
scheme |
str |
postgresql |
host |
str |
hostname |
port |
int |
5432 |
username |
str |
username |
password |
str |
password |
database |
str |
database_name |
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
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 roskarl-3.1.1.tar.gz.
File metadata
- Download URL: roskarl-3.1.1.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24d7a88c64c7e54a77b995c6866d0586c08b9270b70207296e4afa887bfc80c4
|
|
| MD5 |
3203cea4d0b215e077d12d8385004b3e
|
|
| BLAKE2b-256 |
149f27795fd5d5aebe654c6f5a52b37d2c50108f9b56fec534551a458ff5d2a7
|
File details
Details for the file roskarl-3.1.1-py3-none-any.whl.
File metadata
- Download URL: roskarl-3.1.1-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be6b45c0b5a6fce2d72f13f04eddcd483ed8738f65aef9b01cacff35285b0cc5
|
|
| MD5 |
19037718198f33b08ccca181fba5aa70
|
|
| BLAKE2b-256 |
91d40b4637d68f722d8b29b1fd2ba3e502eb2dfbbc9fd14983cf9ad68b7eeabf
|