Небольшой учебный проект с базовыми доменными моделями:
Productс полямиname,description,price,quantity.Categoryс полямиname,description,products.- Счетчики
Category.category_countиCategory.product_countобновляются автоматически при создании объектов и добавлении продуктов. - JSON-загрузчик
load_categories_from_json()создает объекты изproducts.json. Categoryхранит продукты в приватном списке и предоставляетadd_product()и свойствоproducts(форматированный вывод).Product.priceзащищен через getter/setter, аProduct.new_product()создает продукт изdict.
- Python
>= 3.12 - Dev-зависимости:
pytest,pytest-cov,flake8(см.pyproject.tomlилиrequirements-dev.txt)
python -m venv .venv
.\.venv\Scripts\pip install -r requirements-dev.txtpoetry installЗапуск тестов (покрытие генерируется настройками в pyproject.toml):
.\.venv\Scripts\python -m pytestАртефакты покрытия:
coverage.xml(XML-отчет)coverage_report.txt(краткий текстовый отчет)