Skip to main content

PRIMO - The P&A Project Optimizer Toolkit

PRIMO - The P&A Project Optimizer Toolkit aims to provide multi-scale, simulation-based, open source computational tools and models for well plugging projects to support the National Energy Technology Laboratory (NETL).

Project Status

PyPI - Python Version Pypi Checks codecov Black Imports: isort Documentation Status Contributors Merged PRs Issue stats Downloads

Getting Started

Our complete documentation is available on readthedocs, but here is a summarized set of steps to get started using the framework.

While not required, we encourage the installation of Anaconda or Miniconda and using the conda command to create a separate python environment in which to install the PRIMO Toolkit.

Regular users can use conda to create a new "primo" environment.

conda env create -f conda-env.yml

This creates a new conda environment with the name "primo" that comes installed with all required dependencies to solve PRIMO's optimization problems.

Developers can create a new "primo" environment by executing:

conda env create -f conda-env-dev.yml

Activate the new environment with:

conda activate primo

To test the installation of the primo package, execute:

pytest primo\utils\tests\test_imports.py

The above test, if executed successfully, confirms that primo package is now installed and available in the "primo" package that was just created.

To use the utilities implemented in the PRIMO package that query the U.S. Census API, an appropriate API key must be obtained by signing up with the respective service. These keys must be configured in a .env file in the parent directory. For more details, please see: API Keys

Additionally, use of elevation based utilities requires the user to provide a GeoTIFF file that provides elevation data across the region of interest. Users can download this data from USGS Science Data Catalog. For more details, please see: Elevation Data

Users can also employ other commercial solvers, for example Gurobi, to solve the optimization problem. However, users are responsible for configuring and setting up these solvers themselves.

Running PRIMO with Binder

You can run PRIMO with Binder: a public cloud service that provides a temporary and short-lived sandbox environment to run PRIMO without installing any software locally.

Quickstart

You can launch the Binder environment by clicking on the following badge: Binder

Key Notes

  • Binder environments are automatically destroyed after a few minutes of inactivity. To avoid lost work, please download the notebook file on your local machine periodically.
  • The Binder provided environment is public and insecure. Please do not use this environment to work with sensitive data.

Funding acknowledgements

This work is funded by DOE program grant DE-FOA-003109.

Contributing

By contributing to this repository, you are agreeing to all the terms set out in the LICENSE.md and COPYRIGHT.md files in this directory.

Metadata

Release files for primo-optimizer 0.4.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for primo-optimizer 0.4.9
File Size Uploaded
primo_optimizer-0.4.9.tar.gz 213.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for primo-optimizer 0.4.9
File Interpreter ABI Platform
primo_optimizer-0.4.9-py3-none-any.whl Python 3 none any Details

Total release size: 470.0 kB

Release files / primo_optimizer-0.4.9.tar.gz

Download URL primo_optimizer-0.4.9.tar.gz
Size 213.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3d7fc04c15c91b249f8e92d2b67d8d3292e6776f151cd491e8f49a8020e89ee9
BLAKE2b-256 checksum
How to use checksums
3175cc0ac3f86cbdb738e6aada1fc20a326bd277f528d1468ff20fc09fc4a1d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / primo_optimizer-0.4.9-py3-none-any.whl

Download URL primo_optimizer-0.4.9-py3-none-any.whl
Size 256.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc5f4a11b61fb543ec256c13ccfa3b0c9655dfb088c746a63510dfe163bea5b3
BLAKE2b-256 checksum
How to use checksums
928f059217540f4e7d1b8ff95b4c24535faeff677e928304c9a04741067e5415
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.9 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page