Skip to content

Commit

Permalink
Merge pull request #6 from kmaehashi/fix-readme
Browse files Browse the repository at this point in the history
update README
  • Loading branch information
kmaehashi authored May 30, 2018
2 parents f47e00b + 0d08ebe commit c3d067a
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 27 deletions.
27 changes: 0 additions & 27 deletions README.md

This file was deleted.

78 changes: 78 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
|Travis|_ |PyPi|_

.. |Travis| image:: https://api.travis-ci.com/kmaehashi/pypict.svg?branch=master
.. _Travis: https://travis-ci.org/kmaehashi/pypict

.. |PyPi| image:: https://badge.fury.io/py/pypict.svg
.. _PyPi: https://badge.fury.io/py/pypict


PyPICT
======

Python binding library for `Microsoft PICT <https://github.com/Microsoft/pict>`__ (Pairwise Independent Combinatorial Tool).

Requirements
------------

* Microsoft PICT
* Python 2.7, 3.4, 3.5 or 3.6

Installation
------------

Wheels (binary distribution) are available for Linux.
PICT shared library and command are included in wheels.

::

$ pip install pypict

On other platforms, you need to build from source.
PICT source tree is registered as a submodule of this repository.
``python setup.py build_pict`` will run ``make`` command to build PICT shared library inside the tree.
You need to manually install the shared library and command, or set path of the tree to the appropriate environment variables (``PATH``, ``LD_LIBRARY_PATH``, etc.)

::

$ git clone https://github.com/kmaehashi/pypict.git
$ cd pypict
$ git submodule init
$ git submodule update
$ python setup.py build_pict
$ pip install -U .
$ export PATH=${PWD}/pict:${PATH}
$ export LD_LIBRARY_PATH=${PWD}/pict:${LD_LIBRARY_PATH}

APIs
----

There are four different APIs provided in this library.
Generally, you only need to use Tools API (``pypict.tools``).

* Low-level API (``pypict.capi``) provides Python functions that map to each `PICT C API function <https://github.com/Microsoft/pict/blob/master/api/pictapi.h>`__.
* High-level API (``pypict.api``) wraps the low-level API to provide automatic memory management.
* Tools API (``pypict.tools``) wraps the high-level API to provide convenient features.
* Command API (``pypict.cmd``) is a thin wrapper for ``pict`` command.
This API uses PICT command directly instead of PICT shared library.

Example
-------

Here is an example usage of Tools API to generate pair-wise patterns from parameter set.

.. code-block:: python
import pypict.tools
params = {
"Type": ["Single", "Span", "Stripe", "Mirror", "RAID-5"],
"Size": ["10", "100", "500", "1000", "5000", "10000", "40000"],
"Format method": ["Quick", "Slow"],
"File system": ["FAT", "FAT32", "NTFS"],
"Cluster size": ["512", "1024", "2048", "4096", "8192", "16384", "32768", "65536"],
"Compression": ["On", "Off"],
}
for case in pypict.tools.from_dict(params):
print(case)
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ def run(self):
name='pypict',
version=__version__,
description='pypict: Python binding for Microsoft PICT',
long_description=open('README.rst').read(),
author='Kenichi Maehashi',
author_email='[email protected]',
url='https://github.com/kmaehashi/pypict',
Expand Down

0 comments on commit c3d067a

Please sign in to comment.