Skip to content

Commit fe98ba1

Browse files
authored
fix(py): deprecate extensions sets in values (#2233)
This was missed in #1906 It was detected downstream when tket2 generated HUGRs could not be read in. We need round trip tests that go Python -> serialised -> rust -> deserialized -> Python, might need a special binding in the validation code to do this.
1 parent 9731d1f commit fe98ba1

14 files changed

+7
-55
lines changed

hugr-py/src/hugr/_serialization/ops.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
from .tys import (
1717
ConfiguredBaseModel,
1818
ExtensionId,
19-
ExtensionSet,
2019
FunctionType,
2120
PolyFuncType,
2221
SumType,
@@ -109,7 +108,6 @@ class CustomValue(BaseValue):
109108
"""An extension constant value, that can check it is of a given [CustomType]."""
110109

111110
v: Literal["Extension"] = Field(default="Extension", title="ValueTag")
112-
extensions: ExtensionSet
113111
typ: Type
114112
value: CustomConst
115113

@@ -118,7 +116,6 @@ def deserialize(self) -> val.Value:
118116
name=self.value.c,
119117
typ=self.typ.deserialize(),
120118
val=self.value.v,
121-
extensions=self.extensions,
122119
)
123120

124121

hugr-py/src/hugr/std/collections/array.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,7 @@ def to_value(self) -> val.Extension:
7575
vs = [v._to_serial_root() for v in self.v]
7676
element_ty = self.ty.ty._to_serial_root()
7777
serial_val = {"values": vs, "typ": element_ty}
78-
return val.Extension(
79-
name, typ=self.ty, val=serial_val, extensions=[EXTENSION.name]
80-
)
78+
return val.Extension(name, typ=self.ty, val=serial_val)
8179

8280
def __str__(self) -> str:
8381
return f"array({comma_sep_str(self.v)})"

hugr-py/src/hugr/std/collections/list.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ def to_value(self) -> val.Extension:
5252
vs = [v._to_serial_root() for v in self.v]
5353
element_ty = self.ty.ty._to_serial_root()
5454
serial_val = {"values": vs, "typ": element_ty}
55-
return val.Extension(
56-
name, typ=self.ty, val=serial_val, extensions=[EXTENSION.name]
57-
)
55+
return val.Extension(name, typ=self.ty, val=serial_val)
5856

5957
def __str__(self) -> str:
6058
return f"[{comma_sep_str(self.v)}]"

hugr-py/src/hugr/std/collections/static_array.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,7 @@ def to_value(self) -> val.Extension:
5757
},
5858
"name": self.name,
5959
}
60-
return val.Extension(
61-
"StaticArrayValue", typ=self.ty, val=serial_val, extensions=[EXTENSION.name]
62-
)
60+
return val.Extension("StaticArrayValue", typ=self.ty, val=serial_val)
6361

6462
def __str__(self) -> str:
6563
return f"static_array({comma_sep_str(self.v)})"

hugr-py/src/hugr/std/collections/value_array.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,7 @@ def to_value(self) -> val.Extension:
7575
vs = [v._to_serial_root() for v in self.v]
7676
element_ty = self.ty.ty._to_serial_root()
7777
serial_val = {"values": vs, "typ": element_ty}
78-
return val.Extension(
79-
name, typ=self.ty, val=serial_val, extensions=[EXTENSION.name]
80-
)
78+
return val.Extension(name, typ=self.ty, val=serial_val)
8179

8280
def __str__(self) -> str:
8381
return f"value_array({comma_sep_str(self.v)})"

hugr-py/src/hugr/std/float.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ class FloatVal(val.ExtensionValue):
2525
def to_value(self) -> val.Extension:
2626
name = "ConstF64"
2727
payload = {"value": self.v}
28-
return val.Extension(
29-
name, typ=FLOAT_T, val=payload, extensions=[FLOAT_TYPES_EXTENSION.name]
30-
)
28+
return val.Extension(name, typ=FLOAT_T, val=payload)
3129

3230
def __str__(self) -> str:
3331
return f"{self.v}"

