Type hint workarounds
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import sys
|
import sys
|
||||||
from typing import List, Tuple, TYPE_CHECKING
|
from typing import List, Tuple, TYPE_CHECKING, Optional
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from importlib.metadata import EntryPoint, Distribution
|
from importlib.metadata import EntryPoint, Distribution
|
||||||
@@ -7,7 +7,7 @@ if TYPE_CHECKING:
|
|||||||
if sys.version_info >= (3,10,0):
|
if sys.version_info >= (3,10,0):
|
||||||
from importlib import metadata
|
from importlib import metadata
|
||||||
|
|
||||||
def _get_entry_points(group_name: str) -> List[Tuple['EntryPoint', 'Distribution']]:
|
def _get_entry_points(group_name: str) -> List[Tuple['EntryPoint', Optional['Distribution']]]:
|
||||||
eps = []
|
eps = []
|
||||||
for ep in metadata.entry_points().select(group=group_name):
|
for ep in metadata.entry_points().select(group=group_name):
|
||||||
eps.append((ep, ep.dist))
|
eps.append((ep, ep.dist))
|
||||||
@@ -19,8 +19,8 @@ if sys.version_info >= (3,10,0):
|
|||||||
elif sys.version_info >= (3,8,0): # pragma: no cover
|
elif sys.version_info >= (3,8,0): # pragma: no cover
|
||||||
from importlib import metadata
|
from importlib import metadata
|
||||||
|
|
||||||
def _get_entry_points(group_name: str) -> List[Tuple['EntryPoint', 'Distribution']]:
|
def _get_entry_points(group_name: str) -> List[Tuple['EntryPoint', Optional['Distribution']]]:
|
||||||
eps = []
|
eps = [] # type: List[Tuple[EntryPoint, Optional[Distribution]]]
|
||||||
dist_names = set()
|
dist_names = set()
|
||||||
for dist in metadata.distributions():
|
for dist in metadata.distributions():
|
||||||
# Due to a bug in importlib.metadata's distributions iterator, in
|
# Due to a bug in importlib.metadata's distributions iterator, in
|
||||||
@@ -42,17 +42,17 @@ elif sys.version_info >= (3,8,0): # pragma: no cover
|
|||||||
else: # pragma: no cover
|
else: # pragma: no cover
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
|
|
||||||
def _get_entry_points(group_name: str) -> List[Tuple['EntryPoint', 'Distribution']]:
|
def _get_entry_points(group_name: str) -> List[Tuple['EntryPoint', Optional['Distribution']]]:
|
||||||
eps = []
|
eps = []
|
||||||
for ep in pkg_resources.iter_entry_points(group_name):
|
for ep in pkg_resources.iter_entry_points(group_name):
|
||||||
eps.append((ep, ep.dist))
|
eps.append((ep, ep.dist))
|
||||||
return eps
|
return eps # type: ignore
|
||||||
|
|
||||||
def _get_name_from_dist(dist: 'Distribution') -> str:
|
def _get_name_from_dist(dist: 'Distribution') -> str:
|
||||||
return dist.project_name # type: ignore
|
return dist.project_name # type: ignore
|
||||||
|
|
||||||
|
|
||||||
def get_entry_points(group_name: str) -> List[Tuple['EntryPoint', 'Distribution']]:
|
def get_entry_points(group_name: str) -> List[Tuple['EntryPoint', Optional['Distribution']]]:
|
||||||
return _get_entry_points(group_name)
|
return _get_entry_points(group_name)
|
||||||
|
|
||||||
def get_name_from_dist(dist: 'Distribution') -> str:
|
def get_name_from_dist(dist: 'Distribution') -> str:
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ class InputStructGenerator_Hier(HWIFStructGenerator):
|
|||||||
# Multiple sub-words. Cannot generate a struct
|
# Multiple sub-words. Cannot generate a struct
|
||||||
self.add_member("rd_data", width)
|
self.add_member("rd_data", width)
|
||||||
|
|
||||||
def enter_Field(self, node: 'FieldNode') -> Optional[WalkerAction]:
|
def enter_Field(self, node: 'FieldNode') -> None:
|
||||||
type_name = self.get_typdef_name(node)
|
type_name = self.get_typdef_name(node)
|
||||||
self.push_struct(type_name, kwf(node.inst_name))
|
self.push_struct(type_name, kwf(node.inst_name))
|
||||||
|
|
||||||
@@ -175,7 +175,7 @@ class InputStructGenerator_Hier(HWIFStructGenerator):
|
|||||||
# Implies a corresponding decrvalue input
|
# Implies a corresponding decrvalue input
|
||||||
self.add_member('decrvalue', width)
|
self.add_member('decrvalue', width)
|
||||||
|
|
||||||
def exit_Field(self, node: 'FieldNode') -> Optional[WalkerAction]:
|
def exit_Field(self, node: 'FieldNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -140,31 +140,31 @@ class RDLStructGenerator(StructGenerator, RDLListener):
|
|||||||
return self.finish()
|
return self.finish()
|
||||||
|
|
||||||
|
|
||||||
def enter_Addrmap(self, node: 'AddrmapNode') -> Optional[WalkerAction]:
|
def enter_Addrmap(self, node: 'AddrmapNode') -> None:
|
||||||
self.push_struct(kwf(node.inst_name), node.array_dimensions)
|
self.push_struct(kwf(node.inst_name), node.array_dimensions)
|
||||||
|
|
||||||
def exit_Addrmap(self, node: 'AddrmapNode') -> Optional[WalkerAction]:
|
def exit_Addrmap(self, node: 'AddrmapNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
def enter_Regfile(self, node: 'RegfileNode') -> Optional[WalkerAction]:
|
def enter_Regfile(self, node: 'RegfileNode') -> None:
|
||||||
self.push_struct(kwf(node.inst_name), node.array_dimensions)
|
self.push_struct(kwf(node.inst_name), node.array_dimensions)
|
||||||
|
|
||||||
def exit_Regfile(self, node: 'RegfileNode') -> Optional[WalkerAction]:
|
def exit_Regfile(self, node: 'RegfileNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
def enter_Mem(self, node: 'MemNode') -> Optional[WalkerAction]:
|
def enter_Mem(self, node: 'MemNode') -> None:
|
||||||
self.push_struct(kwf(node.inst_name), node.array_dimensions)
|
self.push_struct(kwf(node.inst_name), node.array_dimensions)
|
||||||
|
|
||||||
def exit_Mem(self, node: 'MemNode') -> Optional[WalkerAction]:
|
def exit_Mem(self, node: 'MemNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
def enter_Reg(self, node: 'RegNode') -> Optional[WalkerAction]:
|
def enter_Reg(self, node: 'RegNode') -> None:
|
||||||
self.push_struct(kwf(node.inst_name), node.array_dimensions)
|
self.push_struct(kwf(node.inst_name), node.array_dimensions)
|
||||||
|
|
||||||
def exit_Reg(self, node: 'RegNode') -> Optional[WalkerAction]:
|
def exit_Reg(self, node: 'RegNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
def enter_Field(self, node: 'FieldNode') -> Optional[WalkerAction]:
|
def enter_Field(self, node: 'FieldNode') -> None:
|
||||||
self.add_member(kwf(node.inst_name), node.width)
|
self.add_member(kwf(node.inst_name), node.width)
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
@@ -228,33 +228,33 @@ class RDLFlatStructGenerator(FlatStructGenerator, RDLListener):
|
|||||||
|
|
||||||
return self.finish()
|
return self.finish()
|
||||||
|
|
||||||
def enter_Addrmap(self, node: 'AddrmapNode') -> Optional[WalkerAction]:
|
def enter_Addrmap(self, node: 'AddrmapNode') -> None:
|
||||||
type_name = self.get_typdef_name(node)
|
type_name = self.get_typdef_name(node)
|
||||||
self.push_struct(type_name, kwf(node.inst_name), node.array_dimensions)
|
self.push_struct(type_name, kwf(node.inst_name), node.array_dimensions)
|
||||||
|
|
||||||
def exit_Addrmap(self, node: 'AddrmapNode') -> Optional[WalkerAction]:
|
def exit_Addrmap(self, node: 'AddrmapNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
def enter_Regfile(self, node: 'RegfileNode') -> Optional[WalkerAction]:
|
def enter_Regfile(self, node: 'RegfileNode') -> None:
|
||||||
type_name = self.get_typdef_name(node)
|
type_name = self.get_typdef_name(node)
|
||||||
self.push_struct(type_name, kwf(node.inst_name), node.array_dimensions)
|
self.push_struct(type_name, kwf(node.inst_name), node.array_dimensions)
|
||||||
|
|
||||||
def exit_Regfile(self, node: 'RegfileNode') -> Optional[WalkerAction]:
|
def exit_Regfile(self, node: 'RegfileNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
def enter_Mem(self, node: 'MemNode') -> Optional[WalkerAction]:
|
def enter_Mem(self, node: 'MemNode') -> None:
|
||||||
type_name = self.get_typdef_name(node)
|
type_name = self.get_typdef_name(node)
|
||||||
self.push_struct(type_name, kwf(node.inst_name), node.array_dimensions)
|
self.push_struct(type_name, kwf(node.inst_name), node.array_dimensions)
|
||||||
|
|
||||||
def exit_Mem(self, node: 'MemNode') -> Optional[WalkerAction]:
|
def exit_Mem(self, node: 'MemNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
def enter_Reg(self, node: 'RegNode') -> Optional[WalkerAction]:
|
def enter_Reg(self, node: 'RegNode') -> None:
|
||||||
type_name = self.get_typdef_name(node)
|
type_name = self.get_typdef_name(node)
|
||||||
self.push_struct(type_name, kwf(node.inst_name), node.array_dimensions)
|
self.push_struct(type_name, kwf(node.inst_name), node.array_dimensions)
|
||||||
|
|
||||||
def exit_Reg(self, node: 'RegNode') -> Optional[WalkerAction]:
|
def exit_Reg(self, node: 'RegNode') -> None:
|
||||||
self.pop_struct()
|
self.pop_struct()
|
||||||
|
|
||||||
def enter_Field(self, node: 'FieldNode') -> Optional[WalkerAction]:
|
def enter_Field(self, node: 'FieldNode') -> None:
|
||||||
self.add_member(kwf(node.inst_name), node.width)
|
self.add_member(kwf(node.inst_name), node.width)
|
||||||
|
|||||||
Reference in New Issue
Block a user