Metadata-Version: 2.3
Name: fastapi_factory_utilities
Version: 0.4.2
Summary: Consolidate libraries and utilities to create microservices in Python with FastAPI, Beanie, Httpx, AioPika and OpenTelemetry.
License: MIT
Keywords: python,fastapi,beanie,httpx,opentelemetry,microservices
Author: miragecentury
Author-email: victorien.vanroye@gmail.com
Maintainer: miragecentury
Maintainer-email: victorien.vanroye@gmail.com
Requires-Python: >=3.12,<3.13
Classifier: Development Status :: 3 - Alpha
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.12
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: aiohttp[speedups] (>=3.12.13,<4.0.0)
Requires-Dist: beanie (>=1.30.0,<2.0.0)
Requires-Dist: fastapi (>=0.115.13,<1)
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc (>=1.26.0,<2.0.0)
Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.26.0,<2.0.0)
Requires-Dist: opentelemetry-instrumentation-aiohttp-client (>=0.55b1,<0.56)
Requires-Dist: opentelemetry-instrumentation-fastapi (>=0,<1)
Requires-Dist: opentelemetry-instrumentation-pymongo (>=0,<1)
Requires-Dist: opentelemetry-propagator-b3 (>=1.26.0,<2.0.0)
Requires-Dist: opentelemetry-sdk (>=1.26.0,<2.0.0)
Requires-Dist: pyaml (>=25.1.0,<26.0.0)
Requires-Dist: pydantic (>=2.8.2,<3.0.0)
Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
Requires-Dist: pymongo (>=4.9.2,<4.14.0)
Requires-Dist: reactivex (>=4.0.4,<5.0.0)
Requires-Dist: structlog (>=24.1,<26.0)
Requires-Dist: typer (>=0,<1)
Requires-Dist: uvicorn (>=0.34.3,<1)
Project-URL: Homepage, https://github.com/miragecentury/fastapi_factory_utilities
Project-URL: Repository, https://github.com/miragecentury/fastapi_factory_utilities
Description-Content-Type: text/markdown

# fastapi_factory_utilities

Project Empty for Python with Poetry

## Setup

### Dev Tools

#### Python

<https://www.python.org/downloads/>

```bash
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12 -y
```

#### Poetry

<https://python-poetry.org/>

```bash
curl -sSL https://install.python-poetry.org | python3.12 -
```

#### Pre-commit

Included in the project while in virtual environment
<https://pre-commit.com/>

#### Docker

<https://docs.docker.com/get-docker/>

#### Skaffold

<https://skaffold.dev>

```bash
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
chmod +x skaffold
sudo mv skaffold /usr/local/bin
```

#### Buildpacks

<https://buildpacks.io/>

```bash
sudo add-apt-repository ppa:cncf-buildpacks/pack-cli
sudo apt-get update
sudo apt-get install pack-cli
```

#### Paketo

Included with the usage of buildpacks
<https://paketo.io/>

#### Portman

```bash
npm install -g @apideck/portman
```

### MongoDB

<https://docs.mongodb.com/manual/installation/>

```bash
sudo apt install -y mongodb
```

### 1- Dev Environment

```bash
# Initialize python virtual environment and install dependencies
./scripts/setup_dev_env.sh

pre-commit run --all-files
```

### 2- Build and Run Application on Docker

```bash
./scripts/dev-in-container.sh
```

```bash
./scripts/test_portman.sh
```

