The native implementation of the Simphony cuds objects
Python Batchfile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bench
doc
examples/plugin
scripts
simphony
.coveragerc
.gitignore
.travis.yml
CHANGES.txt
LICENSE
README.rst
appveyor-install.cmd
appveyor-test.cmd
appveyor.yml
dev_requirements.txt
doc_requirements.txt
setup.cfg
setup.py

README.rst

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.11.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 :file:`doc/` folder. Running make uml inside the :file:`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 :file:`./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