Giter Site home page Giter Site logo

fruch / aiocassandra Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aio-libs/aiocassandra

0.0 1.0 0.0 152 KB

Simple threaded cassandra wrapper for asyncio

Home Page: https://pypi.python.org/pypi/aiocassandra

License: MIT License

Python 100.00%

aiocassandra's Introduction

aiocassandra

info:Simple threaded cassandra wrapper for asyncio
https://travis-ci.org/aio-libs/aiocassandra.svg?branch=master

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.

aiocassandra's People

Contributors

asvetlov avatar fediralifirenko avatar hellysmile avatar litwisha avatar pcinkh avatar pyup-bot avatar webknjaz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.