Skip to main content

Shared base repository and service utilities for SQLAlchemy-backed FastAPI apps.

Project description

Repository Core

A powerful and flexible base repository and service utilities package for SQLAlchemy-backed FastAPI applications.

Overview

Repository Core provides a set of base classes and utilities to help you implement clean and maintainable repository and service patterns in your FastAPI applications. It's designed to work seamlessly with SQLAlchemy and follows best practices for database operations and business logic separation.

Features

  • Base repository classes for common CRUD operations
  • Service layer abstractions for business logic
  • SQLAlchemy model utilities
  • Exceptions
  • Schema validation
  • Utility functions for common operations

Installation

pip install repository-core

Requirements

  • Python >= 3.13
  • FastAPI >= 0.115.2
  • SQLAlchemy >= 2.0.40

Usage Guide

1. Setting Up Base Models

from repository_core.models import BaseModel

class User(BaseModel):
    __tablename__ = "users"
    
    email = Column(String, unique=True, nullable=False)
    name = Column(String)

2. Creating a Repository

from repository_core.repository import BaseRepository
from repository_core.models import BaseModel

class UserRepository(BaseRepository):
    def __init__(self, session):
        super().__init__(session, User) #Access all the methods of base-repository
    
    # Add custom repository methods here
    async def get_by_email(self, email: str) -> Optional[User]:
        return await self.get_one(User.email == email)

3. Implementing a Service

from repository_core.services import BaseService
from repository_core.schemas import BaseSchema

class UserService(BaseService):
    def __init__(self, repository: UserRepository):
        super().__init__(repository)
    
    # Add custom service methods here
    async def create_user(self, data: UserCreate) -> User:
        return await self.create(data)

Project Structure

repository_core/
├── models/         # Base model classes
├── repository/     # Base repository implementations
├── services/       # Base service implementations
├── schemas/        # Pydantic schemas
├── exceptions/     # Custom exceptions
└── utils/          # Utility functions

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repository_core-0.2.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repository_core-0.2.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file repository_core-0.2.0.tar.gz.

File metadata

  • Download URL: repository_core-0.2.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Darwin/23.6.0

File hashes

Hashes for repository_core-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e269b6ad2caeccfb5b761f8b8bfea0ff4453083c0992ccc01a19419210aa651f
MD5 5da626f4ed2aa4143e2a9d5641023071
BLAKE2b-256 206d16b36266db9a772e898a9058f3caea775ddd7a76c08bf5d2558214fed816

See more details on using hashes here.

File details

Details for the file repository_core-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: repository_core-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.3 Darwin/23.6.0

File hashes

Hashes for repository_core-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c3670f0d35f01190ba4114521f47fa583089157824a1191502319cf28ccfeab
MD5 bf8a1e5f594703ba5e9e9b68de433cab
BLAKE2b-256 a688f35c1398953f6f7c8d8f50d703187a715d4eda8a27a56cf6606a5e9db578

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page