Skip to main content

Core tools for modeling using EMOD

Project description

emod-api

Build docs and deploy to GH Pages Lint Test and update version

Python Version

Python 3.13 is the recommended and supported version.

Documentation

Documentation available at https://emod-hub.github.io/emod-api/.

To build the documentation locally, do the following:

  1. Create and activate a venv.
  2. Navigate to the root directory of the repo.
    python -m pip install .[docs]
    

Dependencies

Linux

emod-api can use Snappy [de]compression (python-snappy) as necessary if it is installed which requires libdev-snappy (Debian/Ubuntu) or snappy-devel (RedHat/CentOS) on Linux.

Ubuntu: [sudo] apt install libdev-snappy

CentOS: [sudo] yum install snappy-devel (not yet tested)

NOTE: The python-snappy version needs to be 0.6.1. Newer versions have problems working correctly with emod-api.

User Stories

Input

  • User wants to be able to create a minimal working config.json for any sim type guaranteed to work with a given Eradication binary.
  • User wants to be able to create config.json from large static 'defaults' file and small variable parameters-of-interest file.
  • User wants to be able to create guaranteed to work campaigns without having to interact with campaign.json files.
  • User wants to create a migration file without having to grok our custom binary migration format.
  • User wants to be able to create large multi-node demographics files programatically.

Output

  • User wants to be able to get post-processed (cleaned up) schema.
  • User wants to be able to get data from InsetChart.json without worrying about exact file format of the files.
  • User wants to be able to extract data of interest from spatial binary files.
  • User wants to be able to work easily with serialization files.
  • User wants to be able to work easily with (pending) events.sql file.

Dev Tips

  • To build package: python -m build --wheel

  • To install package (fill in actual version number in filename):
    python -m pip install dist/emod_api...whl

Capability Wishlist

  • Migration files: users should never have to edit migration binary or header files.
  • Serialization: Population manipulation, such as adding IPs or adding risk factors.
  • Demographics: HINT matrices should not be created directly in demographics.
  • Demographics: Population demographic initalization should be easier and reliable.
  • Config: param_overrides and custom events.

Running tests

Please see the documentation for testing.

Community

The EMOD Community is made up of researchers and software developers, primarily focused on malaria and HIV research. We value mutual respect, openness, and a collaborative spirit. If these values resonate with you, we invite you to join our EMOD Slack Community by completing this form:

https://forms.office.com/r/sjncGvBjvZ

Disclaimer

The code in this repository was developed by IDM and other collaborators to support our joint research on flexible agent-based modeling. We've made it publicly available under the MIT License to provide others with a better understanding of our research and an opportunity to build upon it for their own work. We make no representations that the code works as intended or that we will provide support, address issues that are found, or accept pull requests. You are welcome to create your own fork and modify the code to suit your own modeling needs as permitted under the MIT License.

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

emod_api-3.0.2.tar.gz (145.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

emod_api-3.0.2-py3-none-any.whl (123.2 kB view details)

Uploaded Python 3

File details

Details for the file emod_api-3.0.2.tar.gz.

File metadata

  • Download URL: emod_api-3.0.2.tar.gz
  • Upload date:
  • Size: 145.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emod_api-3.0.2.tar.gz
Algorithm Hash digest
SHA256 5c322a802f85209a79d5a1dd567621d4cb28a4838bcecedb3902b7d9123d3891
MD5 b0cefe9776f62a017dfb64c00ce9b0fb
BLAKE2b-256 f6be420450db80737dedfe3f6b3ce9b9e9f5cadb7df09697fe0199571ef674f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for emod_api-3.0.2.tar.gz:

Publisher: publish_pypi.yml on EMOD-Hub/emod-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file emod_api-3.0.2-py3-none-any.whl.

File metadata

  • Download URL: emod_api-3.0.2-py3-none-any.whl
  • Upload date:
  • Size: 123.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emod_api-3.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1df33e12b3b219708440e3af4e3e2cfc0a0a910320212eeeaae24bf175f2f730
MD5 a075e32cf6103bb3c6d72e93e2d6f7e8
BLAKE2b-256 e5e4a3704f92e581f0f8578df1fb63ab7b66333f1377d116446828f820cbf64f

See more details on using hashes here.

Provenance

The following attestation bundles were made for emod_api-3.0.2-py3-none-any.whl:

Publisher: publish_pypi.yml on EMOD-Hub/emod-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page