Subscribing to Configuration Updates with on_update
PydaConf provides an on_update
mechanism that allows you to subscribe to specific configuration value updates. This is useful when you need to react dynamically to changes in your configuration.
Using on_update
You can subscribe to configuration changes by specifying a key pattern and a callback function that will be triggered when the value is updated.
Example: Subscribing to a Value Update
from pydaconf import PydaConf
from pydantic import BaseModel
def on_change_callback(key: str, value: str):
print(f"Configuration updated: {key} -> {value}")
class Config(BaseModel):
api_key: str
database_url: str
provider = PydaConf[Config]()
provider.from_file("config.yaml")
# Subscribe to updates for api_key
provider.on_update(".api_key", on_change_callback)
Example: Handling Nested Keys
You can use regex to subscribe for specific updates.
def nested_callback(key: str, value: str):
print(f"Nested key updated: {key} -> {value}")
provider.on_update(".database.*", nested_callback)
This pattern allows you to watch all keys under database
. Whenever any nested value changes, the callback will be triggered.
Next Steps
Learn more about Interpolation to make your configuration more dynamic!