aboutsummaryrefslogtreecommitdiff
path: root/src/ee/kicad/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/ee/kicad/model.py')
-rw-r--r--src/ee/kicad/model.py24
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: