##// END OF EJS Templates
pyflakes: use pycompat.pickles to prevent error...
Pierre-Yves David -
r29405:fbe380dc default
parent child Browse files
Show More
@@ -1,129 +1,130
1 1 # pycompat.py - portability shim for python 3
2 2 #
3 3 # This software may be used and distributed according to the terms of the
4 4 # GNU General Public License version 2 or any later version.
5 5
6 6 """Mercurial portability shim for python 3.
7 7
8 8 This contains aliases to hide python version-specific details from the core.
9 9 """
10 10
11 11 from __future__ import absolute_import
12 12
13 13 try:
14 14 import cPickle as pickle
15 15 pickle.dumps
16 16 except ImportError:
17 17 import pickle
18 pickle.dumps # silence pyflakes
18 19
19 20 try:
20 21 import cStringIO as io
21 22 stringio = io.StringIO
22 23 except ImportError:
23 24 import io
24 25 stringio = io.StringIO
25 26
26 27 try:
27 28 import Queue as _queue
28 29 _queue.Queue
29 30 except ImportError:
30 31 import queue as _queue
31 32 empty = _queue.Empty
32 33 queue = _queue.Queue
33 34
34 35 class _pycompatstub(object):
35 36 pass
36 37
37 38 def _alias(alias, origin, items):
38 39 """ populate a _pycompatstub
39 40
40 41 copies items from origin to alias
41 42 """
42 43 def hgcase(item):
43 44 return item.replace('_', '').lower()
44 45 for item in items:
45 46 try:
46 47 setattr(alias, hgcase(item), getattr(origin, item))
47 48 except AttributeError:
48 49 pass
49 50
50 51 urlreq = _pycompatstub()
51 52 urlerr = _pycompatstub()
52 53 try:
53 54 import urllib2
54 55 import urllib
55 56 _alias(urlreq, urllib, (
56 57 "addclosehook",
57 58 "addinfourl",
58 59 "ftpwrapper",
59 60 "pathname2url",
60 61 "quote",
61 62 "splitattr",
62 63 "splitpasswd",
63 64 "splitport",
64 65 "splituser",
65 66 "unquote",
66 67 "url2pathname",
67 68 "urlencode",
68 69 "urlencode",
69 70 ))
70 71 _alias(urlreq, urllib2, (
71 72 "AbstractHTTPHandler",
72 73 "BaseHandler",
73 74 "build_opener",
74 75 "FileHandler",
75 76 "FTPHandler",
76 77 "HTTPBasicAuthHandler",
77 78 "HTTPDigestAuthHandler",
78 79 "HTTPHandler",
79 80 "HTTPPasswordMgrWithDefaultRealm",
80 81 "HTTPSHandler",
81 82 "install_opener",
82 83 "ProxyHandler",
83 84 "Request",
84 85 "urlopen",
85 86 ))
86 87 _alias(urlerr, urllib2, (
87 88 "HTTPError",
88 89 "URLError",
89 90 ))
90 91
91 92 except ImportError:
92 93 import urllib.request
93 94 _alias(urlreq, urllib.request, (
94 95 "AbstractHTTPHandler",
95 96 "addclosehook",
96 97 "addinfourl",
97 98 "BaseHandler",
98 99 "build_opener",
99 100 "FileHandler",
100 101 "FTPHandler",
101 102 "ftpwrapper",
102 103 "HTTPHandler",
103 104 "HTTPSHandler",
104 105 "install_opener",
105 106 "pathname2url",
106 107 "HTTPBasicAuthHandler",
107 108 "HTTPDigestAuthHandler",
108 109 "ProxyHandler",
109 110 "quote",
110 111 "Request",
111 112 "splitattr",
112 113 "splitpasswd",
113 114 "splitport",
114 115 "splituser",
115 116 "unquote",
116 117 "url2pathname",
117 118 "urlopen",
118 119 ))
119 120 import urllib.error
120 121 _alias(urlerr, urllib.error, (
121 122 "HTTPError",
122 123 "URLError",
123 124 ))
124 125
125 126 try:
126 127 xrange
127 128 except NameError:
128 129 import builtins
129 130 builtins.xrange = range
General Comments 0
You need to be logged in to leave comments. Login now