[py3] Ported django.utils.regex_helper.
This commit is contained in:
parent
fe8484efda
commit
17da0aa893
|
@ -8,6 +8,7 @@ should be good enough for a large class of URLS, however.
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django.utils import six
|
from django.utils import six
|
||||||
|
from django.utils.six.moves import zip
|
||||||
|
|
||||||
# Mapping of an escape character to a representative of that class. So, e.g.,
|
# Mapping of an escape character to a representative of that class. So, e.g.,
|
||||||
# "\w" is replaced by "x" in a reverse URL. A value of None means to ignore
|
# "\w" is replaced by "x" in a reverse URL. A value of None means to ignore
|
||||||
|
@ -44,8 +45,8 @@ class NonCapture(list):
|
||||||
|
|
||||||
def normalize(pattern):
|
def normalize(pattern):
|
||||||
"""
|
"""
|
||||||
Given a reg-exp pattern, normalizes it to a list of forms that suffice for
|
Given a reg-exp pattern, normalizes it to an iterable of forms that
|
||||||
reverse matching. This does the following:
|
suffice for reverse matching. This does the following:
|
||||||
|
|
||||||
(1) For any repeating sections, keeps the minimum number of occurrences
|
(1) For any repeating sections, keeps the minimum number of occurrences
|
||||||
permitted (this means zero for optional groups).
|
permitted (this means zero for optional groups).
|
||||||
|
@ -80,7 +81,7 @@ def normalize(pattern):
|
||||||
try:
|
try:
|
||||||
ch, escaped = next(pattern_iter)
|
ch, escaped = next(pattern_iter)
|
||||||
except StopIteration:
|
except StopIteration:
|
||||||
return zip([''], [[]])
|
return [('', [])]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
|
@ -193,9 +194,9 @@ def normalize(pattern):
|
||||||
pass
|
pass
|
||||||
except NotImplementedError:
|
except NotImplementedError:
|
||||||
# A case of using the disjunctive form. No results for you!
|
# A case of using the disjunctive form. No results for you!
|
||||||
return zip([''], [[]])
|
return [('', [])]
|
||||||
|
|
||||||
return zip(*flatten_result(result))
|
return list(zip(*flatten_result(result)))
|
||||||
|
|
||||||
def next_char(input_iter):
|
def next_char(input_iter):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue