Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

pypict: Python binding for Microsoft PICT

Project description

Travis PyPi

PyPICT

Python binding library for 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.
  • 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.

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)

Project details


Release history Release notifications

Download files

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

Files for pypict, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size pypict-0.1.0-cp27-cp27m-manylinux1_x86_64.whl (813.5 kB) File type Wheel Python version cp27 Upload date Hashes View hashes
Filename, size pypict-0.1.0-cp27-cp27mu-manylinux1_x86_64.whl (813.4 kB) File type Wheel Python version cp27 Upload date Hashes View hashes
Filename, size pypict-0.1.0-cp34-cp34m-manylinux1_x86_64.whl (838.5 kB) File type Wheel Python version cp34 Upload date Hashes View hashes
Filename, size pypict-0.1.0-cp35-cp35m-manylinux1_x86_64.whl (835.3 kB) File type Wheel Python version cp35 Upload date Hashes View hashes
Filename, size pypict-0.1.0-cp36-cp36m-manylinux1_x86_64.whl (839.1 kB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size pypict-0.1.0.tar.gz (400.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page