Skip to content

Commit a7d0b14

Browse files
Bump the python-packages group with 5 updates (#2860)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
1 parent cbddcaf commit a7d0b14

File tree

9 files changed

+28
-37
lines changed

9 files changed

+28
-37
lines changed

requirements.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
# Testing
55
coverage==7.6.10
6-
importlib-metadata==8.5.0
6+
importlib-metadata==8.6.1
77
mypy==1.14.1
8-
ruff==0.8.5
8+
ruff==0.9.4
99
typing_extensions==4.12.2
1010
types-contextvars==2.4.7.3
1111
types-PyYAML==6.0.12.20241230
@@ -14,11 +14,11 @@ pytest==8.3.4
1414
trio==0.28.0
1515

1616
# Documentation
17-
black==24.10.0
17+
black==25.1.0
1818
mkdocs==1.6.1
19-
mkdocs-material==9.5.49
19+
mkdocs-material==9.6.1
2020
mkdocstrings-python==1.13.0
2121

2222
# Packaging
2323
build==1.2.2.post1
24-
twine==6.0.1
24+
twine==6.1.0

starlette/applications.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ def __init__(
6565
"""
6666
# The lifespan context function is a newer style that replaces
6767
# on_startup / on_shutdown handlers. Use one or the other, not both.
68-
assert lifespan is None or (
69-
on_startup is None and on_shutdown is None
70-
), "Use either 'lifespan' or 'on_startup'/'on_shutdown', not both."
68+
assert lifespan is None or (on_startup is None and on_shutdown is None), (
69+
"Use either 'lifespan' or 'on_startup'/'on_shutdown', not both."
70+
)
7171

7272
self.debug = debug
7373
self.state = State()

starlette/datastructures.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -461,12 +461,7 @@ async def close(self) -> None:
461461
await run_in_threadpool(self.file.close)
462462

463463
def __repr__(self) -> str:
464-
return (
465-
f"{self.__class__.__name__}("
466-
f"filename={self.filename!r}, "
467-
f"size={self.size!r}, "
468-
f"headers={self.headers!r})"
469-
)
464+
return f"{self.__class__.__name__}(filename={self.filename!r}, size={self.size!r}, headers={self.headers!r})"
470465

471466

472467
class FormData(ImmutableMultiDict[str, typing.Union[UploadFile, str]]):

starlette/requests.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,9 @@ async def _get_form(
257257
max_part_size: int = 1024 * 1024,
258258
) -> FormData:
259259
if self._form is None: # pragma: no branch
260-
assert (
261-
parse_options_header is not None
262-
), "The `python-multipart` library must be installed to use form parsing."
260+
assert parse_options_header is not None, (
261+
"The `python-multipart` library must be installed to use form parsing."
262+
)
263263
content_type_header = self.headers.get("Content-Type")
264264
content_type: bytes
265265
content_type, _ = parse_options_header(content_type_header)

starlette/responses.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -529,9 +529,6 @@ def generate_multipart(
529529
return (
530530
content_length,
531531
lambda start, end: (
532-
f"--{boundary}\n"
533-
f"Content-Type: {content_type}\n"
534-
f"Content-Range: bytes {start}-{end-1}/{max_size}\n"
535-
"\n"
532+
f"--{boundary}\nContent-Type: {content_type}\nContent-Range: bytes {start}-{end - 1}/{max_size}\n\n"
536533
).encode("latin-1"),
537534
)

starlette/routing.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -623,8 +623,7 @@ def __init__(
623623
)
624624
elif inspect.isgeneratorfunction(lifespan):
625625
warnings.warn(
626-
"generator function lifespans are deprecated, "
627-
"use an @contextlib.asynccontextmanager function instead",
626+
"generator function lifespans are deprecated, use an @contextlib.asynccontextmanager function instead",
628627
DeprecationWarning,
629628
)
630629
self.lifespan_context = _wrap_gen_lifespan_context(

starlette/staticfiles.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ def get_directories(
7777
assert spec is not None, f"Package {package!r} could not be found."
7878
assert spec.origin is not None, f"Package {package!r} could not be found."
7979
package_directory = os.path.normpath(os.path.join(spec.origin, "..", statics_dir))
80-
assert os.path.isdir(
81-
package_directory
82-
), f"Directory '{statics_dir!r}' in package {package!r} could not be found."
80+
assert os.path.isdir(package_directory), (
81+
f"Directory '{statics_dir!r}' in package {package!r} could not be found."
82+
)
8383
directories.append(package_directory)
8484

8585
return directories

tests/test_formparsers.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ def test_too_many_fields_raise(
484484
client = test_client_factory(app)
485485
fields = []
486486
for i in range(1001):
487-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="N{i}";\r\n\r\n' "\r\n")
487+
fields.append(f'--B\r\nContent-Disposition: form-data; name="N{i}";\r\n\r\n\r\n')
488488
data = "".join(fields).encode("utf-8")
489489
with expectation:
490490
res = client.post(
@@ -511,7 +511,7 @@ def test_too_many_files_raise(
511511
client = test_client_factory(app)
512512
fields = []
513513
for i in range(1001):
514-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="N{i}"; filename="F{i}";\r\n\r\n' "\r\n")
514+
fields.append(f'--B\r\nContent-Disposition: form-data; name="N{i}"; filename="F{i}";\r\n\r\n\r\n')
515515
data = "".join(fields).encode("utf-8")
516516
with expectation:
517517
res = client.post(
@@ -540,7 +540,7 @@ def test_too_many_files_single_field_raise(
540540
for i in range(1001):
541541
# This uses the same field name "N" for all files, equivalent to a
542542
# multifile upload form field
543-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="N"; filename="F{i}";\r\n\r\n' "\r\n")
543+
fields.append(f'--B\r\nContent-Disposition: form-data; name="N"; filename="F{i}";\r\n\r\n\r\n')
544544
data = "".join(fields).encode("utf-8")
545545
with expectation:
546546
res = client.post(
@@ -567,8 +567,8 @@ def test_too_many_files_and_fields_raise(
567567
client = test_client_factory(app)
568568
fields = []
569569
for i in range(1001):
570-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="F{i}"; filename="F{i}";\r\n\r\n' "\r\n")
571-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="N{i}";\r\n\r\n' "\r\n")
570+
fields.append(f'--B\r\nContent-Disposition: form-data; name="F{i}"; filename="F{i}";\r\n\r\n\r\n')
571+
fields.append(f'--B\r\nContent-Disposition: form-data; name="N{i}";\r\n\r\n\r\n')
572572
data = "".join(fields).encode("utf-8")
573573
with expectation:
574574
res = client.post(
@@ -598,7 +598,7 @@ def test_max_fields_is_customizable_low_raises(
598598
client = test_client_factory(app)
599599
fields = []
600600
for i in range(2):
601-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="N{i}";\r\n\r\n' "\r\n")
601+
fields.append(f'--B\r\nContent-Disposition: form-data; name="N{i}";\r\n\r\n\r\n')
602602
data = "".join(fields).encode("utf-8")
603603
with expectation:
604604
res = client.post(
@@ -628,7 +628,7 @@ def test_max_files_is_customizable_low_raises(
628628
client = test_client_factory(app)
629629
fields = []
630630
for i in range(2):
631-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="F{i}"; filename="F{i}";\r\n\r\n' "\r\n")
631+
fields.append(f'--B\r\nContent-Disposition: form-data; name="F{i}"; filename="F{i}";\r\n\r\n\r\n')
632632
data = "".join(fields).encode("utf-8")
633633
with expectation:
634634
res = client.post(
@@ -644,8 +644,8 @@ def test_max_fields_is_customizable_high(test_client_factory: TestClientFactory)
644644
client = test_client_factory(make_app_max_parts(max_fields=2000, max_files=2000))
645645
fields = []
646646
for i in range(2000):
647-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="N{i}";\r\n\r\n' "\r\n")
648-
fields.append("--B\r\n" f'Content-Disposition: form-data; name="F{i}"; filename="F{i}";\r\n\r\n' "\r\n")
647+
fields.append(f'--B\r\nContent-Disposition: form-data; name="N{i}";\r\n\r\n\r\n')
648+
fields.append(f'--B\r\nContent-Disposition: form-data; name="F{i}"; filename="F{i}";\r\n\r\n\r\n')
649649
data = "".join(fields).encode("utf-8")
650650
data += b"--B--\r\n"
651651
res = client.post(

tests/test_responses.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -687,12 +687,12 @@ def test_file_response_range_invalid(file_response_client: TestClient) -> None:
687687

688688

689689
def test_file_response_range_head_max(file_response_client: TestClient) -> None:
690-
response = file_response_client.head("/", headers={"Range": f"bytes=0-{len(README.encode('utf8'))+1}"})
690+
response = file_response_client.head("/", headers={"Range": f"bytes=0-{len(README.encode('utf8')) + 1}"})
691691
assert response.status_code == 206
692692

693693

694694
def test_file_response_range_416(file_response_client: TestClient) -> None:
695-
response = file_response_client.head("/", headers={"Range": f"bytes={len(README.encode('utf8'))+1}-"})
695+
response = file_response_client.head("/", headers={"Range": f"bytes={len(README.encode('utf8')) + 1}-"})
696696
assert response.status_code == 416
697697
assert response.headers["Content-Range"] == f"*/{len(README.encode('utf8'))}"
698698

0 commit comments

Comments
 (0)