78 lines
2.1 KiB
TOML
78 lines
2.1 KiB
TOML
[project]
|
|
name = "baby-monitor"
|
|
version = "0.1.0"
|
|
description = "Add your description here"
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"bcrypt>=4.0.0",
|
|
"fastapi>=0.121.0",
|
|
"sqlalchemy>=2.0.0",
|
|
"uvicorn>=0.38.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
redis = [
|
|
"redis>=5.0.0",
|
|
]
|
|
postgres = [
|
|
"psycopg2-binary>=2.9.0",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/baby_monitor"]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"httpx>=0.28.1",
|
|
"mypy>=1.18.2",
|
|
"pre-commit>=4.3.0",
|
|
"prettier>=0.0.7",
|
|
"pytest>=8.4.2",
|
|
"pytest-cov>=7.0.0",
|
|
"pyupgrade>=3.21.0",
|
|
"ruff>=0.14.3",
|
|
"types-psycopg2>=2.9.21.20251012",
|
|
]
|
|
|
|
[[tool.uv.index]]
|
|
name = "threadripper-proxpi-cache"
|
|
url = "http://10.184.20.2:5001/index/"
|
|
default = true
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
mypy_path = "src"
|
|
warn_return_any = true # nudge to use stricter types
|
|
warn_unused_configs = true # nudge to remove unused configs
|
|
disallow_untyped_defs = true # disallow untyped function definitions
|
|
disallow_incomplete_defs = true # ensure all parts of a function has type annotation
|
|
check_untyped_defs = true # dont skip untyped functions
|
|
disallow_untyped_decorators = false # allow untyped decorators to keep code more readable
|
|
no_implicit_optional = true # disallow implicit optional types leading to None-mess
|
|
warn_redundant_casts = true # nudge to use explicit type casts
|
|
warn_unused_ignores = true # nudge to remove unused ignores
|
|
warn_no_return = true # catch missing return statements
|
|
warn_unreachable = true # catch unreachable code
|
|
show_error_codes = true # show error codes in output
|
|
explicit_package_bases = true # reduce risk of import confusion
|
|
namespace_packages = true # enable namespace packages
|
|
|
|
[tool.pytest.ini_options]
|
|
markers = [
|
|
"unit: marks tests as unit tests",
|
|
"integration: marks tests as integration tests",
|
|
]
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "redis.*"
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = "showcase_data_definitions.*"
|
|
ignore_missing_imports = true
|