Exemplo n.º 1
0
def process(part):
    # print(part)
    part_number = part["Part Number"]

    series = part_number[0:3]
    package = part_number[3:5]
    temp_code = part_number[6:8]
    volt_code = part_number[8:10]
    cap_code = part_number[10:12]
    cap_mul = part_number[12]
    cap_tol = part_number[13]

    if series != "GRM":
        print(f"Non-GRM part! {part_number}")
        return

    if not package in bases.keys():
        return

    check_size(part, package)
    temp_characteristic = decode_temp(part, temp_code)
    rated_voltage = decode_voltage(part, volt_code)
    capacitance = decode_cap(part, cap_code, cap_mul)
    tolerance = decode_cap_tol(part, cap_tol)

    if temp_characteristic == None:
        return

    if not part_number[-1] == "#":
        print("Oops!")
    part_number = part_number[0:-1]
    datasheet = f"https://www.murata.com/en-us/products/productdetail.aspx?partno={part_number}%23"
    capacitance_format = util.format_si(capacitance, 1) + "F"

    tmpl["base"] = bases[package]
    tmpl["MPN"] = [False, part_number]
    tmpl["value"] = [False, capacitance_format]
    tmpl["description"] = [
        False,
        f"MLCC General Purpose {capacitance_format}, {util.format_si(rated_voltage, 1)}V, {temp_characteristic}"
    ]
    tmpl["datasheet"] = [False, datasheet]
    tmpl["uuid"] = str(gen.get(part_number))
    tmpl["parametric"]["wvdc"] = str(rated_voltage)
    tmpl["parametric"]["value"] = "%.4e" % capacitance
    tmpl["parametric"]["type"] = temp_characteristic
    if tolerance is not None:
        tmpl["parametric"]["tolerance"] = str(tolerance)
    else:
        tmpl["parametric"].pop("tolerance", None)

    path = pj(base_path, f"grm{package}")
    os.makedirs(path, exist_ok=True)
    with open(pj(path, f"{part_number}.json"), "w") as f:
        json.dump(tmpl, f, sort_keys=True, indent=4)
Exemplo n.º 2
0
    def local_directory(self, line=''):
        DIR_HEADER = '\x01'
        dir = os.getcwd()
        filenames = []
        if os.path.isdir(line) or not line:
            if line:
                dir = line
            filenames = os.listdir(dir)
        else:
            specs = shlex.split(line)
            for spec in specs:
                filenames.extend(glob.glob(spec))
        entries = []
        for filename in filenames:
            abspath = os.path.join(dir, filename)
            if os.path.isdir(abspath):
                filename = '{}[{}]'.format(DIR_HEADER, filename)
            s = os.stat(abspath)
            filesize = s.st_size
            lastmodified = s.st_mtime
            entries.append((lastmodified, filesize, filename))

        # Sort is stable.
        order_by = util.key_for_val(kprotocol.C['order-by'],
                                    self.config['order-by'].value)
        for ch in order_by[::-1]:
            if ch == 'd':
                entries.sort(key=lambda tup: tup[0])
            elif ch == 's':
                entries.sort(key=lambda tup: tup[1])
            elif ch == 'n':
                entries.sort(key=lambda tup: tup[2])
            else:
                log.e('Bad field char {}'.format(ch))

        oslope = self.config['oslope'].value
        for entry in entries[::oslope]:
            dt = datetime.datetime.fromtimestamp(
                entry[0]).strftime('%Y-%m-%d %H:%M')
            sz = util.format_si(entry[1])
            nm = entry[2]
            if nm.startswith(DIR_HEADER):
                nm = nm[1:]
            log.i('  {}  {}  {}'.format(dt, sz, nm))
Exemplo n.º 3
0
		datasheet_url = row["catalog_url"]["raw"]
		pmax = pmax_pkg.get(pkg, 0)
		if "spec_item_code_006" in row :
			pmax = float(row["spec_item_code_006"]["raw"])
		pmaxs.add(pmax)
		full_mpn = row["item_id"]["raw"]
		mpn = full_mpn[:-1]
		print(mpn, full_mpn)
		if mpn in parts.keys() :
			parts[mpn][1]["orderable_MPNs"][str(gen.get(full_mpn))] = full_mpn.replace("ERJ", "ERJ-")
		else :
			if pkg in bases :
				tmpl["base"] = bases[pkg]
				tmpl["MPN"] = [False, mpn.replace("ERJ", "ERJ-")]
				tmpl["datasheet"] = [False, datasheet_url]
				tmpl["value"] = [False, util.format_si(value, 2) + "Ω"]
				tmpl["description"] = [False, "Chip Resistor %sΩ %d%% %gW"%(util.format_si(value, 2), tol, pmax)]
				tmpl["uuid"] = str(gen.get(mpn))
				tmpl["parametric"]["pmax"] = str(pmax)
				tmpl["parametric"]["value"] = str(value)
				tmpl["parametric"]["tolerance"] = str(tol)
				tmpl["orderable_MPNs"] = {}
				tmpl["orderable_MPNs"][str(gen.get(full_mpn))] = full_mpn.replace("ERJ", "ERJ-")
				parts[mpn] = pkg, copy.deepcopy(tmpl)

