mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 06:20:08 +01:00
more mypy coverage
This commit is contained in:
parent
e32448ea8c
commit
b7f2eeb091
2 changed files with 133 additions and 8 deletions
|
|
@ -147,7 +147,7 @@ OptionVal = typ.Union[str, bool, None]
|
||||||
BOOL_OPTIONS: typ.Mapping[str, OptionVal] = {'commit': False, 'tag': None, 'push': None}
|
BOOL_OPTIONS: typ.Mapping[str, OptionVal] = {'commit': False, 'tag': None, 'push': None}
|
||||||
|
|
||||||
|
|
||||||
def _parse_cfg(cfg_buffer: typ.TextIO) -> RawConfig:
|
def _parse_cfg(cfg_buffer: typ.IO[str]) -> RawConfig:
|
||||||
cfg_parser = _ConfigParser()
|
cfg_parser = _ConfigParser()
|
||||||
|
|
||||||
if hasattr(cfg_parser, 'read_file'):
|
if hasattr(cfg_parser, 'read_file'):
|
||||||
|
|
@ -171,7 +171,7 @@ def _parse_cfg(cfg_buffer: typ.TextIO) -> RawConfig:
|
||||||
return raw_cfg
|
return raw_cfg
|
||||||
|
|
||||||
|
|
||||||
def _parse_toml(cfg_buffer: typ.TextIO) -> RawConfig:
|
def _parse_toml(cfg_buffer: typ.IO[str]) -> RawConfig:
|
||||||
raw_full_cfg = toml.load(cfg_buffer)
|
raw_full_cfg = toml.load(cfg_buffer)
|
||||||
raw_cfg = raw_full_cfg.get('pycalver', {})
|
raw_cfg = raw_full_cfg.get('pycalver', {})
|
||||||
|
|
||||||
|
|
@ -182,10 +182,11 @@ def _parse_toml(cfg_buffer: typ.TextIO) -> RawConfig:
|
||||||
|
|
||||||
|
|
||||||
def _normalize_file_patterns(raw_cfg: RawConfig) -> FilePatterns:
|
def _normalize_file_patterns(raw_cfg: RawConfig) -> FilePatterns:
|
||||||
version_str = raw_cfg['current_version']
|
version_str : str = raw_cfg['current_version']
|
||||||
version_pattern = raw_cfg['version_pattern']
|
version_pattern: str = raw_cfg['version_pattern']
|
||||||
pep440_version = version.to_pep440(version_str)
|
pep440_version : str = version.to_pep440(version_str)
|
||||||
file_patterns = raw_cfg['file_patterns']
|
|
||||||
|
file_patterns: FilePatterns = raw_cfg['file_patterns']
|
||||||
|
|
||||||
for filepath, patterns in list(file_patterns.items()):
|
for filepath, patterns in list(file_patterns.items()):
|
||||||
if not os.path.exists(filepath):
|
if not os.path.exists(filepath):
|
||||||
|
|
@ -216,10 +217,10 @@ def _parse_config(raw_cfg: RawConfig) -> Config:
|
||||||
if 'current_version' not in raw_cfg:
|
if 'current_version' not in raw_cfg:
|
||||||
raise ValueError("Missing 'pycalver.current_version'")
|
raise ValueError("Missing 'pycalver.current_version'")
|
||||||
|
|
||||||
version_str = raw_cfg['current_version']
|
version_str: str = raw_cfg['current_version']
|
||||||
version_str = raw_cfg['current_version'] = version_str.strip("'\" ")
|
version_str = raw_cfg['current_version'] = version_str.strip("'\" ")
|
||||||
|
|
||||||
version_pattern = raw_cfg.get('version_pattern', "{pycalver}")
|
version_pattern: str = raw_cfg.get('version_pattern', "{pycalver}")
|
||||||
version_pattern = raw_cfg['version_pattern'] = version_pattern.strip("'\" ")
|
version_pattern = raw_cfg['version_pattern'] = version_pattern.strip("'\" ")
|
||||||
|
|
||||||
# NOTE (mb 2019-01-05): Provoke ValueError if version_pattern
|
# NOTE (mb 2019-01-05): Provoke ValueError if version_pattern
|
||||||
|
|
@ -264,6 +265,8 @@ def parse(ctx: ProjectContext) -> MaybeConfig:
|
||||||
log.warning(f"File not found: {ctx.config_filepath}")
|
log.warning(f"File not found: {ctx.config_filepath}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
fh : typ.IO[str]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with ctx.config_filepath.open(mode="rt", encoding="utf-8") as fh:
|
with ctx.config_filepath.open(mode="rt", encoding="utf-8") as fh:
|
||||||
if ctx.config_format == 'toml':
|
if ctx.config_format == 'toml':
|
||||||
|
|
@ -428,6 +431,8 @@ def write_content(ctx: ProjectContext) -> None:
|
||||||
# config_format : str
|
# config_format : str
|
||||||
# vcs_type : typ.Optional[str]
|
# vcs_type : typ.Optional[str]
|
||||||
|
|
||||||
|
fh: typ.IO[str]
|
||||||
|
|
||||||
cfg_content = default_config(ctx)
|
cfg_content = default_config(ctx)
|
||||||
if os.path.exists("pyproject.toml"):
|
if os.path.exists("pyproject.toml"):
|
||||||
with io.open("pyproject.toml", mode="at", encoding="utf-8") as fh:
|
with io.open("pyproject.toml", mode="at", encoding="utf-8") as fh:
|
||||||
|
|
|
||||||
120
stubs/pathlib2.pyi
Normal file
120
stubs/pathlib2.pyi
Normal file
|
|
@ -0,0 +1,120 @@
|
||||||
|
# Stubs for pathlib2 (adapted for Python 2 from Python 3.4 typeshed)
|
||||||
|
|
||||||
|
from typing import Any, Generator, IO, Optional, Sequence, Tuple, Type, TypeVar, Union, List
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
_P = TypeVar('_P', bound='PurePath')
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 6):
|
||||||
|
_PurePathBase = os.PathLike[str]
|
||||||
|
else:
|
||||||
|
_PurePathBase = object
|
||||||
|
|
||||||
|
class PurePath(_PurePathBase):
|
||||||
|
parts = ... # type: Tuple[str, ...]
|
||||||
|
drive = ... # type: str
|
||||||
|
root = ... # type: str
|
||||||
|
anchor = ... # type: str
|
||||||
|
name = ... # type: str
|
||||||
|
suffix = ... # type: str
|
||||||
|
suffixes = ... # type: List[str]
|
||||||
|
stem = ... # type: str
|
||||||
|
if sys.version_info < (3, 5):
|
||||||
|
def __init__(self, *pathsegments: str) -> None: ...
|
||||||
|
elif sys.version_info < (3, 6):
|
||||||
|
def __new__(cls: Type[_P], *args: Union[str, PurePath]) -> _P: ...
|
||||||
|
else:
|
||||||
|
def __new__(cls: Type[_P], *args: Union[str, os.PathLike[str]]) -> _P: ...
|
||||||
|
def __hash__(self) -> int: ...
|
||||||
|
def __lt__(self, other: PurePath) -> bool: ...
|
||||||
|
def __le__(self, other: PurePath) -> bool: ...
|
||||||
|
def __gt__(self, other: PurePath) -> bool: ...
|
||||||
|
def __div__(self: _P, key: Union[str, PurePath]) -> _P: ...
|
||||||
|
def __rdiv__(self: _P, key: Union[str, PurePath]) -> _P: ...
|
||||||
|
def __truediv__(self: _P, key: Union[str, PurePath]) -> _P: ...
|
||||||
|
def __rtruediv__(self: _P, key: Union[str, PurePath]) -> _P: ...
|
||||||
|
def __ge__(self, other: PurePath) -> bool: ...
|
||||||
|
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: _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: ...
|
||||||
|
|
||||||
|
@property
|
||||||
|
def parents(self: _P) -> Sequence[_P]: ...
|
||||||
|
@property
|
||||||
|
def parent(self: _P) -> _P: ...
|
||||||
|
|
||||||
|
class PurePosixPath(PurePath): ...
|
||||||
|
class PureWindowsPath(PurePath): ...
|
||||||
|
|
||||||
|
class Path(PurePath):
|
||||||
|
@classmethod
|
||||||
|
def cwd(cls: Type[_P]) -> _P: ...
|
||||||
|
def stat(self) -> os.stat_result: ...
|
||||||
|
def chmod(self, mode: int) -> None: ...
|
||||||
|
def exists(self) -> bool: ...
|
||||||
|
def glob(self, pattern: str) -> Generator[Path, None, None]: ...
|
||||||
|
def group(self) -> str: ...
|
||||||
|
def is_dir(self) -> bool: ...
|
||||||
|
def is_file(self) -> bool: ...
|
||||||
|
def is_symlink(self) -> bool: ...
|
||||||
|
def is_socket(self) -> bool: ...
|
||||||
|
def is_fifo(self) -> bool: ...
|
||||||
|
def is_block_device(self) -> bool: ...
|
||||||
|
def is_char_device(self) -> bool: ...
|
||||||
|
def iterdir(self) -> Generator[Path, None, None]: ...
|
||||||
|
def lchmod(self, mode: int) -> None: ...
|
||||||
|
def lstat(self) -> os.stat_result: ...
|
||||||
|
if sys.version_info < (3, 5):
|
||||||
|
def mkdir(self, mode: int = ...,
|
||||||
|
parents: bool = ...) -> None: ...
|
||||||
|
else:
|
||||||
|
def mkdir(self, mode: int = ..., parents: bool = ...,
|
||||||
|
exist_ok: bool = ...) -> None: ...
|
||||||
|
def open(self, mode: str = ..., buffering: int = ...,
|
||||||
|
encoding: Optional[str] = ..., errors: Optional[str] = ...,
|
||||||
|
newline: Optional[str] = ...) -> IO[Any]: ...
|
||||||
|
def owner(self) -> str: ...
|
||||||
|
def rename(self, target: Union[str, PurePath]) -> None: ...
|
||||||
|
def replace(self, target: Union[str, PurePath]) -> None: ...
|
||||||
|
if sys.version_info < (3, 6):
|
||||||
|
def resolve(self: _P) -> _P: ...
|
||||||
|
else:
|
||||||
|
def resolve(self: _P, strict: bool = ...) -> _P: ...
|
||||||
|
def rglob(self, pattern: str) -> Generator[Path, None, None]: ...
|
||||||
|
def rmdir(self) -> None: ...
|
||||||
|
def symlink_to(self, target: Union[str, Path],
|
||||||
|
target_is_directory: bool = ...) -> None: ...
|
||||||
|
def touch(self, mode: int = ..., exist_ok: bool = ...) -> None: ...
|
||||||
|
def unlink(self) -> None: ...
|
||||||
|
|
||||||
|
if sys.version_info >= (3, 5):
|
||||||
|
@classmethod
|
||||||
|
def home(cls: Type[_P]) -> _P: ...
|
||||||
|
if sys.version_info < (3, 6):
|
||||||
|
def __new__(cls: Type[_P], *args: Union[str, PurePath],
|
||||||
|
**kwargs: Any) -> _P: ...
|
||||||
|
else:
|
||||||
|
def __new__(cls: Type[_P], *args: Union[str, os.PathLike[str]],
|
||||||
|
**kwargs: Any) -> _P: ...
|
||||||
|
|
||||||
|
def absolute(self: _P) -> _P: ...
|
||||||
|
def expanduser(self: _P) -> _P: ...
|
||||||
|
def read_bytes(self) -> bytes: ...
|
||||||
|
def read_text(self, encoding: Optional[str] = ...,
|
||||||
|
errors: Optional[str] = ...) -> str: ...
|
||||||
|
def samefile(self, other_path: Union[str, bytes, int, Path]) -> bool: ...
|
||||||
|
def write_bytes(self, data: bytes) -> int: ...
|
||||||
|
def write_text(self, data: str, encoding: Optional[str] = ...,
|
||||||
|
errors: Optional[str] = ...) -> int: ...
|
||||||
|
|
||||||
|
|
||||||
|
class PosixPath(Path, PurePosixPath): ...
|
||||||
|
class WindowsPath(Path, PureWindowsPath): ...
|
||||||
Loading…
Add table
Add a link
Reference in a new issue