Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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")
Esempio n. 4
0
    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")