Catalog PyPI
Back to packageRELEASE DETAILS

0.1.5

PyPI

aiocouchdb3

A client for interacting with CouchDB 3 based on aiohttp

Published2 Jul 2025
Direct dependencies9
Transitive dependenciesNot calculated

README

Version 0.1.5 documentation

Async I/O for CouchDB built on aiohttp

This project is based on the (seemingly) unmaintained aiocoucdb but is not a drop-in replacement for that project.

Example

Using aiocouchdb3 is pretty easy.

import aiocouchdb3 as couchdb

user_jwt = get_user_jwt()
async with couchdb.connect() as client:
    async with client.with_token(user_jwt) as session:
        for db in await session.all_dbs:
            print(await db.info)

Features

  • Allows authentication for both username/password and JWT

Contribute

Thanks for considering adding your skills to improve this library. Please review the Contributor Covenant Code of Conduct. You must comply with it to contribute to aiocouchdb3.

Set up your local development environment

Check .python-version for the minimum version of Python supported by aiocouchdb3. Install that and use it to create a Poetry environment.

Install dependencies with

poetry install --all-extras

You must provide both mocked and integration tests when contributing. Get a CouchDB v3 instance up and running. (If you use Docker, see the following section about using Docker to run a properly configured CouchDB v3 instance.)

Running tests

There are two kinds of tests in the project found the ./tests directory.

  • ./tests/mocked contain proper unit tests isolated from the execution environment.

  • ./tests/integration contain integration tests that rely on a running instance of CouchDB. To run these copy ./test.env to ./.test.env and provide values for the two empty keys in it (and modify the other two if you want to).

    # Copy this file to .test.env and provide values for your
    # instance of CouchDB
    COUCHDB_USER =
    COUCHDB_PASSWORD =
    COUCHDB_DB_BASE_URL = http://locahost:5984
    COUCHDB_JWT_SECRET = devsecret
    

    There's a Docker compose file in tests available for you to use if you want to use that.

    docker compose --env-file .test.env -f tests/docker-compose/docker-compose.yaml up
    

    Run the tests with

    poetry run pytest
    

    If you want to run the tests while you're developing

    poetry run ptw .
    

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 15

Native requirements
9 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
aiohttp
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
aiohttp<4.0.0,>=3.11.18runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest<9.0.0,>=8.3.5; extra == "dev"runtime
pytest-asyncio
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-asyncio<0.27.0,>=0.26.0; extra == "dev"runtime
pyright
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pyright<2.0.0,>=1.1.400; extra == "dev"runtime
ruff
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
ruff<0.12.0,>=0.11.8; extra == "dev"runtime
neovim
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
neovim<0.4.0,>=0.3.1; extra == "dev"runtime
pytest-watcher
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-watcher<0.5.0,>=0.4.3; extra == "dev"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov<7.0.0,>=6.1.1; extra == "dev"runtime
pytest-dotenv
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-dotenv<0.6.0,>=0.5.2; extra == "dev"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest<9.0.0,>=8.3.5; extra == "test"runtime
pytest-asyncio
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-asyncio<0.27.0,>=0.26.0; extra == "test"runtime
pyright
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pyright<2.0.0,>=1.1.400; extra == "test"runtime
ruff
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
ruff<0.12.0,>=0.11.8; extra == "test"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov<7.0.0,>=6.1.1; extra == "test"runtime
pytest-dotenv
Environment
{
  "extras": "",
  "marker": "extra == \"test\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pytest-dotenv<0.6.0,>=0.5.2; extra == "test"runtime

Distribution files

2 collected
aiocouchdb3-0.1.5-py3-none-any.whl

bdist_wheel · 9.29 KB · Python py3

Source file
aiocouchdb3-0.1.5.tar.gz

sdist · 9.96 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 11:45 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:18d3e2d6a634d4ddf30b7921c26af06bcd22e5d5bca87fe512e1e7b8ee0a3fbf

Other collected versions

View all collected versions →