for mpn, (pkg, part) in parts.items() :
	print("write", mpn)
	path = pj(base_path, pkg)
	os.makedirs(path, exist_ok = True)
	with open(pj(path, mpn.replace("ERJ", "ERJ-")+".json"), "w") as fi:
		json.dump(part, fi, sort_keys=True, indent=4)
Exemplo n.º 4
0
    reader = csv.DictReader(fi)
    for row in reader:
        mpn = row['Part No.']
        vmax = float(row['Rated Voltage [DC] / V'])
        tc = xlat_type(row['Temp. Chara.'])
        tcs.add(tc)
        captxt = row['Capacitance']
        value = float(captxt[:-2]) * muls[captxt[-2:]]
        ds = row['Catalog / Data Sheet'].split()[-1]
        pkg = row['L x W Size'].split('[')[-1].split()[1][:-1]
        pkgs.add(pkg)
        print(mpn, captxt, value)
        if pkg in bases:
            tmpl["base"] = bases[pkg]
            tmpl["MPN"] = [False, mpn]
            tmpl["value"] = [False, util.format_si(value, 1) + "F"]
            tmpl["description"] = [
                False,
                "Ceramic Capacitor %sF %sV %s" %
                (util.format_si(value, 1), util.format_si(vmax, 1), tc)
            ]
            tmpl["datasheet"] = [False, ds]
            tmpl["uuid"] = str(gen.get(mpn))
            tmpl["parametric"]["wvdc"] = str(vmax)
            tmpl["parametric"]["value"] = "%.4e" % value
            tmpl["parametric"]["type"] = tc
            path = pj(base_path, pkg)
            os.makedirs(path, exist_ok=True)
            with open(pj(path, mpn + ".json"), "w") as fi:
                json.dump(tmpl, fi, sort_keys=True, indent=4)
"""
Exemplo n.º 5
0
 def local_space(self):
     st = os.statvfs(os.getcwd())  # Dep in 2.6. Removeed in 3.
     log.i(' Used: {}'.format(
         util.format_si((st.f_blocks - st.f_bavail) * st.f_frsize)))
     log.i(' Free: {}'.format(util.format_si(st.f_bavail * st.f_frsize)))
     log.i('Total: {}'.format(util.format_si(st.f_blocks * st.f_frsize)))
Exemplo n.º 6
0
gen = util.UUIDGenerator("uu.txt")


prs = set()
for row in j_raw["rows"] :
	mpn = row["parnum"]
	vmax = float(row["ratvol"])
	pkg = row["sizcd_eia"]
	tc = row["tc"]
	value = row["cap"]*muls[row["capuni"]]
	ds = "http://www.samsungsem.com" + (row["chadat"].strip() if len(row["chadat"].strip()) else row["spe"].strip())
	tcs.add(tc)
	pkgs.add(pkg)
	prs.add(mpn[:2])
	print(mpn, vmax, pkg, value, ds)
	if pkg in bases :
		tmpl["base"] = bases[pkg]
		tmpl["MPN"] = [False, mpn]
		tmpl["value"] = [False, util.format_si(value, 1) + "F"]
		tmpl["description"] = [False, "Ceramic Capacitor %sF %sV %s"%(util.format_si(value, 1), util.format_si(vmax, 1), tc)]
		tmpl["datasheet"] = [False, ds]
		tmpl["uuid"] = str(gen.get(mpn))
		tmpl["parametric"]["wvdc"] = str(vmax)
		tmpl["parametric"]["value"] = "%.4e"%value
		tmpl["parametric"]["type"] = xlat_type(tc)
		path = pj(base_path, pkg)
		os.makedirs(path, exist_ok = True)
		with open(pj(path, mpn+".json"), "w") as fi:
			json.dump(tmpl, fi, sort_keys=True, indent=4)
Exemplo n.º 7
0
    mpn = row["parnum"]
    pkg = row["sizcd_eia"]
    rval = row["rval"][:-1]
    if rval[-1] in muls:
        value = float(rval[:-1]) * muls[rval[-1]]
    else:
        value = float(rval)
    tol = xlat_tol(row['tol'])

    pmax = row['ratpow']
    pmax = xlat_pmax(pmax.split("W")[0])

    if pkg in bases:
        pmaxs.add(row['ratpow'])
        tmpl["base"] = bases[pkg]
        tmpl["MPN"] = [False, mpn]
        tmpl["value"] = [False, util.format_si(value, 2) + "Ω"]
        tmpl["description"] = [
            False,
            "Chip Resistor %sΩ %d%% %gW" %
            (util.format_si(value, 2), tol, pmax)
        ]
        tmpl["uuid"] = str(gen.get(mpn))
        tmpl["parametric"]["pmax"] = str(pmax)
        tmpl["parametric"]["value"] = str(value)
        tmpl["parametric"]["tolerance"] = str(tol)
        path = pj(base_path, pkg)
        os.makedirs(path, exist_ok=True)
        with open(pj(path, mpn + ".json"), "w") as fi:
            json.dump(tmpl, fi, sort_keys=True, indent=4)