Example #1
0
def get_goods_list():
    file_path = os.path.abspath(input('Введите путь к файлу:').strip('"\''))
    if not os.path.exists(file_path):
        print('Такого файла нет')
        logging.error('Нет файла {}'.format(file_path))
    elif not os.path.isfile(file_path):
        print('Зто не файл')
        logging.error('{} - не файл'.format(file_path))
    else:
        shutil.copy(file_path, 'data')
        goods_list = GoodInfoList()
        goods_list.add_from_file(file_path)
        return goods_list
Example #2
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-rname', default='goods2.info')
    parser.add_argument('-wname')
    namespace = parser.parse_args()

    print('---------------- Проблемы при считывании файла --------------')
    log_rep.info(
        '---------------- Проблемы при считывании файла --------------')
    goods_info_list = GoodInfoList()
    goods_info_list.read_file(namespace.rname)

    print('----------------- Вывод информации о товарах ---------------')
    log_rep.info(
        '----------------- Вывод информации о товарах ---------------')

    msg = "Общее количество товаров - {total_count}" \
        .format(total_count=len(goods_info_list))
    print(msg)
    log_rep.info(msg)

    msg = "Средняя цена товара - {average_cost}" \
        .format(average_cost=goods_info_list.average_price())
    print(msg)
    log_rep.info(msg)

    for element in goods_info_list.most_expensive_products():
        msg = "Самый дорогой товар - {good_name}, Цена - {good_cost}" \
            .format(good_name=element.product_name,
                    good_cost=element.cost_product)
        print(msg)
        log_rep.info(msg)

    for element in goods_info_list.ending_products():
        msg = "Заканчивается товар - {good_name}, Осталось - {good_cost}" \
            .format(good_name=element.product_name,
                    good_cost=element.cost_product)
        print(msg)
        log_rep.info(msg)

    if namespace.wname:
        print('---------------- Проблемы при записи файла --------------')
        log_rep.info(
            '---------------- Проблемы при записи файла --------------')
        goods_info_list.write_file(namespace.wname)
Example #3
0
    def setUp(self):
        """
        setUp function for set data
        """

        with open("config_script.json", "r") as json_data:
            config_data = json.load(json_data)

            logging.basicConfig(filename=config_data["filename_logging"],
                                filemode=config_data["filemode_logging"],
                                level=config_data["level_logging"],
                                format=config_data["format_logging"])

        self.database = DB_Worker()
        self.info_list = GoodInfoList()
        self.file_goods = FileWork()
        self.file_data = self.file_goods.select_path_file("test")

        if len(self.file_data) > 0:
            self.info_list.get_from_file(self.file_data)
Example #4
0
# товары с истёкшим сроком годности, метод должен возвращать список товаров GoodInfoList

# добавьте возможность получения элемента по ключу good_name в GoodInfoList
# изменив метод __getitem__()
# если таких элементов несколько верните список GoodInfoList

# Добавьте в модуль reporter пример демонстрации новых возможностей программы
# Для проверки используйте файл, приложенный к заданию goods2.info
# Данные в файле находятся в в формате:
# Имя товара:Цена:Количество:Дата поставки:Время хранения(в днях)

from good_info import GoodInfoList

if __name__ == "__main__":

    goods_info_list = GoodInfoList()
    goods_info_list.read_file('goods2_test.info')

    print('------------------- Содержимое файла -----------------')

    print(goods_info_list)

    print()
    print('Сортировка по name и по убыванию')
    goods_info_list.sort('name', True)
    for element in goods_info_list.goods_list:
        print(element)

    print()
    print('Cреднее отклонение для всех цен товаров')
    print(goods_info_list.get_std())
Example #5
0
 def setUp(self):
     self.goods_list = GoodInfoList([])
     self.goods_list.add_from_file('goods-test.info')