Metadata-Version: 2.4
Name: styro
Version: 0.1.0
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.14,>=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 is 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/)
[![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

```bash
pip install styro
```

**styro** requires OpenFOAM, Python 3.7 or later, and Git.


## Available commands
- ```styro install <packages>```: Install a package or 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

- Enforce OpenFOAM version constraints
- Add CMake support
- Add upgrade option
- Add locking to allow concurrent operations
- Add tests
