diff options
Diffstat (limited to 'src/ee/kicad/model.py')
-rw-r--r-- | src/ee/kicad/model.py | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/ee/kicad/model.py b/src/ee/kicad/model.py index 295a40a..1f6cf96 100644 --- a/src/ee/kicad/model.py +++ b/src/ee/kicad/model.py @@ -1,6 +1,6 @@ import re from functools import total_ordering -from typing import List, Set +from typing import List, Set, Tuple, Optional from ee import EeException @@ -62,7 +62,16 @@ class Symbol(object): self.name = symbol else: self.library = symbol[0:i] - self.name = symbol[i+1:] + self.name = symbol[i + 1:] + + +def split_ref(ref: str) -> Tuple[Optional[str], Optional[int]]: + r = re.compile("([^0-9]+)(.+)") + try: + parts = r.split(ref) + return parts[1], int(parts[2]) + except ValueError: + return None, None @total_ordering @@ -76,14 +85,7 @@ class Component(object): self._ref = ref self._fields = fields # type List[ComponentField] - r = re.compile("([^0-9]+)(.+)") - try: - parts = r.split(self._ref) - self._ref_type = parts[1] - self._ref_num = int(parts[2]) - except ValueError: - self._ref_type = None - self._ref_num = None + self._ref_type, self._ref_num = split_ref(self._ref) def __eq__(self, o: object) -> bool: other = o # type: Component @@ -157,7 +159,7 @@ class Component(object): return list(self._fields) @property - def named_fields(self): + def named_fields(self) -> List[ComponentField]: return [f for f in self._fields if f.name] def get_field(self, name) -> ComponentField: |