Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

really drop python<=3.7 support #529

Open
wants to merge 2 commits into
base: hg
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 31 additions & 31 deletions regex_3/_regex_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def __init__(self, message, pattern=None, pos=None):
self.lineno = pattern.count(newline, 0, pos) + 1
self.colno = pos - pattern.rfind(newline, 0, pos)

message = "{} at position {}".format(message, pos)
message = f"{message} at position {pos}"

if newline in pattern:
message += " (line {}, column {})".format(self.lineno,
Expand Down Expand Up @@ -1318,7 +1318,7 @@ def parse_hex_escape(source, info, esc, expected_len, in_set, type):
for i in range(expected_len):
ch = source.get()
if ch not in HEX_DIGITS:
raise error("incomplete escape \\%s%s" % (type, ''.join(digits)),
raise error("incomplete escape \\{}{}".format(type, ''.join(digits)),
source.string, saved_pos)
digits.append(ch)

Expand All @@ -1331,7 +1331,7 @@ def parse_hex_escape(source, info, esc, expected_len, in_set, type):
return make_character(info, value, in_set)

# Bad hex escape.
raise error("bad hex escape \\%s%s" % (esc, ''.join(digits)),
raise error("bad hex escape \\{}{}".format(esc, ''.join(digits)),
source.string, saved_pos)

def parse_group_ref(source, info):
Expand Down Expand Up @@ -1617,7 +1617,7 @@ def numeric_to_rational(numeric):
else:
raise ValueError()

result = "{}{}/{}".format(sign, num, den)
result = f"{sign}{num}/{den}"
if result.endswith("/1"):
return result[ : -2]

Expand Down Expand Up @@ -1782,7 +1782,7 @@ def parse_repl_hex_escape(source, expected_len, type):
for i in range(expected_len):
ch = source.get()
if ch not in HEX_DIGITS:
raise error("incomplete escape \\%s%s" % (type, ''.join(digits)),
raise error("incomplete escape \\{}{}".format(type, ''.join(digits)),
source.string, source.pos)
digits.append(ch)

Expand Down Expand Up @@ -1921,7 +1921,7 @@ def __init__(self, positive=True):
self._key = self.__class__, self.positive

def get_firstset(self, reverse):
return set([None])
return {None}

def _compile(self, reverse, fuzzy):
flags = 0
Expand Down Expand Up @@ -1954,7 +1954,7 @@ def _compile(self, reverse, fuzzy):
return [(self._opcode[reverse], flags)]

def dump(self, indent, reverse):
print("{}{}".format(INDENT * indent, self._op_name))
print(f"{INDENT * indent}{self._op_name}")

def max_width(self):
return 1
Expand Down Expand Up @@ -2007,7 +2007,7 @@ def _compile(self, reverse, fuzzy):
[(OP.END, )])

def dump(self, indent, reverse):
print("{}ATOMIC".format(INDENT * indent))
print(f"{INDENT * indent}ATOMIC")
self.subpattern.dump(indent + 1, reverse)

def is_empty(self):
Expand Down Expand Up @@ -2108,7 +2108,7 @@ def get_firstset(self, reverse):
for b in self.branches:
fs |= b.get_firstset(reverse)

return fs or set([None])
return fs or {None}

def _compile(self, reverse, fuzzy):
if not self.branches:
Expand All @@ -2124,10 +2124,10 @@ def _compile(self, reverse, fuzzy):
return code

def dump(self, indent, reverse):
print("{}BRANCH".format(INDENT * indent))
print(f"{INDENT * indent}BRANCH")
self.branches[0].dump(indent + 1, reverse)
for b in self.branches[1 : ]:
print("{}OR".format(INDENT * indent))
print(f"{INDENT * indent}OR")
b.dump(indent + 1, reverse)

@staticmethod
Expand Down Expand Up @@ -2454,7 +2454,7 @@ def _compile(self, reverse, fuzzy):
return [(OP.GROUP_CALL, self.call_ref)]

def dump(self, indent, reverse):
print("{}GROUP_CALL {}".format(INDENT * indent, self.group))
print(f"{INDENT * indent}GROUP_CALL {self.group}")

def __eq__(self, other):
return type(self) is type(other) and self.group == other.group
Expand Down Expand Up @@ -2505,7 +2505,7 @@ def optimise(self, info, reverse, in_set=False):
return self

def get_firstset(self, reverse):
return set([self])
return {self}

def has_simple_start(self):
return True
Expand Down Expand Up @@ -2618,10 +2618,10 @@ def _compile(self, reverse, fuzzy):
return code

def dump(self, indent, reverse):
print("{}GROUP_EXISTS {}".format(INDENT * indent, self.group))
print(f"{INDENT * indent}GROUP_EXISTS {self.group}")
self.yes_item.dump(indent + 1, reverse)
if not self.no_item.is_empty():
print("{}OR".format(INDENT * indent))
print(f"{INDENT * indent}OR")
self.no_item.dump(indent + 1, reverse)

def is_empty(self):
Expand Down Expand Up @@ -2766,7 +2766,7 @@ def dump(self, indent, reverse):
constraints = self._constraints_to_string()
if constraints:
constraints = " " + constraints
print("{}FUZZY{}".format(INDENT * indent, constraints))
print(f"{INDENT * indent}FUZZY{constraints}")
self.subpattern.dump(indent + 1, reverse)

def is_empty(self):
Expand All @@ -2790,20 +2790,20 @@ def _constraints_to_string(self):
con = ""

if min > 0:
con = "{}<=".format(min)
con = f"{min}<="

con += name

if max is not None:
con += "<={}".format(max)
con += f"<={max}"

constraints.append(con)

cost = []
for name in "ids":
coeff = self.constraints["cost"][name]
if coeff > 0:
cost.append("{}{}".format(coeff, name))
cost.append(f"{coeff}{name}")

limit = self.constraints["cost"]["max"]
if limit is not None and limit > 0:
Expand All @@ -2822,7 +2822,7 @@ def _compile(self, reverse, fuzzy):
return grapheme_matcher.compile(reverse, fuzzy)

def dump(self, indent, reverse):
print("{}GRAPHEME".format(INDENT * indent))
print(f"{INDENT * indent}GRAPHEME")

def max_width(self):
return UNLIMITED
Expand Down Expand Up @@ -2942,7 +2942,7 @@ def _compile(self, reverse, fuzzy):
(OP.END, )])

def dump(self, indent, reverse):
print("{}ATOMIC".format(INDENT * indent))
print(f"{INDENT * indent}ATOMIC")

if self.max_count is None:
limit = "INF"
Expand Down Expand Up @@ -3019,7 +3019,7 @@ def dump(self, indent, reverse):
group = self.group
if group < 0:
group = private_groups[group]
print("{}GROUP {}".format(INDENT * indent, group))
print(f"{INDENT * indent}GROUP {group}")
self.subpattern.dump(indent + 1, reverse)

def __eq__(self, other):
Expand Down Expand Up @@ -3082,7 +3082,7 @@ def get_firstset(self, reverse):
if self.positive and self.behind == reverse:
return self.subpattern.get_firstset(reverse)

return set([None])
return {None}

def _compile(self, reverse, fuzzy):
flags = 0
Expand Down Expand Up @@ -3176,10 +3176,10 @@ def dump(self, indent, reverse):
print("{}CONDITIONAL {} {}".format(INDENT * indent,
self._dir_text[self.behind], POS_TEXT[self.positive]))
self.subpattern.dump(indent + 1, self.behind)
print("{}EITHER".format(INDENT * indent))
print(f"{INDENT * indent}EITHER")
self.yes_item.dump(indent + 1, reverse)
if not self.no_item.is_empty():
print("{}OR".format(INDENT * indent))
print(f"{INDENT * indent}OR")
self.no_item.dump(indent + 1, reverse)

def is_empty(self):
Expand Down Expand Up @@ -3228,7 +3228,7 @@ def optimise(self, info, reverse, in_set=False):
return self

def get_firstset(self, reverse):
return set([self])
return {self}

def has_simple_start(self):
return True
Expand Down Expand Up @@ -3477,7 +3477,7 @@ def get_firstset(self, reverse):
return fs
fs.discard(None)

return fs | set([None])
return fs | {None}

def has_simple_start(self):
return bool(self.items) and self.items[0].has_simple_start()
Expand Down Expand Up @@ -3624,7 +3624,7 @@ def rebuild(self, positive, case_flags, zerowidth):
zerowidth).optimise(self.info, False)

