示例#1
0
def fill_all(info, form_author=config.default_author, fp_sel='0'):
    global author
    # Create dict from coloumns
    field = {}
    for col in DBstructure.colNames:
        field[col.replace(' ', '_')] = None

    # Fill the fields
    author = form_author
    spec(field, info)

    # Connect DB
    conn, cur = db_connect()
    subclass(field, info, conn, cur)
    fp_list = fp(field, conn, cur, fp_sel)
    db_disconnect(conn, cur)

    # Generate datasheet path
    ds(field)

    # if not field['Component_Kind']:
    #     print('Mandatory field \'Component Kind\' not found')
    #     field['Component_Kind'] = selection(DBstructure.tables, 'Component Kind', mandatory = True)

    return field, fp_list
示例#2
0
def storage_update(table, part, cell, qty):
    conn, cur = db_connect()
    upd_query = 'UPDATE ' + table + ' SET `Storage Cell` = ?, `Storage Quantity` = ? WHERE `Part Number` LIKE ?'
    cur.execute(upd_query, (cell, str(qty), part))
    conn.commit()
    db_disconnect(conn, cur)
    return True
示例#3
0
def add_part(field):
    # Firstly try to download datasheet
    print(field['datasheet_url'])
    if field['datasheet_url']:
        if field['datasheet_url'] != 'None':
            # Fix 'HTTP Error 403' from https://stackoverflow.com/a/36663971
            opener = urllib.request.build_opener()
            opener.addheaders = [(
                'User-Agent',
                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1941.0 Safari/537.36'
            )]
            urllib.request.install_opener(opener)

            print('Downloading datasheet ...')
            try:
                urllib.request.urlretrieve(field['datasheet_url'],
                                           field['HelpURL'])
            except Exception as e:
                print('Download failed', e)
                return 'Downloading datasheet failed: ' + str(e)
            else:
                print('Download successful')
        else:
            field['HelpURL'] = ''
    else:
        field['HelpURL'] = ''

    # Add to database
    # Convert dict to sorted tuple for universal INSERT syntax
    insList = []
    for col in DBstructure.colNames:
        insList.append(field[col.replace(' ', '_')])
    insTuple = tuple(insList)

    # Then choose a table
    if field['Component_Kind'] == 'Semiconductors':
        skillet = DBstructure.tupleInsSemiconductors
    elif field['Component_Kind'] == 'Passives':
        skillet = DBstructure.tupleInsPassives
    elif field['Component_Kind'] == 'Electromechanical':
        skillet = DBstructure.tupleInsElectromechanical
    else:
        return 'No table like \'Component Kind\' in DB'

    #  And then make a record
    try:
        conn, cur = db_connect()
        cur.execute(skillet, insTuple)
        conn.commit()
        db_disconnect(conn, cur)
    except Exception as e:
        return 'Database error'

    return 'Component added'
示例#4
0
def local(keyword):
    conn, cur = db_connect()

    db_result = []
    if keyword:
        print('Search in DB Lib ...')
        idx = 0
        findkey = '%' + keyword + '%'

        cur.execute(
            '''(SELECT `Part Number`, `Part Description`, Author, CreateDate, `Storage Cell`, `Storage Quantity`
                           FROM Semiconductors
                           WHERE `Part Number` LIKE ?)''', findkey)

        for item in cur.fetchall():
            db_result.append(['Semiconductors'])
            for col in item:
                db_result[idx].append(col)
            idx += 1

        cur.execute(
            '''(SELECT `Part Number`, `Part Description`, Author, CreateDate, `Storage Cell`, `Storage Quantity`
                           FROM Passives
                           WHERE `Part Number` LIKE ?)''', findkey)

        for item in cur.fetchall():
            db_result.append(['Passives'])
            for col in item:
                db_result[idx].append(col)
            idx += 1

        cur.execute(
            '''(SELECT `Part Number`, `Part Description`, Author, CreateDate, `Storage Cell`, `Storage Quantity`
                           FROM Electromechanical
                           WHERE `Part Number` LIKE ?)''', findkey)

        for item in cur.fetchall():
            db_result.append(['Electromechanical'])
            for col in item:
                db_result[idx].append(col)
            idx += 1

    db_disconnect(conn, cur)
    return db_result
示例#5
0
                        continue

                    pn = 'RC{}{}R-07{}L'.format(case, tol,
                                                val)  # RC0805FR-074K99L
                    success += 1

                    dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
                    upd_query = 'UPDATE Passives SET `Manufacturer1 Example` = ?, `Manufacturer1 Part Number` = ?, `LatestRevisionDate` = ? WHERE `Part Number` LIKE ?'
                    # print('YAGEO', pn, dt, item[0])
                    cur.execute(upd_query, ('YAGEO', pn, dt, item[0]))

        # print(item[0], ' : ', item[1], ' : ', pn)
    print('Total:', total, ', Success:', success)

    conn.commit()
    db_disconnect(conn, cur)
    return True


def cap_yageo():
    conn, cur = db_connect()
    cur.execute('''SELECT `Part Number`, `Manufacturer Part Number`
                        FROM Passives
                        WHERE `Table` LIKE \'%Capacitors SMD%\'''')

    total = 0
    success = 0
    case_lst = [
        'CC0201', 'CC0402', 'CC0603', 'CC0805', 'CC1206', 'CC1210', 'CC1812'
    ]