Консольная система управления складом.
Python
версии3.12
или выше (исключая версию3.12.5
, на ней не работаетblack
)Poetry
версии1.8.3
или выше
- Склонируйте репозиторий:
git clone https://github.com/MegaDoge1337/otus_warehouse_management.git
- Перейдите в директорию с проектом:
cd otus_warehouse_management
- Установите зависимости:
poery install
Для запуска инструментов форматирования или тестов используйте Makefile
- Запуск линтера
make lint
- Запуск форматирования
make format
- Запуск доменных тестов
make domain-test
- Запуск тестов инфраструктуры
make infra-test
Для запуска приложения выполните скрипт main.py
:
python main.py
На каждом эта предлагается выбрать операцию
1 - Add product
2 - Add order
3 - Add customer
4 - Get customers list
5 - Close application
Choose operation:
Чтобы добавить продукт на склад, заполните название продукта, количество на складе и цену
Product name:myproducts
Product quantity:100
Product price:20
New product created: Product(id=None, name='myproducts', quantity=100, price=20)
Чтобы добавить заказ, заполните id продуктов через запятую
Product ids (separate by comma):1,2
New order created: Order(id=None, products=[Product(id=1, name='test1', quantity=1, price=100.0), Product(id=2, name='test2', quantity=10, price=50.0)])
Чтобы добавить покупателя, заполните имя покупателя и id заказов через запятую
Order ids (separate by comma):2,3
New customer created: Customer(id=None, name='Sam', orders=[Order(id=2, products=[Product(id=2, name='test2', quantity=10, price=50.0), Product(id=1, name='test1', quantity=1, price=100.0)]), Order(id=3, products=[Product(id=1, name='test1', quantity=1, price=100.0), Product(id=2, name='test2', quantity=10, price=50.0)])])
Список покупателей ввыводится в формате "Имя покупателя >> Список заказов"
[Customer John Doe] >> ORDERS [[Order(id=1, products=[Product(id=1, name='test1', quantity=1, price=100.0), Product(id=2, name='test2', quantity=10, price=50.0)]), Order(id=2, products=[Product(id=2, name='test2', quantity=10, price=50.0), Product(id=1, name='test1', quantity=1, price=100.0)])]]
[Customer Sam] >> ORDERS [[Order(id=2, products=[Product(id=2, name='test2', quantity=10, price=50.0), Product(id=1, name='test1', quantity=1, price=100.0)]), Order(id=3, products=[Product(id=1, name='test1', quantity=1, price=100.0), Product(id=2, name='test2', quantity=10, price=50.0)])]]