hugr-py/src/hugr/std/int.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ def to_value(self) -> val.Extension:
6666
name,
6767
typ=int_t(self.width),
6868
val=payload,
69-
extensions=[INT_TYPES_EXTENSION.name],
7069
)
7170

7271
def __str__(self) -> str:

hugr-py/src/hugr/std/prelude.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ def to_value(self) -> val.Extension:
2727
name,
2828
typ=STRING_T,
2929
val=payload,
30-
extensions=[PRELUDE_EXTENSION.name],
3130
)
3231

3332
def __str__(self) -> str:

hugr-py/src/hugr/val.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,8 @@ class Extension(Value):
317317
typ: tys.Type
318318
#: Value payload.
319319
val: Any
320+
321+
#: Extension set. Deprecated, no longer used. Will be removed in hugr v0.13.
320322
extensions: tys.ExtensionSet = field(default_factory=tys.ExtensionSet)
321323

322324
def type_(self) -> tys.Type:
@@ -326,7 +328,6 @@ def _to_serial(self) -> sops.CustomValue:
326328
return sops.CustomValue(
327329
typ=self.typ._to_serial_root(),
328330
value=sops.CustomConst(c=self.name, v=self.val),
329-
extensions=self.extensions,
330331
)
331332

332333
def to_model(self) -> model.Term:

hugr-py/tests/serialization/test_extension.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ def test_extension():
9898
version=SemanticVersion(0, 1, 0),
9999
name="ext",
100100
types={"foo": type_def},
101-
values={},
102101
operations={"New": op_def},
103102
)
104103

@@ -119,7 +118,6 @@ def test_package():
119118
version=SemanticVersion(0, 1, 0),
120119
name="ext",
121120
types={},
122-
values={},
123121
operations={},
124122
)
125123
ext_load = Extension.model_validate_json(EXAMPLE)

specification/schema/hugr_schema_live.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -338,13 +338,6 @@
338338
"title": "ValueTag",
339339
"type": "string"
340340
},
341-
"extensions": {
342-
"items": {
343-
"type": "string"
344-
},
345-
"title": "Extensions",
346-
"type": "array"
347-
},
348341
"typ": {
349342
"$ref": "#/$defs/Type"
350343
},
@@ -353,7 +346,6 @@
353346
}
354347
},
355348
"required": [
356-
"extensions",
357349
"typ",
358350
"value"
359351
],

specification/schema/hugr_schema_strict_live.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -338,13 +338,6 @@
338338
"title": "ValueTag",
339339
"type": "string"
340340
},
341-
"extensions": {
342-
"items": {
343-
"type": "string"
344-
},
345-
"title": "Extensions",
346-
"type": "array"
347-
},
348341
"typ": {
349342
"$ref": "#/$defs/Type"
350343
},
@@ -353,7 +346,6 @@
353346
}
354347
},
355348
"required": [
356-
"extensions",
357349
"typ",
358350
"value"
359351
],

specification/schema/testing_hugr_schema_live.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -338,13 +338,6 @@
338338
"title": "ValueTag",
339339
"type": "string"
340340
},
341-
"extensions": {
342-
"items": {
343-
"type": "string"
344-
},
345-
"title": "Extensions",
346-
"type": "array"
347-
},
348341
"typ": {
349342
"$ref": "#/$defs/Type"
350343
},
@@ -353,7 +346,6 @@
353346
}
354347
},
355348
"required": [
356-
"extensions",
357349
"typ",
358350
"value"
359351
],

specification/schema/testing_hugr_schema_strict_live.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -338,13 +338,6 @@
338338
"title": "ValueTag",
339339
"type": "string"
340340
},
341-
"extensions": {
342-
"items": {
343-
"type": "string"
344-
},
345-
"title": "Extensions",
346-
"type": "array"
347-
},
348341
"typ": {
349342
"$ref": "#/$defs/Type"
350343
},
@@ -353,7 +346,6 @@
353346
}
354347
},
355348
"required": [
356-
"extensions",
357349
"typ",
358350
"value"
359351
],

0 commit comments

Comments
 (0)