19
19
# THE SOFTWARE.
20
20
21
21
from __future__ import absolute_import
22
+ from future import standard_library
23
+ standard_library .install_aliases ()
24
+ from past .builtins import basestring
25
+ from builtins import object
22
26
23
- import urllib
27
+ import urllib . request , urllib . parse , urllib . error
24
28
25
29
from opentracing import (
26
30
InvalidCarrierException ,
@@ -64,9 +68,9 @@ def inject(self, span_context, carrier):
64
68
parent_id = span_context .parent_id , flags = span_context .flags )
65
69
baggage = span_context .baggage
66
70
if baggage :
67
- for key , value in baggage .iteritems ():
71
+ for key , value in baggage .items ():
68
72
if self .url_encoding :
69
- encoded_value = urllib .quote (value )
73
+ encoded_value = urllib .parse . quote (value )
70
74
else :
71
75
encoded_value = value
72
76
carrier ['%s%s' % (self .baggage_prefix , key )] = encoded_value
@@ -77,24 +81,24 @@ def extract(self, carrier):
77
81
trace_id , span_id , parent_id , flags = None , None , None , None
78
82
baggage = None
79
83
debug_id = None
80
- for key , value in carrier .iteritems ():
84
+ for key , value in carrier .items ():
81
85
uc_key = key .lower ()
82
86
if uc_key == self .trace_id_header :
83
87
if self .url_encoding :
84
- value = urllib .unquote (value )
88
+ value = urllib .parse . unquote (value )
85
89
trace_id , span_id , parent_id , flags = \
86
90
span_context_from_string (value )
87
91
elif uc_key .startswith (self .baggage_prefix ):
88
92
if self .url_encoding :
89
- value = urllib .unquote (value )
93
+ value = urllib .parse . unquote (value )
90
94
attr_key = key [self .prefix_length :]
91
95
if baggage is None :
92
96
baggage = {attr_key .lower (): value }
93
97
else :
94
98
baggage [attr_key .lower ()] = value
95
99
elif uc_key == self .debug_id_header :
96
100
if self .url_encoding :
97
- value = urllib .unquote (value )
101
+ value = urllib .parse . unquote (value )
98
102
debug_id = value
99
103
if not trace_id and baggage :
100
104
raise SpanContextCorruptedException ('baggage without trace ctx' )
@@ -137,7 +141,7 @@ def span_context_to_string(trace_id, span_id, parent_id, flags):
137
141
:param parent_id:
138
142
:param flags:
139
143
"""
140
- parent_id = parent_id or 0L
144
+ parent_id = parent_id or 0
141
145
return '{:x}:{:x}:{:x}:{:x}' .format (trace_id , span_id , parent_id , flags )
142
146
143
147
@@ -162,9 +166,9 @@ def span_context_from_string(value):
162
166
raise SpanContextCorruptedException (
163
167
'malformed trace context "%s"' % value )
164
168
try :
165
- trace_id = long (parts [0 ], 16 )
166
- span_id = long (parts [1 ], 16 )
167
- parent_id = long (parts [2 ], 16 )
169
+ trace_id = int (parts [0 ], 16 )
170
+ span_id = int (parts [1 ], 16 )
171
+ parent_id = int (parts [2 ], 16 )
168
172
flags = int (parts [3 ], 16 )
169
173
if trace_id < 1 or span_id < 1 or parent_id < 0 or flags < 0 :
170
174
raise SpanContextCorruptedException (
0 commit comments