Skip to main content

A Python library for parsing and solving OPL-like mathematical programming models using multiple solvers.

Reason this release was yanked:

Wrong README.md

Project description

pyopl - Python Optimisation Programming Language

Core package badges:

Codecov Python package Lint and type-check Rhetor on PyPI Python versions License Downloads Release Wheel

Quality and tooling:

Code style: black Ruff mypy

Project/community:

Issues PRs Stars

Docs:

Docs

pyopl is a Python library for parsing and solving OPL-like [1] mathematical programming models using either Gurobi or the open-source SciPy (HiGHS) solver. PyOPL supports a rich subset of Optimisation Programming Language (OPL) syntax for linear and mixed-integer programming.

[1] Van Hentenryck, P. (1999). The OPL optimization programming language. London, England: MIT Press.

Installation

The GitHub project and importable compiler package are named pyopl; the published PyPI distribution is named rhetor.

Install via pip (recommended):

pip install rhetor

Or clone the repository and install locally:

git clone https://github.com/gwr3n/pyopl.git
cd pyopl
pip install .

Dependencies are managed via pyproject.toml and are listed in requirements.txt

PyOPL requires Python 3.10+

You can use either Gurobi or SciPy/HiGHS as the solver. Both solvers are selectable in the API and the Rhetor IME. PyOPL provides robust support for tuple/nested tuple data, advanced boolean logic, implication, and field access in both models and data files.

Usage

Solving an OPL Model

You can use the solve function to load and solve an OPL model (and optional data file). The function parses the model, performs semantic validation, generates backend-specific code (Gurobi Python or SciPy/HiGHS matrices), applies logical encodings (including implication and != big-M or indicator formulations), and executes it. Choose the solver with the solver argument:

from pyopl import solve
results = solve('model.mod', 'data.dat', solver='gurobi')  # Use Gurobi (default)
results = solve('model.mod', 'data.dat', solver='scipy')   # Use SciPy/HiGHS

Example

Suppose you have the following files:

  • knapsack.mod (your OPL model)
  • knapsack.dat (your data file)

You can solve the model as follows:

from pyopl import solve

model = "knapsack.mod"
data = "knapsack.dat"

results = solve(model, data)
print(results)

This will print the parsed AST, the generated solver code, and the solution output from the selected solver. The solve function returns a dictionary with the following keys:

  • status: The status of the optimization (e.g., 'OPTIMAL', 'INFEASIBLE', etc.)
  • solution: A dictionary of variable names and their values (if optimal)
  • objective_value: The value of the objective function (if optimal)
  • stats: Additional statistics (e.g., MIPGap, Runtime, NodeCount, IterCount)
  • message: Any error or status messages

Below, we provide model and data file for our knapsack example.

Example contents for knapsack.mod:

// knapsack.mod
int+ n = ...; // non-negative integer parameter
float+ c = ...; // non-negative float parameter
float+ w[1..n] = ...; // indexed parameter
float+ v[1..n] = ...;

dvar boolean x[1..n];

maximize sum(i in 1..n) v[i] * x[i];
subject to {
    sum(i in 1..n) w[i] * x[i] <= c;
    forall(i in 1..n) x[i] >= 0;
}

Example contents for knapsack.dat:

// knapsack.dat
n = 4;
c = 10;
w = [2, 3, 4, 5];
v = [3, 4, 5, 6];

See examples.py for a repository of examples.

Function Reference

solve(model_file, data_file=None, solver='gurobi')

  • model_file: Path to your .mod or .opl OPL model file
  • data_file: (Optional) Path to a .dat data file
  • solver: 'gurobi' (default) or 'scipy'

The function returns a dictionary with solver results and prints:

  • Parsed AST (Abstract Syntax Tree)
  • Loaded data dictionary (if any)
  • Generated solver code
  • Output from the selected solver

Return value:

  • Dictionary with keys:
    • status: Optimization status (e.g., 'OPTIMAL', 'INFEASIBLE')
    • solution: Variable values (if optimal)
    • objective_value: Objective value (if optimal)
    • stats: Solver statistics (MIPGap, Runtime, etc.)
    • message: Error or status messages

Notes

  • You must have a valid Gurobi license to solve models with Gurobi.
  • SciPy/HiGHS is open-source.
  • The library is designed for educational and prototyping purposes and supports a rich subset of OPL syntax, including advanced tuple, boolean, and logical constructs.

