API Reference ============= Complete API documentation for vein. Core Modules ----------- .. toctree:: :maxdepth: 2 vein vein.config vein.default Configuration Sources -------------------- .. toctree:: :maxdepth: 2 vein.sources vein.sources.memory vein.sources.files vein.sources.remote vein.sources.aws Validation ---------- .. toctree:: :maxdepth: 2 vein.validation Caching ------- .. toctree:: :maxdepth: 2 vein.cache Retry & Backoff -------------- .. toctree:: :maxdepth: 2 vein.backoff Quick Reference -------------- Common Imports ~~~~~~~~~~~~~ .. code-block:: python # 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 ~~~~~~~~~~~~~ .. code-block:: python # 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: .. code-block:: python # 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: .. code-block:: python # 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)) )