Metadata-Version: 2.4
Name: araras
Version: 2.5.0
Summary: A collection of tools for Machine Learning and Data Science
Author-email: Matheus Ferreira Silva <matheusferreiravga@gmail.com>
License-Expression: GPL-3.0-only
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: numpy>=1.20.0
Requires-Dist: matplotlib>=3.5.0
Requires-Dist: cycler>=0.11.0
Requires-Dist: scikit-learn>=1.0.0
Requires-Dist: psutil>=5.8.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: pandas>=1.2.0
Requires-Dist: tabulate>=0.9.0
Requires-Dist: tqdm>=4.0.0
Provides-Extra: tensorflow
Requires-Dist: tensorflow[and-cuda]>=2.18.0; extra == "tensorflow"
Requires-Dist: optuna>=4.1.0; extra == "tensorflow"
Requires-Dist: optuna-integration>=4.3.0; extra == "tensorflow"
Requires-Dist: optunahub>=0.3.1; extra == "tensorflow"
Requires-Dist: cmaes>=0.8.0; extra == "tensorflow"
Requires-Dist: pynvml>=11.4.1; extra == "tensorflow"
Provides-Extra: torch
Requires-Dist: optuna>=4.1.0; extra == "torch"
Requires-Dist: torch>=1.9.0; extra == "torch"
Requires-Dist: torchinfo>=1.8.0; extra == "torch"
Requires-Dist: torchviz>=0.0.2; extra == "torch"
Provides-Extra: viz
Requires-Dist: plotly>=5.0.0; extra == "viz"
Requires-Dist: pydot>=1.2.2; extra == "viz"
Provides-Extra: notebook
Requires-Dist: ipython>=7.0.0; extra == "notebook"
Requires-Dist: nbformat>=5.0.0; extra == "notebook"
Requires-Dist: ipynbname>=2021.3.1; extra == "notebook"
Provides-Extra: gnn
Requires-Dist: spektral>=1.3.0; extra == "gnn"
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: all
Requires-Dist: tensorflow[and-cuda]>=2.18.0; extra == "all"
Requires-Dist: optuna>=4.1.0; extra == "all"
Requires-Dist: optuna-integration>=4.3.0; extra == "all"
Requires-Dist: optunahub>=0.3.1; extra == "all"
Requires-Dist: cmaes>=0.8.0; extra == "all"
Requires-Dist: pynvml>=11.4.1; extra == "all"
Requires-Dist: torch>=1.9.0; extra == "all"
Requires-Dist: torchinfo>=1.8.0; extra == "all"
Requires-Dist: torchviz>=0.0.2; extra == "all"
Requires-Dist: plotly>=5.0.0; extra == "all"
Requires-Dist: pydot>=1.2.2; extra == "all"
Requires-Dist: ipython>=7.0.0; extra == "all"
Requires-Dist: nbformat>=5.0.0; extra == "all"
Requires-Dist: ipynbname>=2021.3.1; extra == "all"
Requires-Dist: spektral>=1.3.0; extra == "all"
Dynamic: license-file

<div align="center">
  <img src="images/banner.png" alt="Banner Image" />
</div>


<p align="center">
<a href="https://github.com/DenverCoder1/readme-typing-svg"><img src="https://readme-typing-svg.herokuapp.com?font=Time+New+Roman&color=%231c88e3&size=25&center=true&vCenter=true&width=600&height=30&lines=👋+Welcome!"></a>
</p>

<p align="center">
  <a href="https://github.com/MatheusFS-dev/araras/blob/main/LICENSE.txt">
    <img src="https://img.shields.io/github/license/MatheusFS-dev/araras?style=flat-square&label=license" alt="License"/>
  </a>
  <a href="https://github.com/MatheusFS-dev/araras/stargazers"><img src="https://img.shields.io/github/stars/MatheusFS-dev/araras?style=flat-square" alt="Stars"/></a>
  <a href="https://github.com/MatheusFS-dev/araras/network/members"><img src="https://img.shields.io/github/forks/MatheusFS-dev/araras?style=flat-square" alt="Forks"/></a>
  <a href="https://visitor-badge.laobi.icu/badge?page_id=MatheusFS-dev.araras"><img src="https://visitor-badge.laobi.icu/badge?page_id=MatheusFS-dev.araras" alt="Visitors"/></a>
