Metadata-Version: 2.4
Name: styro
Version: 0.1.4
Summary: A package manager for OpenFOAM
Project-URL: Homepage, https://github.com/gerlero/styro
Project-URL: Repository, https://github.com/gerlero/styro
Author-email: "Gabriel S. Gerlero" <ggerlero@cimec.unl.edu.ar>
License-File: LICENSE.txt
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.7
Requires-Dist: gitpython<4,>=3
Requires-Dist: requests<3,>=2
Requires-Dist: typer-slim<0.16,>=0.13
Provides-Extra: dev
Requires-Dist: mypy<2,>=1; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: types-requests; extra == 'dev'
Provides-Extra: lint
Requires-Dist: ruff; extra == 'lint'
Provides-Extra: typing
Requires-Dist: mypy<2,>=1; extra == 'typing'
Requires-Dist: types-requests; extra == 'typing'
Description-Content-Type: text/markdown

# 📦 `styro`: A package manager for OpenFOAM

| ‼️ This project is still at the proof-of-concept stage. Please try it at your own risk! |
| ---- |


[![CI](https://github.com/gerlero/styro/actions/workflows/ci.yml/badge.svg)](https://github.com/gerlero/styro/actions/workflows/ci.yml)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![uv](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/uv/main/assets/badge/v0.json)](https://github.com/astral-sh/uv)
[![Publish](https://github.com/gerlero/styro/actions/workflows/pypi-publish.yml/badge.svg)](https://github.com/gerlero/styro/actions/workflows/pypi-publish.yml)
[![PyPI](https://img.shields.io/pypi/v/styro)](https://pypi.org/project/styro/)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/styro)](https://anaconda.org/conda-forge/styro)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/styro)](https://pypi.org/project/styro/)
![OpenFOAM](https://img.shields.io/badge/openfoam-.com%20|%20.org-informational)


## Installation

* With [pip](https://pypi.org/project/pip/) (Python 3.7 or later):

    ```bash
    pip install styro
    ```

* With [conda](https://docs.conda.io/en/latest/):

    ```bash
    conda install -c conda-forge styro
    ```

**styro** requires OpenFOAM (from [openfoam.com](https://www.openfoam.com) or [openfoam.org](https://www.openfoam.org)) and [Git](https://www.openfoam.com/download/git).


## Available commands
- ```styro install <packages>```: Install a package or packages (pass `--upgrade` to upgrade already installed packages)
- ```styro uninstall <packages>```: Uninstall a package or packages
- ```styro freeze```: List installed packages


## Available packages

**styro** is able to install packages listed in the [OpenFOAM Package Index (OPI)](https://github.com/exasim-project/opi).


## Major TODO list

- Add CMake support
- Add tests
