aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBobby <[email protected]>2022-08-31 15:26:50 -0400
committerBobby <[email protected]>2022-08-31 15:26:50 -0400
commita5334282804bab56bf3f6310ee81e5a015692473 (patch)
treef41ab0ef4e3b22f95dcabd42f9d12265e7fa7a21
parenta90d3cfecf17c33ce8c376d0b3a0b5cb6f1c1153 (diff)
downloadedify-a5334282804bab56bf3f6310ee81e5a015692473.tar.xz
edify-a5334282804bab56bf3f6310ee81e5a015692473.zip
Remove redundant functions and refactor
-rw-r--r--src/edify/builder/__init__.py10
-rw-r--r--src/edify/builder/abc.py5
-rw-r--r--src/edify/builder/builder.py12
-rw-r--r--src/edify/builder/errors.py2
-rw-r--r--src/edify/builder/part.py31
-rw-r--r--src/edify/builder/quantifier.py14
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}}}"