| 241 | |
| 242 | |
| 243 | class ValidationReference: |
| 244 | name: str |
| 245 | dataset_name: str |
| 246 | description: str |
| 247 | tags: Dict[str, str] |
| 248 | profiler: Profiler |
| 249 | |
| 250 | _profile: Optional[Profile] = None |
| 251 | _dataset: Optional[SavedDataset] = None |
| 252 | |
| 253 | def __init__( |
| 254 | self, |
| 255 | name: str, |
| 256 | dataset_name: str, |
| 257 | profiler: Profiler, |
| 258 | description: str = "", |
| 259 | tags: Optional[Dict[str, str]] = None, |
| 260 | ): |
| 261 | """ |
| 262 | Validation reference combines a reference dataset (currently only a saved dataset object can be used as |
| 263 | a reference) and a profiler function to generate a validation profile. |
| 264 | The validation profile can be cached in this object, and in this case |
| 265 | the saved dataset retrieval and the profiler call will happen only once. |
| 266 | |
| 267 | Validation reference is being stored in the Feast registry and can be retrieved by its name, which |
| 268 | must be unique within one project. |
| 269 | |
| 270 | Args: |
| 271 | name: the unique name for validation reference |
| 272 | dataset_name: the name of the saved dataset used as a reference |
| 273 | description: a human-readable description |
| 274 | tags: a dictionary of key-value pairs to store arbitrary metadata |
| 275 | profiler: the profiler function used to generate profile from the saved dataset |
| 276 | """ |
| 277 | self.name = name |
| 278 | self.dataset_name = dataset_name |
| 279 | self.profiler = profiler |
| 280 | self.description = description |
| 281 | self.tags = tags or {} |
| 282 | |
| 283 | @classmethod |
| 284 | def from_saved_dataset(cls, name: str, dataset: SavedDataset, profiler: Profiler): |
| 285 | """ |
| 286 | Internal constructor to create validation reference object with actual saved dataset object |
| 287 | (regular constructor requires only its name). |
| 288 | """ |
| 289 | ref = ValidationReference(name, dataset.name, profiler) |
| 290 | ref._dataset = dataset |
| 291 | return ref |
| 292 | |
| 293 | @property |
| 294 | def profile(self) -> Profile: |
| 295 | if not self._profile: |
| 296 | if not self._dataset: |
| 297 | raise RuntimeError( |
| 298 | "In order to calculate a profile validation reference must be instantiated from a saved dataset. " |
| 299 | "Use ValidationReference.from_saved_dataset constructor or FeatureStore.get_validation_reference " |
| 300 | "to get validation reference object." |
no outgoing calls
no test coverage detected