Welcome to SimPhoNy’s documentation!

Simphony-common

The native implementation of the SimPhoNy cuds objects and io code (http://www.simphony-project.eu/).

Build status Coverage status Documentation Status

Repository

Simphony-common is hosted on github: https://github.com/simphony/simphony-common

Requirements

  • enum34 >= 1.0.4
  • stevedore >= 1.2.0
  • numpy >= 1.4.1

Optional requirements

To support the cuba-generate script the following packages need to be installed prior to installing Simphony:

  • click >= 3.3
  • pyyaml >= 3.11
  • tabulate >= 0.7.4

To support the HDF5 based native IO:

  • PyTables >= 3.1.1

To support the documentation built you need the following packages:

  • sphinx >= 1.3.1
  • mock

Note

Packages that depend on the optional features and use setuptools should append the H5IO and/or CUBAGen identifier next to simphony in their setup_requires configuration option. For example:

install_requires = ["simphony[H5IO, CUBAGen]"]

Will make sure that the requirements of H5IO and CUBAGen support are installed. (see setuptools extras for more information)

Installation

The package requires python 2.7.x, installation is based on setuptools:

# build and install
python setup.py install

or:

# build for in-place development
python setup.py develop

Testing

To run the full test-suite run:

python -m unittest discover -p test*

Documentation

To build the documentation in the doc/build directory run:

python setup.py build_sphinx

If you recreate the uml diagrams you need to have java and xdot installed:

sudo apt-get install default-jre xdot

A copy of the plantuml.jar needs also to be available in the doc/ folder. Running make uml inside the doc/ directory will recreate all the UML diagrams.

Note

  • One can use the –help option with a setup.py command to see all available options.
  • The documentation will be saved in the ./build directory.
  • Not all the png files of the UML diagrams are used.

Directory structure

There are four subpackages:

  • core – used for common low level classes and utility code
  • cuds – to hold all the native cuds implementations
  • io – to hold the io specific code
  • bench – holds basic benchmarking code
  • examples – holds SimPhoNy example code
  • doc – Documentation related files
    • source – Sphinx rst source files
    • build – Documentation build directory, if documentation has been generated using the make script in the doc directory.

SimPhoNy Framework

The simphony library is the core component of the SimPhoNy Framework; information on setting up the framework is provided on a separate repository https://github.com/simphony/simphony-framework.

For Developers

The data structures used in this project are based on the metadata which is defined in a separate repository called simphony-metadata located at: https://github.com/simphony/simphony-metadata.

In order to reflect latest changes to the metadata repository, one should regenerate these entities. There is a generator script available in scripts folder. The structure of this directory is defined below.

Directories

  • scripts/ : Contain the code generator for metadata class, CUBA Enum and KEYWORDS - tests/ : Unit test cases for the generated code - generate.py : Code generator

Guide to generating metadata classes

Rebuild the meta classes by issuing the following command:

$ python setup.py build_meta

The command will rebuild the classes against the simphony-metadata repository tag as written in setup.cfg build_meta/repotag entry

Indices and tables