mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-15 07:43:51 +01:00
module reorg
This commit is contained in:
parent
e1aaf7629b
commit
8af5047244
23 changed files with 1658 additions and 1532 deletions
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
import typing as typ
|
||||
|
||||
import pycalver.patterns as v1patterns
|
||||
from .patterns import Pattern
|
||||
|
||||
|
||||
class PatternMatch(typ.NamedTuple):
|
||||
|
|
@ -15,7 +15,7 @@ class PatternMatch(typ.NamedTuple):
|
|||
|
||||
lineno : int # zero based
|
||||
line : str
|
||||
pattern: v1patterns.Pattern
|
||||
pattern: Pattern
|
||||
span : typ.Tuple[int, int]
|
||||
match : str
|
||||
|
||||
|
|
@ -23,25 +23,26 @@ class PatternMatch(typ.NamedTuple):
|
|||
PatternMatches = typ.Iterable[PatternMatch]
|
||||
|
||||
|
||||
def _iter_for_pattern(lines: typ.List[str], pattern: v1patterns.Pattern) -> PatternMatches:
|
||||
def _iter_for_pattern(lines: typ.List[str], pattern: Pattern) -> PatternMatches:
|
||||
for lineno, line in enumerate(lines):
|
||||
match = pattern.regexp.search(line)
|
||||
if match:
|
||||
yield PatternMatch(lineno, line, pattern, match.span(), match.group(0))
|
||||
|
||||
|
||||
def iter_matches(lines: typ.List[str], patterns: typ.List[v1patterns.Pattern]) -> PatternMatches:
|
||||
def iter_matches(lines: typ.List[str], patterns: typ.List[Pattern]) -> PatternMatches:
|
||||
"""Iterate over all matches of any pattern on any line.
|
||||
|
||||
>>> import pycalver.patterns as v1patterns
|
||||
>>> from . import v1patterns
|
||||
>>> lines = ["__version__ = 'v201712.0002-alpha'"]
|
||||
>>> patterns = ["{pycalver}", "{pep440_pycalver}"]
|
||||
>>> patterns = [v1patterns.compile_pattern(p) for p in patterns]
|
||||
>>> version_pattern = "{pycalver}"
|
||||
>>> raw_patterns = ["{pycalver}", "{pep440_pycalver}"]
|
||||
>>> patterns = [v1patterns.compile_pattern(version_pattern, p) for p in raw_patterns]
|
||||
>>> matches = list(iter_matches(lines, patterns))
|
||||
>>> assert matches[0] == PatternMatch(
|
||||
... lineno = 0,
|
||||
... line = "__version__ = 'v201712.0002-alpha'",
|
||||
... pattern= v1patterns.compile_pattern("{pycalver}"),
|
||||
... pattern= v1patterns.compile_pattern(version_pattern),
|
||||
... span = (15, 33),
|
||||
... match = "v201712.0002-alpha",
|
||||
... )
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue