Metadata-Version: 2.1
Name: pydantic-db-backend
Version: 2.3.0
Summary: 
Author: Marco Bartel
Author-email: bsimpson888@gmail.com
Requires-Python: >=3.11,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Provides-Extra: couchdb
Provides-Extra: mongodb
Requires-Dist: couchdb (>=1.2,<2.0) ; extra == "couchdb"
Requires-Dist: pydantic (>=2.4.2,<3.0.0)
Requires-Dist: pydantic-db-backend-common (>=2.2.0,<3.0.0)
Requires-Dist: pydantic-settings (>=2.0.3,<3.0.0)
Requires-Dist: pydash
Requires-Dist: pymongo (>=3.13.0,<4.0.0) ; extra == "mongodb"
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
Requires-Dist: webexception (>=1.0.4,<2.0.0)
Description-Content-Type: text/markdown

# Testing

### CouchDB

http://localhost:5984/_utils/#

- user: admin
- passwd: pytest

## Initialization

### Automatic initialization from environment

```python
init_backend()
```

### Manual initialization

Example for MongoDB with alias.

If missing, the default for alias is _"default"_
```python
MongoDbBackend(alias="people")

client = Backend.client(alias="people")
```


## Pagination


### Usage with routers

```python        
@router.get("/people")
@pagination()
def people_get():
    return Backend.client().get_instances(PeopleModel)
```


### Custom usage in code

```python        
pagination_params = PaginationParameterModel
with pagination_provider(pagination_params) as p:
    Backend.client().get_instances(PeopleModel)

```



```python        
pagination_params = PaginationParameterModel
with pagination_provider(pagination_params) as p:
    Backend.client().get_instances(PeopleModel)


pagination_params = PaginationParameterModel
with pagination_parameter_provider(pagination_params):
    objs, max_results = Backend.client().pagination_aggregate(agg)
    


return pagination_result((objs, max_results))
```

