urban-meal-delivery/pyproject.toml
Alexander Hess fdcc93a1ea
Add an ORM layer
- use SQLAlchemy (and PostgreSQL) to model the ORM layer
- add the following models:
  + Address => modelling all kinds of addresses
  + City => model the three target cities
  + Courier => model the UDP's couriers
  + Customer => model the UDP's customers
  + Order => model the orders received by the UDP
  + Restaurant => model the restaurants active on the UDP
- so far, the emphasis lies on expression the Foreign Key
  and Check Constraints that are used to validate the assumptions
  inherent to the cleanded data
- provide database-independent unit tests with 100% coverage
- provide additional integration tests ("e2e") that commit data to
  a PostgreSQL instance to validate that the constraints work
- adapt linting rules a bit
2020-08-11 10:28:17 +02:00

66 lines
1.6 KiB
TOML

[build-system]
build-backend = "poetry.masonry.api"
requires = ["poetry>=0.12"]
[tool.black]
line-length = 88
skip-string-normalization = true # wemake-python-styleguide enforces single quotes
target-version = ["py38"]
[tool.poetry]
name = "urban-meal-delivery"
version = "0.2.0.dev0"
authors = ["Alexander Hess <alexander@webartifex.biz>"]
description = "Optimizing an urban meal delivery platform"
keywords = [
"data-science",
"meal-delivery",
"vehicle-routing-problem",
]
license = "MIT"
readme = "README.md"
homepage = "https://github.com/webartifex/urban-meal-delivery"
repository = "https://github.com/webartifex/urban-meal-delivery"
[tool.poetry.dependencies]
python = "^3.8"
click = "^7.1.2"
psycopg2 = "^2.8.5" # adapter for PostgreSQL
python-dotenv = "^0.14.0"
sqlalchemy = "^1.3.18"
[tool.poetry.dev-dependencies]
# Task Runners
nox = "^2020.5.24"
pre-commit = "^2.6.0"
# Code Formatters
autoflake = "^1.3.1"
black = "^19.10b0"
isort = "^4.3.21" # TODO (isort): not ^5.2.2 due to pylint and wemake-python-styleguide
# (Static) Code Analyzers
flake8 = "^3.8.3"
flake8-annotations = "^2.3.0"
flake8-black = "^0.2.1"
flake8-expression-complexity = "^0.0.8"
flake8-pytest-style = "^1.2.2"
mypy = "^0.782"
pylint = "^2.5.3"
wemake-python-styleguide = "^0.14.1" # flake8 plug-in
# Test Suite
packaging = "^20.4" # used to test the packaged version
pytest = "^6.0.1"
pytest-cov = "^2.10.0"
xdoctest = { version="^0.13.0", extras=["optional"] }
# Documentation
sphinx = "^3.1.2"
sphinx-autodoc-typehints = "^1.11.0"
[tool.poetry.scripts]
umd = "urban_meal_delivery.console:main"