Skip to content

Commit 066a204

Browse files
committed
Rename PinAnnotation to IOAnnotation
1 parent 570c246 commit 066a204

File tree

3 files changed

+26
-26
lines changed

3 files changed

+26
-26
lines changed

chipflow_lib/platforms/utils.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ def _chipflow_schema_uri(name: str, version: int) -> str:
3030
return f"https://api.chipflow.com/schemas/{version}/{name}"
3131

3232

33-
class _PinAnnotationModel(BaseModel):
33+
class _IOAnnotationModel(BaseModel):
3434
model_config = ConfigDict(use_enum_values=True)
3535
direction: io.Direction
3636
width: int
3737
options: dict = {}
3838

3939
@classmethod
4040
def _annotation_schema(cls):
41-
schema = _PinAnnotationModel.model_json_schema()
41+
schema = _IOAnnotationModel.model_json_schema()
4242
schema['$schema'] = "https://json-schema.org/draft/2020-12/schema"
4343
schema['$id'] = _chipflow_schema_uri("pin-annotation", 0)
4444
return schema
@@ -48,11 +48,11 @@ def __init__(self, **kwargs):
4848
super().__init__(**kwargs)
4949

5050

51-
class _PinAnnotation(meta.Annotation):
52-
schema = _PinAnnotationModel._annotation_schema()
51+
class _IOAnnotation(meta.Annotation):
52+
schema = _IOAnnotationModel._annotation_schema()
5353

5454
def __init__(self, **kwargs):
55-
self.model = _PinAnnotationModel(**kwargs)
55+
self.model = _IOAnnotationModel(**kwargs)
5656

5757
@property
5858
def origin(self): # type: ignore
@@ -124,7 +124,7 @@ def options(self) -> dict:
124124

125125
def annotations(self, *args):
126126
annotations = wiring.Signature.annotations(self, *args)
127-
pin_annotation = _PinAnnotation(direction=self._direction, width=self._width, options=self._options)
127+
pin_annotation = _IOAnnotation(direction=self._direction, width=self._width, options=self._options)
128128
return annotations + (pin_annotation,)
129129

130130
def __repr__(self):

tests/test_utils.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from amaranth.lib import io
99

10-
from chipflow_lib.platforms.utils import IOSignature, OutputIOSignature, InputIOSignature, BidirIOSignature, _PinAnnotation, _PinAnnotationModel
10+
from chipflow_lib.platforms.utils import IOSignature, OutputIOSignature, InputIOSignature, BidirIOSignature, _IOAnnotation, _IOAnnotationModel
1111
from chipflow_lib.platforms.utils import PinList, _group_consecutive_items,_find_contiguous_sequence, _Side
1212

1313

@@ -86,18 +86,18 @@ def test_pin_signature():
8686
assert "i" in sig_bidir_fn.members
8787

8888
def test_pin_annotation_model():
89-
model = _PinAnnotationModel(direction=io.Direction.Output, width=32)
89+
model = _IOAnnotationModel(direction=io.Direction.Output, width=32)
9090
assert model.direction == "o"
9191
assert model.width == 32
9292

9393
def test_pin_annotation():
94-
annotation = _PinAnnotation(direction=io.Direction.Input, width=16)
95-
assert isinstance(annotation, _PinAnnotation)
94+
annotation = _IOAnnotation(direction=io.Direction.Input, width=16)
95+
assert isinstance(annotation, _IOAnnotation)
9696
assert annotation.model.direction == "i"
9797
assert annotation.model.width == 16
9898

9999
def test_pin_annotation_as_json():
100-
annotation = _PinAnnotation(direction=io.Direction.Bidir, width=8)
100+
annotation = _IOAnnotation(direction=io.Direction.Bidir, width=8)
101101
json_output = annotation.as_json()
102102
print(f"json_output: {json_output}") # Debug print using print()
103103
assert isinstance(json_output, dict)

