Implement RFC 34: Rename amaranth.lib.wiring.Interface to PureInterface.

This commit is contained in:
Wanda 2023-12-03 02:26:34 +01:00 committed by Catherine
parent ab6503e352
commit 0cdcab0fbb
2 changed files with 11 additions and 12 deletions

View file

@ -10,7 +10,7 @@ from ..hdl.ir import Elaboratable
from .._utils import final
__all__ = ["In", "Out", "Signature", "Interface", "connect", "flipped", "Component"]
__all__ = ["In", "Out", "Signature", "PureInterface", "connect", "flipped", "Component"]
class Flow(enum.Enum):
@ -504,7 +504,7 @@ class Signature(metaclass=SignatureMeta):
return result
def create(self, *, path=()):
return Interface(self, path=path)
return PureInterface(self, path=path)
def __repr__(self):
if type(self) is Signature:
@ -600,7 +600,7 @@ class FlippedSignature:
return f"{self.__unflipped!r}.flip()"
class Interface:
class PureInterface:
def __init__(self, signature, *, path):
self.__dict__.update({
"signature": signature,
@ -611,7 +611,7 @@ class Interface:
attrs = ''.join(f", {name}={value!r}"
for name, value in self.__dict__.items()
if name != "signature")
return f'<Interface: {self.signature}{attrs}>'
return f'<PureInterface: {self.signature}{attrs}>'
# To reduce API surface area `FlippedInterface` is made final. This restriction could be lifted

View file

@ -8,7 +8,7 @@ from amaranth.hdl.ast import ValueCastable
from amaranth.lib import data, enum
from amaranth.lib.wiring import Flow, In, Out, Member
from amaranth.lib.wiring import SignatureError, SignatureMembers, FlippedSignatureMembers
from amaranth.lib.wiring import Signature, FlippedSignature, Interface, FlippedInterface
from amaranth.lib.wiring import Signature, FlippedSignature, PureInterface, FlippedInterface
from amaranth.lib.wiring import Component
from amaranth.lib.wiring import ConnectionError, connect, flipped
@ -652,13 +652,13 @@ class FlippedSignatureTestCase(unittest.TestCase):
sig.flip().members = SignatureMembers({})
class InterfaceTestCase(unittest.TestCase):
class PureInterfaceTestCase(unittest.TestCase):
def test_construct(self):
sig = Signature({
"a": In(4),
"b": Out(signed(2)),
})
intf = Interface(sig, path=("test",))
intf = PureInterface(sig, path=("test",))
self.assertIs(intf.signature, sig)
self.assertIsInstance(intf.a, Signal)
self.assertIsInstance(intf.b, Signal)
@ -668,8 +668,8 @@ class InterfaceTestCase(unittest.TestCase):
"a": In(4),
"b": Out(signed(2)),
})
intf = Interface(sig, path=("test",))
self.assertEqual(repr(intf), "<Interface: Signature({'a': In(4), 'b': Out(signed(2))}), a=(sig test__a), b=(sig test__b)>")
intf = PureInterface(sig, path=("test",))
self.assertEqual(repr(intf), "<PureInterface: Signature({'a': In(4), 'b': Out(signed(2))}), a=(sig test__a), b=(sig test__b)>")
class FlippedInterfaceTestCase(unittest.TestCase):
@ -681,8 +681,7 @@ class FlippedInterfaceTestCase(unittest.TestCase):
tintf = flipped(intf)
self.assertEqual(tintf.signature, intf.signature.flip())
self.assertEqual(tintf, flipped(intf))
self.assertRegex(repr(tintf),
r"^flipped\(<Interface: .+>\)$")
self.assertRegex(repr(tintf), r"^flipped\(<PureInterface: .+>\)$")
self.assertIs(flipped(tintf), intf)
def test_getsetdelattr(self):
@ -763,7 +762,7 @@ class FlippedInterfaceTestCase(unittest.TestCase):
flipped(Signature({}))
def test_create_subclass_flipped(self):
class CustomInterface(Interface):
class CustomInterface(PureInterface):
def custom_method(self):
return 69