diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2019-05-23 21:08:36 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2019-05-26 21:55:41 +0200 |
commit | 1699cca793c6a8ebc00942557b6764fff6739044 (patch) | |
tree | ee8162390db5a7607298fe5f40841bb131b60542 /src/ee/part/requirement.py | |
parent | 4afac7dc4c743284e5243428f00928aa7eaacfdc (diff) | |
download | ee-python-1699cca793c6a8ebc00942557b6764fff6739044.tar.gz ee-python-1699cca793c6a8ebc00942557b6764fff6739044.tar.bz2 ee-python-1699cca793c6a8ebc00942557b6764fff6739044.tar.xz ee-python-1699cca793c6a8ebc00942557b6764fff6739044.zip |
part-find-requirements: wip
Diffstat (limited to 'src/ee/part/requirement.py')
-rw-r--r-- | src/ee/part/requirement.py | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/src/ee/part/requirement.py b/src/ee/part/requirement.py index a9381df..297727b 100644 --- a/src/ee/part/requirement.py +++ b/src/ee/part/requirement.py @@ -1,6 +1,20 @@ from typing import List -from ee.part import Part, fact_keys, FactType, common_fact_types +from ee import EeVal +from ee.part import Part, FactType, common_fact_types, EeValueFactType + + +def to_str(part, fact_type, value, op): + v = None + if isinstance(fact_type, EeValueFactType): + eeft: EeValueFactType=fact_type + ev = EeVal.try_parse(value, eeft.ee_type.symbol) + v = str(ev) + + if not v: + v = value + + return "{}.{} {} {}".format(part.printable_reference, fact_type.label or fact_type.uri, op, v) class Requirement(object): @@ -15,7 +29,7 @@ class EqualRequirement(Requirement): self.value = value def __str__(self): - return "{}.{} == {}".format(self.part.printable_reference, self.fact_type, self.value) + return to_str(self.part, self.fact_type, self.value, "==") class MinRequirement(Requirement): @@ -25,7 +39,7 @@ class MinRequirement(Requirement): self.value = value def __str__(self): - return "{}.{} == {}".format(self.part.printable_reference, self.fact_type, self.value) + return to_str(self.part, self.fact_type, self.value, ">") class MaxRequirement(Requirement): @@ -35,7 +49,7 @@ class MaxRequirement(Requirement): self.value = value def __str__(self): - return "{}.{} == {}".format(self.part.printable_reference, self.fact_type, self.value) + return to_str(self.part, self.fact_type, self.value, "<") class PartAnalysis(object): @@ -47,12 +61,12 @@ class PartAnalysis(object): def analyze_requirements(part: Part) -> PartAnalysis: rs = [] - resistance = part.find_fact(common_fact_types.resistance.uri) + resistance = part.facts.get_value(common_fact_types.resistance) if resistance: - rs.append(EqualRequirement(part, common_fact_types.resistance, resistance.valueProp)) + rs.append(EqualRequirement(part, common_fact_types.resistance, resistance)) - capacitance = part.find_fact(common_fact_types.capacitance.uri) + capacitance = part.facts.get_value(common_fact_types.capacitance) if capacitance: - rs.append(EqualRequirement(part, common_fact_types.capacitance, capacitance.valueProp)) + rs.append(EqualRequirement(part, common_fact_types.capacitance, capacitance)) return PartAnalysis(part, rs) |