Metadata-Version: 2.1
Name: compfile
Version: 0.0.2
Summary: Common interface for compressed file manipulation
Home-page: https://github.com/gongliyu/compfile
Author: Liyu Gong
Author-email: gongliyu@gmail.com
License: UNKNOWN
Description: *compfile* Common interfaces for manipulating compressed files (lzma, gzip etc)
        
        [![Build Status](https://travis-ci.com/gongliyu/compfile.svg?branch=master)](https://travis-ci.com/gongliyu/compfile)
        [![Documentation Status](https://readthedocs.org/projects/compfile/badge/?version=latest)](https://compfile.readthedocs.io/en/latest/?badge=latest)
        [![Coverage Status](https://coveralls.io/repos/github/gongliyu/compfile/badge.svg?branch=master)](https://coveralls.io/github/gongliyu/compfile?branch=master)
        
        ## 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:
        
        ``` python
        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
        
        ``` shell
        pip install compfile
        ```
        
        ### Install from Anaconda
        
        ``` shell
        conda install -c liyugong compfile
        ```
        
        ## Simple example
        
        Using *compfile* is pretty simple. Just construct a
        *compfile.CompFile* object or call *compfile.open*
        
        ``` python
        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](LICENSE)
        
        ## Documentation
        
        https://compfile.readthedocs.io
        
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Description-Content-Type: text/markdown
