[tool.poetry] name = "brewman" version = "11.1.9" description = "Accounting plus inventory management for a restaurant." authors = ["tanshu "] [tool.poetry.dependencies] python = "^3.11" uvicorn = {extras = ["standard"], version = "^0.23.2"} fastapi = {extras = ["all"], version = "^0.101.0"} python-jose = {extras = ["cryptography"], version = "^3.3.0"} passlib = {extras = ["bcrypt"], version = "^1.7.4"} psycopg2-binary = "^2.9.7" SQLAlchemy = "^2.0.19" python-multipart = "^0.0.6" PyJWT = "^2.8.0" alembic = "^1.11.2" itsdangerous = "^2.1.2" python-dotenv = "^1.0.0" pydantic = {extras = ["dotenv"], version = "^2.1.1"} starlette = "^0.27.0" pandas = "^2.0.0" arq = "^0.25.0" openpyxl = "^3.1.2" gunicorn = "^21.2.0" [tool.poetry.group.dev.dependencies] flake8 = "^6.0.0" black = "^23.7.0" isort = {extras = ["toml"], version = "^5.12.0"} pre-commit = "^3.3.3" mypy = "^1.4.1" types-python-jose = "^3.3.4.8" ruff = "^0.0.280" bandit = "^1.7.5" safety = "^2.3.5" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.ruff] line-length = 120 # Assume Python 3.11. target-version = "py311" [tool.mypy] # --strict disallow_any_generics = true disallow_subclassing_any = true disallow_untyped_calls = true disallow_untyped_defs = true disallow_incomplete_defs = true check_untyped_defs = true disallow_untyped_decorators = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_return_any = true warn_unused_configs = true strict_equality = true plugins = ["sqlalchemy.ext.mypy.plugin"] # --strict end [tool.isort] profile = "black" atomic = true include_trailing_comma = true lines_after_imports = 2 lines_between_types = 1 use_parentheses = true src_paths = ["poetry", "tests"] skip_glob = ["*/setup.py"] filter_files = true known_first_party = "poetry" [tool.black] line-length = 120 include = '\.pyi?$' exclude = ''' /( \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | _build | buck-out | build | dist | tests/.*/setup.py )/ '''