PyOPL IME

PyOPL includes Rhetor, a GenAI-first integrated modelling environment (IME) for creating, revising, solving, exporting, and versioning OPL models and data files.

The IME features:

  • GenAI-first modelling workflows for generating models, revising existing model/data pairs, asking questions about a formulation, and explaining solutions with OpenAI, Google/Gemini, or Ollama models when configured
  • Optional visual prompt attachments for supported GenAI workflows, including images and short PDFs
  • Session-based model version tracking: each run/request can keep a timestamped snapshot that can be previewed, diffed against the current editors, restored, renamed, or deleted
  • Output and session panels for reviewing recent runs, generated artifacts, model/data snapshots, and GenAI interactions
  • Syntax-highlighted model and data editors with open, save, save-as, undo, redo, find, and replace
  • Integrated solve workflow with Gurobi or SciPy/HiGHS selection, solver logs, elapsed-time status, and optional solver-progress display
  • Export support for compiled Python, LP, and MPS artifacts where supported by the selected backend
  • Light/dark themes and configurable editor font sizes, with settings saved between sessions

Launching the IME

Running PyOPL with no subcommand launches the IME:

python -m pyopl

If installed as a package, the pyopl console command can be used in place of python -m pyopl.

This opens the Rhetor IME window. You can open .mod model files and optional .dat data files, generate or revise formulations with GenAI assistance, edit them directly, solve them from the interface, export generated artifacts, and choose either Gurobi or SciPy/HiGHS from the Solve menu.

Sessions and Model Versions

Rhetor keeps an IME session history in a .pyopl_session file in the current working directory. Session entries preserve output history and associated model/data snapshots, so you can track how a model changes over an interactive, GenAI-assisted modelling session. From the session list, use the context menu to preview a saved snapshot, diff it against the current editors, restore it into the editors, rename the session entry, or delete it.

PyOPL CLI

PyOPL also includes a command-line interface for solving models, exporting generated artifacts, and using GenAI helpers from scripts or terminals.

Basic usage:

python -m pyopl solve model.mod data.dat --solver highs --out json

The CLI supports:

  • python -m pyopl solve <model.mod> [data.dat] to compile and solve a model
  • --solver highs|gurobi to choose the backend solver
  • --out json|py|lp|mps to print results, export generated Python, or write LP/MPS solver files
  • --out-file <path> to write output to a file

Examples:

python -m pyopl solve knapsack.mod knapsack.dat --solver highs --out json
python -m pyopl solve knapsack.mod knapsack.dat --solver highs --out lp --out-file knapsack.lp
python -m pyopl solve knapsack.mod knapsack.dat --solver highs --out mps --out-file knapsack.mps

User Guide

A comprehensive User Guide is available in the docs folder of the repository.

License

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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

rhetor-1.9.0-pp311-pypy311_pp73-win_amd64.whl (2.4 MB view details)

Uploaded PyPyWindows x86-64

rhetor-1.9.0-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

rhetor-1.9.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

rhetor-1.9.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

rhetor-1.9.0-pp310-pypy310_pp73-win_amd64.whl (2.4 MB view details)

Uploaded PyPyWindows x86-64

rhetor-1.9.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

