PackageTrack
Sign in Get early access

xopen

Open compressed files transparently

2.1.0 822K downloads/mo #4972 most downloaded on PyPI pycompression/xopen

What this package is like to depend on

Last release 2 months ago

03 Jun 2026

Release timing varies

gaps range from 3 weeks to 2.0 years

This project publishes no release notes

the list below is its commits, not an announcement

1 version withdrawn

withdrawn after publishing

10 years old

41 releases · first in 2016

1 release in the last 12 months

see the full history below

Release timeline

41 releases · Sep 2016 to Jun 2026
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 41
  1. 2.1.0 03 Jun 2026
    Commits, not release notes

    This project publishes no release notes. Between v2.0.2 and v2.1.0 there were 23 commits, 16 of them substantive:

    • Fix link to pbzip2 homepage
    • Drop ubuntu-20.04 runner
    • wheel is not a build dependency
    • Drop support for Python 3.8
    • Test also on Python 3.13
    • Use an SPDX license expression
    • Test reading concatenated/multiblock gzips works
    • Remove PyPy from the test matrix for now
    • Move coverage configuration to pyproject.toml
    • Switch from flake8 to ruff
    • Migrate from tox.ini to tox.toml
    • Drop support for Python 3.9
    • Bump Actions versions
    • Support Python 3.14 and 3.14t
    • Migrate from python-zstandard to backports.zstd/compression.zstd
    • Version 2.1.0
  2. 2.0.2 12 Jun 2024
    Commits, not release notes

    This project publishes no release notes. Between v2.0.1 and v2.0.2 there were 5 commits, 4 of them substantive:

    • Don’t sleep before closing in test
    • Test reading from a large(r) compressed file
    • Shutdown process before feeder thread
    • Prepare 2.0.2 release
  3. 2.0.1 28 Mar 2024
    Commits, not release notes

    This project publishes no release notes. Between v2.0.0 and v2.0.1 there were 15 commits, 13 of them substantive:

    • Add a test for long window size zstandard compression
    • Enable opening of files with long window sizes for zstd
    • Improve zstandard window size test
    • Update comment on not using --long for compression for zstd
    • Test stdin and stdout
    • Fix stdin and pipe reading
    • Add extensive tests to read from pipes
    • Fix wrong condition check
    • Fix resource and encodingwarnings caused by test code
    • Add a changelog entry for the stdin bugfix
    • Add a test for /dev/stdin
    • Use the stat.S_ISREG check rather than try to cover all corner cases
    • Prepare 2.0.1 release
  4. 2.0.0 26 Mar 2024 withdrawn

    Data corruption when reading from stdin, see https://github.com/pycompression/xopen/issues/157

    Commits, not release notes

    This project publishes no release notes. Between v1.9.0 and v2.0.0 there were 66 commits, 60 of them substantive:

    • Only open files in binary modes and use io.TextIOWrapper only at the highest-level function.
    • Making PipedCompressionReader/Writer binary added to the changelog
    • Combine PipedCompressionReader and PipedCompressionWriter in one PipedCompressionProgram interface
    • Prevent errors from being thrown again in the close function
    • Store compression program settings in dedicated objects, rather than through subclassing
    • Remove redundant _can_read_concatenated_gz function
    • Make the PROGRAM_SETTINGS dict private
    • Write a changelog entry for the subclass removal
    • Use immutable default rather than None for _program_args
    • Make _open_gz piped program opening simpler
    • add support for passing file handles to xopen routines instead of paths
    • added tests for filehandle passing
    • Run black when testing through tox
    • Pass _ProgramSettings class directly rather than using **kwargs
    • Revert variable name change
    • Add commentary from lost docstrings in _open functions
    • working on file object support
    • merging upstream
    • addressing PR comments
    • fix file/filename argument

    …and 40 more.

  5. 1.9.0 31 Jan 2024
    Commits, not release notes

    This project publishes no release notes. Between v1.8.0 and v1.9.0 there were 40 commits, 32 of them substantive:

    • Do not use PipedIgzipReader and PipedIgzipWriter anymore for xopen function
    • Integrate zlib-ng
    • Directly call a piped writer for pipedwriter pipesize test
    • Ignore bad compression level
    • Tweak the zlib_ng compresslevel if it is 1
    • Fix mypy issues
    • Also test without zlib-ng and isal
    • MIT license
    • Add a changelog entry for zlib-ng change
    • Remove redundant if clauses
    • Remove external functions for opening for more clarity
    • Remove redundant read special case
    • Black formatting
    • Force defaults in a single place rather than anywhere
    • Set default gzip compression level to 6
    • Do not set threads default globally in the function
    • Add an entry to the changelog
    • Choose level 1 as default
    • Add forgotten comma
    • Use one thread for igzip_threaded as that is more efficient than multiple

    …and 12 more.

  6. 1.8.0 18 Oct 2023
    Commits, not release notes

    This project publishes no release notes. Between v1.7.0 and v1.8.0 there were 32 commits, 23 of them substantive:

    • fixed functionality of readme excerpt
    • Fix type annotations (due to no_implicit_optional=True)
    • Recommend isal on PyPy and aarch64 platforms
    • Correct behavour for write
    • Drop Python 3.7, add Python 3.12
    • Bump various GitHub Actions versions
    • Use igzip's threaded open
    • Fix test errors with threaded open
    • Fix not reproducible gzip
    • Use patched isal
    • Add a comment why igzip_threaded.open's defer capability is not used
    • Black formatting
    • Make _open_gz less complex
    • Satisfy the latest mypy requirements
    • Require at least python 3.8
    • Update to latest supported pypy-version
    • Correct small comment typo
    • Revert "Make _open_gz less complex"
    • Ignore _open_gz complexity
    • Switch from setup.cfg to pyproject.toml

    …and 3 more.

  7. 1.7.0 03 Nov 2022
    Commits, not release notes

    This project publishes no release notes. Between v1.6.0 and v1.7.0 there were 28 commits, 22 of them substantive:

    • Run tests also without xz binary being available
    • Avoid multiprocessing.cpu_count()
    • Test invalid xz compression level
    • Test reading from os.devnull
    • Don’t test whether xz can read concatenated gzip files
    • When an output process fails, print a possible cause
    • Add better type hints for xopen
    • Do not provide a type parameter to os.PathLike
    • Introduce FilePath
    • Exclude overloads from coverage reporting
    • Test zstandard support
    • Support zstandard using python-zstandard as backend
    • Support reading and writing .zst files using a pipe to zstd
    • Test with and without installed python-zstandard
    • Do not fallback to "zstd" process when threads==0
    • Skip zstd tests if zstandard module not installed
    • Make Zstandard support an extra (xopen[zstd])
    • Run tests on Python 3.11
    • Avoid duplicate CI runs
    • Changes → Changelog

    …and 2 more.

  8. 1.6.0 10 Aug 2022
    Commits, not release notes

    This project publishes no release notes. Between v1.5.0 and v1.6.0 there were 30 commits, 23 of them substantive:

    • Remove unused "type: ignore"
    • Bump Black version
    • Open output file for piping in binary mode
    • Observe text mode parameters when path is "-" (stdin/stdout)
    • Avoid all EncodingWarnings on Python 3.10
    • Bump pre-commit black version
    • Fix a strange PyPy error
    • Remove the special "isal" test environment from tox
    • Remove setup.py
    • Fix branch name
    • Test reproducible gzip compression
    • Make gzip writing reproducible in most cases
    • Make also compression with isal.igzip reproducible
    • Reproducibility depends on architecture
    • Fix returned GzipFile not closing its file
    • Test roundtripping
    • Add missing -n flag for PipedGzipWriter
    • Use full --no-name flag for clarity
    • Clarify that --no-name is the same as -n
    • Remove leftver debug print()

    …and 3 more.

  9. 1.5.0 22 Mar 2022
    Commits, not release notes

    This project publishes no release notes. Between v1.4.0 and v1.5.0 there were 50 commits, 37 of them substantive:

    • Format with Black
    • Remove trailing whitespace
    • Test whether code is formatted with Black
    • Add pre-commit configuration
    • Use a bigger output buffer for writing to gzip files
    • Force python to read in larger chunks
    • Use constant instead of number
    • Only use a bigger buffer size for writing files
    • Use tmp_path instead of tmpdir fixture
    • Create somewhat smaller test files
    • Ensure the text is larger than the pipe buffer
    • Remove unused exception
    • Speed up tests by two seconds
    • Use random.choices instead of random.choice
    • Do not change default buffersize for builtin open
    • Rename
    • Split tests
    • Use TEST_DIR more often
    • Test truncated xz files
    • Rename test_xopen_xyz test_xyz

    …and 17 more.

  10. 1.4.0 14 Jan 2022

    Nothing published for this version

  11. 1.3.0 13 Jan 2022

    Nothing published for this version

  12. 1.2.1 15 Oct 2021

    Nothing published for this version

  13. 1.2.0 21 Sep 2021

    Nothing published for this version

  14. 1.1.0 20 Jan 2021

    Nothing published for this version

  15. 1.0.1 15 Nov 2020

    Nothing published for this version

  16. 1.0.0 05 Nov 2020

    Nothing published for this version

  17. 0.9.0 02 Apr 2020

    Nothing published for this version

  18. 0.8.4 26 Oct 2019

    Nothing published for this version

  19. 0.8.3 18 Oct 2019

    Nothing published for this version

  20. 0.8.2 05 Sep 2019

    Nothing published for this version

  21. 0.8.1 14 Aug 2019

    Nothing published for this version

  22. 0.8.0 14 Aug 2019

    Nothing published for this version

  23. 0.7.3 27 Jun 2019

    Nothing published for this version

  24. 0.7.2 26 Jun 2019

    Nothing published for this version

  25. 0.7.1 20 Jun 2019

    Nothing published for this version

  26. 0.7.0 10 Jun 2019

    Nothing published for this version

  27. 0.6.0 23 May 2019

    Nothing published for this version

  28. 0.5.1 24 Apr 2019

    Nothing published for this version

  29. 0.5.0 30 Jan 2019

    Nothing published for this version

  30. 0.5.0.dev0 29 Jan 2019 pre-release

    Nothing published for this version

  31. 0.4.1 09 Jan 2019

    Nothing published for this version

  32. 0.4.0 07 Jan 2019

    Nothing published for this version

  33. 0.3.5 05 Jul 2018

    Nothing published for this version

  34. 0.3.4 04 Jul 2018

    Nothing published for this version

  35. 0.3.3 09 Apr 2018

    Nothing published for this version

  36. 0.3.2 22 Nov 2017

    Nothing published for this version

  37. 0.3.1 22 Nov 2017

    Nothing published for this version

  38. 0.3.0 15 Nov 2017

    Nothing published for this version

  39. 0.2.1 31 May 2017

    Nothing published for this version

  40. 0.1.1 02 Dec 2016

    Nothing published for this version

  41. 0.1.0 09 Sep 2016

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive