Metadata-Version: 2.5
Name: wpipe-plugins
Version: 0.1.3
Summary: Plugins and extensions for the wpipe ecosystem, including AI agents and vision models
Project-URL: Homepage, https://github.com/wisrovi/wpipe-plugins
Project-URL: Repository, https://github.com/wisrovi/wpipe-plugins
Project-URL: Issues, https://github.com/wisrovi/wpipe-plugins/issues
Author-email: William Steve Rodriguez Villamizar <wisrovi.rodriguez@gmail.com>
License: MIT License
        
        Copyright (c) 2025 William Rodriguez
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: ai,pipeline,plugins,vision,wpipe,yolo
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
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 :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Requires-Dist: grad-cam>=1.5.5
Requires-Dist: loguru>=0.7.3
Requires-Dist: numpy>=1.24.0
Requires-Dist: opencv-python>=4.13.0.92
Requires-Dist: pandas>=2.0.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: pydantic>=2.10.0
Requires-Dist: requests>=2.31.0
Requires-Dist: torch>=2.0.0
Requires-Dist: torchvision>=0.15.0
Requires-Dist: ultralytics>=8.4.67
Requires-Dist: wpipe>=2.4.0
Provides-Extra: dev
Requires-Dist: black>=24.0.0; extra == 'dev'
Requires-Dist: mypy>=1.8.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.3.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: myst-parser>=2.0.0; extra == 'docs'
Requires-Dist: sphinx-copybutton>=0.5.2; extra == 'docs'
Requires-Dist: sphinx-design>=0.5.0; extra == 'docs'
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == 'docs'
Requires-Dist: sphinx-sitemap>=2.5.0; extra == 'docs'
Requires-Dist: sphinx>=7.0.0; extra == 'docs'
Description-Content-Type: text/markdown

<p align="center">
  <a href="https://github.com/wisrovi/wpipe-plugins"><img src="https://img.shields.io/badge/wpipe--plugins-v1.5.3-blue.svg?style=for-the-badge&logo=python&color=3b82f6" alt="wpipe-plugins" /></a>
  <a href="https://linkedin.com/in/wisrovi-rodriguez"><img src="https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white" alt="LinkedIn" /></a>
  <a href="https://wisrovi.dev"><img src="https://img.shields.io/badge/Author-wisrovi.dev-111827?style=for-the-badge&logo=google-chrome&logoColor=white" alt="Portal" /></a>
  <a href="https://orcid.org/0009-0005-0710-1861"><img src="https://img.shields.io/badge/ORCID-0009--0005--0710--1861-A6CE39?style=for-the-badge&logo=orcid&logoColor=white" alt="ORCID" /></a>
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge" alt="License" /></a>
</p>

# 🔌 WPipe-Plugins — Dynamic Community Plugins Framework for WPipe

A dynamic plugin and step-extension framework for the **WPipe** orchestration engine. Allows developers and community contributors to publish, discover, and dynamically mount custom steps and states into distributed execution graphs.

