App 9295 - Used KeywordField for AtlanTask.GUID#768
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR updates the AtlanTask.GUID field from TextField to KeywordField and regenerates typedef models with the latest schema changes. The changes include dependency upgrades (pydantic 2.12.3→2.12.4, ruff 0.14.0→0.14.5), removal of the unused retry dependency, and extensive generated model updates.
Key changes:
- Changed AtlanTask.GUID field type from TextField to KeywordField for exact-match searching
- Added catalog_has_partial_fields boolean field to numerous asset types
- Introduced new PartialV01 asset types for handling partial/incomplete asset structures
- Updated DremioPhysicalDataset to inherit from Dremio instead of Table
Reviewed Changes
Copilot reviewed 54 out of 55 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| pyatlan/model/task.py | Changed GUID field from TextField to KeywordField |
| pyproject.toml | Updated pydantic to 2.12.4, ruff to 0.14.5, removed retry dependency |
| uv.lock | Synchronized lockfile with dependency changes |
| pyatlan/model/structs.py | Reordered struct definitions, added AssetGCPDataplexAspectMetadata.asset_v3_g_c_p_dataplex_aspect_display_name |
| pyatlan/model/assets/dremio*.py | Fixed import paths from core.dremio to dremio |
| pyatlan/model/assets/dremio_physical_dataset.py | Changed parent class from Table to Dremio, added Dremio-specific attributes |
| pyatlan/model/assets/core/partial_v01*.py | New asset types for handling partial asset structures |
| Multiple asset files | Added catalog_has_partial_fields boolean field |
| pyatlan/model/assets/domo_dataset*.py | Added new attributes for Domo assets |
| pyatlan/model/assets/core/databricks_metric_view.py | New Databricks metric view asset type |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| type_name: str = Field(default="DatabricksMetricView", allow_mutation=False) | ||
|
|
||
| @validator("type_name") | ||
| def validate_type_name(cls, v): |
There was a problem hiding this comment.
Normal methods should have 'self', rather than 'cls', as their first parameter.
| def validate_type_name(cls, v): | |
| def validate_type_name(self, v): |
| type_name: str = Field(default="PartialV01", allow_mutation=False) | ||
|
|
||
| @validator("type_name") | ||
| def validate_type_name(cls, v): |
There was a problem hiding this comment.
Normal methods should have 'self', rather than 'cls', as their first parameter.
| def validate_type_name(cls, v): | |
| def validate_type_name(self, v): |
| type_name: str = Field(default="PartialV01Field", allow_mutation=False) | ||
|
|
||
| @validator("type_name") | ||
| def validate_type_name(cls, v): |
There was a problem hiding this comment.
Normal methods should have 'self', rather than 'cls', as their first parameter.
| type_name: str = Field(default="PartialV01Object", allow_mutation=False) | ||
|
|
||
| @validator("type_name") | ||
| def validate_type_name(cls, v): |
There was a problem hiding this comment.
Normal methods should have 'self', rather than 'cls', as their first parameter.
| return object.__setattr__(self, name, value) | ||
| super().__setattr__(name, value) | ||
|
|
There was a problem hiding this comment.
Mixing implicit and explicit returns may indicate an error, as implicit returns always return None.
| return object.__setattr__(self, name, value) | |
| super().__setattr__(name, value) | |
| object.__setattr__(self, name, value) | |
| else: | |
| super().__setattr__(name, value) |
| return object.__setattr__(self, name, value) | ||
| super().__setattr__(name, value) |
There was a problem hiding this comment.
Mixing implicit and explicit returns may indicate an error, as implicit returns always return None.
| return object.__setattr__(self, name, value) | |
| super().__setattr__(name, value) | |
| object.__setattr__(self, name, value) | |
| else: | |
| super().__setattr__(name, value) |
| return object.__setattr__(self, name, value) | ||
| super().__setattr__(name, value) |
There was a problem hiding this comment.
Mixing implicit and explicit returns may indicate an error, as implicit returns always return None.
| return object.__setattr__(self, name, value) | |
| super().__setattr__(name, value) | |
| object.__setattr__(self, name, value) | |
| else: | |
| super().__setattr__(name, value) |
| raise ValueError("must be PartialV01Object") | ||
| return v | ||
|
|
||
| def __setattr__(self, name, value): |
There was a problem hiding this comment.
Mixing implicit and explicit returns may indicate an error, as implicit returns always return None.
🧩 Type of change
Select all that apply:
✅ How has this been tested? (e.g. screenshots, logs, workflow links)
Describe how the change was tested. Include:
📋 Checklist
Note
Adds new assets (DatabricksMetricView, PartialV01 family), introduces catalogHasPartialFields across many models, refactors Dremio models, switches AtlanTask.GUID to KeywordField, and updates docs/dependencies.
DatabricksMetricView,PartialV01,PartialV01Field,PartialV01Object(withpartialV01ChildFieldsrelations onCatalog,DataStudio,GCS).catalogHasPartialFields(Boolean) across numerous assets (cloud stores, tags, DB/NoSQL collections & databases, AI model contexts/versions, dbt entities, notebooks, SAP, etc.).DremioPhysicalDatasetto extendDremio, relocates Dremio imports, and adds rich SQL relations (columns,queries,schema,facts,partitions,dimensions).Asset.DISPLAY_NAME,DESCRIPTION,USER_DESCRIPTION.AtlanTask.GUIDnowKeywordField.pydanticto2.12.4,ruffto0.14.5; cleanup dev deps; lockfile updates.Written by Cursor Bugbot for commit ed546d1. This will update automatically on new commits. Configure here.