Skip to main content

Simple threaded cassandra wrapper for asyncio

Project description

info:

Simple threaded cassandra wrapper for asyncio

https://travis-ci.org/aio-libs/aiocassandra.svg?branch=master https://img.shields.io/pypi/v/aiocassandra.svg https://codecov.io/gh/aio-libs/aiocassandra/branch/master/graph/badge.svg

Installation

pip install aiocassandra

Usage

import asyncio

from aiocassandra import aiosession
from cassandra.cluster import Cluster
from cassandra.query import SimpleStatement

# connection is blocking call
cluster = Cluster()
# aiocassandra uses executor_threads to talk to cassndra driver
# https://datastax.github.io/python-driver/api/cassandra/cluster.html?highlight=executor_threads
session = cluster.connect()


async def main():
    # patches and adds `execute_future`, `execute_futures` and `prepare_future`
    # to `cassandra.cluster.Session`
    aiosession(session)

    # best way is to use cassandra prepared statements
    # https://cassandra-zone.com/prepared-statements/
    # https://datastax.github.io/python-driver/api/cassandra/cluster.html#cassandra.cluster.Session.prepare
    # try to create them once on application init
    query = session.prepare('SELECT now() FROM system.local;')

    # if non-blocking prepared statements is really needed:
    query = await session.prepare_future('SELECT now() FROM system.local;')

    print(await session.execute_future(query))

    # pagination is also supported
    query = 'SELECT * FROM system.size_estimates;'
    statement = SimpleStatement(query, fetch_size=100)

    # don't miss *s* (execute_futureS)
    async with session.execute_futures(statement) as paginator:
        async for row in paginator:
            print(row)


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
cluster.shutdown()
loop.close()

Python 3.5+ is required

Thanks

The library was donated by Ocean S.A.

Thanks to the company for contribution.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiocassandra-2.0.1.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

aiocassandra-2.0.1-py2.py3-none-any.whl (6.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file aiocassandra-2.0.1.tar.gz.

File metadata

File hashes

Hashes for aiocassandra-2.0.1.tar.gz
Algorithm Hash digest
SHA256 82a91c8766d9e23b23775ed14eb6322a6f0bc22ddcc2babb17a69e31b46467a9
MD5 50d1a84b808c066c98d0e0cb309af54e
BLAKE2b-256 87445c0e978ad16ba1d75c02dd5cb6030833b42cc248b11bf15fdd82b0544951

See more details on using hashes here.

File details

Details for the file aiocassandra-2.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for aiocassandra-2.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bd9b95c60e0c729266041c4f5407ccf07c647f945bf2bfdb889989222ba14578
MD5 f0914b49ae67e1fb9b59b8d7aa54743b
BLAKE2b-256 676a86bcb47ec5283f7076500d0ec7d6a78abbdbc10223cee59a2fb49984886d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page