Mercurial > pygame
annotate lib/compat.py @ 3172:d1b367fc08bc tests-returncode
Use a return code of 1 when the tests fail.
| author | Thomas Kluyver <takowl@gmail.com> |
|---|---|
| date | Wed, 09 Jan 2013 10:13:57 +0000 |
| parents | 6eb709037e77 |
| children |
| rev | line source |
|---|---|
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
1 """Python 2.x/3.x compatibility tools""" |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
2 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
3 import sys |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
4 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
5 __all__ = ['geterror', 'long_', 'xrange_', 'ord_', 'unichr_', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
6 'unicode_', 'raw_input_', 'as_bytes', 'as_unicode'] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
7 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
8 def geterror (): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
9 return sys.exc_info()[1] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
10 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
11 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
12 long_ = long |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
13 except NameError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
14 long_ = int |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
15 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
16 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
17 xrange_ = xrange |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
18 except NameError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
19 xrange_ = range |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
20 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
21 def get_BytesIO(): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
22 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
23 from cStringIO import StringIO as BytesIO |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
24 except ImportError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
25 from io import BytesIO |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
26 return BytesIO |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
27 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
28 def get_StringIO(): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
29 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
30 from cStringIO import StringIO |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
31 except ImportError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
32 from io import StringIO |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
33 return StringIO |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
34 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
35 def ord_(o): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
36 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
37 return ord(o) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
38 except TypeError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
39 return o |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
40 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
41 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
42 unichr_ = unichr |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
43 except NameError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
44 unichr_ = chr |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
45 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
46 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
47 unicode_ = unicode |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
48 except NameError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
49 unicode_ = str |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
50 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
51 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
52 bytes_ = bytes |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
53 except NameError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
54 bytes_ = str |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
55 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
56 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
57 raw_input_ = raw_input |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
58 except NameError: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
59 raw_input_ = input |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
60 |
|
2122
3129146c2555
small fixes to get Pygame to pass the unit tests on Windows for Python 3.2
Lenard Lindstrom <len-l@telus.net>
parents:
2105
diff
changeset
|
61 if sys.platform == 'win32': |
|
3129146c2555
small fixes to get Pygame to pass the unit tests on Windows for Python 3.2
Lenard Lindstrom <len-l@telus.net>
parents:
2105
diff
changeset
|
62 filesystem_errors = "replace" |
|
3129146c2555
small fixes to get Pygame to pass the unit tests on Windows for Python 3.2
Lenard Lindstrom <len-l@telus.net>
parents:
2105
diff
changeset
|
63 elif sys.version_info >= (3, 0, 0): |
|
2105
297803165311
merge fsencoding branch back into trunk, correcting Unicode file path encoding
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
64 filesystem_errors = "surrogateescape" |
|
297803165311
merge fsencoding branch back into trunk, correcting Unicode file path encoding
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
65 else: |
|
297803165311
merge fsencoding branch back into trunk, correcting Unicode file path encoding
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
66 filesystem_errors = "strict" |
|
297803165311
merge fsencoding branch back into trunk, correcting Unicode file path encoding
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
67 |
|
297803165311
merge fsencoding branch back into trunk, correcting Unicode file path encoding
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
68 def filesystem_encode(u): |
|
297803165311
merge fsencoding branch back into trunk, correcting Unicode file path encoding
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
69 return u.encode(sys.getfilesystemencoding(), filesystem_errors) |
|
297803165311
merge fsencoding branch back into trunk, correcting Unicode file path encoding
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
70 |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
71 # Represent escaped bytes and strings in a portable way. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
72 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
73 # as_bytes: Allow a Python 3.x string to represent a bytes object. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
74 # e.g.: as_bytes("a\x01\b") == b"a\x01b" # Python 3.x |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
75 # as_bytes("a\x01\b") == "a\x01b" # Python 2.x |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
76 # as_unicode: Allow a Python "r" string to represent a unicode string. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
77 # e.g.: as_unicode(r"Bo\u00F6tes") == u"Bo\u00F6tes" # Python 2.x |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
78 # as_unicode(r"Bo\u00F6tes") == "Bo\u00F6tes" # Python 3.x |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
79 try: |
|
3149
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
80 unicode |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
81 def as_bytes(string): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
82 """ '<binary literal>' => '<binary literal>' """ |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
83 return string |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
84 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
85 def as_unicode(rstring): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
86 """ r'<Unicode literal>' => u'<Unicode literal>' """ |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
87 return rstring.decode('unicode_escape', 'strict') |
|
3149
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
88 except NameError: |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
89 def as_bytes(string): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
90 """ '<binary literal>' => b'<binary literal>' """ |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
91 return string.encode('latin-1', 'strict') |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
92 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
93 def as_unicode(rstring): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
94 """ r'<Unicode literal>' => '<Unicode literal>' """ |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
95 return rstring.encode('ascii', 'strict').decode('unicode_escape', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
96 'stict') |
|
3149
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
97 # Include a next compatible function for Python versions < 2.6 |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
98 try: |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
99 next_ = next |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
100 except NameError: |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
101 def next_(i, *args): |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
102 try: |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
103 return i.next() |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
104 except StopIteration: |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
105 if args: |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
106 return args[0] |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
107 raise |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
2066
diff
changeset
|
108 |
|
3149
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
109 # itertools.imap is missing in 3.x |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
110 try: |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
111 import itertools.imap as imap_ |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
112 except ImportError: |
|
6eb709037e77
First batch of fixes for issue #146
Lenard Lindstrom <len-l@telus.net>
parents:
2122
diff
changeset
|
113 imap_ = map |
