API Reference¶
Complete API documentation for vein.
Core Modules¶
Configuration Sources¶
Validation¶
Caching¶
Retry & Backoff¶
Quick Reference¶
Common Imports¶
# Core
from vein import config, Config
# Sources
from vein.sources import from_env, from_dict
from vein.sources.files import from_yaml, from_json, from_ini
from vein.sources.aws import (
from_appconfig,
from_parameter_store,
from_secrets_manager
)
# Validation
from vein.validation.policies import (
RangeValidator,
RegexValidator,
TypeValidator,
PydanticValidator
)
# Caching
from vein.cache import Cache
from vein.cache.strategies import TTLCacheStrategy, LRUCacheStrategy
Config Methods¶
# Assignment
config.key = value
config["key"] = value
config.nested.key = value
# Access
value = config.key
value = config["key"]
value = config.get("key", default)
# Update
config.update(dict_or_source)
config.update({"key": "value"})
config.update(from_env())
# Validation
config.key.add_validator(validator)
config.key.remove_validator(validator)
# Events
config.on_change("key", handler)
config.off_change("key", handler)
# State tracking
config.enable_state_tracking()
history = config.key.get_history()
config.key.rollback(steps=1)
Value Methods¶
When working with configuration values:
# Get raw value (for external libraries)
raw_value = config.key.value
# Type checking
if isinstance(config.port, int):
print("Port is an integer")
# All Python operators work
result = config.timeout * config.retries
message = config.prefix + " " + config.suffix
# Comparison
if config.count > 10:
print("Count exceeds limit")
Source Options¶
Common options for configuration sources:
# Environment variables
from_env(prefix="APP_", lowercase=True, strip_prefix=True)
# Files
from_yaml("config.yml", encoding="utf-8")
from_json("config.json", parse_dates=True)
# AWS
from_appconfig(
application="my-app",
environment="prod",
profile="config",
poll_interval=30,
cache=Cache(TTLCacheStrategy(minutes=5))
)
from_parameter_store(
prefix="/myapp/prod/",
recursive=True,
decrypt=True,
cache=Cache(LRUCacheStrategy(100))
)