Пример #1
0
    def test_save_pickle_on_big_data(self):
        data = [a for a in range(30000)]
        data += ['hello {}'.format(a) for a in range(30000)]

        db.pickle_dump(self.data_car, self.path)
        data2 = db.pickle_load(self.path)
        self.assertEqual(data, data2)
Пример #2
0
def search_by_name(data, path):

    data = db.pickle_load(path)

    try:
    
        search_by_name = int(input("Для поиска по имени целиком введите 1\nДля поиска по части имени введите 2\n"))



        if search_by_name == 1:
    
            a = input('Введите марку автомобиля: ')
            a = a.strip()
            if a in data:
                print ('\nНайдены следующие машины: ')
                s = '{} (мощность - {})'
                print(s.format(a, data[a]))

    
        if search_by_name == 2:
    
            i = input('Введите часть названия: ')
            i = i.strip()
            for a in data:
                if i in a:
                    print ('\nНайдены следующие машины: ')
                    s = '{} (мощность - {})'
                    print(s.format(a, data[a]))

    except ValueError:
        print ('Введено неверное значение (используйте цифры 1 или 2)')
Пример #3
0
    def test_save_pickle_test(self):
        self.assertFalse(os.path.exists(self.path))

        db.pickle_dump(self.path, self.data_car)

        self.assertTrue(os.path.exists(self.path))

        data_car2 = db.pickle_load(self.path)
        self.assertEqual(self.data_car, data_car2)
Пример #4
0
def new_main_prog(path, new_path, new_menu_item):

    data = db.pickle_load(path)
    new_data = db.new_pickle_load(new_path)
    while new_menu_item != '0':
        if new_menu_item == '1':
            db.create_new_data(data, path, new_path, new_data)
        elif new_menu_item == '2':
            debug.new_func_output(new_data, new_path)
        elif new_menu_item == '3':
            db.car_move(new_data, new_path)
        new_menu_item = new_main_menu()
Пример #5
0
def main_prog(path, menu_item):
    

    data = db.pickle_load(path)
    while menu_item != '0':
        if menu_item == '1':
            db.data_input(data, path)
        elif menu_item == '2':
            debug.func_output(data, path)
        elif menu_item == '3':
            search_by_name(data, path)
        elif menu_item == '4':
            search_by_power(data, path)
        elif menu_item == '5':
            edit_elements(data, path)
        menu_item = main_menu()
Пример #6
0
def search_by_power(data, path):

    data = db.pickle_load(path)

    try:

        search_by_power = int(input("Для поиска по одному значению мощности введите 1\nДля поиска в промежутке между двумя значениями нажмите 2\n"))
    
        if search_by_power == 1:
    
            power = int(input('Введите значение мощности: '))
    
            lst = []
            lst_lower = []
            lst_higher = []
    
            for i in data:
                data[i] = int(data[i])
                if data[i] == power:
                    lst.append([i, data [i]])
                elif data[i] < power:
                    lst_lower.append([i, data [i]])
                elif data[i] > power:
                    lst_higher.append([i, data [i]])
    
            print('Автомобили с мощностью равной введенной:', lst)
            print('Автомобили с мощностью меньше введенной:', lst_lower)
            print('Автомобили с мощностью выше введенной:', lst_higher)
    
        if search_by_power == 2:
    
            lst_low_up = []
    
            power_lower = int(input('Введите нижнее значение мощности: '))
            power_higher = int(input('Введите верхнее значение мощности: '))
    
            for i in data:
                if power_lower <= int( data[i] ) <= power_higher:
                    lst_low_up.append([i, data[i]])
            if lst_low_up != []:
                s = 'В промежутке между {} и {} находятся следующие машины: \n'
                print(s.format(power_lower, power_higher), lst_low_up)
            else:
                print('В заданном промежутке нет ни одной машины')	

    except ValueError:
        print ('Введено неверное значение (используйте цифры 1 или 2)')
Пример #7
0
def edit_elements(data, path):

    data = db.pickle_load(path)

    action = input('\nЧтобы редактировать данные, введите 1\nЧтобы удалить автомобиль, нажмите 2\n')

    if action == '1':
        r = input('Введите название автомобиля, который хотите отредактировать: \n')
        for i in data:
            if r == i:
                data.pop(r)
                new_car = input('Введите новое название: ')
                new_power = input('Введите мощность: ')
                data [new_car] = new_power
                break

    if action == '2':
        r = input('Введите название автомобиля, который хотите удалить: \n')
        for i in data:
            if r == i:
                data.pop(r)
                break

    db.pickle_save(data, path)
Пример #8
0
import db
flnm = 'cars.pickle'
allcars = db.pickle_load(flnm)

values_list=[] # этот кусок кода - для фильтрации и поиска
keys_list=[]
if len(allcars) != 0:
	try:		
		for keys,values in allcars.items():
			values_list.append(values)
			keys_list.append(keys)
	except:
		print ('Что-то пошло не так')


if __name__ == "__main__":
	import db, debug
	import pickle, sys, os



	while True:
		wtd=db.in_out('Поиск или Работа с данным?:')
		if wtd == 'Работа' or wtd == 'работа' or wtd == 'Работа с данными' or wtd == 'работа с данными':
			data = debug.proverka(debug.cycle)
			break
		elif wtd == 'Поиск' or wtd == 'поиск':
			debug.s_earch()
		else:
			print ('Ошибка, попробуйте еще раз')