Skip to content
Merged
Show file tree
Hide file tree
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
28 changes: 28 additions & 0 deletions stdlib/2and3/_typeshed/__init__.pyi
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
# Utility types for typeshed

# This module contains various common types to be used by typeshed. The
# module and its types do not exist at runtime. You can use this module
# outside of typeshed, but no API stability guarantees are made. To use
# it in implementation (.py) files, the following construct must be used:
#
# from typing import TYPE_CHECKING
# if TYPE_CHECKING:
# from _typeshed import ...
#
# If on Python versions < 3.10 and "from __future__ import annotations"
# is not used, types from this module must be quoted.

import sys
from typing import Text, Union

# StrPath and AnyPath can be used in places where a
# path can be used instead of a string, starting with Python 3.6.
if sys.version_info >= (3, 6):
from os import PathLike
StrPath = Union[str, PathLike[str]]
BytesPath = Union[bytes, PathLike[bytes]]
AnyPath = Union[str, bytes, PathLike[str], PathLike[bytes]]
else:
StrPath = Text
BytesPath = bytes
AnyPath = Union[Text, bytes]
1 change: 1 addition & 0 deletions tests/stubtest_whitelists/py3_common.txt
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,6 +5,7 @@ _importlib_modulespec
_operator.methodcaller
_threading_local.local.__new__
_types
_typeshed
_weakref.CallableProxyType.__getattr__
_weakref.ProxyType.__getattr__
_weakref.ReferenceType.__call__
Expand Down
13 changes: 4 additions & 9 deletions third_party/2and3/atomicwrites/__init__.pyi
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,17 @@
import sys
from typing import Any, AnyStr, Callable, ContextManager, Generic, IO, Optional, Text, Type, Union

if sys.version_info >= (3, 6):
from os import PathLike
_Path = Union[str, bytes, PathLike[str], PathLike[bytes]]
else:
_Path = Union[Text, bytes]
from _typeshed import AnyPath

def replace_atomic(src: AnyStr, dst: AnyStr) -> None: ...
def move_atomic(src: AnyStr, dst: AnyStr) -> None: ...
class AtomicWriter(object):
def __init__(self, path: _Path, mode: Text = ..., overwrite: bool = ...) -> None: ...
def __init__(self, path: AnyPath, mode: Text = ..., overwrite: bool = ...) -> None: ...
def open(self) -> ContextManager[IO[Any]]: ...
def _open(self, get_fileobject: Callable[..., IO[AnyStr]]) -> ContextManager[IO[AnyStr]]: ...
def get_fileobject(self, dir: Optional[_Path] = ..., **kwargs: Any) -> IO[Any]: ...
def get_fileobject(self, dir: Optional[AnyPath] = ..., **kwargs: Any) -> IO[Any]: ...
def sync(self, f: IO[Any]) -> None: ...
def commit(self, f: IO[Any]) -> None: ...
def rollback(self, f: IO[Any]) -> None: ...
def atomic_write(
path: _Path, writer_cls: Type[AtomicWriter] = ..., **cls_kwargs: object,
path: AnyPath, writer_cls: Type[AtomicWriter] = ..., **cls_kwargs: object,
) -> ContextManager[IO[Any]]: ...
9 changes: 2 additions & 7 deletions third_party/2and3/jinja2/utils.pyi
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import sys
from typing import Any, Callable, IO, Iterable, Optional, Protocol, Text, TypeVar, Union
from _typeshed import AnyPath

from markupsafe import Markup as Markup, escape as escape, soft_unicode as soft_unicode

Expand All@@ -13,12 +14,6 @@ if sys.version_info >= (3, 8):
else:
_True = bool

if sys.version_info >= (3, 6):
from builtins import _PathLike
_PathType = Union[bytes, Text, _PathLike]
else:
_PathType = Union[bytes, Text]

_CallableT = TypeVar("_CallableT", bound=Callable[..., Any])

class _ContextFunction(Protocol[_CallableT]):
Expand All@@ -42,7 +37,7 @@ def select_autoescape(enabled_extensions: Iterable[str] = ..., disabled_extensio
def consume(iterable: Iterable[object]) -> None: ...
def clear_caches() -> None: ...
def import_string(import_name: str, silent: bool = ...) -> Any: ...
def open_if_exists(filename: _PathType, mode: str = ...) -> Optional[IO[Any]]: ...
def open_if_exists(filename: AnyPath, mode: str = ...) -> Optional[IO[Any]]: ...
def object_type_repr(obj: object) -> str: ...
def pformat(obj: object, verbose: bool = ...) -> str: ...
def urlize(text: Union[Markup, Text], trim_url_limit: Optional[int] = ..., rel: Optional[Union[Markup, Text]] = ..., target: Optional[Union[Markup, Text]] = ...) -> str: ...
Expand Down
13 changes: 6 additions & 7 deletions third_party/2and3/toml.pyi
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
from typing import Any, IO, List, Mapping, MutableMapping, Optional, Protocol, Text, Type, Union
from _typeshed import StrPath
import datetime
import sys

if sys.version_info >= (3, 4):
if sys.version_info >= (3, 6):
_PathLike = StrPath
elif sys.version_info >= (3, 4):
import pathlib
if sys.version_info >= (3, 6):
import os
_PathLike = Union[Text, pathlib.PurePath, os.PathLike]
else:
_PathLike = Union[Text, pathlib.PurePath]
_PathLike = Union[StrPath, pathlib.PurePath]
Comment thread
srittau marked this conversation as resolved.
else:
_PathLike = Text
_PathLike = StrPath

class _Writable(Protocol):
def write(self, obj: str) -> Any: ...
Expand Down