Metadata-Version: 2.2
Name: dynaplex
Version: 1.12.0
Summary: Solving Markov Decision Problems and similar models (POMDP, HMM), written in Python, executed by a fast multi-threaded engine — for Supply Chain, Logistics and Manufacturing
Author: Willem van Jaarsveld
License: DynaPlex License Agreement
         Version 1.0, August 2026
         
         In short: DynaPlex is free of charge for everyone — research, teaching,
         and commercial use alike, with no feature or usage limits. Once you have
         obtained a version, your right to keep using that version never expires.
         Models you write and results you produce with DynaPlex are entirely
         yours. The engine's source code is not published, and you may not modify
         or reverse engineer the software. As with virtually all software
         licenses, DynaPlex is provided as is, without warranty or liability.
         This summary is for orientation only; the terms below govern.
         
         Copyright (c) 2025-2026 Willem van Jaarsveld. All rights reserved.
         
         This license agreement (the "Agreement") governs the use of the DynaPlex
         software in binary form, including the pre-built wheels distributed via
         PyPI and the files they contain (the "Software"). By installing or using
         the Software you agree to these terms.
         
         1. License grant. The copyright holder grants you a worldwide,
            royalty-free, non-exclusive, perpetual and irrevocable (subject to
            Section 9) license to install and use the Software, for any purpose,
            including academic research, teaching, evaluation, and commercial
            use. There are no limits on the number of users, machines, cores, or
            problem sizes.
         
         2. Redistribution. You may redistribute the Software free of charge, in
            unmodified form only, provided this Agreement is included with every
            copy. This expressly permits institutional package mirrors and
            caches, and archiving wheels alongside scientific publications for
            reproducibility.
         
         3. Your content. Models, code, data, and other works you create for use
            with the Software, and any outputs you produce with it (including
            trained policies, simulation results, and publications), belong to
            you. This Agreement claims no rights over them.
         
         4. Restrictions. Except as expressly permitted by Section 2 or by
            applicable law notwithstanding this limitation, you may not: (a)
            modify, adapt, or create derivative works of the Software; (b)
            reverse engineer, decompile, or disassemble the Software or
            otherwise attempt to derive its source code; (c) remove or alter any
            copyright or license notices in the Software; or (d) sublicense,
            rent, sell, or lease the Software.
         
         5. Versions. Each version of the Software is licensed separately. This
            Agreement applies to the version you obtained it with. Future
            versions or editions of DynaPlex may be offered under different
            terms, but that never affects the rights this Agreement grants you
            for versions already obtained.
         
         6. Third-party components. The Software bundles third-party open-source
            components (including LLVM). These components remain governed by
            their own licenses; the corresponding notices are included in the
            distribution as THIRD-PARTY-NOTICES.txt.
         
         7. No warranty. THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY
            OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
            WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
            ACCURACY, AND NON-INFRINGEMENT. You are solely responsible for
            validating the Software and its outputs — including trained
            policies, optimization results, and simulation results — before
            relying on them in any decision, publication, or deployment.
         
         8. Limitation of liability. TO THE MAXIMUM EXTENT PERMITTED BY
            APPLICABLE LAW, IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR
            ANY DAMAGES WHATSOEVER ARISING OUT OF OR IN CONNECTION WITH THE
            SOFTWARE OR THIS AGREEMENT — WHETHER DIRECT, INDIRECT, INCIDENTAL,
            SPECIAL, CONSEQUENTIAL, OR EXEMPLARY, INCLUDING BUT NOT LIMITED TO
            LOSS OF PROFITS, REVENUE, DATA, OR USE, OR BUSINESS INTERRUPTION —
            HOWEVER CAUSED AND UNDER ANY THEORY OF LIABILITY (CONTRACT, TORT, OR
            OTHERWISE), EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
            Nothing in this Agreement excludes or limits any liability that
            cannot be excluded or limited under applicable law, including
            liability arising from the copyright holder's own intent (opzet) or
            deliberate recklessness (bewuste roekeloosheid).
         
         9. Termination. This Agreement terminates automatically if you
            materially breach it and do not cure the breach within 30 days of
            becoming aware of it. Sections 3, 6, 7, 8, and 10 survive
            termination.
         
         10. Governing law. This Agreement is governed by the laws of the
             Netherlands.
         
         ---
         
         Citation request (not a license condition): if you use DynaPlex in
         research, please cite it — see the CITATION.cff file or the project
         README for the reference.
         
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: C++
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Project-URL: Homepage, https://github.com/DynaPlex/DynaPlex
Project-URL: Documentation, https://dynaplex.github.io/DynaPlex/
Project-URL: Issues, https://github.com/DynaPlex/DynaPlex/issues
Project-URL: Discussions, https://github.com/DynaPlex/DynaPlex/discussions
Requires-Python: <3.14,>=3.13
Requires-Dist: numpy>=1.26.0
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Requires-Dist: pyright>=1.1.408; extra == "dev"
Provides-Extra: gym
Requires-Dist: gymnasium; extra == "gym"
Provides-Extra: complete
Requires-Dist: gymnasium; extra == "complete"
Requires-Dist: pyright>=1.1.408; extra == "complete"
Description-Content-Type: text/markdown

﻿# DynaPlex

DynaPlex is a Python library for solving Markov Decision Problems and similar models (POMDP, HMM). MDP/POMDP models in DynaPlex are written in (a subset of) Python, and are interpreted using a custom fast interpreter that supports multi-threading and vectorization. DynaPlex focuses on solving problems arising in Operations Management: Supply Chain, Transportation and Logistics, Manufacturing, etc.

## Requirements

- Python 3.13 only
- Windows: AMD64
- Linux: x86_64
- macOS: Apple Silicon (macOS 14 or newer) or Intel (macOS 15 or newer)
- Algorithms require a compatible PyTorch install; use the PyTorch selector: https://pytorch.org/get-started/locally/

build from source not supported.  

## Installation

```bash
pip install dynaplex
```

or 

```bash
pip install "dynaplex[complete]"
```

(The quotes are required in some shells, notably zsh, the default on macOS.)

## Verifying your installation

After installing, confirm the wheel works on your platform (including the LLVM JIT) with:

```bash
python -m dynaplex.selftest
```

It prints your environment, exercises the compile/interpret pipeline, and runs a small kernel through the JIT, exiting non-zero on failure. See the documentation for details.

## Documentation

Full docs and tutorials are available at https://dynaplex.github.io/DynaPlex/

## License

DynaPlex is free to use for everyone — research, teaching, and commercial
applications alike, with no feature or usage limits. It ships as pre-built
wheels under the DynaPlex License Agreement (included in the wheel as
LICENSE.txt): a royalty-free, perpetual grant to install and use each
version you obtain. The engine's source code is not published. Models and
code you write with DynaPlex are entirely yours.

## Support

Bug reports and feature requests: https://github.com/DynaPlex/DynaPlex/issues
Questions and discussion: https://github.com/DynaPlex/DynaPlex/discussions
