1Changelog for six
2=================
3
4This file lists the changes in each six version.
5
61.9.0
7-----
8
9- Issue #106: Support the `flush` parameter to `six.print_`.
10
11- Pull request #48 and issue #15: Add the `python_2_unicode_compatible`
12  decorator.
13
14- Pull request #57 and issue #50: Add several compatibility methods for unittest
15  assertions that were renamed between Python 2 and 3.
16
17- Issue #105 and pull request #58: Ensure `six.wraps` respects the *updated* and
18  *assigned* arguments.
19
20- Issue #102: Add `raise_from` to abstract out Python 3's raise from syntax.
21
22- Issue #97: Optimize `six.iterbytes` on Python 2.
23
24- Issue #98: Fix `six.moves` race condition in multi-threaded code.
25
26- Pull request #51: Add `six.view(keys|values|itmes)`, which provide dictionary
27  views on Python 2.7+.
28
291.8.0
30-----
31
32- Issue #90: Add `six.moves.shlex_quote`.
33
34- Issue #59: Add `six.moves.intern`.
35
36- Add `six.urllib.parse.uses_(fragment|netloc|params|query|relative)`.
37
38- Issue #88: Fix add_metaclass when the class has `__slots__` containing
39  `__weakref__` or `__dict__`.
40
41- Issue #89: Make six use absolute imports.
42
43- Issue #85: Always accept *updated* and *assigned* arguments for `wraps()`.
44
45- Issue #86: In `reraise()`, instantiate the exception if the second argument is
46  `None`.
47
48- Pull request #45: Add `six.moves.email_mime_nonmultipart`.
49
50- Issue #81: Add `six.urllib.request.splittag` mapping.
51
52- Issue #80: Add `six.urllib.request.splituser` mapping.
53
541.7.3
55-----
56
57- Issue #77: Fix import six on Python 3.4 with a custom loader.
58
59- Issue #74: `six.moves.xmlrpc_server` should map to `SimpleXMLRPCServer` on Python
60  2 as documented not `xmlrpclib`.
61
621.7.2
63-----
64
65- Issue #72: Fix installing on Python 2.
66
671.7.1
68-----
69
70- Issue #71: Make the six.moves meta path importer handle reloading of the six
71  module gracefully.
72
731.7.0
74-----
75
76- Pull request #30: Implement six.moves with a PEP 302 meta path hook.
77
78- Pull request #32: Add six.wraps, which is like functools.wraps but always sets
79  the __wrapped__ attribute.
80
81- Pull request #35: Improve add_metaclass, so that it doesn't end up inserting
82  another class into the hierarchy.
83
84- Pull request #34: Add import mappings for dummy_thread.
85
86- Pull request #33: Add import mappings for UserDict and UserList.
87
88- Pull request #31: Select the implementations of dictionary iterator routines
89  at import time for a 20% speed boost.
90
911.6.1
92-----
93
94- Raise an AttributeError for six.moves.X when X is a module not available in
95  the current interpreter.
96
971.6.0
98-----
99
100- Raise an AttributeError for every attribute of unimportable modules.
101
102- Issue #56: Make the fake modules six.moves puts into sys.modules appear not to
103  have a __path__ unless they are loaded.
104
105- Pull request #28: Add support for SplitResult.
106
107- Issue #55: Add move mapping for xmlrpc.server.
108
109- Pull request #29: Add move for urllib.parse.splitquery.
110
1111.5.2
112-----
113
114- Issue #53: Make the fake modules six.moves puts into sys.modules appear not to
115  have a __name__ unless they are loaded.
116
1171.5.1
118-----
119
120- Issue #51: Hack around the Django autoreloader after recent six.moves changes.
121
1221.5.0
123-----
124
125- Removed support for Python 2.4. This is because py.test no longer supports
126  2.4.
127
128- Fix various import problems including issues #19 and #41. six.moves modules
129  are now lazy wrappers over the underlying modules instead of the actual
130  modules themselves.
131
132- Issue #49: Add six.moves mapping for tkinter.ttk.
133
134- Pull request #24: Add __dir__ special method to six.moves modules.
135
136- Issue #47: Fix add_metaclass on classes with a string for the __slots__
137  variable.
138
139- Issue #44: Fix interpretation of backslashes on Python 2 in the u() function.
140
141- Pull request #21: Add import mapping for urllib's proxy_bypass function.
142
143- Issue #43: Add import mapping for the Python 2 xmlrpclib module.
144
145- Issue #39: Add import mapping for the Python 2 thread module.
146
147- Issue #40: Add import mapping for the Python 2 gdbm module.
148
149- Issue #35: On Python versions less than 2.7, print_ now encodes unicode
150  strings when outputing to standard streams. (Python 2.7 handles this
151  automatically.)
152
1531.4.1
154-----
155
156- Issue #32: urllib module wrappings don't work when six is not a toplevel file.
157
1581.4.0
159-----
160
161- Issue #31: Add six.moves mapping for UserString.
162
163- Pull request #12: Add six.add_metaclass, a decorator for adding a metaclass to
164  a class.
165
166- Add six.moves.zip_longest and six.moves.filterfalse, which correspond
167  respectively to itertools.izip_longest and itertools.ifilterfalse on Python 2
168  and itertools.zip_longest and itertools.filterfalse on Python 3.
169
170- Issue #25: Add the unichr function, which returns a string for a Unicode
171  codepoint.
172
173- Issue #26: Add byte2int function, which complements int2byte.
174
175- Add a PY2 constant with obvious semantics.
176
177- Add helpers for indexing and iterating over bytes: iterbytes and indexbytes.
178
179- Add create_bound_method() wrapper.
180
181- Issue #23: Allow multiple base classes to be passed to with_metaclass.
182
183- Issue #24: Add six.moves.range alias. This exactly the same as the current
184  xrange alias.
185
186- Pull request #5: Create six.moves.urllib, which contains abstractions for a
187  bunch of things which are in urllib in Python 3 and spread out across urllib,
188  urllib2, and urlparse in Python 2.
189
1901.3.0
191-----
192
193- Issue #21: Add methods to access the closure and globals of a function.
194
195- In six.iter(items/keys/values/lists), passed keyword arguments through to the
196  underlying method.
197
198- Add six.iterlists().
199
200- Issue #20: Fix tests if tkinter is not available.
201
202- Issue #17: Define callable to be builtin callable when it is available again
203  in Python 3.2+.
204
205- Issue #16: Rename Python 2 exec_'s arguments, so casually calling exec_ with
206  keyword arguments will raise.
207
208- Issue #14: Put the six.moves package in sys.modules based on the name six is
209  imported under.
210
211- Fix Jython detection.
212
213- Pull request #4: Add email_mime_multipart, email_mime_text, and
214  email_mime_base to six.moves.
215
2161.2.0
217-----
218
219- Issue #13: Make iterkeys/itervalues/iteritems return iterators on Python 3
220  instead of iterables.
221
222- Issue #11: Fix maxsize support on Jython.
223
224- Add six.next() as an alias for six.advance_iterator().
225
226- Use the builtin next() function for advance_iterator() where is available
227  (2.6+), not just Python 3.
228
229- Add the Iterator class for writing portable iterators.
230
2311.1.0
232-----
233
234- Add the int2byte function.
235
236- Add compatibility mappings for iterators over the keys, values, and items of a
237  dictionary.
238
239- Fix six.MAXSIZE on platforms where sizeof(long) != sizeof(Py_ssize_t).
240
241- Issue #3: Add six.moves mappings for filter, map, and zip.
242
2431.0.0
244-----
245
246- Issue #2: u() on Python 2.x now resolves unicode escapes.
247
248- Expose an API for adding mappings to six.moves.
249
2501.0 beta 1
251----------
252
253- Reworked six into one .py file.  This breaks imports.  Please tell me if you
254  are interested in an import compatibility layer.
255