fastapi-blocks-registry


Namefastapi-blocks-registry JSON
Version 0.2.16 PyPI version JSON
download
home_pageNone
SummaryA modular scaffolding system for FastAPI backends
upload_time2025-11-07 15:36:38
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseMIT
keywords fastapi scaffolding cli backend boilerplate templates code-generator
VCS
bugtrack_url
requirements typer rich pydantic pydantic-settings python-ulid pathlib-mate pytest pytest-cov black ruff mypy build twine
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🧩 FastAPI Blocks Registry

A modular scaffolding system for FastAPI backends, inspired by **shadcn-vue**.
Add production-ready modules (like `auth`, `users`, `billing`) to your FastAPI project with a single CLI command.

## 🎯 Project Goal

FastAPI Blocks Registry allows you to quickly add complete, production-ready modules to your FastAPI projects. Each module includes models, schemas, routers, services, and all necessary configurations - just copy and customize.

Unlike traditional packages, modules are copied directly into your project, giving you full control to modify and adapt them to your needs.

## ✨ Features

- 📦 **Copy, not install** - Modules are copied into your project for full customization
- 🔧 **Auto-configuration** - Automatically updates `main.py`, `requirements.txt`, and `.env`
- 🎨 **Production-ready** - Each module follows best practices and includes proper error handling
- 🔒 **Type-safe** - Full type hints and Pydantic validation
- 📚 **Well-documented** - Clear code structure with docstrings
- 🚀 **Quick start** - Get authentication, user management, and more in seconds

## 🚀 Quick Start

### Installation

```bash
# Install from source (for development)
pip install -e .

# Or install from PyPI (when published)
pip install fastapi-blocks-registry
```

### Usage

```bash
# Initialize a new FastAPI project
fastapi-registry init

# List available modules
fastapi-registry list

# Show module details
fastapi-registry info auth

# Add a module to your project
fastapi-registry add auth

# Remove a module
fastapi-registry remove auth
```

### What Gets Installed

When you initialize a project, the CLI creates:
- ✅ Complete FastAPI project structure with `app/` directory
- ✅ Backend documentation in `app/README.md` (architecture, patterns, best practices)
- ✅ Configuration files (`.env`, `requirements.txt`, `pyproject.toml`)
- ✅ Core utilities (`config.py`, `database.py`, middleware)

When you add a module, the CLI automatically:
- ✅ Copies module files to `app/modules/<module>/`
- ✅ Updates `main.py` to register the router
- ✅ Adds dependencies to `requirements.txt`
- ✅ Adds environment variables to `.env`

## 📦 Available Modules

### Auth Module

Complete JWT-based authentication system with:
- User registration with password strength validation
- Login with JWT access and refresh tokens
- Password reset flow
- Password change for authenticated users
- Token blacklisting support

**Endpoints:**
- `POST /api/v1/auth/register` - Register new user
- `POST /api/v1/auth/login` - Login user
- `POST /api/v1/auth/refresh` - Refresh access token
- `POST /api/v1/auth/forgot-password` - Request password reset
- `POST /api/v1/auth/reset-password` - Reset password with token
- `POST /api/v1/auth/change-password` - Change password (authenticated)
- `GET /api/v1/auth/me` - Get current user info

**Technologies:**
- PyJWT for token management
- Passlib + bcrypt for password hashing
- Pydantic for validation
- In-memory user store (easily replaceable with database)

## 🏗️ Project Structure

```
fastapi-blocks-registry/
├── fastapi_registry/
│   ├── __init__.py
│   ├── cli.py                  # CLI implementation
│   ├── registry.json           # Module registry
│   ├── core/
│   │   ├── file_utils.py       # File operations
│   │   ├── installer.py        # Module installer
│   │   └── registry_manager.py # Registry management
│   ├── modules/
│   │   └── auth/               # Auth module
│   │       ├── __init__.py
│   │       ├── models.py       # User model & store
│   │       ├── schemas.py      # Pydantic schemas
│   │       ├── router.py       # FastAPI routes
│   │       ├── service.py      # Business logic
│   │       ├── dependencies.py # FastAPI dependencies
│   │       ├── auth_utils.py   # JWT & password utils
│   │       └── exceptions.py   # Custom exceptions
│   └── templates/              # Project templates
│       └── fastapi_project/
│           └── app/
│               └── README.md   # Backend documentation (copied to projects)
├── tests/
├── docs/
├── CLAUDE.md                   # Development guidelines
├── README.md
└── pyproject.toml
```

