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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.38+ x86-64

plexos2duckdb-0.1.0b10-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.0b10.tar.gz.

File metadata

  • Download URL: plexos2duckdb-0.1.0b10.tar.gz
  • Upload date:
  • Size: 92.3 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.0b10.tar.gz
Algorithm Hash digest
SHA256 cea21168c0bc8aee38b898f1ea4afa776ed43294d7516bff7c38555fdf8a381a
MD5 287f972ec2499c3ee7a33cb5bd0e9c60
BLAKE2b-256 2b1d0cacded115f49e317d136c85695c10cd0e1cacea6d9c3c4aaae2131d91ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b10-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 391eed71033ed9b867d7979b851099d6c24bc27a7644846164954e70a98c6d27
MD5 159fd9a738686f04a487461b372e956b
BLAKE2b-256 57b439c810be0266001950783d64d90e236d24dc2868bca5e1dc3c5e0c66c943

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b10-py3-none-manylinux_2_38_x86_64.whl
Algorithm Hash digest
SHA256 cabf22c3fc7239829a00541fec9b0f61131810e531c11aa8a7830a9941caab6d
MD5 1377af39dc4bab798eeebeed3d1c48b8
BLAKE2b-256 795753fef8f788735b55e2787a601dbba098a72bb49bbef8540421b7d8aba22a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for plexos2duckdb-0.1.0b10-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9aa478571ce91d85d2a3f2b592ec52d79a258d216cec94f74561bc55c9065a19
MD5 8ec199e48ddd71e3f324311dd0548409
BLAKE2b-256 3ad5aec2ddc5606d852cd51ef2490232de1735bc929a3a2a00f88649df882b76

See more details on using hashes here.

Provenance

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