@@ -36,76 +36,85 @@ class FontconfigPatternParser(object):
36
36
"""
37
37
38
38
_constants = {
39
- 'thin' : ('weight' , 'light' ),
40
- 'extralight' : ('weight' , 'light' ),
41
- 'ultralight' : ('weight' , 'light' ),
42
- 'light' : ('weight' , 'light' ),
43
- 'book' : ('weight' , 'book' ),
44
- 'regular' : ('weight' , 'regular' ),
45
- 'normal' : ('weight' , 'normal' ),
46
- 'medium' : ('weight' , 'medium' ),
47
- 'demibold' : ('weight' , 'demibold' ),
48
- 'semibold' : ('weight' , 'semibold' ),
49
- 'bold' : ('weight' , 'bold' ),
50
- 'extrabold' : ('weight' , 'extra bold' ),
51
- 'black' : ('weight' , 'black' ),
52
- 'heavy' : ('weight' , 'heavy' ),
53
- 'roman' : ('slant' , 'normal' ),
54
- 'italic' : ('slant' , 'italic' ),
55
- 'oblique' : ('slant' , 'oblique' ),
56
- 'ultracondensed' : ('width' , 'ultra-condensed' ),
57
- 'extracondensed' : ('width' , 'extra-condensed' ),
58
- 'condensed' : ('width' , 'condensed' ),
59
- 'semicondensed' : ('width' , 'semi-condensed' ),
60
- 'expanded' : ('width' , 'expanded' ),
61
- 'extraexpanded' : ('width' , 'extra-expanded' ),
62
- 'ultraexpanded' : ('width' , 'ultra-expanded' )
39
+ 'thin' : ('weight' , 'light' ),
40
+ 'extralight' : ('weight' , 'light' ),
41
+ 'ultralight' : ('weight' , 'light' ),
42
+ 'light' : ('weight' , 'light' ),
43
+ 'book' : ('weight' , 'book' ),
44
+ 'regular' : ('weight' , 'regular' ),
45
+ 'normal' : ('weight' , 'normal' ),
46
+ 'medium' : ('weight' , 'medium' ),
47
+ 'demibold' : ('weight' , 'demibold' ),
48
+ 'semibold' : ('weight' , 'semibold' ),
49
+ 'bold' : ('weight' , 'bold' ),
50
+ 'extrabold' : ('weight' , 'extra bold' ),
51
+ 'black' : ('weight' , 'black' ),
52
+ 'heavy' : ('weight' , 'heavy' ),
53
+ 'roman' : ('slant' , 'normal' ),
54
+ 'italic' : ('slant' , 'italic' ),
55
+ 'oblique' : ('slant' , 'oblique' ),
56
+ 'ultracondensed' : ('width' , 'ultra-condensed' ),
57
+ 'extracondensed' : ('width' , 'extra-condensed' ),
58
+ 'condensed' : ('width' , 'condensed' ),
59
+ 'semicondensed' : ('width' , 'semi-condensed' ),
60
+ 'expanded' : ('width' , 'expanded' ),
61
+ 'extraexpanded' : ('width' , 'extra-expanded' ),
62
+ 'ultraexpanded' : ('width' , 'ultra-expanded' )
63
63
}
64
64
65
65
def __init__ (self ):
66
- family = Regex (r'([^%s]|(\\[%s]))*' %
67
- (family_punc , family_punc )) \
68
- .setParseAction (self ._family )
69
- size = Regex (r"([0-9]+\.?[0-9]*|\.[0-9]+)" ) \
70
- .setParseAction (self ._size )
71
- name = Regex (r'[a-z]+' ) \
72
- .setParseAction (self ._name )
73
- value = Regex (r'([^%s]|(\\[%s]))*' %
74
- (value_punc , value_punc )) \
75
- .setParseAction (self ._value )
76
-
77
- families = (family
78
- + ZeroOrMore (
79
- Literal (',' )
80
- + family )
81
- ).setParseAction (self ._families )
82
-
83
- point_sizes = (size
84
- + ZeroOrMore (
85
- Literal (',' )
86
- + size )
87
- ).setParseAction (self ._point_sizes )
88
-
89
- property = ((name
90
- + Suppress (Literal ('=' ))
91
- + value
92
- + ZeroOrMore (
93
- Suppress (Literal (',' ))
94
- + value )
95
- )
96
- | name
97
- ).setParseAction (self ._property )
98
-
99
- pattern = (Optional (
100
- families )
101
- + Optional (
102
- Literal ('-' )
103
- + point_sizes )
104
- + ZeroOrMore (
105
- Literal (':' )
106
- + property )
107
- + StringEnd ()
108
- )
66
+
67
+ family = Regex (
68
+ r'([^%s]|(\\[%s]))*' % (family_punc , family_punc )
69
+ ).setParseAction (self ._family )
70
+
71
+ size = Regex (
72
+ r"([0-9]+\.?[0-9]*|\.[0-9]+)"
73
+ ).setParseAction (self ._size )
74
+
75
+ name = Regex (
76
+ r'[a-z]+'
77
+ ).setParseAction (self ._name )
78
+
79
+ value = Regex (
80
+ r'([^%s]|(\\[%s]))*' % (value_punc , value_punc )
81
+ ).setParseAction (self ._value )
82
+
83
+ families = (
84
+ family
85
+ + ZeroOrMore (
86
+ Literal (',' )
87
+ + family )
88
+ ).setParseAction (self ._families )
89
+
90
+ point_sizes = (
91
+ size
92
+ + ZeroOrMore (
93
+ Literal (',' )
94
+ + size )
95
+ ).setParseAction (self ._point_sizes )
96
+
97
+ property = (
98
+ (name
99
+ + Suppress (Literal ('=' ))
100
+ + value
101
+ + ZeroOrMore (
102
+ Suppress (Literal (',' ))
103
+ + value ))
104
+ | name
105
+ ).setParseAction (self ._property )
106
+
107
+ pattern = (
108
+ Optional (
109
+ families )
110
+ + Optional (
111
+ Literal ('-' )
112
+ + point_sizes )
113
+ + ZeroOrMore (
114
+ Literal (':' )
115
+ + property )
116
+ + StringEnd ()
117
+ )
109
118
110
119
self ._parser = pattern
111
120
self .ParseException = ParseException
0 commit comments