@@ -46,10 +46,6 @@ pytest-parametrize-cases = "^0.1.2"
4646pytest-asyncio = " ^0.26.0"
4747diff-cover = " ^9.6.0"
4848
49- [tool .isort ]
50- line_length = 119
51- multi_line_output = 5
52-
5349[tool .pytest .ini_options ]
5450DJANGO_SETTINGS_MODULE = " thenewboston.project.settings"
5551django_find_project = false
@@ -64,13 +60,41 @@ env = [
6460 " THENEWBOSTON_SETTING_SECRET_KEY = dummy" ,
6561]
6662
67- [tool .yapf ]
68- align_closing_bracket_with_visual_indent = true
69- based_on_style = " google"
70- coalesce_brackets = true
71- column_limit = 119
72- dedent_closing_brackets = true
63+ [tool .ruff ]
64+ line-length = 120
65+ indent-width = 4
66+ target-version = " py313"
67+ include = [" *.py" ]
68+ exclude = [
69+ " .git" ,
70+ " .mypy_cache" ,
71+ " __pycache__" ,
72+ " venv"
73+ ]
74+
75+ [tool .ruff .lint ]
76+ # TODO(dmu) MEDIUM: Consider enabling all rules (`select = ["ALL"]`), but this will require
77+ # adding plenty of ignores manually
78+ ignore = [" A005" , " D403" , " F403" , " F405" ]
79+
80+ [tool .ruff .lint .mccabe ]
81+ max-complexity = 12
82+
83+ [tool .ruff .lint .per-file-ignores ]
84+ "thenewboston/project/settings/templates/settings.dev.py" = [" F821" ]
85+ "thenewboston/project/settings/templates/settings.unittests.py" = [" F821" ]
86+
87+ [tool .ruff .lint .isort ]
88+ combine-as-imports = true
89+ relative-imports-order = " closest-to-furthest"
90+ known-first-party = [" app" , " tests" ]
91+
92+ [tool .ruff .format ]
93+ quote-style = " single"
94+ indent-style = " space"
95+ skip-magic-trailing-comma = false
96+ line-ending = " auto"
7397
7498[build-system ]
7599requires = [" poetry-core" ]
76- build-backend = " poetry.core.masonry.api"
100+ build-backend = " poetry.core.masonry.api"
0 commit comments