@@ -34,6 +34,11 @@ def run(self):
34
34
raise RuntimeError (
35
35
'Unable to find regexes.yaml, should be at %r' % yaml_src )
36
36
37
+ def force_bytes (text ):
38
+ if text is None :
39
+ return text
40
+ return text .encode ('utf8' )
41
+
37
42
log .info ('Converting regexes.yaml to _regexes.py...' )
38
43
import yaml
39
44
py_dest = os .path .join (work_path , 'ua_parser' , '_regexes.py' )
@@ -58,33 +63,33 @@ def run(self):
58
63
fp .write (b'USER_AGENT_PARSERS = [\n ' )
59
64
for device_parser in regexes ['user_agent_parsers' ]:
60
65
fp .write (b' UserAgentParser(\n ' )
61
- fp .write (b ' %r,\n ' % device_parser ['regex' ])
62
- fp .write (b ' %r,\n ' % device_parser .get ('family_replacement' ))
63
- fp .write (b ' %r,\n ' % device_parser .get ('v1_replacement' ))
64
- fp .write (b ' %r,\n ' % device_parser .get ('v2_replacement' ))
66
+ fp .write (force_bytes ( ' %r,\n ' % device_parser ['regex' ]) )
67
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('family_replacement' ) ))
68
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('v1_replacement' ) ))
69
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('v2_replacement' ) ))
65
70
fp .write (b' ),\n ' )
66
71
fp .write (b']\n ' )
67
72
fp .write (b'\n ' )
68
73
fp .write (b'DEVICE_PARSERS = [\n ' )
69
74
for device_parser in regexes ['device_parsers' ]:
70
75
fp .write (b' DeviceParser(\n ' )
71
- fp .write (b ' %r,\n ' % device_parser ['regex' ])
72
- fp .write (b ' %r,\n ' % device_parser .get ('regex_flag' ))
73
- fp .write (b ' %r,\n ' % device_parser .get ('device_replacement' ))
74
- fp .write (b ' %r,\n ' % device_parser .get ('brand_replacement' ))
75
- fp .write (b ' %r,\n ' % device_parser .get ('model_replacement' ))
76
+ fp .write (force_bytes ( ' %r,\n ' % device_parser ['regex' ]) )
77
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('regex_flag' ) ))
78
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('device_replacement' ) ))
79
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('brand_replacement' ) ))
80
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('model_replacement' ) ))
76
81
fp .write (b' ),\n ' )
77
82
fp .write (b']\n ' )
78
83
fp .write (b'\n ' )
79
84
fp .write (b'OS_PARSERS = [\n ' )
80
85
for device_parser in regexes ['os_parsers' ]:
81
86
fp .write (b' OSParser(\n ' )
82
- fp .write (b ' %r,\n ' % device_parser ['regex' ])
83
- fp .write (b ' %r,\n ' % device_parser .get ('os_replacement' ))
84
- fp .write (b ' %r,\n ' % device_parser .get ('os_v1_replacement' ))
85
- fp .write (b ' %r,\n ' % device_parser .get ('os_v2_replacement' ))
86
- fp .write (b ' %r,\n ' % device_parser .get ('os_v3_replacement' ))
87
- fp .write (b ' %r,\n ' % device_parser .get ('os_v4_replacement' ))
87
+ fp .write (force_bytes ( ' %r,\n ' % device_parser ['regex' ]) )
88
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('os_replacement' ) ))
89
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('os_v1_replacement' ) ))
90
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('os_v2_replacement' ) ))
91
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('os_v3_replacement' ) ))
92
+ fp .write (force_bytes ( ' %r,\n ' % device_parser .get ('os_v4_replacement' ) ))
88
93
fp .write (b' ),\n ' )
89
94
fp .write (b']\n ' )
90
95
fp .write (b'\n ' )
0 commit comments