Package: cellml.recipe.api
OverviewThis is the recipe that will build the CellML API Python bindings with
all options enabled by default.  Currently, there are some limitations,
such as all dependencies required to build the CellML API must be
installed before this recipe can be used, and I don’t think this will
work under Windows at the moment.Supported optionsThe recipe supports the following options:api-versionCellML API version to build.  Valid versions any versions that build
via CMake and has Python bindings (>1.10), and must be present in
the list of valid versions.cmake-generatorThe generator to use.  Only the default optionUnix Makefilesis
supported, as this recipe is built on top ofzc.recipe.cmmiwhich will make use ofmakeandmake install.check-buildWhether to check build time dependencies.  Default is off because it
didn’t detect GSL libraries even though it was installed for me.
Same as passing-DCHECK_BUILD:BOOL=OFFtocmake.Other supported options:enable-examplesenable-annotoolsenable-ccgsenable-celedsenable-celeds-exporterenable-cevasenable-cisenable-cusesenable-gsl-integratorsenable-malaesenable-pythonenable-rdfenable-sprosenable-srusenable-telicemsenable-vacssPlease refer to theCellML API Documentationsfor what these options
do.UsageAs this egg is published onpypi, this recipe can be used right away
by including a new part inside abuildout.cfg.  The following is an
example configuration:[buildout]
parts =
    ...
    cellml-api
    cellmlpy

[cellml-api]
recipe = cellml.recipe.api
api-version = 1.10

[cellmlpy]
recipe = zc.recipe.egg
eggs =
interpreter = cellmlpy
scripts = cellmlpy
extra-paths = ${cellml-api:location}/lib/pythonThis examplebuildout.cfgwill build the CellML API v1.10 with all
the supported options enabled, and a script will be generated inbin/cellmlpywhich will allow the bindings to be imported without
settingPYTHONPATHand other related environmental variables.
Please refer to the examples directory for more detailed instructions
and other example usages of this recipe.Copyright/License informationThis software is released under the MPL/GPL/LGPL licenses.Please refer to the fileCOPYING.txtfor detailed copyright
information, anddocsdirectory for specific licenses that this
software is released under.Change history0.8 (2022-04-27)Force a known supported CXX standard because newest gcc defaults to
the incompatible c++17 standard.0.7 (2019-01-23)Update distribution location.0.6 (2018-07-31)Python 3 compatibility.0.5 (2018-01-23)Added latest version of CellML API on github.Added RUNPATH into place.0.4 (2012-11-05)Added CellML API 1.12.0.3 (2012-10-03)Corrected typo for the TeLICeM flag.Added CellML API 1.11.0.2 (2011-09-21)Fixed the issue where all the expected keys are assigned with an
empty string even if unassigned; this caused various unwanted side
effects.Fixed the issue where the location of this buildout recipe is
undefined.0.1 (2011-09-21)Initial release of the CellML API Python bindings buildout.Detailed DocumentationDemonstrationThis recipe extends on thezc.recipe.cmmiwith the caveat where
cmake is called instead of the./configurescripts, yet have cmake
generateUnix Makefilessuch that themake/make installthat
cmmi calls will proceed as normal.For the demonstration, instead of download/building the entire API, we
are going to make use of the mock-ups (which is previous setup).>>> ls(distros)
-  cellml-api-0.0fake.tgz

>>> distros_url = start_server(distros)
>>> archive_url = '%scellml-api-0.0fake.tgz' % distros_urlLet’s create our buildout, but modified so that we use our fake archive.>>> write('buildout.cfg',
... """
... [buildout]
... parts = cellml-api
...
... [cellml-api]
... recipe = cellml.recipe.api
... api-version = 0.0fake
... """)As our mocked up api version is not listed as an available version,
buildout will die.>>> print('start ' + system(buildout))
start...
  Installing.
  Getting ... cellml-api.
  Initializing ... cellml-api.
...
Traceback (most recent call last):
...
ValueError: api-version `0.0fake` is not a supported version of...
<BLANKLINE>Well, since our fake version is obviously not going to be added into the
listing of supported APIs, we can still provide our url and md5sum, as
the original function provided byzc.recipe.cmmiis still in effect.
Rewrite buildout.cfg with the desired attributes.>>> try: from hashlib import md5
... except ImportError: from md5 import new as md5
>>> m = md5(open(join(distros, 'cellml-api-0.0fake.tgz'), 'rb'
...             ).read()).hexdigest()
>>> write('buildout.cfg',
... """
... [buildout]
... parts = cellml-api
...
... [cellml-api]
... recipe = cellml.recipe.api
... url = %s
... md5sum = %s
... """ % (archive_url, m))

>>> print('start ' + system(buildout))
start...
...
CMake Warning:
  Manually-specified variables were not used by the project:
<BLANKLINE>
    CHECK_BUILD
    ENABLE_ANNOTOOLS
    ENABLE_CCGS
    ENABLE_CELEDS
    ENABLE_CELEDS_EXPORTER
    ENABLE_CEVAS
    ENABLE_CGRS
    ENABLE_CIS
    ENABLE_CUSES
    ENABLE_EXAMPLES
    ENABLE_GSL_INTEGRATORS
    ENABLE_MALAES
    ENABLE_PYTHON
    ENABLE_RDF
    ENABLE_SPROS
    ENABLE_SRUS
    ENABLE_TELICEMS
    ENABLE_VACSS
<BLANKLINE>
<BLANKLINE>
<BLANKLINE>ContributorsTommy Yu, AuthorDownload