mirror of
https://github.com/evroon/bracket.git
synced 2026-06-11 10:15:19 -04:00
Bumps [starlette](https://github.com/Kludex/starlette) from 0.52.1 to 1.0.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Kludex/starlette/releases">starlette's releases</a>.</em></p> <blockquote> <h2>Version 1.0.0</h2> <p>Starlette 1.0 is here! 🎉</p> <p>After nearly eight years since its creation, Starlette has reached its first stable release.</p> <p>A special thank you to <a href="https://github.com/lovelydinosaur"><code>@lovelydinosaur</code></a>, the creator of Starlette, Uvicorn, HTTPX and MkDocs, whose work helped to lay the foundation for the modern async Python ecosystem. 🙏</p> <p>Thank you to <a href="https://github.com/adriangb"><code>@adriangb</code></a>, <a href="https://github.com/graingert"><code>@graingert</code></a>, <a href="https://github.com/agronholm"><code>@agronholm</code></a>, <a href="https://github.com/florimondmanca"><code>@florimondmanca</code></a>, <a href="https://github.com/aminalaee"><code>@aminalaee</code></a>, <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>, <a href="https://github.com/alex-oleshkevich"><code>@alex-oleshkevich</code></a>, <a href="https://github.com/abersheeran"><code>@abersheeran</code></a>, and <a href="https://github.com/uSpike"><code>@uSpike</code></a> for helping make Starlette what it is today. And to all my sponsors - especially <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>, <a href="https://github.com/huggingface"><code>@huggingface</code></a>, and <a href="https://github.com/elevenlabs"><code>@elevenlabs</code></a> - thank you for your support!</p> <p>Thank you to all <a href="https://github.com/encode/starlette/graphs/contributors">290+ contributors</a> who have shaped Starlette over the years! ❤️</p> <p>Read more on the <a href="https://marcelotryle.com/blog/2026/03/22/starlette-10-is-here/">blog post</a>.</p> <p>Check out the full release notes at <a href="https://www.starlette.io/release-notes/#100-march-22-2026">https://www.starlette.io/release-notes/#100-march-22-2026</a></p> <hr /> <p><strong>Full Changelog</strong>: <a href="https://github.com/encode/starlette/compare/1.0.0rc1...1.0.0">https://github.com/encode/starlette/compare/1.0.0rc1...1.0.0</a></p> <h2>Version 1.0.0rc1</h2> <p>We're ready! 🚀</p> <p>The first release candidate for Starlette 1.0 is here! After years on ZeroVer, we're finally making the jump.</p> <p>This release removes all deprecated features marked for 1.0.0, along with some last-minute bug fixes.</p> <p>A special thank you to <a href="https://github.com/lovelydinosaur"><code>@lovelydinosaur</code></a>, the creator of Starlette, Uvicorn, HTTPX and MkDocs, whose work helped to lay the foundation for the modern async Python ecosystem. 🙏</p> <p>Thank you to <a href="https://github.com/adriangb"><code>@adriangb</code></a>, <a href="https://github.com/graingert"><code>@graingert</code></a>, <a href="https://github.com/agronholm"><code>@agronholm</code></a>, <a href="https://github.com/florimondmanca"><code>@florimondmanca</code></a>, <a href="https://github.com/aminalaee"><code>@aminalaee</code></a>, <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>, <a href="https://github.com/alex-oleshkevich"><code>@alex-oleshkevich</code></a>, and <a href="https://github.com/abersheeran"><code>@abersheeran</code></a> for helping make Starlette what it is today. And to all my sponsors - especially <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>, <a href="https://github.com/huggingface"><code>@huggingface</code></a>, and <a href="https://github.com/elevenlabs"><code>@elevenlabs</code></a> - thank you for your support!</p> <p>Thank you to all <a href="https://github.com/encode/starlette/graphs/contributors">290+ contributors</a> who have shaped Starlette over the years!</p> <p>Check out the full release notes at <a href="https://www.starlette.io/release-notes/#100rc1-february-23-2026">https://www.starlette.io/release-notes/#100rc1-february-23-2026</a></p> <hr /> <p><strong>Full Changelog</strong>: <a href="https://github.com/Kludex/starlette/compare/0.52.1...1.0.0rc1">https://github.com/Kludex/starlette/compare/0.52.1...1.0.0rc1</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Kludex/starlette/blob/main/docs/release-notes.md">starlette's changelog</a>.</em></p> <blockquote> <h2>1.0.0 (March 22, 2026)</h2> <p>Starlette 1.0 is here!</p> <p>After nearly eight years since its creation, Starlette has reached its first stable release. Thank you to everyone who tested the release candidate and reported issues.</p> <p>You can read more on the <a href="https://marcelotryle.com/blog/2026/03/22/starlette-10-is-here/">blog post</a>.</p> <h4>Added</h4> <ul> <li>Track session access and modification in <code>SessionMiddleware</code> <a href="https://redirect.github.com/encode/starlette/pull/3166">#3166</a>.</li> </ul> <h4>Fixed</h4> <ul> <li>Handle websocket denial responses in <code>StreamingResponse</code> and <code>FileResponse</code> <a href="https://redirect.github.com/encode/starlette/pull/3189">#3189</a>.</li> <li>Use <code>bytearray</code> for field accumulation in <code>FormParser</code> <a href="https://redirect.github.com/encode/starlette/pull/3179">#3179</a>.</li> <li>Move <code>parser.finalize()</code> inside try/except in <code>MultiPartParser.parse()</code> <a href="https://redirect.github.com/encode/starlette/pull/3153">#3153</a>.</li> </ul> <h2>1.0.0rc1 (February 23, 2026)</h2> <p>We're ready! I'm thrilled to announce the first release candidate for Starlette 1.0.</p> <p>Starlette was created in June 2018 by Tom Christie, and has been on ZeroVer for years. Today, it's downloaded almost <a href="https://pypistats.org/packages/starlette">10 million times a day</a>, serves as the foundation for FastAPI, and has inspired many other frameworks. In the age of AI, Starlette continues to play an important role as a dependency of the Python MCP SDK.</p> <p>This release focuses on removing deprecated features that were marked for removal in 1.0.0, along with some last minute bug fixes. It's a release candidate, so we can gather feedback from the community before the final 1.0.0 release soon.</p> <p>A huge thank you to all the contributors who have helped make Starlette what it is today. In particular, I'd like to recognize:</p> <ul> <li><a href="https://github.com/lovelydinosaur">Kim Christie</a> - The original creator of Starlette, Uvicorn, and MkDocs, and the current maintainer of HTTPX. Kim's work helped lay the foundation for the modern async Python ecosystem.</li> <li><a href="https://github.com/adriangb">Adrian Garcia Badaracco</a> - One of the smartest people I know, whom I have the pleasure of working with at Pydantic.</li> <li><a href="https://github.com/graingert">Thomas Grainger</a> - My async teacher, always ready to help with questions.</li> <li><a href="https://github.com/agronholm">Alex Grönholm</a> - Another async mentor, always prompt to help with questions.</li> <li><a href="https://github.com/florimondmanca">Florimond Manca</a> - Always present in the early days of both Starlette and Uvicorn, and helped a lot in the ecosystem.</li> <li><a href="https://github.com/aminalaee">Amin Alaee</a> - Contributed a lot with file-related PRs.</li> <li><a href="https://github.com/tiangolo">Sebastián Ramírez</a> - Maintains FastAPI upstream, and always in contact to help with upstream issues.</li> <li><a href="https://github.com/alex-oleshkevich">Alex Oleshkevich</a> - Helped a lot on templates and many discussions.</li> <li><a href="https://github.com/abersheeran">abersheeran</a> - My go-to person when I need help on many subjects.</li> </ul> <p>I'd also like to thank my sponsors for their support. A special thanks to <a href="https://github.com/tiangolo"><code>@tiangolo</code></a>, <a href="https://github.com/huggingface"><code>@huggingface</code></a>, and <a href="https://github.com/elevenlabs"><code>@elevenlabs</code></a> for their generous sponsorship, and to all my other sponsors:</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="0e88e92b59"><code>0e88e92</code></a> Version 1.0.0 (<a href="https://redirect.github.com/Kludex/starlette/issues/3178">#3178</a>)</li> <li><a href="9ee951980b"><code>9ee9519</code></a> Handle websocket denial responses in streaming and file responses (<a href="https://redirect.github.com/Kludex/starlette/issues/3189">#3189</a>)</li> <li><a href="a0bcc26612"><code>a0bcc26</code></a> chore(deps-dev): bump black from 26.1.0 to 26.3.1 (<a href="https://redirect.github.com/Kludex/starlette/issues/3183">#3183</a>)</li> <li><a href="79b3f26a9a"><code>79b3f26</code></a> chore(deps-dev): bump the python-packages group with 7 updates (<a href="https://redirect.github.com/Kludex/starlette/issues/3168">#3168</a>)</li> <li><a href="789b9269fd"><code>789b926</code></a> Use <code>bytearray</code> for field accumulation in <code>FormParser</code> (<a href="https://redirect.github.com/Kludex/starlette/issues/3179">#3179</a>)</li> <li><a href="a1fd9d822d"><code>a1fd9d8</code></a> docs: fix typo in routing.md (<a href="https://redirect.github.com/Kludex/starlette/issues/3176">#3176</a>)</li> <li><a href="c14d0f7780"><code>c14d0f7</code></a> Document session cookie security flags (<a href="https://redirect.github.com/Kludex/starlette/issues/3169">#3169</a>)</li> <li><a href="c2e28786d1"><code>c2e2878</code></a> Move parser.finalize() inside try/except in MultiPartParser.parse() (<a href="https://redirect.github.com/Kludex/starlette/issues/3153">#3153</a>)</li> <li><a href="89630a8658"><code>89630a8</code></a> chore(deps): bump the github-actions group with 3 updates (<a href="https://redirect.github.com/Kludex/starlette/issues/3167">#3167</a>)</li> <li><a href="4647e532bb"><code>4647e53</code></a> Track session access and modification in <code>SessionMiddleware</code> (<a href="https://redirect.github.com/Kludex/starlette/issues/3166">#3166</a>)</li> <li>Additional commits viewable in <a href="https://github.com/Kludex/starlette/compare/0.52.1...1.0.0">compare view</a></li> </ul> </details> <br /> [](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>
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.2",
|
|
"python-multipart==0.0.26",
|
|
"sentry-sdk==2.57.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.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.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.*"]
|