aiocouch
aiocouch copied to clipboard
🛋 An asynchronous client library for CouchDB 2.x and 3.x
trafficstars
aiocouch
An asynchronous client library for CouchDB 2.0 based on asyncio using aiohttp
Key features
- All requests are asynchronus using aiohttp
- Supports CouchDB 2.x and 3.x
- Support for modern Python ≥ 3.7
Library installation
pip install aiocouch
Getting started
The following code retrieves and prints the list of incredients of the apple_pie recipe.
The incredients are stored as a list in the apple_pie aiocouch.document.Document,
which is part of the recipe aiocouch.database.Database. We use the context manager
aiocouch.CouchDB to create a new session.
from aiocouch import CouchDB
async with CouchDB(
"http://localhost:5984", user="admin", password="admin"
) as couchdb:
db = await couchdb["recipes"]
doc = await db["apple_pie"]
print(doc["incredients"])
We can also create new recipes, for instance for some delicious cookies.
new_doc = await db.create(
"cookies", data={"title": "Granny's cookies", "rating": "★★★★★"}
)
await new_doc.save()
For further details please refer to the documentation, which is available here on readthedocs.org.
Run examples
- Setup the CouchDB URL and credentials using the environment variables
- Install dependencies using
pip install --editable '.[examples]' - run for instance
python examples/getting_started.py
Run tests
- Install dependencies using
pip install --editable '.[tests]' - Setup the CouchDB URL and credentials using the environment variables (
COUCHDB_HOST,COUCHDB_USER,COUCHDB_PASS) - run
pytest --cov=aiocouch
Generate documentation
- Install dependencies using
pip install '.[docs]' - switch to the
docsdirectory:cd docs - run
make html