mirror of
https://github.com/davidhalter/parso.git
synced 2026-03-07 07:32:17 +08:00
Remove utils.pyi in favor of inline stubs
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
from collections import namedtuple
|
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from ast import literal_eval
|
from ast import literal_eval
|
||||||
from functools import total_ordering
|
from functools import total_ordering
|
||||||
|
from typing import NamedTuple, Sequence, Union
|
||||||
|
|
||||||
# The following is a list in Python that are line breaks in str.splitlines, but
|
# The following is a list in Python that are line breaks in str.splitlines, but
|
||||||
# not in Python. In Python only \r (Carriage Return, 0xD) and \n (Line Feed,
|
# not in Python. In Python only \r (Carriage Return, 0xD) and \n (Line Feed,
|
||||||
@@ -19,10 +19,14 @@ _NON_LINE_BREAKS = (
|
|||||||
'\u2029', # Paragraph Separator
|
'\u2029', # Paragraph Separator
|
||||||
)
|
)
|
||||||
|
|
||||||
Version = namedtuple('Version', 'major, minor, micro')
|
|
||||||
|
class Version(NamedTuple):
|
||||||
|
major: int
|
||||||
|
minor: int
|
||||||
|
micro: int
|
||||||
|
|
||||||
|
|
||||||
def split_lines(string, keepends=False):
|
def split_lines(string: str, keepends: bool = False) -> Sequence[str]:
|
||||||
r"""
|
r"""
|
||||||
Intended for Python code. In contrast to Python's :py:meth:`str.splitlines`,
|
Intended for Python code. In contrast to Python's :py:meth:`str.splitlines`,
|
||||||
looks at form feeds and other special characters as normal text. Just
|
looks at form feeds and other special characters as normal text. Just
|
||||||
@@ -66,7 +70,9 @@ def split_lines(string, keepends=False):
|
|||||||
return re.split(r'\n|\r\n|\r', string)
|
return re.split(r'\n|\r\n|\r', string)
|
||||||
|
|
||||||
|
|
||||||
def python_bytes_to_unicode(source, encoding='utf-8', errors='strict'):
|
def python_bytes_to_unicode(
|
||||||
|
source: Union[str, bytes], encoding: str = 'utf-8', errors: str = 'strict'
|
||||||
|
) -> str:
|
||||||
"""
|
"""
|
||||||
Checks for unicode BOMs and PEP 263 encoding declarations. Then returns a
|
Checks for unicode BOMs and PEP 263 encoding declarations. Then returns a
|
||||||
unicode object like in :py:meth:`bytes.decode`.
|
unicode object like in :py:meth:`bytes.decode`.
|
||||||
@@ -116,7 +122,7 @@ def python_bytes_to_unicode(source, encoding='utf-8', errors='strict'):
|
|||||||
raise
|
raise
|
||||||
|
|
||||||
|
|
||||||
def version_info():
|
def version_info() -> Version:
|
||||||
"""
|
"""
|
||||||
Returns a namedtuple of parso's version, similar to Python's
|
Returns a namedtuple of parso's version, similar to Python's
|
||||||
``sys.version_info``.
|
``sys.version_info``.
|
||||||
@@ -148,7 +154,10 @@ def _parse_version(version):
|
|||||||
|
|
||||||
|
|
||||||
@total_ordering
|
@total_ordering
|
||||||
class PythonVersionInfo(namedtuple('Version', 'major, minor')):
|
class PythonVersionInfo(NamedTuple):
|
||||||
|
major: int
|
||||||
|
minor: int
|
||||||
|
|
||||||
def __gt__(self, other):
|
def __gt__(self, other):
|
||||||
if isinstance(other, tuple):
|
if isinstance(other, tuple):
|
||||||
if len(other) != 2:
|
if len(other) != 2:
|
||||||
@@ -169,7 +178,7 @@ class PythonVersionInfo(namedtuple('Version', 'major, minor')):
|
|||||||
return not self.__eq__(other)
|
return not self.__eq__(other)
|
||||||
|
|
||||||
|
|
||||||
def parse_version_string(version=None):
|
def parse_version_string(version: str = None) -> PythonVersionInfo:
|
||||||
"""
|
"""
|
||||||
Checks for a valid version number (e.g. `3.8` or `3.10.1` or `3`) and
|
Checks for a valid version number (e.g. `3.8` or `3.10.1` or `3`) and
|
||||||
returns a corresponding version info that is always two characters long in
|
returns a corresponding version info that is always two characters long in
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
from typing import NamedTuple, Optional, Sequence, Union
|
|
||||||
|
|
||||||
class Version(NamedTuple):
|
|
||||||
major: int
|
|
||||||
minor: int
|
|
||||||
micro: int
|
|
||||||
|
|
||||||
def split_lines(string: str, keepends: bool = ...) -> Sequence[str]: ...
|
|
||||||
def python_bytes_to_unicode(
|
|
||||||
source: Union[str, bytes], encoding: str = ..., errors: str = ...
|
|
||||||
) -> str: ...
|
|
||||||
def version_info() -> Version:
|
|
||||||
"""
|
|
||||||
Returns a namedtuple of parso's version, similar to Python's
|
|
||||||
``sys.version_info``.
|
|
||||||
"""
|
|
||||||
...
|
|
||||||
|
|
||||||
class PythonVersionInfo(NamedTuple):
|
|
||||||
major: int
|
|
||||||
minor: int
|
|
||||||
|
|
||||||
def parse_version_string(version: Optional[str]) -> PythonVersionInfo:
|
|
||||||
"""
|
|
||||||
Checks for a valid version number (e.g. `3.2` or `2.7.1` or `3`) and
|
|
||||||
returns a corresponding version info that is always two characters long in
|
|
||||||
decimal.
|
|
||||||
"""
|
|
||||||
...
|
|
||||||
Reference in New Issue
Block a user