## 🧠 Module Structure

Each module follows a consistent structure:

- **`models.py`** - Data models (Pydantic or SQLAlchemy)
- **`schemas.py`** - Request/response schemas with validation
- **`router.py`** - FastAPI route definitions
- **`service.py`** - Business logic layer
- **`dependencies.py`** - FastAPI dependency injection
- **`exceptions.py`** - Module-specific exceptions
- **`__init__.py`** - Module initialization

## 💻 Example Usage

### Starting from Scratch

#### 1. Initialize a new project

```bash
# Create project directory
mkdir my-fastapi-app
cd my-fastapi-app

# Initialize project structure
fastapi-registry init --name "My FastAPI App"
```

#### 2. Set up virtual environment

```bash
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
```

#### 3. Install dependencies

```bash
pip install -r requirements.txt
```

#### 4. Add modules

```bash
# Add authentication module
fastapi-registry add auth
```

#### 5. Configure and run

```bash
# Edit .env with your settings
# Then start the server
uvicorn main:app --reload
```

### Adding to Existing Project

#### 1. Add the auth module to your project

```bash
cd your-fastapi-project
fastapi-registry add auth
```

#### 2. Install dependencies

```bash
pip install -r requirements.txt
```

#### 3. Configure environment variables

Edit your `.env` file:
```bash
SECRET_KEY=your-secret-key-min-32-characters
JWT_ALGORITHM=HS256
ACCESS_TOKEN_EXPIRES_MINUTES=30
REFRESH_TOKEN_EXPIRES_DAYS=7
```

#### 4. Start your server

```bash
uvicorn main:app --reload
```

#### 5. Test the endpoints

```bash
# Register a new user
curl -X POST "http://localhost:8000/api/v1/auth/register" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "Test123!@#",
    "name": "Test User"
  }'

# Login
curl -X POST "http://localhost:8000/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "password": "Test123!@#"
  }'
```

## 🔧 CLI Commands

### `fastapi-registry init`
Initialize a new FastAPI project with proper structure:
- Creates `main.py` with FastAPI app setup
- Sets up `app/` directory structure with backend-specific documentation
- Creates `app/core/` with config and database utilities
- Creates `app/modules/` for your modules
- Generates `requirements.txt` with essential dependencies
- Creates `.env` with default configuration
- Adds `.gitignore`, `README.md`, and development config files
- Includes `app/README.md` with backend architecture documentation
- Includes code quality tools config (`.flake8`, `.pylintrc`, `pyproject.toml`)

**Options:**
- `--project-path, -p` - Path to create project (default: current directory)
- `--name, -n` - Project name (default: directory name)
- `--description, -d` - Project description
- `--force, -f` - Initialize even if directory is not empty

**Example:**
```bash
# Initialize in current directory
fastapi-registry init

# Create a new project directory
mkdir my-api && cd my-api
fastapi-registry init --name "My API" --description "My awesome API"

# Initialize in specific path
fastapi-registry init --project-path /path/to/project
```

### `fastapi-registry list`
Display all available modules from the registry

**Options:**
- `--search, -s` - Search modules by name or description

### `fastapi-registry info <module>`
Show detailed information about a specific module

### `fastapi-registry add <module>`
Add a module to your project:
- Copies module files to `app/modules/<module>/`
- Updates `main.py` with router registration
- Adds dependencies to `requirements.txt`
- Adds environment variables to `.env`

**Options:**
- `--project-path, -p` - Path to FastAPI project (default: current directory)
- `--yes, -y` - Skip confirmation prompts

### `fastapi-registry remove <module>`
Remove a module from your project (manual cleanup required for dependencies)

**Options:**
- `--project-path, -p` - Path to FastAPI project (default: current directory)
- `--yes, -y` - Skip confirmation prompts

### `fastapi-registry version`
Show version information

## 🛠️ Development

### Setup

```bash
# Clone the repository
git clone https://github.com/yourusername/fastapi-blocks-registry
cd fastapi-blocks-registry

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install in editable mode
pip install -e .
```

### Local Development & Testing

To run the CLI locally without publishing to PyPI:

