Source code for pyfetcher.fetch.batch

"""Batch convenience helpers for :mod:`pyfetcher`.

Purpose:
    Provide lightweight wrappers for constructing batch fetch requests.

Examples:
    ::

        >>> callable(build_batch_request)
        True
"""

from __future__ import annotations

from pyfetcher.contracts.request import BatchFetchRequest, FetchRequest


[docs] def build_batch_request( requests: list[FetchRequest], *, concurrency: int | None = None, ) -> BatchFetchRequest: """Build a batch fetch request from a list of individual requests. Args: requests: Individual requests to execute concurrently. concurrency: Optional concurrency override limiting the number of simultaneous in-flight requests. Returns: A validated :class:`~pyfetcher.contracts.request.BatchFetchRequest`. Examples: :: >>> req = FetchRequest(url="https://example.com") >>> build_batch_request([req]).requests[0].url.host 'example.com' """ return BatchFetchRequest(requests=requests, concurrency=concurrency)