Skip to main content

A command line tool to convert PLEXOS solution files to a DuckDB database.

Project description

plexos2duckdb

Release PyPI License Platform Downloads

[!IMPORTANT]

This software is in beta pre-production. Interfaces, behavior, and data format may change without notice before the production release.

plexos2duckdb is a software tool to convert PLEXOS solution files to a DuckDB database.

image

Installation

Option 1: Install with uv (recommended)

On supported platforms, you can install the command-line tool directly from PyPI using uv:

uv add --prerelease=allow plexos2duckdb
# or
uv pip install --prerelease=allow plexos2duckdb

Then verify the install:

plexos2duckdb --version

Note that this requires a published wheel for your platform.

If you are interested just in the CLI, you can use uvx to install in an isolated environment:

$ uvx --prerelease=allow plexos2duckdb --help

A tool to convert PLEXOS Solution files to a DuckDB database.

Usage: plexos2duckdb <COMMAND>

Commands:
  convert                     Convert a PLEXOS solution file to DuckDB
  inspect                     Show operational metadata from a generated DuckDB database
  generate-shell-completions  Generate shell completion scripts
  help                        Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

Option 2: Download pre-built binary

Pre-built binaries for the CLI are available from the GitHub Releases page.

  1. Go to the latest release page on GitHub.

  2. Download the appropriate binary for your operating system.

  3. Extract the archive:

    tar -xzf plexos2duckdb-<platform>.tar.gz
    

    or on Windows:

    Expand-Archive plexos2duckdb-<platform>.zip -DestinationPath .
    
  4. Copy the binary to a directory in your PATH, e.g.:

    # MacOS/Linux
    cp plexos2duckdb ~/local/bin/
    # Windows
    copy plexos2duckdb.exe %USERPROFILE%\local\bin\
    

    You will have to make sure ~/local/bin/ is in your PATH.

Quickstart

CLI usage

[!NOTE]

The following assumes you have installed the CLI tool using one of the methods above and have plexos2duckdb in the PATH environment variable.

Verify installation is successful by checking the version:

plexos2duckdb --version

Run the help command to see available options:

plexos2duckdb --help

Convert a solution zip file to a duckdb database:

plexos2duckdb convert --input "Model-DayAhead-Solution.zip" --output "Model-DayAhead-Solution.duckdb"

If the output database already exists, re-run with --force to overwrite it:

plexos2duckdb convert --input "Model-DayAhead-Solution.zip" --output "Model-DayAhead-Solution.duckdb" --force

Inspect an existing database to view metadata, source file info, model name, and table inventory with row counts:

plexos2duckdb inspect --input "Model-DayAhead-Solution.duckdb"

Generate shell completions to stdout with the generate-shell-completions subcommand:

plexos2duckdb generate-shell-completions bash > ~/.local/share/bash-completion/completions/plexos2duckdb
plexos2duckdb generate-shell-completions zsh > ~/.zfunc/_plexos2duckdb

You may use any duckdb compatible database viewer to interactively explore the data with SQL:

image

Python usage

Import the PLEXOS2DuckDB class from the plexos2duckdb package, create a client instance with the path to your solution zip file, and call the convert() method to generate the DuckDB database.

You can also use the same client as a context manager to interact with the database connection directly.

from plexos2duckdb import PLEXOS2DuckDB

client = PLEXOS2DuckDB("./Model DAY_AHEAD Solution.zip")
output_path = client.convert() # "./Model DAY_AHEAD Solution.duckdb"

with client as db:
    # assumes output_path exists at "./Model DAY_AHEAD Solution.duckdb"
    print(db.connection.query("SELECT * FROM information_schema.tables"))

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

plexos2duckdb-0.1.0b9.tar.gz (81.9 kB view details)

Uploaded Source

Built Distributions

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

plexos2duckdb-0.1.0b9-py3-none-win_amd64.whl (11.5 MB view details)

Uploaded Python 3Windows x86-64

plexos2duckdb-0.1.0b9-py3-none-manylinux_2_38_x86_64.whl (15.8 MB view details)

Uploaded Python 3manylinux: glibc 2.38+ x86-64

plexos2duckdb-0.1.0b9-py3-none-macosx_11_0_arm64.whl (12.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file plexos2duckdb-0.1.0b9.tar.gz.

File metadata

  • Download URL: plexos2duckdb-0.1.0b9.tar.gz
  • Upload date:
  • Size: 81.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for plexos2duckdb-0.1.0b9.tar.gz
Algorithm Hash digest
SHA256 faa1606d11417439d445b9f2af0116b670cb77c0ddafff0c3dcbb25ce6eddcd6
MD5 62cf271d0a3732c03dabfb020ed92a83
BLAKE2b-256 ce3fff829f64d0313855f10480f73aafc0808578df31837bc5afa07bda86e6ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for plexos2duckdb-0.1.0b9.tar.gz:

Publisher: cd.yml on kdheepak/plexos2duckdb

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

File details

Details for the file plexos2duckdb-0.1.0b9-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b9-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 210c6d98048ccb85f4c422f9f0b42d2ab7bdf5bf1e349ebf7e87de03393a792b
MD5 f79bd727f9e1ff82a1a0ab8c633e0458
BLAKE2b-256 4fd5fb23b51cb49730a6752a695f18247b0f8f2e33735ca42d31ac977d6a1480

See more details on using hashes here.

Provenance

The following attestation bundles were made for plexos2duckdb-0.1.0b9-py3-none-win_amd64.whl:

Publisher: cd.yml on kdheepak/plexos2duckdb

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

File details

Details for the file plexos2duckdb-0.1.0b9-py3-none-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b9-py3-none-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 fd95b396c1975fecb84e96c3fe3eeac339952adbe9b879235718dbe76f2ab3db
MD5 6411d0950d3ed8ad6a8e004dbf187fc5
BLAKE2b-256 2c0385077392a70b62b390b60f0f5f12dfcef5c2b03e7645d55caa1ded38637f

See more details on using hashes here.

Provenance

The following attestation bundles were made for plexos2duckdb-0.1.0b9-py3-none-manylinux_2_38_x86_64.whl:

Publisher: cd.yml on kdheepak/plexos2duckdb

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

File details

Details for the file plexos2duckdb-0.1.0b9-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b9-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 933d14e862d9b0c659156e275110893dbef94a147d5763dbd6c6b2525c3e58e9
MD5 3ae16a38bb831d128f18f07134f52e08
BLAKE2b-256 244e257ebcd85277884954ed84b0af9cb85f203cf04ef90650bc180671ff97e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for plexos2duckdb-0.1.0b9-py3-none-macosx_11_0_arm64.whl:

Publisher: cd.yml on kdheepak/plexos2duckdb

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