CHANGES 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. Changelog for six
  2. =================
  3. This file lists the changes in each six version.
  4. 1.11.0
  5. ------
  6. - Pull request #178: `with_metaclass` now properly proxies `__prepare__` to the
  7. underlying metaclass.
  8. - Pull request #191: Allow `with_metaclass` to work with metaclasses implemented
  9. in C.
  10. - Pull request #203: Add parse_http_list and parse_keqv_list to moved
  11. urllib.request.
  12. - Pull request #172 and issue #171: Add unquote_to_bytes to moved urllib.parse.
  13. - Pull request #167: Add `six.moves.getoutput`.
  14. - Pull request #80: Add `six.moves.urllib_parse.splitvalue`.
  15. - Pull request #75: Add `six.moves.email_mime_image`.
  16. - Pull request #72: Avoid creating reference cycles through tracebacks in
  17. `reraise`.
  18. 1.10.0
  19. ------
  20. - Issue #122: Improve the performance of `six.int2byte` on Python 3.
  21. - Pull request #55 and issue #99: Don't add the `winreg` module to `six.moves`
  22. on non-Windows platforms.
  23. - Pull request #60 and issue #108: Add `six.moves.getcwd` and
  24. `six.moves.getcwdu`.
  25. - Pull request #64: Add `create_unbound_method` to create unbound methods.
  26. 1.9.0
  27. -----
  28. - Issue #106: Support the `flush` parameter to `six.print_`.
  29. - Pull request #48 and issue #15: Add the `python_2_unicode_compatible`
  30. decorator.
  31. - Pull request #57 and issue #50: Add several compatibility methods for unittest
  32. assertions that were renamed between Python 2 and 3.
  33. - Issue #105 and pull request #58: Ensure `six.wraps` respects the *updated* and
  34. *assigned* arguments.
  35. - Issue #102: Add `raise_from` to abstract out Python 3's raise from syntax.
  36. - Issue #97: Optimize `six.iterbytes` on Python 2.
  37. - Issue #98: Fix `six.moves` race condition in multi-threaded code.
  38. - Pull request #51: Add `six.view(keys|values|itmes)`, which provide dictionary
  39. views on Python 2.7+.
  40. - Issue #112: `six.moves.reload_module` now uses the importlib module on
  41. Python 3.4+.
  42. 1.8.0
  43. -----
  44. - Issue #90: Add `six.moves.shlex_quote`.
  45. - Issue #59: Add `six.moves.intern`.
  46. - Add `six.urllib.parse.uses_(fragment|netloc|params|query|relative)`.
  47. - Issue #88: Fix add_metaclass when the class has `__slots__` containing
  48. `__weakref__` or `__dict__`.
  49. - Issue #89: Make six use absolute imports.
  50. - Issue #85: Always accept *updated* and *assigned* arguments for `wraps()`.
  51. - Issue #86: In `reraise()`, instantiate the exception if the second argument is
  52. `None`.
  53. - Pull request #45: Add `six.moves.email_mime_nonmultipart`.
  54. - Issue #81: Add `six.urllib.request.splittag` mapping.
  55. - Issue #80: Add `six.urllib.request.splituser` mapping.
  56. 1.7.3
  57. -----
  58. - Issue #77: Fix import six on Python 3.4 with a custom loader.
  59. - Issue #74: `six.moves.xmlrpc_server` should map to `SimpleXMLRPCServer` on Python
  60. 2 as documented not `xmlrpclib`.
  61. 1.7.2
  62. -----
  63. - Issue #72: Fix installing on Python 2.
  64. 1.7.1
  65. -----
  66. - Issue #71: Make the six.moves meta path importer handle reloading of the six
  67. module gracefully.
  68. 1.7.0
  69. -----
  70. - Pull request #30: Implement six.moves with a PEP 302 meta path hook.
  71. - Pull request #32: Add six.wraps, which is like functools.wraps but always sets
  72. the __wrapped__ attribute.
  73. - Pull request #35: Improve add_metaclass, so that it doesn't end up inserting
  74. another class into the hierarchy.
  75. - Pull request #34: Add import mappings for dummy_thread.
  76. - Pull request #33: Add import mappings for UserDict and UserList.
  77. - Pull request #31: Select the implementations of dictionary iterator routines
  78. at import time for a 20% speed boost.
  79. 1.6.1
  80. -----
  81. - Raise an AttributeError for six.moves.X when X is a module not available in
  82. the current interpreter.
  83. 1.6.0
  84. -----
  85. - Raise an AttributeError for every attribute of unimportable modules.
  86. - Issue #56: Make the fake modules six.moves puts into sys.modules appear not to
  87. have a __path__ unless they are loaded.
  88. - Pull request #28: Add support for SplitResult.
  89. - Issue #55: Add move mapping for xmlrpc.server.
  90. - Pull request #29: Add move for urllib.parse.splitquery.
  91. 1.5.2
  92. -----
  93. - Issue #53: Make the fake modules six.moves puts into sys.modules appear not to
  94. have a __name__ unless they are loaded.
  95. 1.5.1
  96. -----
  97. - Issue #51: Hack around the Django autoreloader after recent six.moves changes.
  98. 1.5.0
  99. -----
  100. - Removed support for Python 2.4. This is because py.test no longer supports
  101. 2.4.
  102. - Fix various import problems including issues #19 and #41. six.moves modules
  103. are now lazy wrappers over the underlying modules instead of the actual
  104. modules themselves.
  105. - Issue #49: Add six.moves mapping for tkinter.ttk.
  106. - Pull request #24: Add __dir__ special method to six.moves modules.
  107. - Issue #47: Fix add_metaclass on classes with a string for the __slots__
  108. variable.
  109. - Issue #44: Fix interpretation of backslashes on Python 2 in the u() function.
  110. - Pull request #21: Add import mapping for urllib's proxy_bypass function.
  111. - Issue #43: Add import mapping for the Python 2 xmlrpclib module.
  112. - Issue #39: Add import mapping for the Python 2 thread module.
  113. - Issue #40: Add import mapping for the Python 2 gdbm module.
  114. - Issue #35: On Python versions less than 2.7, print_ now encodes unicode
  115. strings when outputing to standard streams. (Python 2.7 handles this
  116. automatically.)
  117. 1.4.1
  118. -----
  119. - Issue #32: urllib module wrappings don't work when six is not a toplevel file.
  120. 1.4.0
  121. -----
  122. - Issue #31: Add six.moves mapping for UserString.
  123. - Pull request #12: Add six.add_metaclass, a decorator for adding a metaclass to
  124. a class.
  125. - Add six.moves.zip_longest and six.moves.filterfalse, which correspond
  126. respectively to itertools.izip_longest and itertools.ifilterfalse on Python 2
  127. and itertools.zip_longest and itertools.filterfalse on Python 3.
  128. - Issue #25: Add the unichr function, which returns a string for a Unicode
  129. codepoint.
  130. - Issue #26: Add byte2int function, which complements int2byte.
  131. - Add a PY2 constant with obvious semantics.
  132. - Add helpers for indexing and iterating over bytes: iterbytes and indexbytes.
  133. - Add create_bound_method() wrapper.
  134. - Issue #23: Allow multiple base classes to be passed to with_metaclass.
  135. - Issue #24: Add six.moves.range alias. This exactly the same as the current
  136. xrange alias.
  137. - Pull request #5: Create six.moves.urllib, which contains abstractions for a
  138. bunch of things which are in urllib in Python 3 and spread out across urllib,
  139. urllib2, and urlparse in Python 2.
  140. 1.3.0
  141. -----
  142. - Issue #21: Add methods to access the closure and globals of a function.
  143. - In six.iter(items/keys/values/lists), passed keyword arguments through to the
  144. underlying method.
  145. - Add six.iterlists().
  146. - Issue #20: Fix tests if tkinter is not available.
  147. - Issue #17: Define callable to be builtin callable when it is available again
  148. in Python 3.2+.
  149. - Issue #16: Rename Python 2 exec_'s arguments, so casually calling exec_ with
  150. keyword arguments will raise.
  151. - Issue #14: Put the six.moves package in sys.modules based on the name six is
  152. imported under.
  153. - Fix Jython detection.
  154. - Pull request #4: Add email_mime_multipart, email_mime_text, and
  155. email_mime_base to six.moves.
  156. 1.2.0
  157. -----
  158. - Issue #13: Make iterkeys/itervalues/iteritems return iterators on Python 3
  159. instead of iterables.
  160. - Issue #11: Fix maxsize support on Jython.
  161. - Add six.next() as an alias for six.advance_iterator().
  162. - Use the builtin next() function for advance_iterator() where is available
  163. (2.6+), not just Python 3.
  164. - Add the Iterator class for writing portable iterators.
  165. 1.1.0
  166. -----
  167. - Add the int2byte function.
  168. - Add compatibility mappings for iterators over the keys, values, and items of a
  169. dictionary.
  170. - Fix six.MAXSIZE on platforms where sizeof(long) != sizeof(Py_ssize_t).
  171. - Issue #3: Add six.moves mappings for filter, map, and zip.
  172. 1.0.0
  173. -----
  174. - Issue #2: u() on Python 2.x now resolves unicode escapes.
  175. - Expose an API for adding mappings to six.moves.
  176. 1.0 beta 1
  177. ----------
  178. - Reworked six into one .py file. This breaks imports. Please tell me if you
  179. are interested in an import compatibility layer.