Skip to content

Commit 85104e9

Browse files
committed
Minor changes
1 parent fa118e3 commit 85104e9

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

lib/metadata.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55

66
class FileMetadata(BaseModel):
7-
name: StrictStr = Field(description="File name", min_length=2, max_length=255, validation_alias=AliasChoices('name', 'file_name'))
8-
size: ByteSize = Field(description="Size in bytes", gt=0,validation_alias=AliasChoices('size', 'file_size'))
9-
type: StrictStr = Field(description="MIME type", default='application/octet-stream',validation_alias=AliasChoices('type', 'file_type', 'content_type'))
7+
name: StrictStr = Field(description="File name", min_length=2, max_length=255)
8+
size: ByteSize = Field(description="Size in bytes", gt=0)
9+
type: StrictStr = Field(description="MIME type", default='application/octet-stream')
1010

11-
model_config = ConfigDict(validate_by_name=True, populate_by_name=True)
11+
model_config = ConfigDict(title="File transfer metadata", alias_generator=lambda s: f'file_{s}', populate_by_name=True, validate_by_name=True)
1212

1313
@field_validator('name')
1414
@classmethod

lib/transfer.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,9 @@ async def supply_download(self, on_error: Callable[[Exception | str], Awaitable[
137137
self.warning(f"▼ Timeout during download.")
138138
await on_error("Timeout during download.")
139139

140+
else:
141+
await asyncio.sleep(1.0)
142+
140143
async def cleanup(self):
141144
try:
142145
await asyncio.wait_for(self.store.cleanup(), timeout=30.0)

tests/helpers.py

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import asyncio
12
from string import ascii_letters
23
from itertools import islice, repeat, chain
3-
from typing import Tuple, Iterable, Iterator
4+
from typing import Tuple, Iterable, AsyncIterator
45
from annotated_types import T
56

67
from lib.metadata import FileMetadata
@@ -19,12 +20,8 @@ def generate_test_file(size_in_kb: int = 10) -> tuple[bytes, FileMetadata]:
1920
return content, metadata
2021

2122

22-
def batched(iterable: Iterable[T], chunk_size: int) -> Iterator[Tuple[T, ...]]:
23-
"Batch data into lists of length n. The last batch may be shorter."
24-
# batched('ABCDEFG', 3) --> ABC DEF G
25-
it = iter(iterable)
26-
while True:
27-
batch = bytes(islice(it, chunk_size))
28-
if not batch:
29-
return
30-
yield batch
23+
async def chunks(data: bytes, chunk_size: int = 1024) -> AsyncIterator[bytes]:
24+
"""Yield successive chunks of data."""
25+
for i in range(0, len(data), chunk_size):
26+
yield data[i:i + chunk_size]
27+
await asyncio.sleep(0)

0 commit comments

Comments
 (0)