跳转到主要内容

Asyncio DynamoDB客户端

项目描述

AsyncIO DynamoDB

CircleCI Code style: black Documentation Status

异步Pythonic DynamoDB客户端;比aiobotocore/boto3/botocore快2倍。

快速开始

使用httpx

安装此库

pip install "aiodynamo[httpx]" 或者,对于poetry用户 poetry add aiodynamo -E httpx

连接到DynamoDB

from aiodynamo.client import Client
from aiodynamo.credentials import Credentials
from aiodynamo.http.httpx import HTTPX
from httpx import AsyncClient

async def main():
    async with AsyncClient() as h:
        client = Client(HTTPX(h), Credentials.auto(), "us-east-1")

使用aiohttp

安装此库

pip install "aiodynamo[aiohttp]" 或者,对于poetry用户 poetry add aiodynamo -E aiohttp

连接到DynamoDB

from aiodynamo.client import Client
from aiodynamo.credentials import Credentials
from aiodynamo.http.aiohttp import AIOHTTP
from aiohttp import ClientSession

async def main():
    async with ClientSession() as session:
        client = Client(AIOHTTP(session), Credentials.auto(), "us-east-1")

API使用

from aiodynamo.client import Client
from aiodynamo.expressions import F
from aiodynamo.models import Throughput, KeySchema, KeySpec, KeyType

async def main(client: Client):
    table = client.table("my-table")

    # Create table if it doesn't exist
    if not await table.exists():
        await table.create(
            Throughput(read=10, write=10),
            KeySchema(hash_key=KeySpec("key", KeyType.string)),
        )

    # Create or override an item
    await table.put_item({"key": "my-item", "value": 1})
    # Get an item
    item = await table.get_item({"key": "my-item"})
    print(item)
    # Update an item, if it exists.
    await table.update_item(
        {"key": "my-item"}, F("value").add(1), condition=F("key").exists()
    )

为什么选择aiodynamo

  • boto3和botocore是同步的。aiodynamo是为异步应用程序构建的。
  • aiodynamo非常。查询或扫描等操作比aiobotocore、botocore或boto3快两倍。
  • aiobotocore非常底层。aiodynamo提供了一个使用现代Python功能的Pythonic API。例如,分页API使用异步迭代器自动取消分页。
  • 可读的源代码。botocore及其衍生库在运行时生成其接口,因此无法检查且未进行类型化。aiodynamo是您可以阅读、检查和理解的逐行编写代码。
  • 可插拔的HTTP客户端。如果您已经在项目中使用异步HTTP客户端,则可以与aiodynamo一起使用,无需添加额外依赖项或遇到依赖项解析问题。

完整文档在这里

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源代码分发

aiodynamo-24.7.tar.gz (25.4 kB 查看散列值)

上传时间 源代码

构建分发

aiodynamo-24.7-py3-none-any.whl (28.7 kB 查看散列值)

上传时间 Python 3

由以下支持