ModellingWebLab / WebLab

Django-based front-end for the modelling Web Lab v2
Other
3 stars 2 forks source link

Find/create Python combine archive tool #30

Closed MichaelClerx closed 6 years ago

MichaelClerx commented 6 years ago

Requirements:

See #23

Step 1: Evaluate https://github.com/FreakyBytes/pyCombineArchive

jonc125 commented 6 years ago

Thoughts on https://github.com/FreakyBytes/pyCombineArchive :

jonc125 commented 6 years ago

Tellurium uses the Python bindings to libCombine, available as tecombine (0.2.2.1) and python-libcombine (0.2.1) from PyPI.

jonc125 commented 6 years ago

pysces just has custom write code.

The Physiome Model Repository has an OMEX interface, but it's tightly coupled to the PMR2 codebase.

jonc125 commented 6 years ago

Have also asked at https://groups.google.com/forum/?hl=en-GB#!topic/combine-archive/oRQCoZfUblY

MichaelClerx commented 6 years ago

Can't be that hard to build can it? I generate zip files in myokit all the time with no dependencies beyond python's standard library

jonc125 commented 6 years ago

There are responses from the main library developers in the thread linked above now. As Michael says, a pure Python library for the functionality we actually need would probably be easy to write, but it might make sense to start with libCombine so we're being 'good citizens'! It did pip install for me, even if there weren't wheels available.

MichaelClerx commented 6 years ago

It does depend on libSBML for XML parsing though, bit overkill?

jonc125 commented 6 years ago

Indeed, that is the downside! But if its API isn't too bad we can start there to get something running and switch to a light-weight Python alternative later. If the API is complex, it might be quicker just to write something ourselves...

jonc125 commented 6 years ago

Had issues getting libCOMBINE to work in #47, so Helen has written our own thing for just what we need for now. Eventually we'll make this a standalone Python package, with the other features needed for #17 etc.

jonc125 commented 6 years ago

Closing for now since we implement features we need as required. Can revisit if we decide to create a standalone library with others (e.g. PMR).