Skip to content
This repository has been archived by the owner on May 3, 2023. It is now read-only.

CitrineInformatics/pypif

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pypif

status PyPI version

About

Tools to serialize and deserialize to and from the PIF schema. This package provides python objects for each object in the PIF schema and methods for serialization and deserialization.

There is a companion Java library called JPIF.

Installation

Requirements

  • Python >= 2.7 or >= 3.3

Setup

pypif is published on PyPI, so it can be installed with pip:

$ pip install pypif

Example

The following example creates a PIF record that saves the band gap of MgO2 as equal to 7.8 eV.

from pypif import pif
from pypif.obj import *


chemical_system = ChemicalSystem()
chemical_system.chemical_formula = 'MgO2'

band_gap = Property()
band_gap.name = 'Band gap'
band_gap.scalars = 7.8
band_gap.units = 'eV'

chemical_system.properties = band_gap

print(pif.dumps(chemical_system, indent=4))

This example will serialize to the following JSON representation:

{
    "category": "system.chemical",
    "chemicalFormula": "MgO2",
    "properties": {
        "units": "eV",
        "name": "Band gap",
        "scalars": [
            {
                "value": 7.8
            }
        ]
    }
}

Schema

A detailed discussion of the PIF schema and usage are available at http://citrine.io/pif.