Metadata-Version: 2.4
Name: sa-repository
Version: 2.0.0
Summary: Repository pattern for SQLAlchemy models
Project-URL: Homepage, https://github.com/Gasper3/sa-repository
Project-URL: Repository, https://github.com/Gasper3/sa-repository
Author-email: Gasper3 <trzecik65@gmail.com>
License-Expression: MIT
License-File: LICENSE
Keywords: orm,repository,repository-pattern,sqlalchemy
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Database
Requires-Python: >=3.11
Requires-Dist: more-itertools>=9.1.0
Requires-Dist: sqlalchemy>=2.0.2
Description-Content-Type: text/markdown

# SQLAlchemy Repository for models
![tests workflow](https://github.com/Gasper3/sa-repository/actions/workflows/actions.yml/badge.svg)

This project contains simple Repository pattern for SQLAlchemy models.  
All you need to do is:
1. Install this package `python -m pip install sa-repository`
2. Use it in your project
    ```python
    from sa_repository import BaseRepository
    from models import YourSAModel
    
    class SomeModelRepository(BaseRepository[YourSAModel]):
        pass
    ```

Base class contains some general methods to simplify your work with sqlalchemy models e.x
```python
var = SomeModelRepository(session).get(YourSAModel.attr == 'some_value')
```

If you don't want to create new repository classes, you can use `get_repository_from_model` method
```python
repository = BaseRepository.get_repository_from_model(db_session, SomeModel)
```
