Skip to main content

Common interface for compressed file manipulation

Project description

compfile Common interfaces for manipulating compressed files (lzma, gzip etc)

Build Status Documentation Status Coverage Status

Rationale

Sometimes, we need to deal with different compressed files. There are several packages/modules for compressed file manipulation, e.g., gzip module for "*.gz" files, lzma module for "*.lzma" and "*.xz" files, etc. If we want to support different types of compressed file in our project, probably we need to do the following:

if fnmatch.fnmatch(fname, "*.gz"):
    f = gzip.open(fname, 'rb')
    # do something with f
elif fnmatch.fnmatch(fname, "*.bz2'):
    f = bz2.open(fname, 'rb')
    # do something with f
else:
    # other stuffs

The problems of the above approch are:

  • We need to repeat the compression type inference logic everywhere we want to support different compression types.
  • Different compression type manipulation modules may have different API convention.

compfile is designed to solve the above problems. It abstracts the logic of compressed file manipulations and provides a single high level interface for users.

Installation

Install from PyPI

pip install compfile

Install from Anaconda

conda install -c liyugong compfile

Install from GitHub

pip install git+https://github.com/gongliyu/compfile.git@master

Simple example

Using compfile is pretty simple. Just construct a compfile.CompFile object or call compfile.open

with compfile.open(fname, 'r') as f:
    # do something with f

The object returned is a file object, so we can do ordinary file processing with it.

License

The compfile package is released under the MIT License

Documentation

https://compfile.readthedocs.io

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

compfile-0.0.3.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

compfile-0.0.3-py2.py3-none-any.whl (3.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file compfile-0.0.3.tar.gz.

File metadata

  • Download URL: compfile-0.0.3.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for compfile-0.0.3.tar.gz
Algorithm Hash digest
SHA256 d620f539904ab8e72d97d73065211824113999d82ba20acd9d097d2a1a3358ac
MD5 abf404cb76a97b077cb587fc9fed3cbd
BLAKE2b-256 24be5e7717ea7f99703d2fa451715068fef5de9a068ef1a00c5d03d782d7ef62

See more details on using hashes here.

File details

Details for the file compfile-0.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: compfile-0.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 3.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.6

File hashes

Hashes for compfile-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 79fc36935475551a7002693ab88093daf9751be436a01166976d4d8422f9860b
MD5 14f01549bffee106a6f227b2f8ed4436
BLAKE2b-256 3ab197389fbc3077b332623afa9af70ee38a65fc8d7341a757c3a18254aa655f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page