Metadata-Version: 2.4
Name: pypsa2smspp
Version: 0.0.2
Summary: Bi-directional interface between PyPSA and SMS++
Author-email: Alessandro Pampado <alessandro.pampado@ing.unipi.it>, Davide Fioriti <davide.fioriti@unipi.it>, Unipi developers <davide.fioriti@unipi.it>
Project-URL: Homepage, https://github.com/SPSUnipi/pypsa2smspp
Project-URL: Issues, https://github.com/SPSUnipi/pypsa2smspp/issues
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pandas<3,>=0.24
Requires-Dist: pypsa>=1
Requires-Dist: xarray
Requires-Dist: openpyxl
Requires-Dist: pysmspp>=0.0.2
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: highspy; extra == "dev"
Requires-Dist: gurobipy; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: ncompare; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Provides-Extra: docs
Requires-Dist: numpydoc; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-book-theme; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"
Requires-Dist: pydata-sphinx-theme; extra == "docs"
Requires-Dist: sphinx-reredirects; extra == "docs"
Requires-Dist: nbsphinx; extra == "docs"
Requires-Dist: nbsphinx-link; extra == "docs"
Requires-Dist: scikit-learn; extra == "docs"
Requires-Dist: ipython; extra == "docs"
Requires-Dist: ipykernel; extra == "docs"
Dynamic: license-file

# pypsa2smspp

[![Tests](https://github.com/SPSUnipi/pypsa2smspp/actions/workflows/test.yml/badge.svg)](https://github.com/SPSUnipi/pypsa2smspp/actions/workflows/test.yml)
 
This package aims at providing a python interface between [PyPSA](https://github.com/PyPSA/pypsa) and [SMS++](https://gitlab.com/smspp/smspp-project) models using a simple python interface.
The package aims to support:
- Convert a PyPSA model to SMS++
- Execute the optimization of the so-created SMS++ model
- Parse the solution from the SMS++ model to PyPSA


## How to develop

1. First, clone the repository using git:

    ```bash
        git clone https://github.com/SPSUnipi/pypsa2smspp
    ```

2. Create a virtual environment using venv or conda.
    For exaample, using venv:

    ```bash
        python -m venv .venv
        source .venv/bin/activate
    ```
   
    Alternatively, using conda:

    ```bash
        conda create -n pypsa2smspp python=3.10
        conda activate pypsa2smspp
    ```

3. Install the required packages and pre-commit hooks:

    ```bash
        pip install -e .[dev]
        pre-commit install
    ```

    Note that the `-e` command line option installs the package in editable mode, so that changes to the source code are immediately available in the environment being used. The `[dev]` option installs the packages required for development. The `pre-commit install` command installs the pre-commit hooks, which are used to check the code before committing to ensure code quality standards.

4. Develop and test the code. For testing, please run:

    ```bash
        pytest
    ```
