2023-08-31 17:25:38 -06:00
|
|
|
# The machinery in this module is PEP 562 compliant.
|
|
|
|
# See https://peps.python.org/pep-0562/ for details.
|
|
|
|
|
|
|
|
|
|
|
|
# Keep this list sorted alphabetically.
|
|
|
|
__all__ = [
|
2024-03-03 15:44:41 -07:00
|
|
|
"AlteraPlatform",
|
2023-08-31 17:25:38 -06:00
|
|
|
"GowinPlatform",
|
|
|
|
"IntelPlatform",
|
|
|
|
"LatticeECP5Platform",
|
|
|
|
"LatticeICE40Platform",
|
|
|
|
"LatticeMachXO2Platform",
|
|
|
|
"LatticeMachXO3LPlatform",
|
2024-04-18 08:44:41 -06:00
|
|
|
"LatticePlatform",
|
2023-08-31 17:25:38 -06:00
|
|
|
"QuicklogicPlatform",
|
2024-04-09 13:12:21 -06:00
|
|
|
"SiliconBluePlatform",
|
2023-08-31 17:25:38 -06:00
|
|
|
"XilinxPlatform",
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
def __dir__():
|
|
|
|
return list({*globals(), *__all__})
|
|
|
|
|
|
|
|
|
|
|
|
def __getattr__(name):
|
2024-03-03 15:44:41 -07:00
|
|
|
if name in ("AlteraPlatform", "IntelPlatform"):
|
|
|
|
from ._altera import AlteraPlatform
|
|
|
|
return AlteraPlatform
|
2023-08-31 17:25:38 -06:00
|
|
|
if name == "GowinPlatform":
|
|
|
|
from ._gowin import GowinPlatform
|
|
|
|
return GowinPlatform
|
2024-04-18 08:44:41 -06:00
|
|
|
if name in ("LatticePlatform", "LatticeECP5Platform", "LatticeMachXO2Platform",
|
|
|
|
"LatticeMachXO3LPlatform"):
|
|
|
|
from ._lattice import LatticePlatform
|
|
|
|
return LatticePlatform
|
2023-08-31 17:25:38 -06:00
|
|
|
if name == "QuicklogicPlatform":
|
|
|
|
from ._quicklogic import QuicklogicPlatform
|
|
|
|
return QuicklogicPlatform
|
2024-04-09 13:12:21 -06:00
|
|
|
if name in ("SiliconBluePlatform", "LatticeICE40Platform"):
|
|
|
|
from ._siliconblue import SiliconBluePlatform
|
|
|
|
return SiliconBluePlatform
|
2023-08-31 17:25:38 -06:00
|
|
|
if name == "XilinxPlatform":
|
|
|
|
from ._xilinx import XilinxPlatform
|
|
|
|
return XilinxPlatform
|
|
|
|
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|