from _typeshed import Incomplete, StrPath
from typing import Any, ClassVar

from .._distutils.cmd import _StrPathT
from .._distutils.command import build_py as orig

def make_writable(target) -> None: ...

class build_py(orig.build_py):
    editable_mode: ClassVar[bool]
    package_data: Any
    exclude_package_data: Any
    def finalize_options(self) -> None: ...
    def copy_file(  # type: ignore[override]
        self,
        infile: StrPath,
        outfile: _StrPathT,
        preserve_mode: bool = True,
        preserve_times: bool = True,
        link: str | None = None,
        level=1,
    ) -> tuple[_StrPathT | str, bool]: ...
    def run(self) -> None: ...
    data_files: Any
    def __getattr__(self, attr: str): ...
    def build_module(self, module, module_file, package): ...
    def get_data_files_without_manifest(self) -> list[tuple[Incomplete, Incomplete, Incomplete, list[Incomplete]]]: ...
    def find_data_files(self, package, src_dir): ...
    def get_outputs(self, include_bytecode: bool = True) -> list[str]: ...  # type: ignore[override]
    def build_package_data(self) -> None: ...
    manifest_files: Any
    def get_output_mapping(self) -> dict[str, str]: ...
    def analyze_manifest(self) -> None: ...
    def get_data_files(self) -> None: ...
    def check_package(self, package, package_dir): ...
    packages_checked: Any
    def initialize_options(self) -> None: ...
    def get_package_dir(self, package): ...
    def exclude_data_files(self, package, src_dir, files): ...

def assert_relative(path): ...
