@@ -36,76 +36,85 @@ class FontconfigPatternParser(object):
3636 """
3737
3838 _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' )
6363 }
6464
6565 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+ )
109118
110119 self ._parser = pattern
111120 self .ParseException = ParseException
0 commit comments