from _typeshed import StrPath
from collections.abc import Iterable
from dataclasses import dataclass

@dataclass()
class Extension:
    name: str
    sources: Iterable[StrPath]
    include_dirs: list[str] = ...
    define_macros: list[tuple[str, str | None]] = ...
    undef_macros: list[str] = ...
    library_dirs: list[str] = ...
    libraries: list[str] = ...
    runtime_library_dirs: list[str] = ...
    extra_objects: list[str] = ...
    extra_compile_args: list[str] = ...
    extra_link_args: list[str] = ...
    export_symbols: list[str] = ...
    swig_opts: list[str] = ...
    depends: list[str] = ...
    language: str | None = None
    optional: bool = False
    def __post_init__(self): ...
