Back to Explore

benjaminp/six

GitHub
1 watchersOpen source

Last release: 2024-12-03

Six is a Python 2 and 3 compatibility library that provides utility functions to smooth differences between Python versions, helping you write code that works on both. It supports Python 2.7 and 3.3+ and is distributed as a single Python file that can be copied into a project, with documentation available on Read the Docs.

Project status

  • Maintenance status: The repository appears still maintained, with an upstream push on 2026-02-23 and a recent versioned update (1.17.0) on 2024-12-03 for Python compatibility.
  • Update cadence: Updates are infrequent in the historical record (for example, 1.16.0 in 2021, then 1.17.0 in 2024), with the latest activity closer to the current date indicating an evolving but slow cadence.

AI summary generated 2026-06-09

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 1.17.0

    2024-12-03

    Version 1.17.0 updates the `six.moves` lazy attribute mappings to align with newer Python versions. It also adjusts changelog-documented behavior for `six.moves.UserDict` on Python 2 and removes certain deprecated `urllib.request` classes on Python 3.14+.

    Breaking
  • 1.16.0

    2021-05-05

    Release 1.16.0 makes a small but meaningful update to six's internal meta path importer, extending it to support Python's importlib module spec protocol (needed for newer Python versions). In the same release, CI configuration (.travis.yml) is tweaked to adjust pytest dependency constraints for older Python versions, and the package version in six.py is bumped to 1.16.0.

  • 1.15.0

    2020-05-21

    Release 1.15.0 was published, but the publisher did not provide any release notes. As a result, this release cannot be evaluated for new features, breaking changes, bug fixes, or security updates based on documented information.

  • 1.14.0

    2020-01-15

    Version 1.14.0 updates six for newer Python compatibility and adds a new assertion helper, while also removing support for older Python versions (Python 2.6 and Python 3.2). The main functional changes are behavioral compatibility improvements to `six.wraps`, a new `six.assertNotRegex`, and a conditional change to `six.moves._dummy_thread` behavior on Python 3.9+.

    BreakingFeatures
  • 1.13.0

    2019-11-05

    Release 1.13.0 updates six’s Python 2 and 3 compatibility layer. It adds new entries under six.moves, and improves with_metaclass behavior on Python 3.7+ to better support PEP 560.

    Features
  • 1.12.0

    2018-12-10

    Version 1.12.0 adds three new coercion helpers (ensure_binary, ensure_str, ensure_text) and updates add_metaclass to preserve a class' __qualname__. The diff is mostly feature and documentation additions, with a small packaging metadata change that can affect install compatibility.

    Features
  • 1.11.0

    2017-09-17

    Version 1.11.0 primarily expands the `six.moves` API and fixes edge cases in `with_metaclass`, plus a small internal change to `reraise` to avoid reference cycles. The repository also updates packaging and CI configuration (README handling, pytest config section, and test requirements).

    Features
  • 1.10.0

    2015-10-07

    Version 1.10.0 of six adds several Python 2/3 compatibility utilities, including new entries under six.moves (getcwd/getcwdb) and a new helper create_unbound_method. The release also includes a performance improvement to six.int2byte and adjusts how six.moves.reload_module is implemented on Python 3.4+.

    BreakingFeatures
  • 1.9.0

    2015-01-02

    Version 1.9.0 of six adds several Python 2 and 3 compatibility helpers, including a new flush parameter for six.print_, a python_2_unicode_compatible decorator, and unittest assertion alias helpers. It also improves behavior/robustness in existing utilities like six.wraps and adds dictionary view helpers for Python 2.7+.

    Features
  • 1.8.0

    2014-09-11

    Release 1.8.0 was published, but no release notes were provided in the publisher content. As a result, the specific changes (new features, fixes, or potential breaking updates) cannot be determined from the release description alone.