diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2019-05-13 09:45:09 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2019-05-13 09:45:09 +0200 |
commit | ee62dd01720c8481599a717d067014164af7e096 (patch) | |
tree | 734d5041f5363dcfc40fb4abad499cc080ae7260 /src/ee/kicad/model.py | |
parent | f81ef15ac28bcfea2dad9e7bfd78293f507210c0 (diff) | |
download | ee-python-ee62dd01720c8481599a717d067014164af7e096.tar.gz ee-python-ee62dd01720c8481599a717d067014164af7e096.tar.bz2 ee-python-ee62dd01720c8481599a717d067014164af7e096.tar.xz ee-python-ee62dd01720c8481599a717d067014164af7e096.zip |
ee.kicad.model: Adding Symbol, exposing in addition existing parsing of value. v4 and v5 compatible.
Diffstat (limited to 'src/ee/kicad/model.py')
-rw-r--r-- | src/ee/kicad/model.py | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/ee/kicad/model.py b/src/ee/kicad/model.py index edc900c..116d2ac 100644 --- a/src/ee/kicad/model.py +++ b/src/ee/kicad/model.py @@ -52,13 +52,27 @@ class ComponentField(object): return self._index >= len(ComponentField.names) +class Symbol(object): + def __init__(self, symbol: str): + assert symbol is not None + self._symbol = symbol + i = symbol.find(":") + if i == -1: + # KiCAD 4 + self.library = None + self.name = symbol + else: + self.library = symbol[0:i] + self.name = symbol[i+1:] + + @total_ordering class Component(object): - def __init__(self, position, timestamp, library, name, unit, ref, fields): + def __init__(self, position, timestamp, library, symbol, unit, ref, fields): self._position = position self._timestamp = timestamp self._library = library - self._name = name + self._symbol = symbol self._unit = unit self._ref = ref self._fields = fields # type List[ComponentField] @@ -96,6 +110,10 @@ class Component(object): return self._timestamp @property + def symbol(self) -> Symbol: + return self._symbol + + @property def unit(self): return self._unit @@ -204,7 +222,7 @@ class Schematic(object): raise KeyError("No such component: {}".format(ref)) - def find_component(self, ref, unit=1): + def find_component(self, ref, unit=1) -> Component: for c in self.components: if c.ref == ref and unit == unit: return c @@ -226,7 +244,7 @@ class Schematics(object): cs.append(c) return cs - def get_component(self, ref, unit=1): + def get_component(self, ref, unit=1) -> Component: for s in self._schematics: c = s.find_component(ref, unit) if c: |