Skip to content
/ pyffi Public

PyFFI is a Python library for processing block structured files.

License

Notifications You must be signed in to change notification settings

niftools/pyffi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7f4404d · Jan 6, 2020
Apr 26, 2018
Nov 23, 2019
Oct 6, 2019
Jul 23, 2011
Jul 2, 2011
Dec 25, 2019
Oct 4, 2019
Mar 23, 2017
Dec 13, 2019
Nov 11, 2012
Oct 16, 2011
Jan 16, 2017
Oct 16, 2012
May 12, 2019
Nov 23, 2019
Oct 4, 2019
Mar 6, 2014
Mar 23, 2017
Mar 23, 2017
Dec 17, 2017
Jan 16, 2017
Nov 11, 2012
May 13, 2019
Dec 30, 2019
Nov 7, 2009
Feb 6, 2010
Oct 4, 2019
Sep 10, 2012
Apr 26, 2009
Nov 28, 2009
Jan 23, 2010
Jan 16, 2017
Nov 11, 2012
Apr 10, 2009
Nov 23, 2019
Nov 23, 2019

Repository files navigation

PyFFI

https://img.shields.io/travis/niftools/pyffi/develop.svg?label=Linux%20Build&logo=travis https://img.shields.io/appveyor/ci/neomonkeus/pyffi/develop.svg?label=Windows%20Build&logo=appveyor https://img.shields.io/coveralls/github/niftools/pyffi/develop.svg?label=Coverage

The Python File Format Interface, briefly PyFFI, is an open source Python library for processing block structured binary files:

  • Simple: Reading, writing, and manipulating complex binary files in a Python environment is easy! Currently, PyFFI supports the NetImmerse/Gamebryo NIF and KFM formats, CryTek's CGF format, the FaceGen EGM format, the DDS format, and the TGA format.
  • Batteries included: Many tools for files used by 3D games, such as optimizers, stripifier, tangent space calculator, 2d/3d hull algorithms, inertia calculator, as well as a general purpose file editor QSkope (using PyQt4), are included.
  • Modular: Its highly modular design makes it easy to add support for new formats, and also to extend existing functionality.

Download

Get PyFFI from Github, or install it with:

easy_install -U PyFFI

or:

pip3 install PyFFI

Developing

To get the latest (but possibly unstable) code, clone PyFFI from its Git repository:

git clone --recursive git://github.com/niftools/pyffi.git
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements/requirements-dev.txt

Be sure to use the --recursive flag to ensure that you also get all of the submodules.

If you wish to code on PyFFI and send your contributions back upstream, get a github account and fork PyFFI.

Testing

We love tests, they help guarantee that things keep working they way they should. You can run them yourself with the following:

source venv/bin/activate
nosetest -v test

or:

source venv/bin/activate
py.test -v tests

Documentation

All our documentation is written in ReST and can be generated into HTML, LaTeX, PDF and more thanks to Sphinx. You can generate it yourself:

source venv/bin/activate
cd docs
make html -a

Examples

Questions? Suggestions?