@@ -107,25 +107,20 @@ def encode(v, r):
107107 )
108108
109109
110- def encode_int (x , list r ):
110+ cdef encode_int(long x, list r):
111111 r.extend((b' i' , str (x).encode(), b' e' ))
112112
113113
114- def encode_long (long x , list r ):
114+ def encode_long (x , list r ):
115115 r.extend((b' i' , str (x).encode(), b' e' ))
116116
117117
118- def encode_bool (x , list r ):
119- if x:
120- encode_int(1 , r)
121- else :
122- encode_int(0 , r)
118+ cdef encode_bytes(bytes x, list r):
119+ r.extend((str (len (x)).encode(), b' :' , x))
123120
124121
125- def encode_string (x , list r ):
126- if isinstance (x, str ):
127- x = x.encode()
128- r.extend((str (len (x)).encode(), b' :' , x))
122+ def encode_string (str x , list r ):
123+ r.extend((str (len (x)).encode(), b' :' , x.encode()))
129124
130125
131126def encode_list (x , list r ):
@@ -149,14 +144,14 @@ def encode_dict(x, list r):
149144
150145encode_func = {
151146 int : encode_int,
147+ bool : encode_int,
152148 long : encode_long,
153- bytes: encode_string ,
149+ bytes: encode_bytes ,
154150 str : encode_string,
155151 list : encode_list,
156152 tuple : encode_list,
157153 dict : encode_dict,
158154 OrderedDict: encode_dict,
159- bool : encode_bool,
160155}
161156
162157
0 commit comments