rhetor-1.9.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (3.0 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

rhetor-1.9.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

rhetor-1.9.0-cp313-cp313-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.13Windows x86-64

rhetor-1.9.0-cp313-cp313-win32.whl (2.4 MB view details)

Uploaded CPython 3.13Windows x86

rhetor-1.9.0-cp313-cp313-musllinux_1_2_x86_64.whl (20.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

rhetor-1.9.0-cp313-cp313-musllinux_1_2_i686.whl (19.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

rhetor-1.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rhetor-1.9.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (18.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

rhetor-1.9.0-cp313-cp313-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rhetor-1.9.0-cp312-cp312-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.12Windows x86-64

rhetor-1.9.0-cp312-cp312-win32.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86

rhetor-1.9.0-cp312-cp312-musllinux_1_2_x86_64.whl (20.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

rhetor-1.9.0-cp312-cp312-musllinux_1_2_i686.whl (19.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

rhetor-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rhetor-1.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (19.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

rhetor-1.9.0-cp312-cp312-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rhetor-1.9.0-cp311-cp311-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.11Windows x86-64

rhetor-1.9.0-cp311-cp311-win32.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86

rhetor-1.9.0-cp311-cp311-musllinux_1_2_x86_64.whl (21.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

rhetor-1.9.0-cp311-cp311-musllinux_1_2_i686.whl (21.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

rhetor-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rhetor-1.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (20.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

rhetor-1.9.0-cp311-cp311-macosx_11_0_arm64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rhetor-1.9.0-cp310-cp310-win_amd64.whl (2.6 MB view details)

Uploaded CPython 3.10Windows x86-64

rhetor-1.9.0-cp310-cp310-win32.whl (2.3 MB view details)

Uploaded CPython 3.10Windows x86

rhetor-1.9.0-cp310-cp310-musllinux_1_2_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

rhetor-1.9.0-cp310-cp310-musllinux_1_2_i686.whl (19.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

rhetor-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rhetor-1.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (18.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

rhetor-1.9.0-cp310-cp310-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file rhetor-1.9.0-pp311-pypy311_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-pp311-pypy311_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 94800868de61efecfbec6b407a8b5a6ccdc52e692da52fe4cedcfc2939e27262
MD5 3ed47574143dad2a3aff91db11e1d9e9
BLAKE2b-256 0cc9e1788c593cc3fb4afb47e696785158b0667979818833843106f892fca923

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-pp311-pypy311_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f7ce00f02468691305d4587a5f93979d50d4f22397932e336f7f49c21a514a22
MD5 bd23f18998c8011d08f22df2967942a8
BLAKE2b-256 fcbd5bccfdd3344b5b4479e1e31fb3dd04e55a0eb8c04305a671e50396da22dc

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d6d5aba9a07e9693dd038f1a861628852e7169a0d22d4b3e55a9a2078a4918b9
MD5 c017143c186f3587d6085a16c6d98ce3
BLAKE2b-256 50c83aa7ead400c808f307f8ae1e13f55a8d190638291dac26884df65ad9c491

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0137c202c2de474d5a80371b3e377592eebb0ce070f4dce760c5501ce01acd1
MD5 0167fb8cb2605f4b404b1412b60dd3df
BLAKE2b-256 81e675ede09c68fb693724ff2546216f13218821d9c20616f7639aee996f710f

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 520c597e27f0e70da56bd274b4ad95f773172ee013e2058e78f38f2b80ceb6e0
MD5 ac3bc0b99562adf64f1dfdb4892ae4d9
BLAKE2b-256 185ee5d349b6c0fcad70e7b8afee0dccc5a90f595eb2b011e229f9c931187fb6

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03ee69c81ece8c6856a5d0512cbc04c80aecf3bcdf72971bc03dc0e746aef5b7
MD5 c1d7d7cc894cd1b2ae7116ae073b0e99
BLAKE2b-256 b56589f4f6b279ca2a8b6343867334b09623c6316a798678b971ef48c91226e3

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fa57b99828aaf883c7b725bb6f9206381e32c5e0d3309e281ae54c6a1348afbe
MD5 2de7f66590763d32e5b5aee8cbb1bf27
BLAKE2b-256 5a93de26fbf9acd45f9b7ccb33dcefe2498cc41eb8e4b1a676a49d61dd27236d

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a44ad341d958152cc8d61f24f38a59d292262d87c918696d620ec43ea04d85c
MD5 ee380ac8ff8f47904552a25e0c5cf8f3
BLAKE2b-256 ce78f583ac2ddc524c3584151f9ae73069556cec155b3150aed5194b07cea934

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: rhetor-1.9.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rhetor-1.9.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c2f8db92932050ba94ea93a3956096666ae003e0f0f657bcf186dbd61e9db433
MD5 6d2b508d6c8680c980e5cb1e6432026c
BLAKE2b-256 50f69eed504676acefb3bd9c7bf26f6a8102d7cfe678b7ab01209739abc0927b

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp313-cp313-win32.whl.

File metadata

  • Download URL: rhetor-1.9.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rhetor-1.9.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 e968b8c8806068250624a92fa740024d4181ede718f53c025f67f477cc6b174d
MD5 629f75112aeb1e3b2afe7a78e342bfd7
BLAKE2b-256 7673a83811298e4ecb34e37f1722c07bb7b6caccf817b5c98aa1c3ed21938747

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d79fc046b59d954e3dc19fd46cce418a5860375d80cb6f629631624947c8d46a
MD5 af6e244184b66673bb1678a7ffcde287
BLAKE2b-256 9aee6b2228a9f6c13c91f62f68a980ed53c7663d01f0697a30bc7a88d63cc9c2

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6937e371176a18d01c806c8c238ef738ffc6661b7a2a390469d1cf62cbe28554
MD5 88044698c1f695fad5a5a8b09208502b
BLAKE2b-256 21f97ac4517700d19c954ffd19e017541b5dcd2adcb222bf45c71665742655cb

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b53a71a1809d6770a6e64bf7c87c64316406047820d8aebe458d62ed73ba330
MD5 b17b8cd42606972a93280ca1f4213ab1
BLAKE2b-256 e3325604ce3330a4abc0756b3e98ab3e70de3fd171e6344e6f9d0d4fb5eaff33

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 df43aa6b5ea376c123a2f6ecc541e8c36063d86a7015fefe03f82a458fcec9b9
MD5 ec4c9283569c7f864fba57113a73f01b
BLAKE2b-256 21babef842cbad0d77c680232e4d682712bf1f55fcb8711a8d50eeb7652b2360

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84b2f60863e7ecd0355756f48b3fdad208ed45ec8f015d2310c1f3f502461588
MD5 94712d2f308ac14219b1684d0001463a
BLAKE2b-256 1146802afc62f652e65d5fa56c4f1fce570b618ea9d8a880390dc0beda32ad55

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: rhetor-1.9.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rhetor-1.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0580739b6e256eb8b225a18ecf2bcc748a475b2a836d68d9ec56859888aa7134
MD5 8cb76ba1eb9490e6d91ca6150a42b731
BLAKE2b-256 5bf51121d4e837fe58c12a7b7b38e33fe14f237ff62c0a62ddd47c57d34d8ed7

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: rhetor-1.9.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rhetor-1.9.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 64fd5599c41d0b8b506d5d03894f8a3eeb0e6b78cacdd801874e6b562b4ee63e
MD5 a8b5518e5ce793edc59fcd7dea038e21
BLAKE2b-256 f0c5e0ed213545a569605f0f345b42d64807c922fadf2f015ff67308b554b30e

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f4bd76982bbd673ecd3869ea42d5adabd39900972bd55821db6f1de7266ec1c5
MD5 0c539e53cf81c67c04a84ac1ac0d735e
BLAKE2b-256 a956898b9d0446cc7fc3e2c3be4278ad38f8981bdd14e1cd159b5358e21ab178

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 85b492b73d5c8ebd6d9b4dc63d06c282b7e870d4e23fc8715fdfb88966af680e
MD5 56bf7a43d17977bd94451751497ab509
BLAKE2b-256 5ce3807f170b8907db880d2588fece65172b8acf63928426286bfdc80349693f

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f5bfecc2e68a7b3e870bb36a77b9cd033a73db00fa1865d5b00d8ddd3427fc73
MD5 69dd9af542fa5372fd315b2e42b9a67e
BLAKE2b-256 0ab51bcc54e681aca6fcd53b43de7f3d3218dff079452bfa809db8bf20b3507a

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4a5e2cc016714818b65561dcd27b75a7b6582a5b4e540132111b23649f8ed0b4
MD5 5f1589dd17d1e06bc0e1ec47a351a1da
BLAKE2b-256 0dc79827fad6dd474abbbad98060827a8ebf0a19659dd5fd33e301fcaf505272

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8cec1798ee75999c141e101cc9f77b2438fb799ead03745e6cbb289419faad27
MD5 d2136d925a77d1e968672e339ad7984a
BLAKE2b-256 74d8e49b7d386dcfcebb265a327762aa84f09a9dad6d659e176905808d17c2bd

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: rhetor-1.9.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rhetor-1.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5c987f4c3e285296035983a1987f9e53e2b7abca4bf556e9f20b6bb38a4b070a
MD5 7a2c8595a77e06396b2e1ff3b469b594
BLAKE2b-256 0c539ebe8518789f916d44003e7893b1798691ff0c11109ebb19a632c86ed52a

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: rhetor-1.9.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rhetor-1.9.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 027ddd634af7e4c8c2f5f5ab71dd75482690bc30a50238f84a148426d4090273
MD5 d4d8cfd6a6ca5c789830b89c0e8cb06b
BLAKE2b-256 98f86a463cc6d3057763029132ad7375d0ad3ab279860d6e2880a5b1827e06cf

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 48ae712aed6709e9e2ff7fd1f71bf0d5f0a7486d36740d493898a317ad254a2d
MD5 8182f2c89402e6319ebb1a17f3213bdf
BLAKE2b-256 569dcb9439dca0eee6ad11fcd32d91b4ab899054c9c32237200d21c6c8b25ee4

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 237ea7807e1003c777a0457e3c2c96fb4ed554a189f150234733eb66638490ba
MD5 c1927c6c3cbf7c7d2ecfb06dd4300657
BLAKE2b-256 dc01959f219631ffc7ad655aaea26fa360ed818222dfa8abb492038da363007f

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c0fe01c870cf124967daef34cbc5f33f8eb2c35e560e7f18ab495bd7dd497406
MD5 54b08e233e991df8404b098803456085
BLAKE2b-256 845f7ecc6a9f0864984e2ef7e8e6d5c9f108dbd421e4384655ead6c774da738f

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f4f462d4c83ddeefd4c7eb808f226373125155a51db28f1e2d4095d93d44f478
MD5 e836e7fa9be3ce3244c46931f83a7191
BLAKE2b-256 68f0bf523dfe9e1f2f9e340f2c2bb3dfec4adc99e11a9603040028e6d2984032

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72f21a0fe47ef922fe9cccb9c876e6c23cd48c900bba01c967259bda4483ee45
MD5 f3d7f67a32d72c0532cfd30ecc9f3355
BLAKE2b-256 5a847d8ced546faf313b58f2eb293ce7cbe7377e89e1362e4f13bd152d15065d

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: rhetor-1.9.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rhetor-1.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 88de3026b5aa45b2baf328d9a6eb010bf6422ee02ff32e0340a1c7b91ef30c6e
MD5 6b969a0c11e693685ece13aa6814753b
BLAKE2b-256 363c2a293f653866afa0af0d0c15539ae1dbb1a191b271da358365794d715af9

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: rhetor-1.9.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for rhetor-1.9.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 ae7e337146a16a4515480a9e3f5ff73cbb2881f5269cef97d83b443a323be5d9
MD5 83e53b6b20e233d89bf8158f25e1b992
BLAKE2b-256 735aa89e279d25ec130acac4db2feeb47196fe1e73044d15d4d9d432e9990fe5

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2e5ec91bbbcf824e67d8162672c305902843afde35f9cc5104d099bfaea8da05
MD5 9d8ff62ae225301f067ac39d30011d0c
BLAKE2b-256 ce3fde74a4ff3419f8dc7472258c95069d2292dc707fea16420dccb95325d926

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 335e05905084997635ad4e0a22577426f6b11a80c4bd5d49fb2a11999c8160bf
MD5 b546a116d0ff6075c5dd4f1d55267405
BLAKE2b-256 ea57e5fe69c78b8d0702ad5c3e6da3d9c6441dfbd5f5503e6352284b0703547e

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 342b23a1e2943deee38e068428c396d47f28547932e3c3368ac4d19f7e2fb06f
MD5 0914fc9368c1ca58aeb5ffb35d95a5df
BLAKE2b-256 0788d5f8c5eaa4a39486f2095402772a4dd083130f0b41321562a86b711b874e

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6a7d0c26d8270c506bd46c7fd4d25a2e9af8b3d604539d90b58c360d2c437829
MD5 dc5895a228b8579ba0926e14ae683f44
BLAKE2b-256 9deb772504918d6cbade74a296a26a1357ddb61e6e28daea7e3ab80dc3eb20f7

See more details on using hashes here.

File details

Details for the file rhetor-1.9.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rhetor-1.9.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a1c06cea567d89fad8267924d2144e62d6aef4c32027111564601af6f4a401c
MD5 50ea1f57976fc4ec85515327930478ae
BLAKE2b-256 0bf35c0a109bf1126d11b228319c8b2d2e0022c9869cab11e53fd4b48f29723f

See more details on using hashes here.

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