From 930e3d61917bd4bf162142db64301691afdf9539 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 24 Sep 2017 09:46:21 +0200 Subject: o Let digikey-download-facts read .sch files directly. --- src/ee/kicad/__init__.py | 3 ++- src/ee/kicad/model.py | 9 +++++++++ src/ee/kicad/to_bom.py | 8 ++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) (limited to 'src/ee/kicad') diff --git a/src/ee/kicad/__init__.py b/src/ee/kicad/__init__.py index adf8ddd..5187a9c 100644 --- a/src/ee/kicad/__init__.py +++ b/src/ee/kicad/__init__.py @@ -2,7 +2,7 @@ from typing import Any from ee import EeException from ee.kicad.read_schematic import read_schematic -from ee.kicad.to_bom import to_bom +from ee.kicad.to_bom import to_bom, to_bom_xml from .model import * __all__ = [ @@ -12,6 +12,7 @@ __all__ = [ "Schematic", "read_schematic", "to_bom", + "to_bom_xml", "to_pandas", ] diff --git a/src/ee/kicad/model.py b/src/ee/kicad/model.py index f112e72..b230f94 100644 --- a/src/ee/kicad/model.py +++ b/src/ee/kicad/model.py @@ -104,6 +104,10 @@ class Component(object): def is_pwr(self) -> bool: return self.ref_type == "#PWR" + @property + def is_flg(self) -> bool: + return self.ref_type == "#FLG" + @property def value(self): return self._fields[1].value @@ -120,6 +124,11 @@ class Component(object): def named_fields(self): return [f for f in self._fields if f.name] + def get_field(self, name) -> ComponentField: + for f in self.fields: + if name.lower() == f.name.lower(): + return f + class Sheet(object): def __init__(self): diff --git a/src/ee/kicad/to_bom.py b/src/ee/kicad/to_bom.py index d684486..ecab211 100644 --- a/src/ee/kicad/to_bom.py +++ b/src/ee/kicad/to_bom.py @@ -34,7 +34,11 @@ def comp(c: Component) -> Element: return comp -def to_bom(schematic: Schematic) -> Element: +def to_bom(schematic: Schematic) -> Component: + return [c for c in sorted(schematic.components) if c.ref_type != "#PWR" and c.ref_type != "#FLG"] + + +def to_bom_xml(schematic: Schematic) -> Element: root = Element("export") root.attrib["version"] = "D" design = Element("design") @@ -42,6 +46,6 @@ def to_bom(schematic: Schematic) -> Element: components = Element("components") root.append(components) - [components.append(comp(c)) for c in sorted(schematic.components) if c.ref_type != "#PWR" and c.ref_type != "#FLG"] + [components.append(comp(c)) for c in to_bom(schematic)] return root -- cgit v1.2.3