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 2026Releases
latest 41-
2.1.003 Jun 2026Commits, not release notes
This project publishes no release notes. Between
v2.0.2andv2.1.0there 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.0.212 Jun 2024Commits, not release notes
This project publishes no release notes. Between
v2.0.1andv2.0.2there 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
-
2.0.128 Mar 2024Commits, not release notes
This project publishes no release notes. Between
v2.0.0andv2.0.1there 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
-
2.0.026 Mar 2024 withdrawnData 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.0andv2.0.0there 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.
-
1.9.031 Jan 2024Commits, not release notes
This project publishes no release notes. Between
v1.8.0andv1.9.0there 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.
-
1.8.018 Oct 2023Commits, not release notes
This project publishes no release notes. Between
v1.7.0andv1.8.0there 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.
-
1.7.003 Nov 2022Commits, not release notes
This project publishes no release notes. Between
v1.6.0andv1.7.0there 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.
-
1.6.010 Aug 2022Commits, not release notes
This project publishes no release notes. Between
v1.5.0andv1.6.0there 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.
-
1.5.022 Mar 2022Commits, not release notes
This project publishes no release notes. Between
v1.4.0andv1.5.0there 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.
-
1.4.014 Jan 2022Nothing published for this version
-
1.3.013 Jan 2022Nothing published for this version
-
1.2.115 Oct 2021Nothing published for this version
-
1.2.021 Sep 2021Nothing published for this version
-
1.1.020 Jan 2021Nothing published for this version
-
1.0.115 Nov 2020Nothing published for this version
-
1.0.005 Nov 2020Nothing published for this version
-
0.9.002 Apr 2020Nothing published for this version
-
0.8.426 Oct 2019Nothing published for this version
-
0.8.318 Oct 2019Nothing published for this version
-
0.8.205 Sep 2019Nothing published for this version
-
0.8.114 Aug 2019Nothing published for this version
-
0.8.014 Aug 2019Nothing published for this version
-
0.7.327 Jun 2019Nothing published for this version
-
0.7.226 Jun 2019Nothing published for this version
-
0.7.120 Jun 2019Nothing published for this version
-
0.7.010 Jun 2019Nothing published for this version
-
0.6.023 May 2019Nothing published for this version
-
0.5.124 Apr 2019Nothing published for this version
-
0.5.030 Jan 2019Nothing published for this version
-
0.5.0.dev029 Jan 2019 pre-releaseNothing published for this version
-
0.4.109 Jan 2019Nothing published for this version
-
0.4.007 Jan 2019Nothing published for this version
-
0.3.505 Jul 2018Nothing published for this version
-
0.3.404 Jul 2018Nothing published for this version
-
0.3.309 Apr 2018Nothing published for this version
-
0.3.222 Nov 2017Nothing published for this version
-
0.3.122 Nov 2017Nothing published for this version
-
0.3.015 Nov 2017Nothing published for this version
-
0.2.131 May 2017Nothing published for this version
-
0.1.102 Dec 2016Nothing published for this version
-
0.1.009 Sep 2016Nothing published for this version