22
22
import cattr
23
23
24
24
from pyparsing import Literal as L , Word , Optional as OptionalItem
25
- from pyparsing import printables as _printables , restOfLine
25
+ from pyparsing import printables as _printables , rest_of_line
26
26
from pyparsing import ParseException
27
27
28
28
from linehaul .ua import UserAgent , parser as user_agents
@@ -44,11 +44,11 @@ class UnparseableEvent(Exception):
44
44
pass
45
45
46
46
47
- class NullValue :
47
+ class _NullValue :
48
48
pass
49
49
50
50
51
- NullValue = NullValue ()
51
+ NullValue = _NullValue ()
52
52
53
53
54
54
printables = "" .join (set (_printables + " " + "\t " ) - {"|" , "@" })
@@ -58,29 +58,26 @@ class NullValue:
58
58
AT = L ("@" ).suppress ()
59
59
60
60
NULL = L ("(null)" )
61
- NULL .setParseAction (lambda s , l , t : NullValue )
61
+ NULL .set_parse_action (lambda s , l , t : NullValue )
62
62
63
- TIMESTAMP = Word (printables )
64
- TIMESTAMP = TIMESTAMP .setResultsName ("timestamp" )
65
- TIMESTAMP .setName ("Timestamp" )
63
+ TIMESTAMP = Word (printables ).set_name ("Timestamp" )
64
+ TIMESTAMP = TIMESTAMP .set_results_name ("timestamp" )
66
65
67
- COUNTRY_CODE = Word (printables )
68
- COUNTRY_CODE = COUNTRY_CODE .setResultsName ("country_code" )
69
- COUNTRY_CODE .setName ("Country Code" )
66
+ COUNTRY_CODE = Word (printables ).set_name ("Country Code" )
67
+ COUNTRY_CODE = COUNTRY_CODE .set_results_name ("country_code" )
70
68
71
- URL = Word (printables )
72
- URL = URL .setResultsName ("url" )
73
- URL .setName ("URL" )
69
+ URL = Word (printables ).set_name ("URL" )
70
+ URL = URL .set_results_name ("url" )
74
71
75
72
REQUEST = TIMESTAMP + PIPE + OptionalItem (COUNTRY_CODE ) + PIPE + URL
76
73
77
74
PROJECT_NAME = NULL | Word (printables )
78
- PROJECT_NAME = PROJECT_NAME .setResultsName ("project_name" )
79
- PROJECT_NAME .setName ("Project Name" )
75
+ PROJECT_NAME = PROJECT_NAME .set_results_name ("project_name" )
76
+ PROJECT_NAME .set_name ("Project Name" )
80
77
81
78
VERSION = NULL | Word (printables )
82
- VERSION = VERSION .setResultsName ("version" )
83
- VERSION .setName ("Version" )
79
+ VERSION = VERSION .set_results_name ("version" )
80
+ VERSION .set_name ("Version" )
84
81
85
82
PACKAGE_TYPE = NULL | (
86
83
L ("sdist" )
@@ -92,34 +89,34 @@ class NullValue:
92
89
| L ("bdist_rpm" )
93
90
| L ("bdist_wininst" )
94
91
)
95
- PACKAGE_TYPE = PACKAGE_TYPE .setResultsName ("package_type" )
96
- PACKAGE_TYPE .setName ("Package Type" )
92
+ PACKAGE_TYPE = PACKAGE_TYPE .set_results_name ("package_type" )
93
+ PACKAGE_TYPE .set_name ("Package Type" )
97
94
98
95
PROJECT = PROJECT_NAME + PIPE + VERSION + PIPE + PACKAGE_TYPE
99
96
100
97
TLS_PROTOCOL = NULL | Word (printables )
101
- TLS_PROTOCOL = TLS_PROTOCOL .setResultsName ("tls_protocol" )
102
- TLS_PROTOCOL .setName ("TLS Protocol" )
98
+ TLS_PROTOCOL = TLS_PROTOCOL .set_results_name ("tls_protocol" )
99
+ TLS_PROTOCOL .set_name ("TLS Protocol" )
103
100
104
101
TLS_CIPHER = NULL | Word (printables )
105
- TLS_CIPHER = TLS_CIPHER .setResultsName ("tls_cipher" )
106
- TLS_CIPHER .setName ("TLS Cipher" )
102
+ TLS_CIPHER = TLS_CIPHER .set_results_name ("tls_cipher" )
103
+ TLS_CIPHER .set_name ("TLS Cipher" )
107
104
108
105
TLS = TLS_PROTOCOL + PIPE + TLS_CIPHER
109
106
110
- USER_AGENT = restOfLine
111
- USER_AGENT = USER_AGENT .setResultsName ("user_agent" )
112
- USER_AGENT .setName ("UserAgent" )
107
+ USER_AGENT = rest_of_line
108
+ USER_AGENT = USER_AGENT .set_results_name ("user_agent" )
109
+ USER_AGENT .set_name ("UserAgent" )
113
110
114
111
V1_HEADER = OptionalItem (L ("1" ).suppress () + AT )
115
112
116
113
MESSAGE_v1 = V1_HEADER + REQUEST + PIPE + PROJECT + PIPE + USER_AGENT
117
- MESSAGE_v1 .leaveWhitespace ()
114
+ MESSAGE_v1 .leave_whitespace ()
118
115
119
116
V2_HEADER = L ("2" ).suppress () + AT
120
117
121
118
MESSAGE_v2 = V2_HEADER + REQUEST + PIPE + TLS + PIPE + PROJECT + PIPE + USER_AGENT
122
- MESSAGE_v2 .leaveWhitespace ()
119
+ MESSAGE_v2 .leave_whitespace ()
123
120
124
121
V3_HEADER = L ("download" )
125
122
MESSAGE_v3 = (
@@ -204,7 +201,7 @@ def _value_or_none(value):
204
201
205
202
def parse (message ):
206
203
try :
207
- parsed = MESSAGE .parseString (message , parseAll = True )
204
+ parsed = MESSAGE .parse_string (message , parseAll = True )
208
205
except ParseException as exc :
209
206
raise UnparseableEvent ("{!r} {}" .format (message , exc )) from None
210
207
0 commit comments