mirror of
https://github.com/evroon/bracket.git
synced 2026-04-17 22:07:01 -04:00
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 & 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 & 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 -> 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>
191 lines
4.5 KiB
TOML
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.*"]
|