Metadata-Version: 2.1
Name: convenience
Version: 0.2
Summary: Convenience tool: wrapper around regular/gzip files, Logger, text colors
Home-page: https://gitlab.com/sylvainraybaud/convenience
Author: Sylvain Raybaud
Author-email: sylvain.raybaud@crans.org
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown

# Convenience
Tools for everyday use.

Source and install files are available under BSD License here: [https://gitlab.com/sylvainraybaud/convenience](https://gitlab.com/sylvainraybaud/convenience)

This package *HAS NOT* been tested with Python 2.

## API

* ``xopen``: a wrapper around ``open`` and ``gzip.open`` returning an ``XFile`` object, which is a wrapper around ``File`` and ``gzip.GzipFile``. ``XFile`` implements methods ``open``, ``close``, ``read``, ``readline``, ``readlines``, ``write`` with the same parameters as ``File`` methods. It also implements ``__iter__`` and ``__next__`` to make it iterable and ``__enter__`` and ``__exit__`` to make it usable in ``with`` statements. Files whose names end with *.gz* are treated as gzip files, all other files are treated as uncompressed files.

* ``Logger``: a wrapper around ``logging`` module. A ``Logger`` object is intialized with a ``verbosity`` parameter which is translated into a ``logging`` value (``WARNING``, ``INFO`` or ``DEBUG``). It implements ```debug```, ```info```, ```warning``` and ``error`` methods. They all take a string as first argument argument. ``error`` takes an extra argument, ``code``. When called, ``error`` print its first parameter then calls ``exit(code)``.

* ```header, blue, green, yellow, orange, red, bold, underline```: apply decoration to string (see ```example.py```)

## Using

A good example being worth a thousand words, please see [example.py](https://gitlab.com/sylvainraybaud/convenience/blob/master/example.py)

## Installing

````bash
pip install convenience
````

## TODO

* Use magic number instead of file extension to detected gzipped files, when applicable.
* Handle more compression format.
* Double check handling of various text encodings.
* Python 2 compatibility.
* Add more magic.

## Contributing

Please make a pull request on gitlab. You can mail me at 

````first_name [dot] family_name [at] crans [dot] org````

