File size: 2,101 Bytes
43605c2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# IMPORTANT: Should stay in sync with setup_helpers.py (mostly checked by CI /
# pre-commit).

import contextlib
import distutils.ccompiler
from distutils.command.build_ext import build_ext as _build_ext  # type: ignore
from distutils.extension import Extension as _Extension
from types import TracebackType
from typing import Any, Callable, Dict, Iterator, List, Optional, Type, TypeVar, Union

WIN: bool
PY2: bool
MACOS: bool
STD_TMPL: str

class Pybind11Extension(_Extension):
    def _add_cflags(self, *flags: str) -> None: ...
    def _add_lflags(self, *flags: str) -> None: ...
    def __init__(

        self, *args: Any, cxx_std: int = 0, language: str = "c++", **kwargs: Any

    ) -> None: ...
    @property
    def cxx_std(self) -> int: ...
    @cxx_std.setter
    def cxx_std(self, level: int) -> None: ...

@contextlib.contextmanager
def tmp_chdir() -> Iterator[str]: ...
def has_flag(compiler: distutils.ccompiler.CCompiler, flag: str) -> bool: ...
def auto_cpp_level(compiler: distutils.ccompiler.CCompiler) -> Union[int, str]: ...

class build_ext(_build_ext):  # type: ignore
    def build_extensions(self) -> None: ...

def intree_extensions(

    paths: Iterator[str], package_dir: Optional[Dict[str, str]] = None

) -> List[Pybind11Extension]: ...
def no_recompile(obj: str, src: str) -> bool: ...
def naive_recompile(obj: str, src: str) -> bool: ...

T = TypeVar("T", bound="ParallelCompile")

class ParallelCompile:
    envvar: Optional[str]
    default: int
    max: int
    needs_recompile: Callable[[str, str], bool]
    def __init__(

        self,

        envvar: Optional[str] = None,

        default: int = 0,

        max: int = 0,

        needs_recompile: Callable[[str, str], bool] = no_recompile,

    ) -> None: ...
    def function(self) -> Any: ...
    def install(self: T) -> T: ...
    def __enter__(self: T) -> T: ...
    def __exit__(

        self,

        exc_type: Optional[Type[BaseException]],

        exc_value: Optional[BaseException],

        traceback: Optional[TracebackType],

    ) -> None: ...