| 76 | |
| 77 | |
| 78 | class SavedDataset: |
| 79 | name: str |
| 80 | features: List[str] |
| 81 | join_keys: List[str] |
| 82 | full_feature_names: bool |
| 83 | storage: SavedDatasetStorage |
| 84 | tags: Dict[str, str] |
| 85 | feature_service_name: Optional[str] = None |
| 86 | |
| 87 | created_timestamp: Optional[datetime] = None |
| 88 | last_updated_timestamp: Optional[datetime] = None |
| 89 | |
| 90 | min_event_timestamp: Optional[datetime] = None |
| 91 | max_event_timestamp: Optional[datetime] = None |
| 92 | |
| 93 | _retrieval_job: Optional["RetrievalJob"] = None |
| 94 | |
| 95 | def __init__( |
| 96 | self, |
| 97 | name: str, |
| 98 | features: List[str], |
| 99 | join_keys: List[str], |
| 100 | storage: SavedDatasetStorage, |
| 101 | full_feature_names: bool = False, |
| 102 | tags: Optional[Dict[str, str]] = None, |
| 103 | feature_service_name: Optional[str] = None, |
| 104 | ): |
| 105 | self.name = name |
| 106 | self.features = features |
| 107 | self.join_keys = join_keys |
| 108 | self.storage = storage |
| 109 | self.full_feature_names = full_feature_names |
| 110 | self.tags = tags or {} |
| 111 | self.feature_service_name = feature_service_name |
| 112 | |
| 113 | self._retrieval_job = None |
| 114 | |
| 115 | def __repr__(self): |
| 116 | items = (f"{k} = {v}" for k, v in self.__dict__.items()) |
| 117 | return f"<{self.__class__.__name__}({', '.join(items)})>" |
| 118 | |
| 119 | def __str__(self): |
| 120 | return str(MessageToJson(self.to_proto())) |
| 121 | |
| 122 | def __hash__(self): |
| 123 | return hash((self.name)) |
| 124 | |
| 125 | def __eq__(self, other): |
| 126 | if not isinstance(other, SavedDataset): |
| 127 | raise TypeError( |
| 128 | "Comparisons should only involve SavedDataset class objects." |
| 129 | ) |
| 130 | |
| 131 | if ( |
| 132 | self.name != other.name |
| 133 | or sorted(self.features) != sorted(other.features) |
| 134 | or sorted(self.join_keys) != sorted(other.join_keys) |
| 135 | or self.storage != other.storage |
no outgoing calls