/async-couch

Asynchronous client for CouchDb for Python. Currently implemented base operations with indexes and documents

Primary LanguagePythonMIT LicenseMIT

Async-Couch

Logo Documentation Status Python package PyPI version

Resources

This is simple asynchronous python CouchDB client that works with aiohttp, httpx and able to be adopted easily to any other http client.

Requirements:

  • = Python 3.11

Allowed http client

How to install

pip install async-couch

Get Started

   import asyncio

   from async_couch import get_couch_client
   from async_couch.http_clients import HttpxCouchClient


   async def example(client, doc_id: str):
      await client.db_create('test_index')
      await client.doc_create_or_update('test_index', doc_id, dict(val=1))

      response = await client.doc_get('test_index', response.model._id)
      assert response.model._id == doc_id

      await client.attachment_upload(
         'test_index', response.model._id, 'attachment_name', 'text/plain', b'\0')

   if __name__ == '__main__':
      loop = asyncio.get_event_loop()
      client = get_couch_client(request_adapter=HttpxCouchClient)

      loop.run_until_complete(example(client, 'document_name'))

ToDo

  • Rest endpoints
  • Aiohttp adapter