tests/test_utils_additional.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
from chipflow_lib import ChipFlowError
1010
from chipflow_lib.platforms.utils import (
1111
_chipflow_schema_uri,
12-
_PinAnnotationModel,
13-
_PinAnnotation,
12+
_IOAnnotationModel,
13+
_IOAnnotation,
1414
PIN_ANNOTATION_SCHEMA,
1515
IOSignature,
1616
_Side,
@@ -36,24 +36,24 @@ def test_side_str(self):
3636
self.assertEqual(str(side), side.name)
3737

3838
def test_pin_annotation_model(self):
39-
"""Test _PinAnnotationModel class"""
39+
"""Test _IOAnnotationModel class"""
4040
# Test initialization
41-
model = _PinAnnotationModel(direction=io.Direction.Output, width=32, options={"opt1": "val1"})
41+
model = _IOAnnotationModel(direction=io.Direction.Output, width=32, options={"opt1": "val1"})
4242

4343
# Check properties
4444
self.assertEqual(model.direction, "o")
4545
self.assertEqual(model.width, 32)
4646
self.assertEqual(model.options, {"opt1": "val1"})
4747

4848
# Test _annotation_schema class method
49-
schema = _PinAnnotationModel._annotation_schema()
49+
schema = _IOAnnotationModel._annotation_schema()
5050
self.assertEqual(schema["$schema"], "https://json-schema.org/draft/2020-12/schema")
5151
self.assertEqual(schema["$id"], PIN_ANNOTATION_SCHEMA)
5252

5353
def test_pin_annotation(self):
54-
"""Test _PinAnnotation class"""
54+
"""Test _IOAnnotation class"""
5555
# Test initialization
56-
annotation = _PinAnnotation(direction=io.Direction.Input, width=16)
56+
annotation = _IOAnnotation(direction=io.Direction.Input, width=16)
5757

5858
# Check model
5959
self.assertEqual(annotation.model.direction, "i")
@@ -103,26 +103,26 @@ def test_pin_signature_annotations(self):
103103
self.assertIsInstance(annotations, tuple)
104104
self.assertGreater(len(annotations), 0)
105105

106-
# Find PinAnnotation in annotations
106+
# Find IOAnnotation in annotations
107107
pin_annotation = None
108108
for annotation in annotations:
109-
if isinstance(annotation, _PinAnnotation):
109+
if isinstance(annotation, _IOAnnotation):
110110
pin_annotation = annotation
111111
break
112112

113-
# Verify the PinAnnotation was found and has correct values
114-
self.assertIsNotNone(pin_annotation, "PinAnnotation not found in annotations")
113+
# Verify the IOAnnotation was found and has correct values
114+
self.assertIsNotNone(pin_annotation, "IOAnnotation not found in annotations")
115115
self.assertEqual(pin_annotation.model.direction, "o")
116116
self.assertEqual(pin_annotation.model.width, 8)
117117
self.assertEqual(pin_annotation.model.options["init"], 42)
118118

119119
# Call multiple times to ensure we don't get duplicate annotations
120120
annotations1 = sig.annotations(mock_obj)
121121
annotations2 = sig.annotations(mock_obj)
122-
# Count PinAnnotations in each result
123-
count1 = sum(1 for a in annotations1 if isinstance(a, _PinAnnotation))
124-
count2 = sum(1 for a in annotations2 if isinstance(a, _PinAnnotation))
125-
# Should have exactly one PinAnnotation in each result
122+
# Count IOAnnotations in each result
123+
count1 = sum(1 for a in annotations1 if isinstance(a, _IOAnnotation))
124+
count2 = sum(1 for a in annotations2 if isinstance(a, _IOAnnotation))
125+
# Should have exactly one IOAnnotation in each result
126126
self.assertEqual(count1, 1)
127127
self.assertEqual(count2, 1)
128128

0 commit comments

Comments
 (0)