Files
bracket/backend/pyproject.toml
dependabot[bot] 0b8e32af0a Bump sentry-sdk from 2.58.0 to 2.59.0 in /backend (#1704)
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from
2.58.0 to 2.59.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-python/releases">sentry-sdk's
releases</a>.</em></p>
<blockquote>
<h2>2.59.0</h2>
<h3>New Features </h3>
<h4>Langchain</h4>
<ul>
<li>Record <code>run_name</code> as <code>gen_ai.function_id</code> on
Invoke Agent Spans by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5926">#5926</a></li>
<li>Record <code>run_name</code> in <code>on_tool_start</code> by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5925">#5925</a></li>
<li>Record <code>run_name</code> in <code>on_chat_model_start</code> by
<a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5924">#5924</a></li>
</ul>
<h4>Other</h4>
<ul>
<li>(ci) Cancel in-progress PR workflows on new commit push by <a
href="https://github.com/joshuarli"><code>@​joshuarli</code></a> in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5994">#5994</a></li>
<li>(consts) Add updated span convention constants to SPANDATA by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6093">#6093</a></li>
<li>(fastapi) Support span streaming in active thread tracking by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6118">#6118</a></li>
<li>(httpx) Migrate to span first by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6084">#6084</a></li>
<li>(huggingface_hub) Migrate to span first by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6124">#6124</a></li>
<li>(mcp) Migrate to span first by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6131">#6131</a></li>
<li>Add <code>db.driver.name</code> spans to database integrations by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6082">#6082</a></li>
</ul>
<h3>Bug Fixes 🐛</h3>
<p>We've put additional data that might contain sensitive information,
like GraphQL documents, behind the <code>send_default_pii</code>
option.</p>
<h4>Httpx</h4>
<ul>
<li>Consistently early-exit when adding request source by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6151">#6151</a></li>
<li>Set <code>code.namespace</code> and <code>code.function</code>
instead of <code>code.function.name</code> in span streaming by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6150">#6150</a></li>
</ul>
<h4>Langchain</h4>
<ul>
<li>Record <code>run_name</code> as <code>gen_ai.function_id</code> for
text completions by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6073">#6073</a></li>
<li>Set agent name as <code>gen_ai.agent.name</code> for chat and tool
spans by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5877">#5877</a></li>
</ul>
<h4>Other</h4>
<ul>
<li>(asgi) Use <code>inspect.iscoroutinefunction</code> on Python 3.14+
by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6135">#6135</a></li>
<li>(batcher) Reset lock and flusher in child after fork by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6163">#6163</a></li>
<li>(google_genai) Redact binary data in inline_data and fix multi-part
message extraction by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/5977">#5977</a></li>
<li>(grpc) Add isolation_scope to async server interceptor by <a
href="https://github.com/robinvd"><code>@​robinvd</code></a> in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5940">#5940</a></li>
<li>(metrics,logs) Don't attach <code>span_id</code> if no active span
by <a href="https://github.com/sentrivana"><code>@​sentrivana</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6162">#6162</a></li>
<li>(monitor) Release <code>Monitor._thread_lock</code> after fork (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6148">#6148</a>)
by <a href="https://github.com/vokracko"><code>@​vokracko</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6159">#6159</a></li>
<li>(openai-agents) Resolve agent from <code>bindings</code> for
openai-agents &gt;= 0.14 by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6102">#6102</a></li>
<li>(profiler) Stop nulling buffer on teardown by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6075">#6075</a></li>
<li>(quart) Use <code>inspect.iscoroutinefunction</code> when Quart does
by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6133">#6133</a></li>
<li>(security) Prevent GitHub script injection in update-tox workflow by
<a
href="https://github.com/fix-it-felix-sentry"><code>@​fix-it-felix-sentry</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6171">#6171</a></li>
<li>(starlette/fastapi) Use <code>inspect.iscoroutinefunction</code>
when Starlette does by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6134">#6134</a></li>
<li>(tornado) Make sure context manager doesn't double yield by <a
href="https://github.com/sentrivana"><code>@​sentrivana</code></a> in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6152">#6152</a></li>
<li>Introduce <code>_get_current_streamed_span()</code> to keep types
backwards compatible by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6177">#6177</a></li>
</ul>
<h3>Internal Changes 🔧</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md">sentry-sdk's
changelog</a>.</em></p>
<blockquote>
<h2>2.59.0</h2>
<h3>New Features </h3>
<h4>Langchain</h4>
<ul>
<li>Record <code>run_name</code> as <code>gen_ai.function_id</code> on
Invoke Agent Spans by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5926">#5926</a></li>
<li>Record <code>run_name</code> in <code>on_tool_start</code> by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5925">#5925</a></li>
<li>Record <code>run_name</code> in <code>on_chat_model_start</code> by
<a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5924">#5924</a></li>
</ul>
<h4>Other</h4>
<ul>
<li>(ci) Cancel in-progress PR workflows on new commit push by <a
href="https://github.com/joshuarli"><code>@​joshuarli</code></a> in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5994">#5994</a></li>
<li>(consts) Add updated span convention constants to SPANDATA by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6093">#6093</a></li>
<li>(fastapi) Support span streaming in active thread tracking by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6118">#6118</a></li>
<li>(httpx) Migrate to span first by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6084">#6084</a></li>
<li>(huggingface_hub) Migrate to span first by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6124">#6124</a></li>
<li>(mcp) Migrate to span first by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6131">#6131</a></li>
<li>Add <code>db.driver.name</code> spans to database integrations by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6082">#6082</a></li>
</ul>
<h3>Bug Fixes 🐛</h3>
<p>We've put additional data that might contain sensitive information,
like GraphQL documents, behind the <code>send_default_pii</code>
option.</p>
<h4>Httpx</h4>
<ul>
<li>Consistently early-exit when adding request source by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6151">#6151</a></li>
<li>Set <code>code.namespace</code> and <code>code.function</code>
instead of <code>code.function.name</code> in span streaming by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6150">#6150</a></li>
</ul>
<h4>Langchain</h4>
<ul>
<li>Record <code>run_name</code> as <code>gen_ai.function_id</code> for
text completions by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6073">#6073</a></li>
<li>Set agent name as <code>gen_ai.agent.name</code> for chat and tool
spans by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5877">#5877</a></li>
</ul>
<h4>Other</h4>
<ul>
<li>(asgi) Use <code>inspect.iscoroutinefunction</code> on Python 3.14+
by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6135">#6135</a></li>
<li>(batcher) Reset lock and flusher in child after fork by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6163">#6163</a></li>
<li>(google_genai) Redact binary data in inline_data and fix multi-part
message extraction by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/5977">#5977</a></li>
<li>(grpc) Add isolation_scope to async server interceptor by <a
href="https://github.com/robinvd"><code>@​robinvd</code></a> in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/5940">#5940</a></li>
<li>(metrics,logs) Don't attach <code>span_id</code> if no active span
by <a href="https://github.com/sentrivana"><code>@​sentrivana</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6162">#6162</a></li>
<li>(monitor) Release <code>Monitor._thread_lock</code> after fork (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6148">#6148</a>)
by <a href="https://github.com/vokracko"><code>@​vokracko</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6159">#6159</a></li>
<li>(openai-agents) Resolve agent from <code>bindings</code> for
openai-agents &gt;= 0.14 by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6102">#6102</a></li>
<li>(profiler) Stop nulling buffer on teardown by <a
href="https://github.com/ericapisani"><code>@​ericapisani</code></a> in
<a
href="https://redirect.github.com/getsentry/sentry-python/pull/6075">#6075</a></li>
<li>(quart) Use <code>inspect.iscoroutinefunction</code> when Quart does
by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6133">#6133</a></li>
<li>(security) Prevent GitHub script injection in update-tox workflow by
<a
href="https://github.com/fix-it-felix-sentry"><code>@​fix-it-felix-sentry</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6171">#6171</a></li>
<li>(starlette/fastapi) Use <code>inspect.iscoroutinefunction</code>
when Starlette does by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6134">#6134</a></li>
<li>(tornado) Make sure context manager doesn't double yield by <a
href="https://github.com/sentrivana"><code>@​sentrivana</code></a> in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6152">#6152</a></li>
<li>Introduce <code>_get_current_streamed_span()</code> to keep types
backwards compatible by <a
href="https://github.com/alexander-alderman-webb"><code>@​alexander-alderman-webb</code></a>
in <a
href="https://redirect.github.com/getsentry/sentry-python/pull/6177">#6177</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="689cb97e33"><code>689cb97</code></a>
Update CHANGELOG.md</li>
<li><a
href="397dda917f"><code>397dda9</code></a>
release: 2.59.0</li>
<li><a
href="c0c254a8f8"><code>c0c254a</code></a>
test: Rename file (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6194">#6194</a>)</li>
<li><a
href="d90a9238cc"><code>d90a923</code></a>
ref(batcher): Only flush the bucket that triggered the flush event (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6168">#6168</a>)</li>
<li><a
href="6436518b21"><code>6436518</code></a>
ci: 🤖 Update test matrix with new releases (05/04) (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6186">#6186</a>)</li>
<li><a
href="98294ceeb7"><code>98294ce</code></a>
fix: Introduce <code>_get_current_streamed_span()</code> to keep types
backwards compati...</li>
<li><a
href="66b3c6b817"><code>66b3c6b</code></a>
test(fastmcp): Span streaming tests (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6167">#6167</a>)</li>
<li><a
href="b5735abb51"><code>b5735ab</code></a>
fix(batcher): Reset lock and flusher in child after fork (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6163">#6163</a>)</li>
<li><a
href="fc3eab43a6"><code>fc3eab4</code></a>
fix(metrics,logs): Don't attach <code>span_id</code> if no active span
(<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6162">#6162</a>)</li>
<li><a
href="8e5bd96c7a"><code>8e5bd96</code></a>
test: Assert presence of profile chunks after shutdown (<a
href="https://redirect.github.com/getsentry/sentry-python/issues/6174">#6174</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/getsentry/sentry-python/compare/2.58.0...2.59.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sentry-sdk&package-manager=uv&previous-version=2.58.0&new-version=2.59.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-06-03 22:00:53 +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.4",
"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.136.0",
"fastapi-sso==0.21.0",
"gunicorn==25.3.0",
"heliclockter==3.0.1",
"parameterized==0.9.0",
"passlib==1.7.4",
"pydantic==2.13.2",
"pydantic_settings==2.14.0",
"pyjwt==2.12.0",
"python-dotenv==1.2.2",
"python-multipart==0.0.27",
"sentry-sdk==2.59.0",
"sqlalchemy==2.0.44",
"sqlalchemy-stubs==0.4",
"starlette==1.0.0",
"types-aiofiles==25.1.0.20251011",
"types-passlib==1.7.7.20241221",
"types-simplejson==3.20.0.20250218",
"uvicorn==0.46.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.20.0",
"pluggy==1.6.0",
"pylint==4.0.2",
"pyrefly==0.63.1",
"pytest-asyncio==1.3.0",
"pytest-cov==7.1.0",
"pytest-xdist==3.8.0",
"pytest==9.0.3",
"ruff==0.15.0",
"vulture==2.16",
]
[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.*"]