Installation
==============
KoopmanGraph requires Python 3.10 or newer, PyTorch, and PyTorch Geometric (PyG).
Install PyTorch and PyG **before** installing KoopmanGraph so pip can resolve
compatible wheels for your platform.
Prerequisites
-------------
Python
~~~~~~
Use Python 3.10, 3.11, or 3.12. Check your version:
.. code-block:: bash
python --version
PyTorch
~~~~~~~
Install the PyTorch build that matches your system (CPU or CUDA). Follow the
selector at `PyTorch Get Started `_.
Example for CPU-only on Linux or macOS:
.. code-block:: bash
pip install torch
PyTorch Geometric
~~~~~~~~~~~~~~~~~
PyG depends on the PyTorch version already installed. Use the official
`PyG installation guide `_
to pick the correct ``torch-geometric`` (and optional extension) wheels.
Minimal install after PyTorch is in place:
.. code-block:: bash
pip install torch-geometric
Install KoopmanGraph
--------------------
From source (recommended)
~~~~~~~~~~~~~~~~~~~~~~~~~
Clone the repository and install in editable mode:
.. code-block:: bash
git clone https://github.com/tjkessler/KoopmanGraph.git
cd KoopmanGraph
pip install -e .
For development (tests, linting, pre-commit):
.. code-block:: bash
pip install -e ".[dev]"
To build documentation locally:
.. code-block:: bash
pip install -e ".[docs]"
cd docs && make html
PyPI
~~~~
After PyTorch and PyG are installed, install KoopmanGraph from PyPI:
.. code-block:: bash
pip install koopman-graph
Pin a specific release when reproducing results:
.. code-block:: bash
pip install koopman-graph==0.2.0
Releases are published automatically when a maintainer creates a GitHub Release
(see ``CONTRIBUTING.md`` in the repository). Until the first release is published,
use the editable install from source above.
Verify
------
Confirm the package imports:
.. code-block:: bash
python -c "import koopman_graph; print(koopman_graph.__version__)"
For a full development check after ``pip install -e ".[dev]"``:
.. code-block:: bash
pytest tests/ -v
Next steps
----------
See :doc:`quickstart` for a minimal train-and-predict workflow.