|
1 |
| -from builtins import _OPEN_BINARY_MODE, _OPEN_TEXT_MODE |
2 | 1 | from typing import (Any, BinaryIO, Generator, IO, List, Optional, Sequence,
|
3 | 2 | TextIO, Tuple, Type, TypeVar, Union, overload)
|
4 | 3 | from types import TracebackType
|
5 | 4 | import os
|
6 | 5 | import sys
|
7 | 6 |
|
| 7 | +if sys.version_info >= (3, 8): |
| 8 | + from typing import Literal |
| 9 | +else: |
| 10 | + from typing_extensions import Literal |
| 11 | + |
8 | 12 | _P = TypeVar('_P', bound=PurePath)
|
9 | 13 |
|
10 | 14 | if sys.version_info >= (3, 6):
|
11 | 15 | _PurePathBase = os.PathLike[str]
|
12 | 16 | else:
|
13 | 17 | _PurePathBase = object
|
14 | 18 |
|
| 19 | +if sys.version_info >= (3, 3): |
| 20 | + # Changed in version 3.3: The 'x' mode was added. |
| 21 | + _OPEN_TEXT_MODE = Literal[ |
| 22 | + 'r', 'r+', '+r', 'rt', 'tr', 'rt+', 'r+t', '+rt', 'tr+', 't+r', '+tr', |
| 23 | + 'w', 'w+', '+w', 'wt', 'tw', 'wt+', 'w+t', '+wt', 'tw+', 't+w', '+tw', |
| 24 | + 'a', 'a+', '+a', 'at', 'ta', 'at+', 'a+t', '+at', 'ta+', 't+a', '+ta', |
| 25 | + 'x', 'x+', '+x', 'xt', 'tx', 'xt+', 'x+t', '+xt', 'tx+', 't+x', '+tx', |
| 26 | + 'U', 'rU', 'Ur', 'rtU', 'rUt', 'Urt', 'trU', 'tUr', 'Utr', |
| 27 | + ] |
| 28 | + _OPEN_BINARY_MODE = Literal[ |
| 29 | + 'rb', 'br', 'rb+', 'r+b', '+rb', 'br+', 'b+r', '+br', |
| 30 | + 'wb', 'bw', 'wb+', 'w+b', '+wb', 'bw+', 'b+w', '+bw', |
| 31 | + 'ab', 'ba', 'ab+', 'a+b', '+ab', 'ba+', 'b+a', '+ba', |
| 32 | + 'xb', 'bx', 'xb+', 'x+b', '+xb', 'bx+', 'b+x', '+bx', |
| 33 | + 'rbU', 'rUb', 'Urb', 'brU', 'bUr', 'Ubr', |
| 34 | + ] |
| 35 | +else: |
| 36 | + _OPEN_TEXT_MODE = Literal[ |
| 37 | + 'r', 'r+', '+r', 'rt', 'tr', 'rt+', 'r+t', '+rt', 'tr+', 't+r', '+tr', |
| 38 | + 'w', 'w+', '+w', 'wt', 'tw', 'wt+', 'w+t', '+wt', 'tw+', 't+w', '+tw', |
| 39 | + 'a', 'a+', '+a', 'at', 'ta', 'at+', 'a+t', '+at', 'ta+', 't+a', '+ta', |
| 40 | + 'U', 'rU', 'Ur', 'rtU', 'rUt', 'Urt', 'trU', 'tUr', 'Utr', |
| 41 | + ] |
| 42 | + _OPEN_BINARY_MODE = Literal[ |
| 43 | + 'rb', 'br', 'rb+', 'r+b', '+rb', 'br+', 'b+r', '+br', |
| 44 | + 'wb', 'bw', 'wb+', 'w+b', '+wb', 'bw+', 'b+w', '+bw', |
| 45 | + 'ab', 'ba', 'ab+', 'a+b', '+ab', 'ba+', 'b+a', '+ba', |
| 46 | + 'rbU', 'rUb', 'Urb', 'brU', 'bUr', 'Ubr', |
| 47 | + ] |
| 48 | + |
15 | 49 | class PurePath(_PurePathBase):
|
16 | 50 | parts: Tuple[str, ...]
|
17 | 51 | drive: str
|
|
0 commit comments