2024-01-31 01:59:20 +00:00
|
|
|
# TODO(amaranth-0.6): remove module
|
|
|
|
|
|
|
|
|
|
from .. import hdl as __hdl
|
|
|
|
|
from . import _ast as __origin
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__all__ = [
|
|
|
|
|
"Shape", "signed", "unsigned", "ShapeCastable", "ShapeLike",
|
2024-01-31 02:55:57 +00:00
|
|
|
"Value", "Const", "C", "AnyConst", "AnySeq", "Operator", "Mux", "Part", "Slice", "Cat",
|
2024-01-31 01:59:20 +00:00
|
|
|
"Array", "ArrayProxy",
|
|
|
|
|
"Signal", "ClockSignal", "ResetSignal",
|
|
|
|
|
"ValueCastable", "ValueLike",
|
|
|
|
|
"Initial",
|
|
|
|
|
"Statement", "Switch",
|
|
|
|
|
"Property", "Assign", "Assert", "Assume", "Cover",
|
2024-02-11 13:43:53 +00:00
|
|
|
"SignalKey", "SignalDict", "SignalSet",
|
2024-01-31 01:59:20 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __getattr__(name):
|
|
|
|
|
import warnings
|
|
|
|
|
if name in __hdl.__dict__:
|
|
|
|
|
if not (name.startswith("__") and name.endswith("__")):
|
|
|
|
|
warnings.warn(f"instead of `{__name__}.{name}`, use `{__hdl.__name__}.{name}`",
|
|
|
|
|
DeprecationWarning, stacklevel=2)
|
|
|
|
|
return getattr(__origin, name)
|
|
|
|
|
elif name in __origin.__dict__:
|
|
|
|
|
warnings.warn(f"name `{__name__}.{name}` is a private implementation detail and "
|
|
|
|
|
f"should not be imported",
|
|
|
|
|
DeprecationWarning, stacklevel=2)
|
|
|
|
|
return getattr(__origin, name)
|
|
|
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|