# Path: starlette/concurrency.py
# async def run_in_threadpool(
#     func: typing.Callable[P, T], *args: P.args, **kwargs: P.kwargs
# ) -> T:
#     if kwargs:  # pragma: no cover
#         # run_sync doesn't accept 'kwargs', so bind them in here
#         func = functools.partial(func, **kwargs)
#     return await anyio.to_thread.run_sync(func, *args)
# 
# Path: starlette/types.py



import tempfile
import typing
from collections.abc import Sequence
from shlex import shlex
from urllib.parse import SplitResult, parse_qsl, urlencode, urlsplit
from starlette.concurrency import run_in_threadpool
from starlette.types import Scope



class Address(typing.NamedTuple):
    host: str
    port: int


class URL:
    def __init__(
        self,
        url: str = "",

# Path: starlette/concurrency.py
# async def run_in_threadpool(
#     func: typing.Callable[P, T], *args: P.args, **kwargs: P.kwargs
# ) -> T:
#     if kwargs:  # pragma: no cover
#         # run_sync doesn't accept 'kwargs', so bind them in here
#         func = functools.partial(func, **kwargs)
#     return await anyio.to_thread.run_sync(func, *args)
# 
# Path: starlette/types.py



# Path: starlette/datastructures.py
import tempfile
import typing
from collections.abc import Sequence
from shlex import shlex
from urllib.parse import SplitResult, parse_qsl, urlencode, urlsplit
from starlette.concurrency import run_in_threadpool
from starlette.types import Scope




class Address(typing.NamedTuple):
    host: str
    port: int


class URL:
    def __init__(
        self,
        url: str = "",

        scope: typing.Optional[Scope] = None,