| try: # pragma: no cover - exercised indirectly via configuration loading | |
| import yaml # type: ignore | |
| from yaml import SafeLoader # type: ignore | |
| except ModuleNotFoundError: # pragma: no cover - fallback for minimal environments | |
| from sim_priors_pk.config_classes import yaml_fallback as yaml | |
| SafeLoader = yaml.SafeLoader | |
| class TupleSafeLoader(SafeLoader): | |
| def construct_python_tuple(self, node): | |
| # Convert the YAML sequence (e.g., [0.01, 0.1]) into a tuple | |
| return tuple(self.construct_sequence(node)) | |
| # Register the constructor for the fully qualified tag | |
| TupleSafeLoader.add_constructor('tag:yaml.org,2002:python/tuple', TupleSafeLoader.construct_python_tuple) |