Files
bracket/backend/pyproject.toml
dependabot[bot] ec4801a821 Bump pytest-cov from 7.0.0 to 7.1.0 in /backend (#1623)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 7.0.0
to 7.1.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst">pytest-cov's
changelog</a>.</em></p>
<blockquote>
<h2>7.1.0 (2026-03-21)</h2>
<ul>
<li>
<p>Fixed total coverage computation to always be consistent, regardless
of reporting settings.
Previously some reports could produce different total counts, and
consequently can make --cov-fail-under behave different depending on
reporting options.
See <code>[#641](https://github.com/pytest-dev/pytest-cov/issues/641)
&lt;https://github.com/pytest-dev/pytest-cov/issues/641&gt;</code>_.</p>
</li>
<li>
<p>Improve handling of ResourceWarning from sqlite3.</p>
<p>The plugin adds warning filter for sqlite3
<code>ResourceWarning</code> unclosed database (since 6.2.0).
It checks if there is already existing plugin for this message by
comparing filter regular expression.
When filter is specified on command line the message is escaped and does
not match an expected message.
A check for an escaped regular expression is added to handle this
case.</p>
<p>With this fix one can suppress <code>ResourceWarning</code> from
sqlite3 from command line::</p>
<p>pytest -W &quot;ignore:unclosed database in &lt;sqlite3.Connection
object at:ResourceWarning&quot; ...</p>
</li>
<li>
<p>Various improvements to documentation.
Contributed by Art Pelling in
<code>[#718](https://github.com/pytest-dev/pytest-cov/issues/718)
&lt;https://github.com/pytest-dev/pytest-cov/pull/718&gt;</code>_ and
&quot;vivodi&quot; in
<code>[#738](https://github.com/pytest-dev/pytest-cov/issues/738)
&lt;https://github.com/pytest-dev/pytest-cov/pull/738&gt;</code><em>.
Also closed
<code>[#736](https://github.com/pytest-dev/pytest-cov/issues/736)
&lt;https://github.com/pytest-dev/pytest-cov/issues/736&gt;</code></em>.</p>
</li>
<li>
<p>Fixed some assertions in tests.
Contributed by in Markéta Machová in
<code>[#722](https://github.com/pytest-dev/pytest-cov/issues/722)
&lt;https://github.com/pytest-dev/pytest-cov/pull/722&gt;</code>_.</p>
</li>
<li>
<p>Removed unnecessary coverage configuration copying (meant as a backup
because reporting commands had configuration side-effects before
coverage 5.0).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="66c8a526b1"><code>66c8a52</code></a>
Bump version: 7.0.0 → 7.1.0</li>
<li><a
href="f707662478"><code>f707662</code></a>
Make the examples use pypy 3.11.</li>
<li><a
href="6049a78478"><code>6049a78</code></a>
Make context test use the old ctracer (seems the new sysmon tracer
behaves di...</li>
<li><a
href="8ebf20bbbc"><code>8ebf20b</code></a>
Update changelog.</li>
<li><a
href="861d30e60d"><code>861d30e</code></a>
Remove the backup context manager - shouldn't be needed since coverage
5.0, ...</li>
<li><a
href="fd4c956014"><code>fd4c956</code></a>
Pass the precision on the nulled total (seems that there's some caching
goion...</li>
<li><a
href="78c9c4ecb0"><code>78c9c4e</code></a>
Only run the 3.9 on older deps.</li>
<li><a
href="4849a922e8"><code>4849a92</code></a>
Punctuation.</li>
<li><a
href="197c35e2f3"><code>197c35e</code></a>
Update changelog and hopefully I don't forget to publish release again
:))</li>
<li><a
href="14dc1c92d4"><code>14dc1c9</code></a>
Update examples to use 3.11 and make the adhoc layout example look a bit
more...</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-cov&package-manager=uv&previous-version=7.0.0&new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-24 04:11:15 +00:00

191 lines
4.5 KiB
TOML

[project]
name = "bracket-backend"
version = "0.0.1"
requires-python = ">=3.12"
dependencies = [
"aiofiles==25.1.0",
"aiohttp==3.13.3",
"aiopg==1.4.0",
"alembic==1.18.0",
"asyncpg==0.31.0",
"bcrypt==5.0.0",
"click==8.3.0",
"databases[asyncpg]==0.9.0",
"fastapi==0.128.0",
"fastapi-sso==0.21.0",
"gunicorn==25.1.0",
"heliclockter==3.0.1",
"parameterized==0.9.0",
"passlib==1.7.4",
"pydantic==2.12.4",
"pydantic_settings==2.13.0",
"pyjwt==2.12.0",
"python-dotenv==1.2.1",
"python-multipart==0.0.22",
"sentry-sdk==2.55.0",
"sqlalchemy==2.0.44",
"sqlalchemy-stubs==0.4",
"starlette==0.49.1",
"types-aiofiles==25.1.0.20251011",
"types-passlib==1.7.7.20241221",
"types-simplejson==3.20.0.20250218",
"uvicorn==0.42.0",
]
[tool.pytest.ini_options]
addopts = [
'--junitxml=.junit_report.xml',
]
junit_family = 'xunit2'
asyncio_mode = 'auto'
filterwarnings = [
'error',
'ignore:The SelectBase.c and SelectBase.columns attributes are deprecated.*:DeprecationWarning',
'ignore:pkg_resources is deprecated as an API.*:DeprecationWarning',
'ignore:Deprecated call to `pkg_resources.declare_namespace(.*)`.*:DeprecationWarning',
'ignore:.*:pytest.PytestDeprecationWarning',
'ignore:.*pytest-asyncio detected an unclosed event loop.*:DeprecationWarning',
'ignore:.*The event_loop fixture provided by pytest-asyncio has been redefined.*:DeprecationWarning',
'ignore:.*Please use `import python_multipart` instead.*:PendingDeprecationWarning',
]
[dependency-groups]
dev = [
"aioresponses==0.7.4",
"mypy==1.19.0",
"pluggy==1.6.0",
"pylint==4.0.2",
"pyrefly==0.57.1",
"pytest-asyncio==1.3.0",
"pytest-cov==7.1.0",
"pytest-xdist==3.8.0",
"pytest==9.0.1",
"ruff==0.15.0",
"vulture==2.15",
]
[tool.mypy]
junit_xml = '.junit_report.xml'
follow_imports = 'silent'
disallow_any_explicit = false
disallow_any_generics = true
check_untyped_defs = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
disallow_untyped_decorators = false
warn_unused_configs = true
disallow_subclassing_any = false
disallow_untyped_calls = false
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_return_any = true
no_implicit_reexport = true
show_error_codes = true
[tool.uv]
package = false
[[tool.uv.index]]
name = "pypi"
url = "https://pypi.org/simple"
[tool.pydantic-mypy]
init_forbid_extra = true
init_typed = true
warn_required_dynamic_aliases = true
warn_untyped_fields = true
[[tool.mypy.overrides]]
module = ['aioresponses.*']
disallow_any_explicit = false
disallow_any_generics = false
[[tool.mypy.overrides]]
module = ['fastapi_sso.*']
ignore_missing_imports = true
[tool.pylint.'MESSAGES CONTROL']
disable = [
'broad-except',
'broad-exception-raised',
'consider-iterating-dictionary',
'contextmanager-generator-missing-cleanup', # Gives false positives.
'dangerous-default-value',
'duplicate-code',
'fixme',
'not-callable',
'import-outside-toplevel',
'invalid-name',
'logging-fstring-interpolation',
'missing-docstring',
'no-name-in-module', # Gives false positives.
'protected-access',
'too-few-public-methods',
'too-many-arguments',
'too-many-locals',
'too-many-nested-blocks',
'too-many-positional-arguments',
'unspecified-encoding',
'unused-argument', # Gives false positives.
'wrong-import-position',
'unused-import', # Ruff checks this
]
[tool.bandit]
skips = [
'B101',
'B106',
'B108'
]
[tool.ruff]
line-length = 100
respect-gitignore = false
show-fixes = true
output-format = "full"
target-version = "py313"
exclude = [".venv", ".mypy_cache", ".pytest_cache", "__pycache__"]
[tool.ruff.lint]
select = [
"E",
"EXE",
# "ERA", TODO
"F",
"FA",
"FIX",
"I",
"ISC",
"PGH",
"PIE",
"PLE",
"PLW",
"RUF100",
"T20",
"TCH",
"TD",
"TID",
"UP",
"W",
]
ignore = ["FIX002", "TD002", "TD003", "TC001", "TC002", "TC003", "ISC001"]
[tool.vulture]
min_confidence = 0
paths = ["."]
exclude = [".venv"]
ignore_decorators = ["@pytest.*", "@*router*", "@app.*", "@*validator*", "@cli.command*"]
ignore_names = [
"RestartableUvicornWorker",
"_generate_next_value_",
"downgrade",
"startup_and_shutdown_uvicorn_server",
"todo*",
"upgrade",
]
sort_by_size = true
[tool.pyrefly]
ignore-missing-imports = ["fastapi_sso.*"]