Metadata-Version: 2.4
Name: pysmspp
Version: 0.0.2
Summary: Basic interface to interact with SMS++
Author-email: Unipi developers <davide.fioriti@unipi.it>
Project-URL: Homepage, https://github.com/SPSUnipi/pySMSpp
Project-URL: Issues, https://github.com/SPSUnipi/pySMSpp/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>=0.24
Requires-Dist: netcdf4
Requires-Dist: pathlib
Requires-Dist: psutil
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: ncompare; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: h5py<3.15; 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

# pySMSpp

[![Tests](https://github.com/SPSUnipi/pySMSpp/actions/workflows/test.yml/badge.svg)](https://github.com/SPSUnipi/pySMSpp/actions/workflows/test.yml)
[![Documentation Status](https://readthedocs.org/projects/pysmspp/badge/?version=latest)](https://pysmspp.readthedocs.io/en/latest/?badge=latest)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/SPSUnipi/pySMSpp/main.svg)](https://results.pre-commit.ci/latest/github/SPSUnipi/pySMSpp/main)

This package aims at providing a python interface to create [SMS++](https://gitlab.com/smspp/smspp-project) models using a simple python interface.
The package aims to support:
- Read/write operations of SMS++ models from/to netCDF4 files
- Add/remove/edit operations model components
- Execution of SMS++ models
- Reading SMS++ results as netCDF4 files


## How to develop

1. First, clone the repository using git:

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

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 pysmspp python=3.10
        conda activate pysmspp
    ```

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
    ```
