Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Contributing to pAPI

Thank you for considering contributing to **pAPI**!

## 🚀 How to Contribute

1. **Fork** the repository.
2. **Clone** your fork locally:
```bash
git clone https://github.com/efirvida/papi
cd papi
````

3. **Create a new branch**:

```bash
git checkout -b feature/my-awesome-feature
```
4. **Make your changes**, including tests and documentation where needed.
5. **Commit your changes** with a meaningful message:

```bash
git commit -m "Add my-awesome-feature"
```
6. **Push to your fork**:

```bash
git push origin feature/my-awesome-feature
```
7. **Open a Pull Request** to the `main` branch of the original repository.

## ✅ Requirements

* Use clear and descriptive commit messages.
* Follow existing code style and naming conventions.
* Update documentation or tutorials if your change affects them.
* Test your code if applicable.

## 📬 Need Help?

If you have questions, feel free to open an issue or start a discussion.

39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Bug Report
about: Report a bug or unexpected behavior in pAPI
title: "[Bug] <brief description>"
labels: bug
assignees: ''

---

## Describe the Bug

A clear and concise description of what the bug is.

## Steps to Reproduce

Steps to reproduce the behavior:

1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error

## Expected Behavior

What you expected to happen.

## Screenshots or Logs

If applicable, add screenshots or log output.

## Environment (please complete the following information):

- OS: [e.g. Ubuntu 22.04, Windows 11]
- Python version: [e.g. 3.10.9]
- Branch: [e.g. main]

## Additional Context

Add any other context about the problem here.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Feature Request
about: Suggest a new feature or enhancement for pAPI
title: "[Feature] <brief description>"
labels: enhancement
assignees: ''

---

## Describe the Feature

A clear and concise description of the feature you'd like to see.

## Motivation

Why is this feature important? What problem does it solve?

## Suggested Implementation

If you have an idea of how it could be implemented, describe it here.

## Additional Context

Include mockups, code samples, or other helpful references.
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## 📌 Summary

Briefly describe what this PR does.

## 🔍 Changes

- [ ] Feature 1 added
- [ ] Bug fix
- [ ] Documentation updated
- [ ] Tests added

## 🧪 How to Test

Explain how reviewers can test this PR:
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
Fully async, lazily loaded, and built on FastAPI’s high-performance core.

- 🛠️ **Developer Tooling**
Extensible CLI system and async-enabled IPython shell for rapid development.
Async-enabled IPython shell for rapid development.

---

Expand All @@ -42,8 +42,7 @@ These addons can:

* Register API routes (`RESTRouter`)
* Define database models (Beanie or SQLAlchemy)
* Hook into startup processes (`AddonSetupHook`)
* Extend the CLI with custom commands
* Hook into startup, shutdown processes (`AddonSetupHook`)

Together, they form a cohesive and scalable API system, enabling you to build robust, modular services by simply connecting or extending the building blocks your application needs.

Expand Down
15 changes: 3 additions & 12 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Aquí tienes una versión más clara, profesional y precisa de la sección, con

### 🧩 Modular Architecture

* Addons are self-contained: they register their own routers, models, CLI commands, and lifecycle hooks.
* Addons are self-contained: they register their own routers, models, and lifecycle hooks.
* Route behavior can be extended or overridden by other addons.
* Each addon can expose tools through standard HTTP endpoints or as **Model Context Protocol (MCP)**-compatible tools for agent-based workflows.

Expand Down Expand Up @@ -202,7 +202,6 @@ $ papi_cli shell # Open an interactive, async-ready developer shell
#### 🧠 Key Features

* ✅ **Async-aware interactive shell** (with full `await` support), powered by IPython if available.
* 🧩 **Addon-aware**: all loaded addons can inject their own CLI commands.
* ⚙️ **Config-aware**: automatically loads `config.yaml` and injects environment context.

---
Expand All @@ -214,13 +213,6 @@ $ rye run python papi/cli.py --help
```

```text
_ ____ ___
___ / \ | _ \ |_ _|
| _ \ / _ \ | |_) | | |
| |_) | / ___ \ | __/ | |
| __/ /_/ \_\|_| |___|
|_| Version: v0.0.1

Usage: cli.py [OPTIONS] COMMAND [ARGS]...

Main entry point for pAPI service management CLI.
Expand Down Expand Up @@ -270,7 +262,7 @@ user = result.scalar_one_or_none()

## 📦 Addon System

pAPI provides a robust, modular plugin system via **addons**—isolated Python modules that encapsulate logic, routes, models, CLI commands, configuration, and static assets. This architecture promotes separation of concerns, extensibility, and reusability.
pAPI provides a robust, modular plugin system via **addons**—isolated Python modules that encapsulate logic, routes, models, configuration, and static assets. This architecture promotes separation of concerns, extensibility, and reusability.

---

Expand All @@ -284,8 +276,7 @@ addons/
├── __init__.py
├── manifest.yaml
├── routers.py
├── models.py
└── cli.py
└── models.py
```

Each addon behaves as a self-contained package and is dynamically discovered and registered at runtime based on the configuration.
Expand Down
8 changes: 0 additions & 8 deletions docs/reference/cli.md

This file was deleted.

1 change: 0 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ nav:
- Router: reference/router.md
- Settings: reference/settings.md
- DB: reference/db.md
- CLI: reference/cli.md
- Models: reference/models.md
- build in addons:
- Image Storage: build-in-addons/image_storage.md
Expand Down
3 changes: 2 additions & 1 deletion papi/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
from .core.router import MPCRouter, RESTRouter
from papi.core.addons import AddonSetupHook
from papi.core.router import MPCRouter, RESTRouter
15 changes: 0 additions & 15 deletions papi/base/image_storage/__init__.py

This file was deleted.

Loading
Loading