```bash
# Activate virtual environment
source .venv/bin/activate

# Install in editable mode
pip install -e .

# Test the CLI
fastapi-registry --help
fastapi-registry list

# Create a test project
cd /tmp
fastapi-registry init my-test-app --name "TestApp"
cd my-test-app
fastapi-registry add auth --yes
```

For detailed testing guide and additional methods (build & install from wheel, TestPyPI testing, automated tests), see [docs/LOCAL_TESTING.md](docs/LOCAL_TESTING.md).

### Running Tests

```bash
pytest
```

### Code Quality

```bash
# Format code
black .

# Lint code
ruff check .

# Type checking
mypy fastapi_registry
```

## 🔮 Roadmap

- [x] CLI implementation with Typer
- [x] Project initialization command
- [x] Auth module with JWT
- [x] Auto-configuration system
- [ ] Users module with RBAC
- [ ] Database integration (SQLAlchemy)
- [ ] Alembic migrations support
- [ ] Email module
- [ ] Billing/subscription module
- [ ] Projects/workspaces module
- [ ] Remote registry support (GitHub)
- [ ] PyPI publication
- [ ] Module templates generator
- [ ] Test generation for modules

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## 📄 License

MIT

## 🙏 Inspiration

This project is inspired by:
- [shadcn-vue](https://github.com/shadcn-ui/ui) - Copy, don't install philosophy
- [FastAPI](https://fastapi.tiangolo.com/) - Modern Python web framework
- [Typer](https://typer.tiangolo.com/) - CLI framework by the creator of FastAPI

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "fastapi-blocks-registry",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "fastapi, scaffolding, cli, backend, boilerplate, templates, code-generator",
    "author": null,
    "author_email": "Jan Madeyski <jan.madeyski@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/32/3e/de2a77cd820cff6cce054614c0e81b9bc3a35495b62f87b5601681445f2f/fastapi_blocks_registry-0.2.16.tar.gz",
    "platform": null,
    "description": "# \ud83e\udde9 FastAPI Blocks Registry\n\nA modular scaffolding system for FastAPI backends, inspired by **shadcn-vue**.\nAdd production-ready modules (like `auth`, `users`, `billing`) to your FastAPI project with a single CLI command.\n\n## \ud83c\udfaf Project Goal\n\nFastAPI Blocks Registry allows you to quickly add complete, production-ready modules to your FastAPI projects. Each module includes models, schemas, routers, services, and all necessary configurations - just copy and customize.\n\nUnlike traditional packages, modules are copied directly into your project, giving you full control to modify and adapt them to your needs.\n\n## \u2728 Features\n\n- \ud83d\udce6 **Copy, not install** - Modules are copied into your project for full customization\n- \ud83d\udd27 **Auto-configuration** - Automatically updates `main.py`, `requirements.txt`, and `.env`\n- \ud83c\udfa8 **Production-ready** - Each module follows best practices and includes proper error handling\n- \ud83d\udd12 **Type-safe** - Full type hints and Pydantic validation\n- \ud83d\udcda **Well-documented** - Clear code structure with docstrings\n- \ud83d\ude80 **Quick start** - Get authentication, user management, and more in seconds\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\n# Install from source (for development)\npip install -e .\n\n# Or install from PyPI (when published)\npip install fastapi-blocks-registry\n```\n\n### Usage\n\n```bash\n# Initialize a new FastAPI project\nfastapi-registry init\n\n# List available modules\nfastapi-registry list\n\n# Show module details\nfastapi-registry info auth\n\n# Add a module to your project\nfastapi-registry add auth\n\n# Remove a module\nfastapi-registry remove auth\n```\n\n### What Gets Installed\n\nWhen you initialize a project, the CLI creates:\n- \u2705 Complete FastAPI project structure with `app/` directory\n- \u2705 Backend documentation in `app/README.md` (architecture, patterns, best practices)\n- \u2705 Configuration files (`.env`, `requirements.txt`, `pyproject.toml`)\n- \u2705 Core utilities (`config.py`, `database.py`, middleware)\n\nWhen you add a module, the CLI automatically:\n- \u2705 Copies module files to `app/modules/<module>/`\n- \u2705 Updates `main.py` to register the router\n- \u2705 Adds dependencies to `requirements.txt`\n- \u2705 Adds environment variables to `.env`\n\n## \ud83d\udce6 Available Modules\n\n### Auth Module\n\nComplete JWT-based authentication system with:\n- User registration with password strength validation\n- Login with JWT access and refresh tokens\n- Password reset flow\n- Password change for authenticated users\n- Token blacklisting support\n\n**Endpoints:**\n- `POST /api/v1/auth/register` - Register new user\n- `POST /api/v1/auth/login` - Login user\n- `POST /api/v1/auth/refresh` - Refresh access token\n- `POST /api/v1/auth/forgot-password` - Request password reset\n- `POST /api/v1/auth/reset-password` - Reset password with token\n- `POST /api/v1/auth/change-password` - Change password (authenticated)\n- `GET /api/v1/auth/me` - Get current user info\n\n**Technologies:**\n- PyJWT for token management\n- Passlib + bcrypt for password hashing\n- Pydantic for validation\n- In-memory user store (easily replaceable with database)\n\n## \ud83c\udfd7\ufe0f Project Structure\n\n```\nfastapi-blocks-registry/\n\u251c\u2500\u2500 fastapi_registry/\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 cli.py                  # CLI implementation\n\u2502   \u251c\u2500\u2500 registry.json           # Module registry\n\u2502   \u251c\u2500\u2500 core/\n\u2502   \u2502   \u251c\u2500\u2500 file_utils.py       # File operations\n\u2502   \u2502   \u251c\u2500\u2500 installer.py        # Module installer\n\u2502   \u2502   \u2514\u2500\u2500 registry_manager.py # Registry management\n\u2502   \u251c\u2500\u2500 modules/\n\u2502   \u2502   \u2514\u2500\u2500 auth/               # Auth module\n\u2502   \u2502       \u251c\u2500\u2500 __init__.py\n\u2502   \u2502       \u251c\u2500\u2500 models.py       # User model & store\n\u2502   \u2502       \u251c\u2500\u2500 schemas.py      # Pydantic schemas\n\u2502   \u2502       \u251c\u2500\u2500 router.py       # FastAPI routes\n\u2502   \u2502       \u251c\u2500\u2500 service.py      # Business logic\n\u2502   \u2502       \u251c\u2500\u2500 dependencies.py # FastAPI dependencies\n\u2502   \u2502       \u251c\u2500\u2500 auth_utils.py   # JWT & password utils\n\u2502   \u2502       \u2514\u2500\u2500 exceptions.py   # Custom exceptions\n\u2502   \u2514\u2500\u2500 templates/              # Project templates\n\u2502       \u2514\u2500\u2500 fastapi_project/\n\u2502           \u2514\u2500\u2500 app/\n\u2502               \u2514\u2500\u2500 README.md   # Backend documentation (copied to projects)\n\u251c\u2500\u2500 tests/\n\u251c\u2500\u2500 docs/\n\u251c\u2500\u2500 CLAUDE.md                   # Development guidelines\n\u251c\u2500\u2500 README.md\n\u2514\u2500\u2500 pyproject.toml\n```\n\n## \ud83e\udde0 Module Structure\n\nEach module follows a consistent structure:\n\n- **`models.py`** - Data models (Pydantic or SQLAlchemy)\n- **`schemas.py`** - Request/response schemas with validation\n- **`router.py`** - FastAPI route definitions\n- **`service.py`** - Business logic layer\n- **`dependencies.py`** - FastAPI dependency injection\n- **`exceptions.py`** - Module-specific exceptions\n- **`__init__.py`** - Module initialization\n\n## \ud83d\udcbb Example Usage\n\n### Starting from Scratch\n\n#### 1. Initialize a new project\n\n```bash\n# Create project directory\nmkdir my-fastapi-app\ncd my-fastapi-app\n\n# Initialize project structure\nfastapi-registry init --name \"My FastAPI App\"\n```\n\n#### 2. Set up virtual environment\n\n```bash\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n```\n\n#### 3. Install dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n#### 4. Add modules\n\n```bash\n# Add authentication module\nfastapi-registry add auth\n```\n\n#### 5. Configure and run\n\n```bash\n# Edit .env with your settings\n# Then start the server\nuvicorn main:app --reload\n```\n\n### Adding to Existing Project\n\n#### 1. Add the auth module to your project\n\n```bash\ncd your-fastapi-project\nfastapi-registry add auth\n```\n\n#### 2. Install dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n#### 3. Configure environment variables\n\nEdit your `.env` file:\n```bash\nSECRET_KEY=your-secret-key-min-32-characters\nJWT_ALGORITHM=HS256\nACCESS_TOKEN_EXPIRES_MINUTES=30\nREFRESH_TOKEN_EXPIRES_DAYS=7\n```\n\n#### 4. Start your server\n\n```bash\nuvicorn main:app --reload\n```\n\n#### 5. Test the endpoints\n\n```bash\n# Register a new user\ncurl -X POST \"http://localhost:8000/api/v1/auth/register\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"email\": \"user@example.com\",\n    \"password\": \"Test123!@#\",\n    \"name\": \"Test User\"\n  }'\n\n# Login\ncurl -X POST \"http://localhost:8000/api/v1/auth/login\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"email\": \"user@example.com\",\n    \"password\": \"Test123!@#\"\n  }'\n```\n\n## \ud83d\udd27 CLI Commands\n\n### `fastapi-registry init`\nInitialize a new FastAPI project with proper structure:\n- Creates `main.py` with FastAPI app setup\n- Sets up `app/` directory structure with backend-specific documentation\n- Creates `app/core/` with config and database utilities\n- Creates `app/modules/` for your modules\n- Generates `requirements.txt` with essential dependencies\n- Creates `.env` with default configuration\n- Adds `.gitignore`, `README.md`, and development config files\n- Includes `app/README.md` with backend architecture documentation\n- Includes code quality tools config (`.flake8`, `.pylintrc`, `pyproject.toml`)\n\n**Options:**\n- `--project-path, -p` - Path to create project (default: current directory)\n- `--name, -n` - Project name (default: directory name)\n- `--description, -d` - Project description\n- `--force, -f` - Initialize even if directory is not empty\n\n**Example:**\n```bash\n# Initialize in current directory\nfastapi-registry init\n\n# Create a new project directory\nmkdir my-api && cd my-api\nfastapi-registry init --name \"My API\" --description \"My awesome API\"\n\n# Initialize in specific path\nfastapi-registry init --project-path /path/to/project\n```\n\n### `fastapi-registry list`\nDisplay all available modules from the registry\n\n**Options:**\n- `--search, -s` - Search modules by name or description\n\n### `fastapi-registry info <module>`\nShow detailed information about a specific module\n\n### `fastapi-registry add <module>`\nAdd a module to your project:\n- Copies module files to `app/modules/<module>/`\n- Updates `main.py` with router registration\n- Adds dependencies to `requirements.txt`\n- Adds environment variables to `.env`\n\n**Options:**\n- `--project-path, -p` - Path to FastAPI project (default: current directory)\n- `--yes, -y` - Skip confirmation prompts\n\n### `fastapi-registry remove <module>`\nRemove a module from your project (manual cleanup required for dependencies)\n\n**Options:**\n- `--project-path, -p` - Path to FastAPI project (default: current directory)\n- `--yes, -y` - Skip confirmation prompts\n\n### `fastapi-registry version`\nShow version information\n\n## \ud83d\udee0\ufe0f Development\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/fastapi-blocks-registry\ncd fastapi-blocks-registry\n\n# Create virtual environment\npython -m venv .venv\nsource .venv/bin/activate  # On Windows: .venv\\Scripts\\activate\n\n# Install in editable mode\npip install -e .\n```\n\n### Local Development & Testing\n\nTo run the CLI locally without publishing to PyPI:\n\n```bash\n# Activate virtual environment\nsource .venv/bin/activate\n\n# Install in editable mode\npip install -e .\n\n# Test the CLI\nfastapi-registry --help\nfastapi-registry list\n\n# Create a test project\ncd /tmp\nfastapi-registry init my-test-app --name \"TestApp\"\ncd my-test-app\nfastapi-registry add auth --yes\n```\n\nFor detailed testing guide and additional methods (build & install from wheel, TestPyPI testing, automated tests), see [docs/LOCAL_TESTING.md](docs/LOCAL_TESTING.md).\n\n### Running Tests\n\n```bash\npytest\n```\n\n### Code Quality\n\n```bash\n# Format code\nblack .\n\n# Lint code\nruff check .\n\n# Type checking\nmypy fastapi_registry\n```\n\n## \ud83d\udd2e Roadmap\n\n- [x] CLI implementation with Typer\n- [x] Project initialization command\n- [x] Auth module with JWT\n- [x] Auto-configuration system\n- [ ] Users module with RBAC\n- [ ] Database integration (SQLAlchemy)\n- [ ] Alembic migrations support\n- [ ] Email module\n- [ ] Billing/subscription module\n- [ ] Projects/workspaces module\n- [ ] Remote registry support (GitHub)\n- [ ] PyPI publication\n- [ ] Module templates generator\n- [ ] Test generation for modules\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## \ud83d\udcc4 License\n\nMIT\n\n## \ud83d\ude4f Inspiration\n\nThis project is inspired by:\n- [shadcn-vue](https://github.com/shadcn-ui/ui) - Copy, don't install philosophy\n- [FastAPI](https://fastapi.tiangolo.com/) - Modern Python web framework\n- [Typer](https://typer.tiangolo.com/) - CLI framework by the creator of FastAPI\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A modular scaffolding system for FastAPI backends",
    "version": "0.2.16",
    "project_urls": {
        "Documentation": "https://github.com/jm-sky/fastapi-blocks-registry#readme",
        "Homepage": "https://github.com/jm-sky/fastapi-blocks-registry",
        "Issues": "https://github.com/jm-sky/fastapi-blocks-registry/issues",
        "Repository": "https://github.com/jm-sky/fastapi-blocks-registry"
    },
    "split_keywords": [
        "fastapi",
        " scaffolding",
        " cli",
        " backend",
        " boilerplate",
        " templates",
        " code-generator"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "019a7cb9ff655110bc386e3ed6084edae259e591fe86cfbfda8000ccf1b23983",
                "md5": "5bf81204868beaa84cb9eb9ca6fb2507",
                "sha256": "3d991b96b861ea98a36317e5b240049f56c6aabbcf40cd85b94228a63022ad81"
            },
            "downloads": -1,
            "filename": "fastapi_blocks_registry-0.2.16-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5bf81204868beaa84cb9eb9ca6fb2507",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 343759,
            "upload_time": "2025-11-07T15:36:35",
            "upload_time_iso_8601": "2025-11-07T15:36:35.740258Z",
            "url": "https://files.pythonhosted.org/packages/01/9a/7cb9ff655110bc386e3ed6084edae259e591fe86cfbfda8000ccf1b23983/fastapi_blocks_registry-0.2.16-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "323ede2a77cd820cff6cce054614c0e81b9bc3a35495b62f87b5601681445f2f",
                "md5": "faef94714cf6b239e29adbfacd09b112",
                "sha256": "879fcd8a33bf4268240c39d5d26b6bb8c803846e4fc992a56592f65132f5f7af"
            },
            "downloads": -1,
            "filename": "fastapi_blocks_registry-0.2.16.tar.gz",
            "has_sig": false,
            "md5_digest": "faef94714cf6b239e29adbfacd09b112",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 3248060,
            "upload_time": "2025-11-07T15:36:38",
            "upload_time_iso_8601": "2025-11-07T15:36:38.353525Z",
            "url": "https://files.pythonhosted.org/packages/32/3e/de2a77cd820cff6cce054614c0e81b9bc3a35495b62f87b5601681445f2f/fastapi_blocks_registry-0.2.16.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-07 15:36:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jm-sky",
    "github_project": "fastapi-blocks-registry#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "typer",
            "specs": [
                [
                    "==",
                    "0.20.0"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    "==",
                    "14.2.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    "==",
                    "2.12.3"
                ]
            ]
        },
        {
            "name": "pydantic-settings",
            "specs": [
                [
                    "==",
                    "2.11.0"
                ]
            ]
        },
        {
            "name": "python-ulid",
            "specs": [
                [
                    "==",
                    "2.7.0"
                ]
            ]
        },
        {
            "name": "pathlib-mate",
            "specs": [
                [
                    "==",
                    "1.3.2"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    "==",
                    "8.4.2"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    "==",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "black",
            "specs": [
                [
                    "==",
                    "24.10.0"
                ]
            ]
        },
        {
            "name": "ruff",
            "specs": [
                [
                    "==",
                    "0.8.4"
                ]
            ]
        },
        {
            "name": "mypy",
            "specs": [
                [
                    "==",
                    "1.14.0"
                ]
            ]
        },
        {
            "name": "build",
            "specs": [
                [
                    "==",
                    "1.2.2"
                ]
            ]
        },
        {
            "name": "twine",
            "specs": [
                [
                    "==",
                    "6.0.1"
                ]
            ]
        }
    ],
    "lcname": "fastapi-blocks-registry"
}
        
Elapsed time: 2.78527s