Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use selftype in 3.5 pathlib #658

Merged
merged 1 commit into from
Nov 4, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 18 additions & 22 deletions stdlib/3.5/pathlib.pyi
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Stubs for pathlib (Python 3.5)

from typing import Any, Generator, IO, Optional, Sequence, Tuple, Union
from typing import Any, Generator, IO, Optional, Sequence, Tuple, Type, TypeVar, Union
import os

_P = TypeVar('_P', 'PurePath')

class PurePath:
parts = ... # type: Tuple[str, ...]
drive = ... # type: str
Expand All @@ -14,38 +16,38 @@ class PurePath:
suffix = ... # type: str
suffixes = ... # type: List[str]
stem = ... # type: str
def __new__(cls, *args: Union[str, PurePath]) -> PurePath: ...
def __new__(cls: Type[_P], *args: Union[str, PurePath]) -> _P: ...
def __lt__(self, other: PurePath) -> bool: ...
def __le__(self, other: PurePath) -> bool: ...
def __gt__(self, other: PurePath) -> bool: ...
def __ge__(self, other: PurePath) -> bool: ...
def __truediv__(self, key: Union[str, PurePath]) -> PurePath: ...
def __rtruediv__(self, key: Union[str, PurePath]) -> PurePath: ...
def __truediv__(self: _P, key: Union[str, PurePath]) -> _P: ...
def __rtruediv__(self: _P, key: Union[str, PurePath]) -> _P: ...
def __bytes__(self) -> bytes: ...
def as_posix(self) -> str: ...
def as_uri(self) -> str: ...
def is_absolute(self) -> bool: ...
def is_reserved(self) -> bool: ...
def match(self, path_pattern: str) -> bool: ...
def relative_to(self, *other: Union[str, PurePath]) -> PurePath: ...
def with_name(self, name: str) -> PurePath: ...
def with_suffix(self, suffix: str) -> PurePath: ...
def joinpath(self, *other: Union[str, PurePath]) -> PurePath: ...
def relative_to(self: _P, *other: Union[str, PurePath]) -> _P: ...
def with_name(self: _P, name: str) -> _P: ...
def with_suffix(self: _P, suffix: str) -> _P: ...
def joinpath(self: _P, *other: Union[str, PurePath]) -> _P: ...

class PurePosixPath(PurePath): ...
class PureWindowsPath(PurePath): ...

class Path(PurePath):
@classmethod
def cwd(cls) -> Path: ...
def cwd(cls: Type[_P]) -> _P: ...
@classmethod
def home(cls) -> Path: ...
def __new__(cls, *args: Union[str, PurePath], **kwargs: Any) -> Path: ...
def absolute(self) -> Path: ...
def home(cls: Type[_P]) -> _P: ...
def __new__(cls: Type[_P], *args: Union[str, PurePath], **kwargs: Any) -> _P: ...
def absolute(self: _P) -> _P: ...
def stat(self) -> os.stat_result: ...
def chmod(self, mode: int) -> None: ...
def exists(self) -> bool: ...
def expanduser(self) -> Path: ...
def expanduser(self: _P) -> _P: ...
def glob(self, pattern: str) -> Generator[Path, None, None]: ...
def group(self) -> str: ...
def is_dir(self) -> bool: ...
Expand All @@ -69,7 +71,7 @@ class Path(PurePath):
errors: Optional[str] = ...) -> str: ...
def rename(self, target: Union[str, PurePath]) -> None: ...
def replace(self, target: Union[str, PurePath]) -> None: ...
def resolve(self) -> Path: ...
def resolve(self: _P) -> _P: ...
def rglob(self, pattern: str) -> Generator[Path, None, None]: ...
def rmdir(self) -> None: ...
def samefile(self, other_path: Union[str, bytes, int, Path]) -> bool: ...
Expand All @@ -81,16 +83,10 @@ class Path(PurePath):
def write_text(self, data: str, encoding: Optional[str] = ...,
errors: Optional[str] = ...) -> int: ...

# The following methods are re-stubbed here even though they only actually exist in the base
# class so that they return Path when called on a Path, rather than returning PurePath.
# The following are repeated here even though they only actually exist in the base
# class so that they return Path when used on a Path, rather than returning PurePath.
parents = ... # type: Sequence[Path]
parent = ... # type: Path
def __truediv__(self, key: Union[str, PurePath]) -> Path: ...
def __rtruediv__(self, key: Union[str, PurePath]) -> Path: ...
def relative_to(self, *other: Union[str, PurePath]) -> Path: ...
def with_name(self, name: str) -> Path: ...
def with_suffix(self, suffix: str) -> Path: ...
def joinpath(self, *args: Union[str, PurePath]) -> Path: ...


class PosixPath(Path, PurePosixPath): ...
Expand Down