</p>

<p align="center">
  <a href="#">
      <img src="https://api.visitorbadge.io/api/VisitorHit?user=MatheusFS-dev&repo=araras&countColor=%23007FFF" />
   </a>
</p>

This is a python module that provides a set of tools for working with machine learning models. It includes utilities for neural architecture search using optuna, builders and helpers for keras/tensorflow, a monitoring system for the kernel, and several other features. The module is designed to be easy to use and flexible, allowing users to customize their machine learning workflows.

## Table of Contents

- [Table of Contents](#table-of-contents)
- [📚 API Documentation](#-api-documentation)
- [⚙️ Installation Instructions](#️-installation-instructions)
- [🐧 Linux GPU Venv Setup (TensorFlow + Torch)](#-linux-gpu-venv-setup-tensorflow--torch)
- [🚀 Release Flow](#-release-flow)
- [🔖 Versioning Policy](#-versioning-policy)
- [🤝 Contributing](#-contributing)
- [📜 License](#-license)
- [🤝 Collaborators](#-collaborators)

## 📚 API Documentation

For comprehensive documentation, examples, and detailed usage guides, please visit our **[Documentation Wiki](docs/wiki.md)**.

## ⚙️ Installation Instructions

Install only the feature set you need:

```bash
pip install araras
pip install araras[tensorflow]
pip install araras[torch]
pip install araras[viz]
pip install araras[notebook]
pip install araras[gnn]
pip install araras[all]
```

Notes:

- The base install is lightweight and excludes heavyweight ML backends.
- TensorFlow support is enabled via the tensorflow extra.
- PyTorch support is enabled via the torch extra.
- Visualization and notebook extras are optional and independent.

## 🐧 Linux GPU Venv Setup (TensorFlow + Torch)

For Linux users with an NVIDIA GPU, this repository includes an installer script at `venvs/tf-gpu.sh` that creates and configures a virtual environment with:

- TensorFlow (`tensorflow[and-cuda]`)
- PyTorch (`torch`, `torchinfo`, `torchviz`)
- Optuna and common ML/data-science utilities
- `araras[all]`

The script also verifies CPU and GPU TensorFlow availability at the end.

Run it from the repository root:

```bash
chmod +x venvs/tf-gpu.sh
./venvs/tf-gpu.sh
```

Important notes:

- Linux only (script uses `apt` and `nvidia-smi`).
- You will be prompted for the virtual environment name and location.
- A supported NVIDIA driver is required (the script checks this automatically).
- The script uses `python3.12` by default.

## 🚀 Release Flow

Maintainer quick path:

```bash
python -m build
twine check dist/*
git tag v1.0.0
git push origin v1.0.0
```

Tag pushes matching v* trigger the publish workflow.

## 🔖 Versioning Policy

- The value in pyproject.toml project.version must match the Git tag version.
- Release order: bump version, merge to main, tag as v<same-version>, push tag.
- PyPI versions are immutable and cannot be re-used.

## 🤝 Contributing

Contributions are what make the open-source community amazing. To contribute:

1. Fork the project.
2. Create a feature branch (`git checkout -b feature/new-feature`).
3. Commit your changes (`git commit -m 'Add some feature'`).
4. Push to the branch (`git push origin feature/new-feature`).
5. Open a Pull Request.

## 📜 License

This project is licensed under the **[General Public License](LICENSE)**.

## 🤝 Collaborators

We thank the following people who contributed to this project:

<table>
  <tr>
    <td align="center">
      <a href="https://github.com/MatheusFS-dev" title="Matheus Ferreira">
        <img src="https://avatars.githubusercontent.com/u/99222557" width="100px;" alt="Foto do Matheus Ferreira no GitHub"/><br>
        <sub>
          <b>Matheus Ferreira</b>
        </sub>
      </a>
    </td>
  </tr>
</table>

