Files
bracket/backend/pyproject.toml
dependabot[bot] 0d8ee4adf9 Bump pyrefly from 0.58.0 to 0.60.0 in /backend (#1647)
Bumps [pyrefly](https://github.com/facebook/pyrefly) from 0.58.0 to
0.60.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/facebook/pyrefly/releases">pyrefly's
releases</a>.</em></p>
<blockquote>
<h2>Pyrefly v0.60.0</h2>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/facebook/pyrefly/compare/0.59.1...0.60.0">https://github.com/facebook/pyrefly/compare/0.59.1...0.60.0</a></p>
<h2>Pyrefly v0.59.1</h2>
<p>Fixed a performance regression in 0.59.0.</p>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/facebook/pyrefly/compare/0.59.0...0.59.1">https://github.com/facebook/pyrefly/compare/0.59.0...0.59.1</a></p>
<h2>Pyrefly v0.59.0</h2>
<p><strong>Status : Beta</strong><br />
<em><strong>Release date:</strong> March 30, 2026</em></p>
<p>Pyrefly v0.59.0 bundles <strong>153 commits</strong> from <strong>20
contributors</strong>.</p>
<hr />
<h2> New &amp; Improved</h2>
<table>
<thead>
<tr>
<th align="left">Area</th>
<th align="left">What’s new</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><strong>Type Checking</strong></td>
<td align="left">- You can now use <code>while...else</code> statements
with returns in the <code>else</code> clause without triggering a false
positive <code>missing-explicit-return</code> error. <!-- raw HTML
omitted --><!-- raw HTML omitted -->- Pyrefly now correctly handles type
inference for nested empty dictionaries when constructing TypedDict
instances, avoiding <code>implicit-any</code> errors. <!-- raw HTML
omitted --><!-- raw HTML omitted -->- Error messages now highlight
related code with inline labels; for example, an unsupported * operation
will show the types of both operands directly in the source snippet</td>
</tr>
<tr>
<td align="left"><strong>Language Server</strong></td>
<td align="left">- LSP hover information for classes now displays
constructor signature and docstring. <!-- raw HTML omitted --><!-- raw
HTML omitted -->- Support additional LSP functionality for notebooks,
including find-references and rename.</td>
</tr>
<tr>
<td align="left"><strong>Performance</strong></td>
<td align="left">- Faster typechecking in large pythonc codebases, up to
2x faster on recent benchmarks on real world projects <!-- raw HTML
omitted --><!-- raw HTML omitted -->- Reduced CPU usage through smarter
caching of module resolution results <!-- raw HTML omitted --><!-- raw
HTML omitted -->- Improved performance of the LSP server by reducing
redundant workspace diagnostic publishes.</td>
</tr>
</tbody>
</table>
<hr />
<h2>🐛 bug fixes</h2>
<p>We closed 16 bug issues this release 👏</p>
<ul>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2026">#2026</a>:
Fixed an issue where recursive bounded generics were incorrectly
reported as <code>object</code>, ensuring accurate type checking.</li>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2812">#2812</a>:
Resolved a false positive <code>invalid-type-var</code> error when
persisting the <code>get</code> method of a fully-annotated
<code>dict</code>.</li>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2804">#2804</a>:
Fixed an <code>implicit-any</code> false positive that occurred with
TypedDict items, improving code readability.</li>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2868">#2868</a>:
Pyrefly now correctly recognizes <code>while...else</code> statements
with returns in the <code>else</code> clause as exhaustive.</li>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2814">#2814</a>:
Enhanced hover information for <code>datetime.datetime</code> imports to
display constructor signatures and docstrings.</li>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2896">#2896</a>:
Fixed a <code>bad-argument-type</code> error that occurred when using
double-underscore arguments.</li>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2893">#2893</a>:
Pyrefly now correctly handles dict Literal key types as subtypes of str
key types.</li>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2865">#2865</a>:
Resolved an issue where tuple subclasses with overridden
<code>__getitem__</code> were not recognized.</li>
<li><a
href="https://redirect.github.com/facebook/pyrefly/issues/2871">#2871</a>:
Fixed a false positive error when using <code>isinstance</code> with
<code>type | X</code>.</li>
<li>And more! <a
href="https://redirect.github.com/facebook/pyrefly/issues/2444">#2444</a>,
<a
href="https://redirect.github.com/facebook/pyrefly/issues/1270">#1270</a>,
<a
href="https://redirect.github.com/facebook/pyrefly/issues/2900">#2900</a>,
<a
href="https://redirect.github.com/facebook/pyrefly/issues/2862">#2862</a>,
<a
href="https://redirect.github.com/facebook/pyrefly/issues/2853">#2853</a></li>
</ul>
<p>Thank-you to all our contributors who found these bugs and reported
them! Did you know this is one of the most helpful contributions you can
make to an open-source project? If you find any bugs in Pyrefly we want
to know about them! Please open a bug report issue <a
href="https://github.com/facebook/pyrefly/issues">here</a></p>
<hr />
<h2>📦 Upgrade</h2>
<pre lang="shell"><code>pip install --upgrade pyrefly==0.59.0
</code></pre>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c2b1fc9469"><code>c2b1fc9</code></a>
Update pyrefly version</li>
<li><a
href="06213fddd6"><code>06213fd</code></a>
fix(typing): resolve invalid Self to Any during annotation solving to
prevent...</li>
<li><a
href="db31b9ba64"><code>db31b9b</code></a>
Exclude private module symbols &amp; attributes</li>
<li><a
href="5c15b256e7"><code>5c15b25</code></a>
deduplicate helpers into extract_shared.rs</li>
<li><a
href="d83fad270d"><code>d83fad2</code></a>
exclude overload implementation signature from report</li>
<li><a
href="7ca03ead46"><code>7ca03ea</code></a>
refactor specials.rs to reduce duplication</li>
<li><a
href="d02a78b500"><code>d02a78b</code></a>
tweak error message for consistency</li>
<li><a
href="e5a11e342f"><code>e5a11e3</code></a>
Fix false positive missing attribute for from X import * re-exports in
stub f...</li>
<li><a
href="836e647e0e"><code>836e647</code></a>
Bump pulldown-cmark 0.13.1 -&gt; 0.13.3</li>
<li><a
href="a5bcb2279a"><code>a5bcb22</code></a>
Improve ParamSpec/Concatenate representation (<a
href="https://redirect.github.com/facebook/pyrefly/issues/2981">#2981</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/facebook/pyrefly/compare/0.58.0...0.60.0">compare
view</a></li>
</ul>
</details>
<br />

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: evroon <11857441+evroon@users.noreply.github.com>
2026-04-12 07:28:58 +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.135.3",
"fastapi-sso==0.21.0",
"gunicorn==25.3.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.57.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.44.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.60.0",
"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.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.*"]