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.0b11.tar.gz (90.5 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.0b11-py3-none-win_amd64.whl (12.9 MB view details)

Uploaded Python 3Windows x86-64

plexos2duckdb-0.1.0b11-py3-none-manylinux_2_38_x86_64.whl (17.7 MB view details)

Uploaded Python 3manylinux: glibc 2.38+ x86-64

plexos2duckdb-0.1.0b11-py3-none-macosx_11_0_arm64.whl (13.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: plexos2duckdb-0.1.0b11.tar.gz
  • Upload date:
  • Size: 90.5 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.0b11.tar.gz
Algorithm Hash digest
SHA256 ac2180dbc297c6ea3b81fcbe167e6274f2580edcfdc3d8e398ea77c73c1b37e7
MD5 cd8d28f8681fd3b721ce44cd1c46fb61
BLAKE2b-256 5ce9035fd9ad1d86e6fa45ae3c2e4ff84c863701dd5c053243ac8ec4783314de

See more details on using hashes here.

Provenance

The following attestation bundles were made for plexos2duckdb-0.1.0b11.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.0b11-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b11-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b020d5c32b3d9307c757b7f947d9ca83a74696e6a7770e147133429b14436749
MD5 bfb5ca82c5be5d69ad7046fec1e11586
BLAKE2b-256 ac5867febe7d3c8d5b6818f3b5ad6397bf7057b661871c2784cdec1e606b2dac

See more details on using hashes here.

Provenance

The following attestation bundles were made for plexos2duckdb-0.1.0b11-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.0b11-py3-none-manylinux_2_38_x86_64.whl.

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b11-py3-none-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 600f2710da35588242074324c544bab8708e2e80ee8f985fa149ae758097a836
MD5 0a8310228ce68a98f5c48b7d063dc224
BLAKE2b-256 9f7ed5e0a22bdd8544ae1ee1e4ca7ba73a921f7d2c73783bac0fe568c816d6cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for plexos2duckdb-0.1.0b11-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.0b11-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b11-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71d4b8ca2c2e5890327bc1ade08554c1bf02c6a7b8fff9b6ff8f50dab61e730a
MD5 cdd7c88e7199574c1afd08bb4a0fd291
BLAKE2b-256 cfae321bde60336e24fe8fccfa7752b3a8c0a78dea8ad6bb755ab839e78951e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for plexos2duckdb-0.1.0b11-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