Completed
Push — master ( 4c11f7...bc6698 )
by Oleksandr
01:42
created

named_group()   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1.125

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 2
ccs 1
cts 2
cp 0.5
rs 10
cc 1
crap 1.125
1
# coding: utf-8
2 1
"""
3
Regex primitives.
4
5
"""
6
7 1
import re
8
9
10 1
ANYTHING = ".+"
11 1
WHITESPACE = "\s"
12 1
WHITESPACES = "{0}+".format(WHITESPACE)
13 1
NON_WHITESPACE = "\S"
14 1
NON_WHITESPACES = "{0}+".format(NON_WHITESPACE)
15 1
DIGIT = "\d"
16 1
NUMBER = "{0}+".format(DIGIT)
17 1
FLOAT = "{0}.{0}".format(NUMBER)
18 1
START_OF_STRING = "^"
19 1
END_OF_STRING = "$"
20
21
22 1
def make_matcher(pattern):
23
    return re.compile(pattern, re.VERBOSE).match
24
25
26 1
def group(expression):
27
    return "({0})".format(expression)
28
29
30 1
def named_group(group_name, expression):
31
    return "(?P<{0}>{1})".format(group_name, expression)
32
33
34 1
def choices(values, delimiter="|"):
35
    return delimiter.join(values)
36