def get_firstset(self, reverse):
return set([self])
return {self}

def has_simple_start(self):
return True
Expand Down Expand Up @@ -3913,8 +3913,8 @@ def get_firstset(self, reverse):
pos = -1
else:
pos = 0
return set([Character(self.characters[pos],
case_flags=self.case_flags)])
return {Character(self.characters[pos],
case_flags=self.case_flags)}

def has_simple_start(self):
return True
Expand Down Expand Up @@ -4185,7 +4185,7 @@ def match(self, substring):

def expect(self, substring):
if not self.match(substring):
raise error("missing {}".format(substring), self.string, self.pos)
raise error(f"missing {substring}", self.string, self.pos)

def at_end(self):
string = self.string
Expand Down
6 changes: 3 additions & 3 deletions regex_3/regex.py
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ def complain_unused_args():
unused_kwargs = set(kwargs) - {k for k, v in args_needed}
if unused_kwargs:
any_one = next(iter(unused_kwargs))
raise ValueError('unused keyword argument {!a}'.format(any_one))
raise ValueError(f'unused keyword argument {any_one!a}')

if cache_it:
try:
Expand All @@ -491,7 +491,7 @@ def complain_unused_args():
try:
args_supplied.add((k, frozenset(kwargs[k])))
except KeyError:
raise error("missing named list: {!r}".format(k))
raise error(f"missing named list: {k!r}")

complain_unused_args()

Expand Down Expand Up @@ -639,7 +639,7 @@ def complain_unused_args():
pass

# The named capture groups.
index_group = dict((v, n) for n, v in info.group_index.items())
index_group = {v: n for n, v in info.group_index.items()}

# Create the PatternObject.
#
Expand Down
Loading