(cls, path_params: Dict)
| 116 | |
| 117 | @classmethod |
| 118 | def validate_path_params(cls, path_params: Dict): |
| 119 | global entity_path_param_validator |
| 120 | |
| 121 | k = ":".join(sorted(list(path_params.keys()))) |
| 122 | validator = entity_path_param_validator.get(k) |
| 123 | |
| 124 | if validator is not None: |
| 125 | validator.validate(path_params) |
| 126 | |
| 127 | else: |
| 128 | # create a path param validator |
| 129 | fields = {} |
| 130 | for field_name in path_params: |
| 131 | field = cls.model_fields.get(field_name) |
| 132 | if field: |
| 133 | field_copy = copy.copy(field) |
| 134 | fields[field_name] = (field.annotation, field_copy) |
| 135 | validator = create_model( |
| 136 | f"{cls.object_name()}PathParamValidator", |
| 137 | **fields, |
| 138 | ) |
| 139 | validator.validate(path_params) |
| 140 | entity_path_param_validator[k] = validator |
no test coverage detected