def create_item(name, price, quantity): global items result = list(filter(lambda x: x['name'] == name, items)) if result: raise m_ex.ItemAlreadyStored(f'{name} already stored!') else: items.append({'name': name, 'price': price, 'quantity': quantity})
def create_person(id, name, age): global persons results = list(filter(lambda x: x['id'] == id, persons)) if results: raise mvc_exc.ItemAlreadyStored('"{}" already stored!'.format(id)) else: persons.append({'id': id, 'name': name, 'age': age})
def create_item(name, price, quantity): global items results = list(filter(lambda x: x['name'] == name, items)) if results: raise mvc_exc.ItemAlreadyStored(f'Item with name: "{name}"') else: items.append({'name': name, 'price': price, 'quantity': quantity})
def create_item(name, price, quantity): global items results = list(filter(lambda x: x['name'] == name, items)) if results: raise mvc_exc.ItemAlreadyStored('"{}" already stored!'.format(name)) else: items.append({'name': name, 'price': price, 'quantity': quantity})
def create_item(name, price, quantity): global items results = list(filter(lambda x: x["name"] == name, items)) if results: raise mvc_exc.ItemAlreadyStored('"{}" already stored!'.format(name)) else: items.append({"name": name, "price": price, "quantity": quantity})
def read_item(name): global items my_items = list(filter(lambda x: x['name'] == name, items)) if my_items: return my_items[0] else: raise mvc_exc.ItemAlreadyStored( 'Can\'t read "{}" because it\'s not stored'.format(name))
def update_item(name, price, quantity): global items id_xs_items = list( filter(lambda i_x: i_x[1]['name'] == name, enumerate(items))) if id_xs_items: i, item_to_update = id_xs_items[0][0], id_xs_items[0][1] items[i] = {'name': name, 'price': price, 'quantity': quality} else: raise mvc_exc.ItemAlreadyStored( 'Can\'t update "{}" because it\'s not stored'.format(name))
def delete_item(name): global items id_xs_items = list( filter(lambda i_x: i_x[1]['name'] == name, enumerate(items))) if id_xs_items: i, item_to_update = id_xs_items[0][0], id_xs_items[0][1] del items[i] else: raise mvc_exc.ItemAlreadyStored( 'Can\'t update "{}" because it\'s not stored'.format(name))
def insert_one(conn, name, price, quantity, table_name): table_name = scrub(table_name) sql = "INSERT INTO {} ('name', 'price', 'quantity') VALUES (?, ?, ?)"\ .format(table_name) try: conn.execute(sql, (name, price, quantity)) conn.commit() except IntegrityError as e: raise mvc_exc.ItemAlreadyStored( '{}: "{}" already stored in table "{}"'.format(e, name, table_name))
def insert_ingredient(conn, ingredient): sql = "INSERT OR IGNORE INTO Ingredients ('name', 'kcal', 'koolh', 'prot', 'vet', 'vez') " \ "VALUES (?, ?, ?, ?, ?, ?)" n = ingredient.get_nutr() entry = (ingredient.name, n[0], n[1], n[2], n[3], n[4]) try: conn.execute(sql, entry) conn.commit() except IntegrityError as e: raise mvc_exc.ItemAlreadyStored( '{}: "{}" already stored in table Ingredients'.format(e, ingredient.name))
def insert_meal(conn, meal_name): meal = Meal(meal_name) if not is_present(conn, meal, "Meals"): # Insert meal in database sql = "INSERT OR IGNORE INTO Meals ('name', 'kcal', 'koolh', 'prot', 'vet', 'vez') VALUES (?, ?, ?, ?, ?, ?)" nutr = meal.get_nutr() try: conn.execute(sql, (meal.name, nutr[0], nutr[1], nutr[2], nutr[3], nutr[4])) conn.commit() except IntegrityError as e: raise mvc_exc.ItemAlreadyStored( '{}: "{}" already stored in table Meals'.format(e, meal.name))
def create_item(table_name, *value): keys = get_all_keys(table_name) i = 0 for key in keys: d = getattr(table_name, key).type if type(d) is Integer: d = 0 elif type(d) is Boolean: d = False elif type(d) is Date: d = DT.datetime.strptime('2020,1,1', '%Y,%m,%d').date() elif type(d) is String: d = 'str' if type(d) != type(value[i]): raise mvc_exc.ValueTypeError(f"Value: <{value[i]}> must be the same type as key!") i = i + 1 with session_scope() as s: check_id = {keys[0]: value[0]} check = s.query(table_name).filter_by(**check_id).all() if not check: check_items = {keys[i]: value[i] for i in range(1, len(keys))} else: raise mvc_exc.ItemAlreadyStored( f"Can't create item with {keys[0]} = {value[0]} because it is already exists") check = s.query(table_name).filter_by(**check_items).all() if not check: create_it = {} i = 0 for key in keys: create_it[key] = value[i] i = i + 1 else: raise mvc_exc.ItemAlreadyStored(f"Can't create item because all data for its id {keys[0]} = {value[0]} " f"already exists") s.add(table_name(**create_it))
def insert_one(conn, name, price, quantity, table_name): items = [{'name': name, 'price': price, 'quantity': quantity}] try: table_name = scrub(table_name) sql = "INSERT INTO {} (rowid, name, price, quantity) VALUES (%s, %s, %s, %s)" \ .format(table_name) entries_to_insert = verify_if_item_present(conn, items, table_name) get_cursor(conn).executemany(sql, entries_to_insert) conn.commit() except mysql_error as err: raise mvc_exc.ItemAlreadyStored( '{}: "{}" already stored in table "{}"'.format( err, name, table_name))
def insert_day(conn, day_name): # Create Day object day = Day(day_name) if not is_present(conn, day, "Days"): # Insert day in database sql = "INSERT OR IGNORE INTO Days ('name', 'kcal', 'koolh', 'prot', 'vet', 'vez') VALUES (?, ?, ?, ?, ?, ?)" nutr = day.get_nutr() try: conn.execute(sql, (day.name, nutr[0], nutr[1], nutr[2], nutr[3], nutr[4])) conn.commit() except IntegrityError as e: raise mvc_exc.ItemAlreadyStored( '{}: "{}" already stored in table Days'.format(e, day.name))
def verify_if_item_present(conn, items, table_name): entries = list() items_present = dict() for product in items: items_present[product['name']] = \ False if not select_one(conn, product['name'], table_name, verification=True) \ else True for x in items: if x['name'] in items_present: if not items_present[x['name']]: entries.append((0, x['name'], x['price'], x['quantity'])) else: raise mvc_exc.ItemAlreadyStored( 'Product "{}" is already stored in table "{}"'.format( x['name'], table_name)) return entries
def create_item(name): global items if (typeof == 'autores'): results = list(filter(lambda x: x['name'] == name, items)) else: results = list(filter(lambda x: x['title'] == name, items)) if results: raise mvc_exc.ItemAlreadyStored('"{}" ya almacenado!'.format(name)) else: if (typeof == 'autores'): nuevo = { 'authorid' : len(items)+1, 'name' : name, 'workcount' : 0, 'fan_count' : 0, 'image_url' : 0, 'about' : input("Bio: "), 'country' : input("Pais: ") } else: nuevo = { 'id' : len(itemsAllBooks)+1, 'title' : name, 'authors' : input("Ingresa los autores separados por comas: ") } itemsAllBooks.append(nuevo) items.append(nuevo) try: with open(pathFile[typeof],'w') as filehandle: #a -> append if (typeof == 'autores'): json.dump(items,filehandle,indent=2, separators=(',', ': ')) else: json.dump(itemsAllBooks,filehandle,indent=2, separators=(',', ': ')) filehandle.close() except Exception as Error: print("Error leyendo archivo")
def insert_one(conn, name, price, quantity, table_name): """Insert a single item in a table. Parameters ---------- name : str price : float quantity : int table_name : dataset.persistence.table.Table conn : dataset.persistence.database.Database Raises ------ mvc_exc.ItemAlreadyStored: if the record is already stored in the table. """ table = conn.load_table(table_name) try: table.insert(dict(name=name, price=price, quantity=quantity)) except IntegrityError as e: raise mvc_exc.ItemAlreadyStored( '"{}" already stored in table "{}".\nOriginal Exception raised: {}' .format(name, table.table.name, e))
def create_item(conn, table_name, *value): cur = conn.cursor() cur.execute( f"SELECT column_name, data_type FROM information_schema.columns " f"WHERE table_schema='public' AND table_name = '{table_name}'") data_type = cur.fetchall() type_dat = [] for item in data_type: type_dat += [item[1]] j = 0 for item in type_dat: if type_dat[j] == 'integer': type_dat[j] = 1 if type_dat[j] == 'boolean': type_dat[j] = False if type_dat[j] == 'date': type_dat[j] = DT.datetime.strptime('2020,1,1', '%Y,%m,%d').date() if type(type_dat[j]) != type(value[j]): raise mvc_exc.ValueTypeError( f"Type of value '{value[j]}' not the same as type of key name!" ) j = j + 1 cur.execute(f"SELECT * FROM {table_name}") keys = [description[0] for description in cur.description] cur.execute(f"SELECT * FROM {table_name} WHERE {keys[0]} = {value[0]}") if cur.rowcount != 0: raise mvc_exc.ItemAlreadyStored(f'ID: "{value[0]}" already stored!') if table_name == 'users': cur.execute( f"SELECT * FROM {table_name} WHERE {keys[1]} = '{value[1]}' and {keys[2]} = {value[2]}" ) if cur.rowcount != 0: raise mvc_exc.ItemAlreadyStored( f'Item with that value "{value[1]}" "{value[2]}" already stored!' ) elif table_name == ('email' or 'folders'): cur.execute( f"SELECT * FROM {table_name} WHERE {keys[1]} = {value[1]} and {keys[2]} = '{value[2]}' " f"and {keys[3]} = '{value[3]}'") if cur.rowcount != 0: raise mvc_exc.ItemAlreadyStored( f'Item with that value "{value[1]}" "{value[2]}" "{value[3]}"' f' already stored!') elif table_name == 'messages': cur.execute( f"SELECT * FROM {table_name} WHERE {keys[1]} = {value[1]} and {keys[2]} = '{value[2]}' and " f"{keys[3]} = '{value[3]}'") if cur.rowcount != 0: raise mvc_exc.ItemAlreadyStored( f'Item with that value "{value[1]}" "{value[2]}" "{value[3]}"' f' already stored!') elif table_name == 'folders_messages': cur.execute( f"SELECT * FROM {table_name} WHERE {keys[0]} = {value[0]} and {keys[1]} = {value[1]}" ) if cur.rowcount != 0: raise mvc_exc.ItemAlreadyStored( f'Item with that value "{value[0]}" "{value[1]}" ' f' already stored!') if table_name == ('email' or 'folders'): cur.execute( f"INSERT INTO {table_name} ({keys[0]},{keys[1]},{keys[2]},{keys[3]}) " f"VALUES ({value[0]}, {value[1]}, '{value[2]}', '{value[3]}')") elif table_name == 'users': cur.execute( f"INSERT INTO {table_name} ({keys[0]},{keys[1]},{keys[2]}) " f"VALUES ({value[0]}, '{value[1]}', {value[2]})") elif table_name == 'messages': cur.execute( f"INSERT INTO {table_name} ({keys[0]},{keys[1]},{keys[2]},{keys[3]}) " f"VALUES ({value[0]}, {value[1]}, '{value[2]}', '{value[3]}')") elif table_name == 'folders_messages': cur.execute(f"INSERT INTO {table_name} ({keys[0]},{keys[1]}) " f"VALUES ({value[0]}, {value[1]})") conn.commit() cur.close()
import mvc_exceptions as mvc_exc items = list() #global variable where we can keep the data def create_items(app_items): global items items = app_items def create_item(name, price, quantity) global items results = list(filter(lambda x: x['name'] == name, items)) if results: raise mvc_exc.ItemAlreadyStored('"{}" already stored!'.format(name)) else: item.append({'name': name, 'price': price, 'quantity': quantity}) def create_items(app_items): global items items = app_items def read_item(name): global items my_items = list(filter(lambda x: x['name'] == name, items)) if my_items: return my_items[0] else: raise mvc_exc.ItemAlreadyStored( 'Can\'t read "{}" because it\'s not stored'.format(name)) def read_item(): global items