[project] name = "baby-monitor" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.12" dependencies = [ "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.0.0.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