(
param_name: str, value: Any, param_metadata_type: type, gbls: Any
)
| 79 | |
| 80 | |
| 81 | def _populate_from_globals( |
| 82 | param_name: str, value: Any, param_metadata_type: type, gbls: Any |
| 83 | ) -> Tuple[Any, bool]: |
| 84 | if gbls is None: |
| 85 | return value, False |
| 86 | |
| 87 | if not isinstance(gbls, BaseModel): |
| 88 | raise TypeError("globals must be a pydantic model") |
| 89 | |
| 90 | global_fields: Dict[str, FieldInfo] = gbls.__class__.model_fields |
| 91 | found = False |
| 92 | for name in global_fields: |
| 93 | field = global_fields[name] |
| 94 | if name is not param_name: |
| 95 | continue |
| 96 | |
| 97 | found = True |
| 98 | |
| 99 | if value is not None: |
| 100 | return value, True |
| 101 | |
| 102 | global_value = getattr(gbls, name) |
| 103 | |
| 104 | param_metadata = find_field_metadata(field, param_metadata_type) |
| 105 | if param_metadata is None: |
| 106 | return value, True |
| 107 | |
| 108 | return global_value, True |
| 109 | |
| 110 | return value, found |
| 111 | |
| 112 | |
| 113 | def _val_to_string(val) -> str: |
no test coverage detected