def _get_generator_values(pricegen): """ TODO This function should be parcelled out to conventions """ if pricegen['type'] == 'simple': return pricegen['values'] values = [] if pricegen['type'] == 'resistor': if 'resistances' in pricegen.keys(): for resistance in pricegen['resistances']: values.append(resistance) if 'generators' in pricegen.keys(): for generator in pricegen['generators']: if generator['std'] == 'iec60063': rvalues = iec60063.gen_vals(generator['series'], iec60063.res_ostrs, start=generator['start'], end=generator['end']) for rvalue in rvalues: values.append( construct_resistor(rvalue, generator['wattage']) ) else: raise ValueError if 'values' in pricegen.keys(): if pricegen['values'][0].strip() != '': values += pricegen['values'] return values if pricegen['type'] == 'capacitor': if 'capacitances' in pricegen.keys(): for capacitance in pricegen['capacitances']: values.append(capacitance) if 'generators' in pricegen.keys(): for generator in pricegen['generators']: if generator['std'] == 'iec60063': cvalues = iec60063.gen_vals(generator['series'], iec60063.cap_ostrs, start=generator['start'], end=generator['end']) for cvalue in cvalues: values.append( construct_capacitor(cvalue, generator['voltage']) ) else: raise ValueError if 'values' in pricegen.keys(): if pricegen['values'][0].strip() != '': values += pricegen['values'] return values
def _get_generator_values(pricegen): """ TODO This function should be parcelled out to conventions """ if pricegen['type'] == 'simple': return pricegen['values'] values = [] if pricegen['type'] == 'resistor': if 'resistances' in pricegen.keys(): for resistance in pricegen['resistances']: values.append(resistance) if 'generators' in pricegen.keys(): for generator in pricegen['generators']: if generator['std'] == 'iec60063': rvalues = iec60063.gen_vals(generator['series'], iec60063.res_ostrs, start=generator['start'], end=generator['end']) for rvalue in rvalues: values.append( construct_resistor( resistance=rvalue, wattage=generator['wattage'])) else: raise ValueError if 'values' in pricegen.keys(): if pricegen['values'][0].strip() != '': values += pricegen['values'] return values if pricegen['type'] == 'capacitor': if 'capacitances' in pricegen.keys(): for capacitance in pricegen['capacitances']: values.append(capacitance) if 'generators' in pricegen.keys(): for generator in pricegen['generators']: if generator['std'] == 'iec60063': cvalues = iec60063.gen_vals(generator['series'], iec60063.cap_ostrs, start=generator['start'], end=generator['end']) for cvalue in cvalues: values.append( construct_capacitor( capacitance=cvalue, voltage=generator['voltage'])) else: raise ValueError if 'values' in pricegen.keys(): if pricegen['values'][0].strip() != '': values += pricegen['values'] return values
def _get_data(self): with open(self._genpath) as genfile: gendata = yaml.load(genfile) if gendata["schema"]["name"] == "gsymgenerator" and \ gendata["schema"]["version"] == 1.0: if gendata['type'] == 'simple': self._type = 'Simple' self._ivalues = [ v for v in gendata['values'] if v is not None and v.strip() is not None ] return gendata['values'] values = [] if gendata['type'] == 'resistor': self._type = 'Resistor' giseries = None for resistance in gendata['resistances']: if resistance is not None: values.append(resistance) self._iunits.append(resistance) if 'composite_series' in gendata.keys(): from tendril.conventions.series import CustomValueSeries try: name = gendata['composite_series']['name'] tsymbol = GedaSymbol(self._sympath) giseries = CustomValueSeries( name, 'resistor', device=tsymbol.device, footprint=tsymbol.footprint) except KeyError: pass if 'generators' in gendata.keys(): dcomponents = jb_resistor_defs() for generator in gendata['generators']: self._igen.append(generator) if generator['std'] == 'iec60063': rvalues = iec60063.gen_vals( generator['series'], iec60063.res_ostrs, start=generator['start'], end=generator['end']) components = {} for dcomponent in dcomponents: if dcomponent.code in generator.keys(): try: dcomponent.typeclass( generator[dcomponent.code]) # noqa components[ dcomponent.code] = generator[ dcomponent.code] # noqa except: raise ValueError for rvalue in rvalues: pval = construct_resistor(resistance=rvalue, **components) values.append(pval) if giseries is not None: giseries.add_value(rvalue, pval) else: raise ValueError if giseries is not None: self._iseries.append(giseries) if 'values' in gendata.keys(): if gendata['values'][0].strip() != '': values += gendata['values'] self._ivalues.extend(gendata['values']) if 'custom_series' in gendata.keys(): from tendril.conventions.series import CustomValueSeries for name, series in viewitems(gendata['custom_series']): if series['detail'].pop('type') != 'resistor': raise ValueError('Expected a resistor series') vals = series['values'] tsymbol = GedaSymbol(self._sympath) iseries = CustomValueSeries( name, 'resistor', device=tsymbol.device, footprint=tsymbol.footprint) for type_val, val in viewitems(vals): iseries.add_value(type_val, val) iseries._desc = series['detail'].pop('desc') iseries._aparams = series['detail'] self._iseries.append(iseries) values.extend(vals.values()) return values if gendata['type'] == 'capacitor': self._type = 'Capacitor' giseries = None for capacitance in gendata['capacitances']: if capacitance is not None: values.append(capacitance) self._iunits.append(capacitance) if 'composite_series' in gendata.keys(): from tendril.conventions.series import CustomValueSeries try: name = gendata['composite_series']['name'] tsymbol = GedaSymbol(self._sympath) giseries = CustomValueSeries( name, 'capacitor', device=tsymbol.device, footprint=tsymbol.footprint) except KeyError: pass if 'generators' in gendata.keys(): dcomponents = jb_capacitor_defs() for generator in gendata['generators']: self._igen.append(generator) if generator['std'] == 'iec60063': cvalues = iec60063.gen_vals( generator['series'], iec60063.cap_ostrs, start=generator['start'], end=generator['end']) components = {} for dcomponent in dcomponents: if dcomponent.code in generator.keys(): try: dcomponent.typeclass( generator[dcomponent.code]) # noqa components[ dcomponent.code] = generator[ dcomponent.code] # noqa except: raise ValueError for cvalue in cvalues: pval = construct_capacitor(capacitance=cvalue, **components) values.append(pval) if giseries is not None: giseries.add_value(cvalue, pval) else: raise ValueError if giseries is not None: self._iseries.append(giseries) if 'values' in gendata.keys(): if gendata['values'][0].strip() != '': values += gendata['values'] self._ivalues.append(gendata['values']) if 'custom_series' in gendata.keys(): from tendril.conventions.series import CustomValueSeries for name, series in viewitems(gendata['custom_series']): if series['detail'].pop('type') != 'capacitor': raise ValueError('Expected a capacitor series') vals = series['values'] tsymbol = GedaSymbol(self._sympath) iseries = CustomValueSeries( name, 'capacitor', device=tsymbol.device, footprint=tsymbol.footprint) for type_val, val in viewitems(vals): iseries.add_value(type_val, val) iseries._desc = series['detail'].pop('desc') iseries._aparams = series['detail'] self._iseries.append(iseries) values.extend(vals.values()) return values elif gendata['type'] == 'wire': for gauge in gendata['gauges']: for color in gendata['colors']: values.append('{0} {1}'.format(gauge, color)) return values else: logger.ERROR("Config file schema is not supported")
def _get_data(self): with open(self._genpath) as genfile: gendata = yaml.load(genfile) if gendata["schema"]["name"] == "gsymgenerator" and gendata["schema"]["version"] == 1.0: if gendata["type"] == "simple": self._type = "Simple" self._ivalues = [v for v in gendata["values"] if v is not None and v.strip() is not None] return gendata["values"] values = [] if gendata["type"] == "resistor": self._type = "Resistor" for resistance in gendata["resistances"]: if resistance is not None: values.append(resistance) self._iunits.append(resistance) if "generators" in gendata.keys(): for generator in gendata["generators"]: self._igen.append(generator) if generator["std"] == "iec60063": rvalues = iec60063.gen_vals( generator["series"], iec60063.res_ostrs, start=generator["start"], end=generator["end"] ) for rvalue in rvalues: values.append(construct_resistor(rvalue, generator["wattage"])) # noqa else: raise ValueError if "values" in gendata.keys(): if gendata["values"][0].strip() != "": values += gendata["values"] self._ivalues.extend(gendata["values"]) if "custom_series" in gendata.keys(): from tendril.conventions.series import CustomValueSeries for name, series in viewitems(gendata["custom_series"]): if series["detail"].pop("type") != "resistor": raise ValueError("Expected a resistor series") vals = series["values"] tsymbol = GedaSymbol(self._sympath) iseries = CustomValueSeries( name, "resistor", device=tsymbol.device, footprint=tsymbol.footprint ) for type_val, val in viewitems(vals): iseries.add_value(type_val, val) iseries._desc = series["detail"].pop("desc") iseries._aparams = series["detail"] self._iseries.append(iseries) values.extend(vals.values()) return values if gendata["type"] == "capacitor": self._type = "Capacitor" for capacitance in gendata["capacitances"]: if capacitance is not None: values.append(capacitance) self._iunits.append(capacitance) if "generators" in gendata.keys(): for generator in gendata["generators"]: self._igen.append(generator) if generator["std"] == "iec60063": cvalues = iec60063.gen_vals( generator["series"], iec60063.cap_ostrs, start=generator["start"], end=generator["end"] ) for cvalue in cvalues: values.append(construct_capacitor(cvalue, generator["voltage"])) # noqa else: raise ValueError if "values" in gendata.keys(): if gendata["values"][0].strip() != "": values += gendata["values"] self._ivalues.append(gendata["values"]) if "custom_series" in gendata.keys(): from tendril.conventions.series import CustomValueSeries for name, series in viewitems(gendata["custom_series"]): if series["detail"].pop("type") != "resistor": raise ValueError("Expected a resistor series") vals = series["values"] tsymbol = GedaSymbol(self._sympath) iseries = CustomValueSeries( name, "resistor", device=tsymbol.device, footprint=tsymbol.footprint ) for type_val, val in viewitems(vals): iseries.add_value(type_val, val) iseries._desc = series["detail"].pop("desc") iseries._aparams = series["detail"] self._iseries.append(iseries) values.extend(vals.values()) return values elif gendata["type"] == "wire": for gauge in gendata["gauges"]: for color in gendata["colors"]: values.append("{0} {1}".format(gauge, color)) return values else: logger.ERROR("Config file schema is not supported")