Patch a config with new values. Args: config (Optional[RunnableConfig]): The config to patch. copy_locals (bool, optional): Whether to copy locals. Defaults to False. callbacks (Optional[BaseCallbackManager], optional): The callbacks to set. Defaults to None.
(
config: Optional[RunnableConfig],
*,
callbacks: Optional[BaseCallbackManager] = None,
recursion_limit: Optional[int] = None,
max_concurrency: Optional[int] = None,
run_name: Optional[str] = None,
configurable: Optional[Dict[str, Any]] = None,
)
| 204 | |
| 205 | |
| 206 | def patch_config( |
| 207 | config: Optional[RunnableConfig], |
| 208 | *, |
| 209 | callbacks: Optional[BaseCallbackManager] = None, |
| 210 | recursion_limit: Optional[int] = None, |
| 211 | max_concurrency: Optional[int] = None, |
| 212 | run_name: Optional[str] = None, |
| 213 | configurable: Optional[Dict[str, Any]] = None, |
| 214 | ) -> RunnableConfig: |
| 215 | """Patch a config with new values. |
| 216 | |
| 217 | Args: |
| 218 | config (Optional[RunnableConfig]): The config to patch. |
| 219 | copy_locals (bool, optional): Whether to copy locals. Defaults to False. |
| 220 | callbacks (Optional[BaseCallbackManager], optional): The callbacks to set. |
| 221 | Defaults to None. |
| 222 | recursion_limit (Optional[int], optional): The recursion limit to set. |
| 223 | Defaults to None. |
| 224 | max_concurrency (Optional[int], optional): The max concurrency to set. |
| 225 | Defaults to None. |
| 226 | run_name (Optional[str], optional): The run name to set. Defaults to None. |
| 227 | configurable (Optional[Dict[str, Any]], optional): The configurable to set. |
| 228 | Defaults to None. |
| 229 | |
| 230 | Returns: |
| 231 | RunnableConfig: The patched config. |
| 232 | """ |
| 233 | config = ensure_config(config) |
| 234 | if callbacks is not None: |
| 235 | # If we're replacing callbacks, we need to unset run_name |
| 236 | # As that should apply only to the same run as the original callbacks |
| 237 | config["callbacks"] = callbacks |
| 238 | if "run_name" in config: |
| 239 | del config["run_name"] |
| 240 | if "run_id" in config: |
| 241 | del config["run_id"] |
| 242 | if recursion_limit is not None: |
| 243 | config["recursion_limit"] = recursion_limit |
| 244 | if max_concurrency is not None: |
| 245 | config["max_concurrency"] = max_concurrency |
| 246 | if run_name is not None: |
| 247 | config["run_name"] = run_name |
| 248 | if configurable is not None: |
| 249 | config["configurable"] = {**config.get("configurable", {}), **configurable} |
| 250 | return config |
| 251 | |
| 252 | |
| 253 | def merge_configs(*configs: Optional[RunnableConfig]) -> RunnableConfig: |
no test coverage detected