Skip to content

Commit 4a708fa

Browse files
committed
Added create_for_modification override for AtlasGlossaryTerm
1 parent 067b5e4 commit 4a708fa

File tree

3 files changed

+58
-3
lines changed

3 files changed

+58
-3
lines changed

Diff for: pyatlan/generator/templates/entity.jinja2

+24-1
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,12 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
263263

264264
@classmethod
265265
def create_for_modification(
266-
cls: type[SelfAsset], qualified_name: str, name: str
266+
cls: type[SelfAsset], qualified_name: str = "", name: str = ""
267267
) -> SelfAsset:
268+
validate_required_fields(
269+
["name", "qualified_name"],
270+
[name, qualified_name],
271+
)
268272
return cls(attributes=cls.Attributes(qualified_name=qualified_name, name=name))
269273

270274
@classmethod
@@ -691,6 +695,25 @@ class {{ entity_def.name }}({{super_classes[0]}} {%- if "Asset" in super_classes
691695
name=name, anchor=anchor, categories=categories
692696
)
693697
)
698+
699+
@classmethod
700+
def create_for_modification(
701+
cls: type[SelfAsset],
702+
qualified_name: str = "",
703+
name: str = "",
704+
glossary_guid: str = "",
705+
) -> SelfAsset:
706+
validate_required_fields(
707+
["name", "qualified_name", "glossary_guid"],
708+
[name, qualified_name, glossary_guid],
709+
)
710+
glossary = AtlasGlossary()
711+
glossary.guid = glossary_guid
712+
return cls(
713+
attributes=cls.Attributes(
714+
qualified_name=qualified_name, name=name, anchor=glossary
715+
)
716+
)
694717
{%- endif %}
695718
{% endif %}
696719
{% if entity_def.name == "Asset" %}

Diff for: pyatlan/model/assets.py

+24-1
Original file line numberDiff line numberDiff line change
@@ -1484,8 +1484,12 @@ def __init_subclass__(cls, type_name=None):
14841484

14851485
@classmethod
14861486
def create_for_modification(
1487-
cls: type[SelfAsset], qualified_name: str, name: str
1487+
cls: type[SelfAsset], qualified_name: str = "", name: str = ""
14881488
) -> SelfAsset:
1489+
validate_required_fields(
1490+
["name", "qualified_name"],
1491+
[name, qualified_name],
1492+
)
14891493
return cls(attributes=cls.Attributes(qualified_name=qualified_name, name=name))
14901494

14911495
@classmethod
@@ -2247,6 +2251,25 @@ def create(
22472251
)
22482252
)
22492253

2254+
@classmethod
2255+
def create_for_modification(
2256+
cls: type[SelfAsset],
2257+
qualified_name: str = "",
2258+
name: str = "",
2259+
glossary_guid: str = "",
2260+
) -> SelfAsset:
2261+
validate_required_fields(
2262+
["name", "qualified_name", "glossary_guid"],
2263+
[name, qualified_name, glossary_guid],
2264+
)
2265+
glossary = AtlasGlossary()
2266+
glossary.guid = glossary_guid
2267+
return cls(
2268+
attributes=cls.Attributes(
2269+
qualified_name=qualified_name, name=name, anchor=glossary
2270+
)
2271+
)
2272+
22502273

22512274
class Cloud(Asset, type_name="Cloud"):
22522275
"""Description"""

Diff for: tests/integration/test_entity_model.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def announcement() -> Announcement:
6262

6363
@pytest.fixture(scope="session")
6464
def atlan_host() -> str:
65-
return get_environment_variable("ATLAN_HOST")
65+
return get_environment_variable("ATLAN_BASE_URL")
6666

6767

6868
@pytest.fixture(scope="session")
@@ -377,6 +377,15 @@ def test_create_glossary_term(client: AtlanClient, increment_counter):
377377
assert isinstance(term, AtlasGlossaryTerm)
378378
assert term.guid == guid
379379

380+
term = AtlasGlossaryTerm.create_for_modification(
381+
qualified_name=term.qualified_name,
382+
name=term.name,
383+
glossary_guid=glossary.guid,
384+
)
385+
term.user_description = "This is an important term"
386+
response = client.upsert(term)
387+
assert 1 == len(response.assets_updated(AtlasGlossaryTerm))
388+
380389

381390
def test_create_hierarchy(client: AtlanClient, increment_counter):
382391
suffix = increment_counter()

0 commit comments

Comments
 (0)