diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/edify/builder/__init__.py | 10 | ||||
| -rw-r--r-- | src/edify/builder/abc.py | 5 | ||||
| -rw-r--r-- | src/edify/builder/builder.py | 12 | ||||
| -rw-r--r-- | src/edify/builder/errors.py | 2 | ||||
| -rw-r--r-- | src/edify/builder/part.py | 31 | ||||
| -rw-r--r-- | src/edify/builder/quantifier.py | 14 |
6 files changed, 15 insertions, 59 deletions
diff --git a/src/edify/builder/__init__.py b/src/edify/builder/__init__.py index e69de29..44490b2 100644 --- a/src/edify/builder/__init__.py +++ b/src/edify/builder/__init__.py @@ -0,0 +1,10 @@ +from .builder import RegexBuilder +from .constants import * +from .escaped import Escaped +from .quantifier import AtLeast +from .quantifier import AtMost +from .quantifier import Exact +from .quantifier import OneOrMore +from .quantifier import Optional +from .quantifier import Range +from .quantifier import ZeroOrMore diff --git a/src/edify/builder/abc.py b/src/edify/builder/abc.py index 12828e0..4d6b088 100644 --- a/src/edify/builder/abc.py +++ b/src/edify/builder/abc.py @@ -1,11 +1,6 @@ from abc import ABC -from abc import abstractmethod class Builder(ABC): - @abstractmethod - def build(self): - pass - def __str__(self): return self.build() diff --git a/src/edify/builder/builder.py b/src/edify/builder/builder.py index 12e6ee2..3087991 100644 --- a/src/edify/builder/builder.py +++ b/src/edify/builder/builder.py @@ -1,8 +1,4 @@ -from re import match - from .abc import Builder -from .errors import NotPart - class RegexBuilder(Builder): def __init__(self): @@ -12,14 +8,8 @@ class RegexBuilder(Builder): return "".join(map(str, self.parts)) def add(self, part): - self.parts.append(part) - - def part(self, part): if not (issubclass(type(part), Builder) or isinstance(part, str)): - raise NotPart(f"{part} is not a valid Part") + raise ValueError(f"{part} is not a valid Part") self.parts.append(part) return self - - def match(self, regex): - return match(self.build(), regex) diff --git a/src/edify/builder/errors.py b/src/edify/builder/errors.py deleted file mode 100644 index 6f880f8..0000000 --- a/src/edify/builder/errors.py +++ /dev/null @@ -1,2 +0,0 @@ -class NotPart(Exception): - pass diff --git a/src/edify/builder/part.py b/src/edify/builder/part.py deleted file mode 100644 index 964a7a3..0000000 --- a/src/edify/builder/part.py +++ /dev/null @@ -1,31 +0,0 @@ -from abc import abstractmethod - -from .abc import Builder - - -class Part(Builder): - def __init__(self, target): - self.target = target - - @abstractmethod - def build(self): - pass - - -class Any(Part): - def __init__(self, *targets, capture=True, name=None): - if not capture and name: - raise ValueError("Cannot specify group name without capturing") - - if name == "": - raise ValueError("Cannot specify empty group name") - - super().__init__(targets) - self.capture = capture - self.name = name - - def build(self): - targets = "|".join(map(str, self.target)) - capture = "" if self.capture else "?: " - name = f"<{self.name}>" if self.name else "" - return f"{capture}{name}{targets}" diff --git a/src/edify/builder/quantifier.py b/src/edify/builder/quantifier.py index 37081c9..9cfc031 100644 --- a/src/edify/builder/quantifier.py +++ b/src/edify/builder/quantifier.py @@ -1,5 +1,3 @@ -from abc import abstractmethod - from .abc import Builder @@ -7,10 +5,6 @@ class Quantifier(Builder): def __init__(self, target): self.target = target - @abstractmethod - def build(self): - pass - class Optional(Quantifier): def build(self): @@ -33,7 +27,7 @@ class Exact(Quantifier): self.count = count def build(self): - return f"{self.target}{{self.count}}" + return f"{self.target}{{{self.count}}}" class Range(Quantifier): @@ -43,7 +37,7 @@ class Range(Quantifier): self.max = max def build(self): - return f"{self.target}{{self.min, self.max}}" + return f"{self.target}{{{self.min},{self.max}}}" class AtLeast(Quantifier): @@ -52,7 +46,7 @@ class AtLeast(Quantifier): self.min = min def build(self): - return f"{self.target}{{self.min,}}" + return f"{self.target}{{{self.min},}}" class AtMost(Quantifier): @@ -61,4 +55,4 @@ class AtMost(Quantifier): self.max = max def build(self): - return f"{self.target}{{,self.max}}" + return f"{self.target}{{,{self.max}}}" |
