@@ -51,12 +51,12 @@ requires = ["hatchling"]
5151build-backend = " hatchling.build"
5252
5353[tool .hatch .build .targets .wheel ]
54- packages = [" src " ]
54+ packages = [" app " ]
5555
5656[tool .ruff ]
5757target-version = " py312"
5858line-length = 88
59- src = [" src " ]
59+ src = [" app " ]
6060exclude = [" alembic" ]
6161
6262[tool .ruff .lint ]
@@ -92,9 +92,10 @@ ignore = [
9292[tool .ruff .lint .per-file-ignores ]
9393"tests/**/*.py" = [" S101" , " ARG001" ]
9494"conftest.py" = [" S107" ]
95- "src/core/rate_limit.py" = [" S110" ]
96- "src/config.py" = [" F401" ]
97- "src/schemas/**/*.py" = [" RUF012" ]
95+ "app/core/rate_limit.py" = [" S110" ]
96+ "app/config.py" = [" F401" ]
97+ "app/**/schemas.py" = [" RUF012" ]
98+ "app/core/error_schemas.py" = [" RUF012" ]
9899
99100[tool .mypy ]
100101python_version = " 3.12"
@@ -111,7 +112,7 @@ module = ["tests.*", "conftest"]
111112ignore_errors = true
112113
113114[[tool .mypy .overrides ]]
114- module = [" src. core.logging" ]
115+ module = [" core.logging" ]
115116disable_error_code = [" no-any-return" ]
116117
117118[[tool .mypy .overrides ]]
@@ -126,21 +127,29 @@ module = [
126127ignore_missing_imports = true
127128
128129[[tool .mypy .overrides ]]
129- module = [" src. config" ]
130+ module = [" config" ]
130131implicit_reexport = true
131132
132133[[tool .mypy .overrides ]]
133- module = [" src. core.enums" , " src. core.security" ]
134+ module = [" core.enums" , " core.security" ]
134135disable_error_code = [" return-value" , " no-any-return" ]
135136
136137[[tool .mypy .overrides ]]
137- module = [" src.repositories.* " ]
138+ module = [" user.repository " , " auth.repository " , " core.base_repository " ]
138139disable_error_code = [" return-value" , " no-any-return" , " attr-defined" ]
139140
140141[[tool .mypy .overrides ]]
141- module = [" src.factory" ]
142+ module = [" user.service" , " auth.service" ]
143+ disable_error_code = [" no-any-return" ]
144+
145+ [[tool .mypy .overrides ]]
146+ module = [" factory" ]
142147disable_error_code = [" arg-type" ]
143148
149+ [[tool .mypy .overrides ]]
150+ module = [" auth.routes" ]
151+ disable_error_code = [" misc" ]
152+
144153[tool .pydantic-mypy ]
145154init_forbid_extra = true
146155init_typed = true
@@ -187,7 +196,9 @@ disable = [
187196 " C0304" , # final-newline-missing
188197 " C0305" , # trailing-newlines
189198 " C0411" , # wrong-import-order
199+ " C0412" , # ungrouped-imports (style preference)
190200 " E0401" , # import-error (uuid6/structlog/pwdlib not found by pylint)
201+ " E0611" , # no-name-in-module (false positive for config re-exports)
191202 " E1102" , # not-callable (false positive for SQLAlchemy func.now/count)
192203 " E1136" , # unsubscriptable-object (false positive for generics)
193204 " R0801" , # similar-lines
0 commit comments