> **Important Note**: This repository is a community-driven space designed for the community to build, share, and support their own states (steps) for `wpipe`. If you are looking for official states maintained directly by the author, visit [wpipe-steps](https://github.com/wisrovi/wpipe-steps).

```mermaid
flowchart LR
    A["Community Contributor / Plugin Developer"] --> B["Module Scaffolding (@step)"]
    B --> C["WPipe Plugins Catalog Scanner"]
    C --> D["Dynamic Registry (JSON / MCP)"]
    D --> E["WPipe Core Engine & Workers"]
    style A fill:#1e293b,stroke:#3b82f6,color:#ffffff
    style B fill:#1e293b,stroke:#10b981,color:#ffffff
    style C fill:#1e293b,stroke:#f59e0b,color:#ffffff
    style D fill:#1e293b,stroke:#ec4899,color:#ffffff
    style E fill:#1e293b,stroke:#8b5cf6,color:#ffffff
```

---

## 🌟 Key Features

- **🔌 Plug-and-Play Extensibility**: Develop custom steps decorated with `@step(name="...")` and easily distribute them.
- **🔍 Automated Catalog Generation**: Built-in AST and pattern scanner (`generate_catalog.py`) parses community steps and namespaces into `steps_catalog.json`.
- **🤝 WPipe-MCP Integration**: Steps indexed here become automatically discoverable by agentic workflows in `wpipe-mcp`.
- **🛡️ Strict Typing & Schemas**: Enforces Pydantic / dataclass contexts and clean separation of concerns.
- **🐳 Docker-Ready**: Standardized testing and execution environment.

---

## 🚀 Quick Start

### 1. Installation

```bash
git clone https://github.com/wisrovi/wpipe-plugins.git
cd wpipe-plugins
pip install -e .
```

### 2. Usage Example (RSS Parser)

```python
from wpipe_plugins.connectivity.rss import RSSParserStep
from wpipe import Pipeline

# Initialize the step
rss_step = RSSParserStep()

# Create a pipeline
pipe = Pipeline(pipeline_name="news_fetcher")
pipe.set_steps([rss_step])

# Run
results = pipe.run({"url": "https://news.google.com/rss", "limit": 3})
print(results)
```

### 3. Scanning & Generating Catalog

```bash
python generate_catalog.py
```

---

## 📂 Project Structure

- `module/`: Custom plugin definitions and community step implementations.
- `examples/`: Reference implementations and step configurations.
- `generate_catalog.py`: AST scanner that generates the JSON registry of available plugins.

---

## 🤝 Contributing

Contributions are welcome! Please follow these steps to contribute:
1. Fork the repository.
2. Create your feature branch (`git checkout -b feature/amazing-plugin`).
3. Commit your changes (`git commit -m 'feat: add amazing plugin'`).
4. Push to branch and open a Pull Request against branch `001-DEVELOPMENT`.

---

## 🛠️ Relevant Technologies and Libraries

This component relies on the following key technologies and libraries across the ecosystem:

- **[WPipe](https://github.com/wisrovi/wpipe)** (`>=2.4.0`): Core execution and forensic pipeline orchestration engine.
- **[Ultralytics YOLO](https://github.com/ultralytics/ultralytics)** (`>=8.4.67`): Deep learning computer vision models for detection, segmentation, and classification.
- **[PyTorch-Grad-CAM / grad-cam](https://github.com/jacobgil/pytorch-grad-cam)** (`>=1.5.5`): Explainable AI visual heatmap attribution (Eigen-CAM / Grad-CAM).
- **[PyTorch](https://pytorch.org/) & [Torchvision](https://pytorch.org/vision/)**: Tensor computations, neural network hooks, and GPU acceleration.
- **[OpenCV (opencv-python)](https://opencv.org/)**: High-performance image processing, heatmap colormaps, and bounding box drawing.
- **[Pydantic](https://docs.pydantic.dev/)** (`>=2.10.0`): Strict runtime data validation and contract enforcement.
- **[Loguru](https://github.com/Delgan/loguru)**: Structured logging and forensic auditing.

---

## 📄 License

MIT License

---

## 👤 Author & Official Affiliation

* **William Steve Rodriguez Villamizar (Wisrovi)**
* **Role:** Principal AI Engineer & Applied AI Solutions Architect | Scientific Researcher
* 📧 **Email:** [wisrovi.rodriguez@gmail.com](mailto:wisrovi.rodriguez@gmail.com)
* 🌐 **Official Portal:** [wisrovi.dev](https://wisrovi.dev)
* 💼 **LinkedIn:** [wisrovi-rodriguez](https://www.linkedin.com/in/wisrovi-rodriguez/)
* 🆔 **ORCID:** [0009-0005-0710-1861](https://orcid.org/0009-0005-0710-1861)
* 📦 **PyPI:** [pypi.org/user/wisrovi/](https://pypi.org/user/wisrovi/)
* 🐙 **GitHub:** [@wisrovi](https://github.com/wisrovi)
