Skip to main content

A SED-ML reader based on pydantic.

Project description

sedml

A SED-ML Python reader based on pydantic.

Currently supports:

  • L1V1
  • L1V2
  • L1V3
  • L1V4

Usage

To parse from a string, use sedml.loads:

>>> import sedml
>>> s = sedml.loads("""<sedML xmlns="http://sed-ml.org/sed-ml/level1/version4" level="1" version="4">
...   <listOfSimulations>
...     <uniformTimeCourse id="sim1" initialTime="0" outputStartTime="0" outputEndTime="1000" numberOfSteps="1000">
...       <algorithm kisaoID="KISAO:0000019"/>
...     </uniformTimeCourse>
...   </listOfSimulations>
...   <listOfModels>
...     <model id="model1" language="urn:sedml:language:sbml.level-3.version-1" source="https://example.com/model.xml"/>
...   </listOfModels>
...   <listOfTasks>
...     <task id="task1" modelReference="model1" simulationReference="sim1"/>
...   </listOfTasks>
... </sedML>
... """)
>>> s
SEDML(
    level='1',
    version='4',
    models=[
        Model(
            id='model1',
            source='https://example.com/model.xml',
            language='urn:sedml:language:sbml.level-3.version-1'
        )
    ],
    simulations=[
        UniformTimeCourse(
            id='sim1',
            algorithm=Algorithm(kisaoID='KISAO:0000019'),
            initialTime=0.0,
            outputStartTime=0.0,
            outputEndTime=1000.0,
            numberOfSteps=1000
        )
    ],
    tasks=[
        Task(id='task1', modelReference='model1', simulationReference='sim1')
    ]
)

To export a SED-ML model, use sedml.dumps:

>>> b = sedml.dumps(s)
>>> print(b.decode())
<?xml version='1.0' encoding='UTF-8'?>
<sedML xmlns="http://sed-ml.org/sed-ml/level1/version4" level="1" version="4">
  <listOfModels>
    <model id="model1" source="https://example.com/model.xml" language="urn:sedml:language:sbml.level-3.version-1"/>
  </listOfModels>
  <listOfSimulations>
    <uniformTimeCourse id="sim1" initialTime="0.0" outputStartTime="0.0" outputEndTime="1000.0" numberOfSteps="1000">
      <algorithm kisaoID="KISAO:0000019"/>
    </uniformTimeCourse>
  </listOfSimulations>
  <listOfTasks>
    <task id="task1" modelReference="model1" simulationReference="sim1"/>
  </listOfTasks>
</sedML>

By default, it includes the XML declaration with UTF-8 encoding, and it is pretty-printed. This can be customized when calling sedml.dumps.

To read from or write to a os.PathLike, use sedml.load or sedml.dump, respectively.

Installation

pip install sedml

Development

We are using pytest for testing, and pre-commit hooks to format and lint the codebase.

To easily set-up a development environment, run the following commands:

git clone https://github.com/maurosilber/sedml
cd sedml
conda env create --file environment-dev.yml
pre-commit install

which assume you have git and conda preinstalled.

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

sedml-0.1.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

sedml-0.1.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file sedml-0.1.0.tar.gz.

File metadata

  • Download URL: sedml-0.1.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for sedml-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7e8198310ca6ac82122540b421dfefa7337ade38a7ec3b2f2789e7a751139da2
MD5 e62f7aec81389542f9ce9daf95d02118
BLAKE2b-256 68d36edf91a3b9160ccfcc8b0205cbc2b2cde542f9cedbfa502746b341f7ee3a

See more details on using hashes here.

File details

Details for the file sedml-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sedml-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for sedml-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e72ecbef63b0ba8cb4e6f8fccecb7c40b78987665a6a7106dc5aee2edb4ee2b
MD5 01a10b2fa0bdb96ff64d58b9197f5ad2
BLAKE2b-256 107527c59b91a471f0a6801887b1bd43ae7837a48240729daba94e2c3a4e9804

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