22# They are moved to separate file, so they can be loaded
33# in other Python version for test_xpickle.
44
5+ import sys
6+
57class C :
68 def __eq__ (self , other ):
79 return self .__dict__ == other .__dict__
@@ -55,8 +57,15 @@ def __getinitargs__(self):
5557class metaclass (type ):
5658 pass
5759
60+ if sys .version_info >= (3 ,):
61+ # Syntax not compatible with Python 2
62+ exec ('''
5863class use_metaclass(object, metaclass=metaclass):
5964 pass
65+ ''' )
66+ else :
67+ class use_metaclass (object ):
68+ __metaclass__ = metaclass
6069
6170
6271# Test classes for reduce_ex
@@ -174,6 +183,13 @@ def __getstate__(self):
174183class MyInt (int ):
175184 sample = 1
176185
186+ if sys .version_info >= (3 ,):
187+ class MyLong (int ):
188+ sample = 1
189+ else :
190+ class MyLong (long ):
191+ sample = long (1 )
192+
177193class MyFloat (float ):
178194 sample = 1.0
179195
@@ -183,8 +199,12 @@ class MyComplex(complex):
183199class MyStr (str ):
184200 sample = "hello"
185201
186- class MyUnicode (str ):
187- sample = "hello \u1234 "
202+ if sys .version_info >= (3 ,):
203+ class MyUnicode (str ):
204+ sample = "hello \u1234 "
205+ else :
206+ class MyUnicode (unicode ):
207+ sample = unicode (r"hello \u1234" , "raw-unicode-escape" )
188208
189209class MyTuple (tuple ):
190210 sample = (1 , 2 , 3 )
@@ -201,7 +221,7 @@ class MySet(set):
201221class MyFrozenSet (frozenset ):
202222 sample = frozenset ({"a" , "b" })
203223
204- myclasses = [MyInt , MyFloat ,
224+ myclasses = [MyInt , MyLong , MyFloat ,
205225 MyComplex ,
206226 MyStr , MyUnicode ,
207227 MyTuple , MyList , MyDict , MySet , MyFrozenSet ]
0 commit comments