| 194 | return str(self.path()) |
| 195 | |
| 196 | def skip(self) -> bool: |
| 197 | # Skip _progress sources (they don't have a DDL) |
| 198 | if self.item_type == ItemType.SOURCE: |
| 199 | return self.name.endswith("_progress") |
| 200 | # Skip items with database, schema, or item names that contain a `/` |
| 201 | # (not a valid UNIX folder character). |
| 202 | elif "/" in self.database: |
| 203 | warn(f"Skip processing of item with bad database name: `{self.database}`") |
| 204 | return True |
| 205 | elif "/" in self.schema: |
| 206 | warn(f"Skip processing of item with bad schema name: `{self.schema}`") |
| 207 | return True |
| 208 | elif "/" in self.name: |
| 209 | warn(f"Skip processing of item with bad item name: `{self.name}`") |
| 210 | return True |
| 211 | # All good! |
| 212 | else: |
| 213 | return False |
| 214 | |
| 215 | |
| 216 | @dataclass(frozen=True) |