Skip to content

Commit 81e2e60

Browse files
authored
Merge pull request #887 from CitrineInformatics/PLA-13279/template-names
2 parents 54f49bd + e991993 commit 81e2e60

File tree

3 files changed

+42
-7
lines changed

3 files changed

+42
-7
lines changed

src/citrine/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '2.35.1'
1+
__version__ = '2.36.0'

src/citrine/informatics/design_spaces/hierarchical_design_space.py

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import warnings
12
from typing import Optional, List
23
from uuid import UUID
34

5+
from deprecation import deprecated
6+
47
from citrine._rest.engine_resource import ModuleEngineResource
58
from citrine._serialization import properties
69
from citrine._serialization.serializable import Serializable
@@ -25,26 +28,46 @@ class TemplateLink(Serializable["TemplateLink"]):
2528
Citrine ID referencing an on-platform material template.
2629
process_template: UUID
2730
Citrine ID referencing an on-platform process template.
28-
template_name: Optional[str]
29-
Optional name describing the combination of templates for display purposes.
30-
The Citrine Platform by default uses the name of the material template.
31+
material_template_name: Optional[str]
32+
Optional name of the material template.
33+
process_template_name: Optional[str]
34+
Optional name of the process template.
3135
3236
"""
3337

3438
material_template = properties.UUID("material_template")
3539
process_template = properties.UUID("process_template")
36-
template_name = properties.Optional(properties.String, "name")
40+
material_template_name = properties.Optional(properties.String, "material_template_name")
41+
process_template_name = properties.Optional(properties.String, "process_template_name")
3742

3843
def __init__(
3944
self,
4045
*,
4146
material_template: UUID,
4247
process_template: UUID,
48+
material_template_name: Optional[str] = None,
49+
process_template_name: Optional[str] = None,
4350
template_name: Optional[str] = None
4451
):
4552
self.material_template: UUID = material_template
4653
self.process_template: UUID = process_template
47-
self.template_name: Optional[str] = template_name
54+
self.material_template_name: Optional[str] = material_template_name
55+
self.process_template_name: Optional[str] = process_template_name
56+
57+
if template_name is not None:
58+
warnings.warn(
59+
"The field 'template_name' has been deprecated in v2.36.0 and will be removed "
60+
"in v3.0.0. Please use the field 'material_template_name' instead.",
61+
DeprecationWarning
62+
)
63+
64+
@property
65+
@deprecated(
66+
deprecated_in="2.36.0", removed_in="3.0.0", details="Use material_template_name instead."
67+
)
68+
def template_name(self) -> str:
69+
"""Return the name of the material template."""
70+
return self.material_template_name
4871

4972

5073
class MaterialNodeDefinition(Serializable["MaterialNodeDefinition"]):

tests/informatics/test_design_spaces.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ def material_node_definition(formulation_design_space) -> MaterialNodeDefinition
7575
link = TemplateLink(
7676
material_template=uuid.uuid4(),
7777
process_template=uuid.uuid4(),
78-
template_name="Template Name"
78+
material_template_name="Material Template Name",
79+
process_template_name="Process Template Name"
7980
)
8081

8182
return MaterialNodeDefinition(
@@ -120,6 +121,17 @@ def test_hierarchical_initialization(hierarchical_design_space):
120121
assert "formulation_descriptor" in fds_data
121122

122123

124+
def test_template_link_deprecations():
125+
with pytest.warns(DeprecationWarning):
126+
link = TemplateLink(
127+
material_template=uuid.uuid4(),
128+
process_template=uuid.uuid4(),
129+
template_name="I am deprecated",
130+
material_template_name="I am not deprecated"
131+
)
132+
assert link.template_name == link.material_template_name
133+
134+
123135
def test_data_source_build(valid_data_source_design_space_dict):
124136
ds = DesignSpace.build(valid_data_source_design_space_dict)
125137
assert ds.name == valid_data_source_design_space_dict["data"]["instance"]["name"]

0 commit comments

Comments
 (0)