Skip to main content

Validator and examples for openPMD format

Project description

# openPMD Validator Scripts

[![Build Status 1.1.X](https://img.shields.io/travis/openPMD/openPMD-validator/1.1.X.svg?label=1.1.X)](https://travis-ci.org/openPMD/openPMD-validator/branches)
![Supported Python Versions](https://img.shields.io/pypi/pyversions/openPMD-validator.svg)
[![License](https://img.shields.io/badge/license-ISC-blue.svg)](https://opensource.org/licenses/ISC)

This repository contains scripts to validate existing files that (claim to)
implement the [openPMD Standard](https://github.com/openPMD/openPMD-standard)
in version `1.1.*`.

Additional scripts to create random/empty files with the valid markup of the
standard are also provided.


## Rationale

These tools are intended for developers that want to implementent the standard.
They were written to allow an easy *implement-test-correct* workflow without
the hazzle to check every word of the written standard twice.

Nevertheless, these scripts can not validate 100% of the standard and uncovered
sections shall be cross-checked manually with the words of the written
standard.

For more information on requirements for implementations, please refer to the
section
[*Implementations*](https://github.com/openPMD/openPMD-standard/blob/1.1.0/STANDARD.md#implementations)
of the openPMD standard. The repository
[openPMD-projects](https://github.com/openPMD/openPMD-projects)
also lists a large collection of open source projects that already implement
the openPMD standard.


## Install

[![pypi version](https://img.shields.io/pypi/v/openPMD-validator.svg)](https://pypi.python.org/pypi/openPMD-validator)
[![Spack Package](https://img.shields.io/badge/spack-py--openpmd--validator-blue.svg)](https://spack.io)
[![Conda Package](https://anaconda.org/ax3l/openpmd_validator/badges/version.svg)](https://anaconda.org/ax3l/openpmd_validator)

Choose *one* of the install methods below to get started:

### PyPI

```bash
# optional: append --user
pip install openPMD-validator==1.1.0.1
```

### Spack

```bash
spack install py-openpmd-validator@1.1.0.1 ^py-h5py~mpi
spack load --dependencies py-openpmd-validator@1.1.0.1 ^py-h5py~mpi
```

### Conda

```bash
conda install -c ax3l openpmd_validator==1.1.0.1
```

### From Source

```bash
wget https://github.com/openPMD/openPMD-validator/archive/1.1.0.1.tar.gz
tar -xf 1.1.0.1.tar.gz
cd openPMD-validator-1.1.0.1/

# optional: append --user
python setup.py install
```

## Usage

### CLI

We provide the command-line tools for individual files:

```bash
# optional: create dummy example files
openPMD_createExamples_h5

# validate
openPMD_check_h5 -i example.h5
# optional: append --EDPIC for the Partice-in-Cell Extension
```

### Module

Additionally, the validator tools can be used as *Python module* in your projects, e.g. to verify a file before opening it for reading.

**Create:**
```python
from openpmd_validator import createExamples_h5


# create "example.h5"
createExamples_h5.main()
```

**Check:**
```python
from openpmd_validator import check_h5


result_array = check_h5.check_file("example.h5", verbose=False)

print("Result: %d Errors and %d Warnings."
%( result_array[0], result_array[1]))
```

## Development

The development of these scripts is carried out *per-branch*.
Each branch corresponds to a certain version of the standard and might
be updated in case tests did contain bugs or we found a way to cover more
sections of the standard.


Project details


Download files

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

Source Distribution

openPMD-validator-1.1.0.1.tar.gz (14.8 kB view details)

Uploaded Source

Built Distributions

openPMD_validator-1.1.0.1-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

openPMD_validator-1.1.0.1-py2-none-any.whl (18.5 kB view details)

Uploaded Python 2

File details

Details for the file openPMD-validator-1.1.0.1.tar.gz.

File metadata

File hashes

Hashes for openPMD-validator-1.1.0.1.tar.gz
Algorithm Hash digest
SHA256 7585abbd32523ae6b8065772e1cc27a45e232c526a9fc0bd8ce85182d1b4b325
MD5 9e9907447568d924059d17f59bc509ff
BLAKE2b-256 11db589cd5ddcc8d60a74e8ffaaf43e19af3b1bb91e6ef8996bd0531bfdb470c

See more details on using hashes here.

File details

Details for the file openPMD_validator-1.1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for openPMD_validator-1.1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 473a9d61bdc919ca970cbf347dbbafe54f50c5da9e5d17b86fa31b5c1d4925dd
MD5 aa01f51d4fd0ad3fc08b5c6e1939e8f8
BLAKE2b-256 08289d63b538af46fb87772388828d4233a3461a458cd9e8e4feee0bb589d0b6

See more details on using hashes here.

File details

Details for the file openPMD_validator-1.1.0.1-py2-none-any.whl.

File metadata

File hashes

Hashes for openPMD_validator-1.1.0.1-py2-none-any.whl
Algorithm Hash digest
SHA256 72b8e5760b07f2ca70f56139596c324bc20f879929ff3d9dfe3e993879c63f9d
MD5 8bc7454616a3ce4087552bef8d8e0b6b
BLAKE2b-256 e223dd7957915cb40743795cf03ff7b56fdfac83c379abff47031943fa2da111

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page