• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Changelog for six
2=================
3
4This file lists the changes in each six version.
5
61.17.0
7------
8
9- Pull request #388: Remove `URLopener` and `FancyURLopener` classes from
10  `urllib.request` when running on Python 3.14 or greater.
11
12- Pull request #365, issue #283: `six.moves.UserDict` now points to
13  `UserDict.IterableUserDict` instead of `UserDict.UserDict` on Python 2.
14
151.16.0
16------
17
18- Pull request #343, issue #341, pull request #349: Port _SixMetaPathImporter to
19  Python 3.10.
20
211.15.0
22------
23
24- Pull request #331: Optimize `six.ensure_str` and `six.ensure_binary`.
25
261.14.0
27------
28
29- Issue #288, pull request #289: Add `six.assertNotRegex`.
30
31- Issue #317: `six.moves._dummy_thread` now points to the `_thread` module on
32  Python 3.9+. Python 3.7 and later requires threading and deprecated the
33  `_dummy_thread` module.
34
35- Issue #308, pull request #314: Remove support for Python 2.6 and Python 3.2.
36
37- Issue #250, issue #165, pull request #251: `six.wraps` now ignores missing
38  attributes. This follows the Python 3.2+ standard library behavior.
39
401.13.0
41------
42
43- Issue #298, pull request #299: Add `six.moves.dbm_ndbm`.
44
45- Issue #155: Add `six.moves.collections_abc`, which aliases the `collections`
46  module on Python 2-3.2 and the `collections.abc` on Python 3.3 and greater.
47
48- Pull request #304: Re-add distutils fallback in `setup.py`.
49
50- Pull request #305: On Python 3.7, `with_metaclass` supports classes using PEP
51  560 features.
52
531.12.0
54------
55
56- Issue #259, pull request #260: `six.add_metaclass` now preserves
57  `__qualname__` from the original class.
58
59- Pull request #204: Add `six.ensure_binary`, `six.ensure_text`, and
60  `six.ensure_str`.
61
621.11.0
63------
64
65- Pull request #178: `with_metaclass` now properly proxies `__prepare__` to the
66  underlying metaclass.
67
68- Pull request #191: Allow `with_metaclass` to work with metaclasses implemented
69  in C.
70
71- Pull request #203: Add parse_http_list and parse_keqv_list to moved
72  urllib.request.
73
74- Pull request #172 and issue #171: Add unquote_to_bytes to moved urllib.parse.
75
76- Pull request #167: Add `six.moves.getoutput`.
77
78- Pull request #80: Add `six.moves.urllib_parse.splitvalue`.
79
80- Pull request #75: Add `six.moves.email_mime_image`.
81
82- Pull request #72: Avoid creating reference cycles through tracebacks in
83  `reraise`.
84
851.10.0
86------
87
88- Issue #122: Improve the performance of `six.int2byte` on Python 3.
89
90- Pull request #55 and issue #99: Don't add the `winreg` module to `six.moves`
91  on non-Windows platforms.
92
93- Pull request #60 and issue #108: Add `six.moves.getcwd` and
94  `six.moves.getcwdu`.
95
96- Pull request #64: Add `create_unbound_method` to create unbound methods.
97
981.9.0
99-----
100
101- Issue #106: Support the `flush` parameter to `six.print_`.
102
103- Pull request #48 and issue #15: Add the `python_2_unicode_compatible`
104  decorator.
105
106- Pull request #57 and issue #50: Add several compatibility methods for unittest
107  assertions that were renamed between Python 2 and 3.
108
109- Issue #105 and pull request #58: Ensure `six.wraps` respects the *updated* and
110  *assigned* arguments.
111
112- Issue #102: Add `raise_from` to abstract out Python 3's raise from syntax.
113
114- Issue #97: Optimize `six.iterbytes` on Python 2.
115
116- Issue #98: Fix `six.moves` race condition in multi-threaded code.
117
118- Pull request #51: Add `six.view(keys|values|items)`, which provide dictionary
119  views on Python 2.7+.
120
121- Issue #112: `six.moves.reload_module` now uses the importlib module on
122  Python 3.4+.
123
1241.8.0
125-----
126
127- Issue #90: Add `six.moves.shlex_quote`.
128
129- Issue #59: Add `six.moves.intern`.
130
131- Add `six.urllib.parse.uses_(fragment|netloc|params|query|relative)`.
132
133- Issue #88: Fix add_metaclass when the class has `__slots__` containing
134  `__weakref__` or `__dict__`.
135
136- Issue #89: Make six use absolute imports.
137
138- Issue #85: Always accept *updated* and *assigned* arguments for `wraps()`.
139
140- Issue #86: In `reraise()`, instantiate the exception if the second argument is
141  `None`.
142
143- Pull request #45: Add `six.moves.email_mime_nonmultipart`.
144
145- Issue #81: Add `six.urllib.request.splittag` mapping.
146
147- Issue #80: Add `six.urllib.request.splituser` mapping.
148
1491.7.3
150-----
151
152- Issue #77: Fix import six on Python 3.4 with a custom loader.
153
154- Issue #74: `six.moves.xmlrpc_server` should map to `SimpleXMLRPCServer` on Python
155  2 as documented not `xmlrpclib`.
156
1571.7.2
158-----
159
160- Issue #72: Fix installing on Python 2.
161
1621.7.1
163-----
164
165- Issue #71: Make the six.moves meta path importer handle reloading of the six
166  module gracefully.
167
1681.7.0
169-----
170
171- Pull request #30: Implement six.moves with a PEP 302 meta path hook.
172
173- Pull request #32: Add six.wraps, which is like functools.wraps but always sets
174  the __wrapped__ attribute.
175
176- Pull request #35: Improve add_metaclass, so that it doesn't end up inserting
177  another class into the hierarchy.
178
179- Pull request #34: Add import mappings for dummy_thread.
180
181- Pull request #33: Add import mappings for UserDict and UserList.
182
183- Pull request #31: Select the implementations of dictionary iterator routines
184  at import time for a 20% speed boost.
185
1861.6.1
187-----
188
189- Raise an AttributeError for six.moves.X when X is a module not available in
190  the current interpreter.
191
1921.6.0
193-----
194
195- Raise an AttributeError for every attribute of unimportable modules.
196
197- Issue #56: Make the fake modules six.moves puts into sys.modules appear not to
198  have a __path__ unless they are loaded.
199
200- Pull request #28: Add support for SplitResult.
201
202- Issue #55: Add move mapping for xmlrpc.server.
203
204- Pull request #29: Add move for urllib.parse.splitquery.
205
2061.5.2
207-----
208
209- Issue #53: Make the fake modules six.moves puts into sys.modules appear not to
210  have a __name__ unless they are loaded.
211
2121.5.1
213-----
214
215- Issue #51: Hack around the Django autoreloader after recent six.moves changes.
216
2171.5.0
218-----
219
220- Removed support for Python 2.4. This is because py.test no longer supports
221  2.4.
222
223- Fix various import problems including issues #19 and #41. six.moves modules
224  are now lazy wrappers over the underlying modules instead of the actual
225  modules themselves.
226
227- Issue #49: Add six.moves mapping for tkinter.ttk.
228
229- Pull request #24: Add __dir__ special method to six.moves modules.
230
231- Issue #47: Fix add_metaclass on classes with a string for the __slots__
232  variable.
233
234- Issue #44: Fix interpretation of backslashes on Python 2 in the u() function.
235
236- Pull request #21: Add import mapping for urllib's proxy_bypass function.
237
238- Issue #43: Add import mapping for the Python 2 xmlrpclib module.
239
240- Issue #39: Add import mapping for the Python 2 thread module.
241
242- Issue #40: Add import mapping for the Python 2 gdbm module.
243
244- Issue #35: On Python versions less than 2.7, print_ now encodes unicode
245  strings when outputting to standard streams. (Python 2.7 handles this
246  automatically.)
247
2481.4.1
249-----
250
251- Issue #32: urllib module wrappings don't work when six is not a toplevel file.
252
2531.4.0
254-----
255
256- Issue #31: Add six.moves mapping for UserString.
257
258- Pull request #12: Add six.add_metaclass, a decorator for adding a metaclass to
259  a class.
260
261- Add six.moves.zip_longest and six.moves.filterfalse, which correspond
262  respectively to itertools.izip_longest and itertools.ifilterfalse on Python 2
263  and itertools.zip_longest and itertools.filterfalse on Python 3.
264
265- Issue #25: Add the unichr function, which returns a string for a Unicode
266  codepoint.
267
268- Issue #26: Add byte2int function, which complements int2byte.
269
270- Add a PY2 constant with obvious semantics.
271
272- Add helpers for indexing and iterating over bytes: iterbytes and indexbytes.
273
274- Add create_bound_method() wrapper.
275
276- Issue #23: Allow multiple base classes to be passed to with_metaclass.
277
278- Issue #24: Add six.moves.range alias. This exactly the same as the current
279  xrange alias.
280
281- Pull request #5: Create six.moves.urllib, which contains abstractions for a
282  bunch of things which are in urllib in Python 3 and spread out across urllib,
283  urllib2, and urlparse in Python 2.
284
2851.3.0
286-----
287
288- Issue #21: Add methods to access the closure and globals of a function.
289
290- In six.iter(items/keys/values/lists), passed keyword arguments through to the
291  underlying method.
292
293- Add six.iterlists().
294
295- Issue #20: Fix tests if tkinter is not available.
296
297- Issue #17: Define callable to be builtin callable when it is available again
298  in Python 3.2+.
299
300- Issue #16: Rename Python 2 exec_'s arguments, so casually calling exec_ with
301  keyword arguments will raise.
302
303- Issue #14: Put the six.moves package in sys.modules based on the name six is
304  imported under.
305
306- Fix Jython detection.
307
308- Pull request #4: Add email_mime_multipart, email_mime_text, and
309  email_mime_base to six.moves.
310
3111.2.0
312-----
313
314- Issue #13: Make iterkeys/itervalues/iteritems return iterators on Python 3
315  instead of iterables.
316
317- Issue #11: Fix maxsize support on Jython.
318
319- Add six.next() as an alias for six.advance_iterator().
320
321- Use the builtin next() function for advance_iterator() where is available
322  (2.6+), not just Python 3.
323
324- Add the Iterator class for writing portable iterators.
325
3261.1.0
327-----
328
329- Add the int2byte function.
330
331- Add compatibility mappings for iterators over the keys, values, and items of a
332  dictionary.
333
334- Fix six.MAXSIZE on platforms where sizeof(long) != sizeof(Py_ssize_t).
335
336- Issue #3: Add six.moves mappings for filter, map, and zip.
337
3381.0.0
339-----
340
341- Issue #2: u() on Python 2.x now resolves unicode escapes.
342
343- Expose an API for adding mappings to six.moves.
344
3451.0 beta 1
346----------
347
348- Reworked six into one .py file.  This breaks imports.  Please tell me if you
349  are interested in an import compatibility layer.
350