Catalog PyPI
PACKAGE EXPLORERView in registry

aiocassandra

PyPI

Simple threaded cassandra wrapper for asyncio

asynciocassandra
Versions collected1
Direct dependencies2From release 2.0.1
Last observed21 Oct, 11:42 UTC

README

Version 2.0.1 documentation
aiocassandra
============

:info: Simple threaded cassandra wrapper for asyncio

.. image:: https://travis-ci.org/aio-libs/aiocassandra.svg?branch=master
    :target: https://travis-ci.org/aio-libs/aiocassandra

.. image:: https://img.shields.io/pypi/v/aiocassandra.svg
    :target: https://pypi.python.org/pypi/aiocassandra

.. image:: https://codecov.io/gh/aio-libs/aiocassandra/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/aio-libs/aiocassandra

Installation
------------

.. code-block:: shell

    pip install aiocassandra

Usage
-----

.. code-block:: python

    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. <https://ocean.io/>`_

Thanks to the company for contribution.


Downloads & popularity

Awaiting observations

No metric observations yet

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

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
2.0.119 Feb 20182

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
aio-libs/aiocassandra

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 11:42 UTC

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

Record identity

package:26bc8a7584e4759d3f07466519bf4e0564ae8ddee7b0811c51b85a525950ef70