Skip to main content

a fork of cqlengine modified to work in baseplate.py applications

Project description

This project is a fork of cqlengine with a number of changes to allow it to work in a baseplate application

Major changes:
  • Remove support for polymorphic models

  • Remove the query evaluator method of defining query constraints

  • Switch from using a global connection object to passing a connection object to methods that interact with the database

  • Batch queries are handled by a Connection-like Batch object that is given as the conn argument to functions rather than using the Model.batch syntax of cqlengine

Example usage:

import uuid

from cassandra.cluster import Cluster
from cqlmapper import columns, connection, models
from cqlmapper.batch import Batch
from cqlmapper.connection import Connection as CQLMapperConnection
from cqlmapper.management import sync_table

class MyFirstModel(Model):
    id = columns.UUID(primary_key=True, default=uuid.uuid4)
    body = colums.Text()

cluster = Cluster()
session = cluster.connect("example")
conn = CQLMapperConnection(session)
sync_table(conn, MyFirstModel)
model_1 = MyFirstModel.create(conn, body="Hello World")
model_2 = MyFirstModel.create(conn, body="Hola Mundo")
# Batch queries can be used as a context manager where the batch query will
# be executed when exiting the context
with Batch(conn) as batch_conn:
    MyFirstModel.create(batch_conn, body="Ciao mondo")
    MyFirstModel.create(batch_conn, body="Bonjour le monde")
# Batch queries can also be created standalone in which case execute_batch
# can be called to execute the queries.  Calls to execute will add the
# query to the batch
batch_conn = Batch(conn)
MyFirstModel.create(batch_conn, body="Hallo Welt")
MyFirstModel.create(batch_conn, body="Hei Verden")
>>> MyFirstModel.objects.count(conn)
4
>>> batch_conn.execute_batch()
>>> MyFirstModel.objects.count(conn)
6
>>> MyFirstModel.get(conn, id=model_1.id).text == model_1.text
True
>>> MyFirstModel.get(conn, id=model_2.id).text == model_1.text
False

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

reddit_cqlmapper-0.3.0.tar.gz (105.9 kB view details)

Uploaded Source

Built Distribution

reddit_cqlmapper-0.3.0-py3-none-any.whl (145.0 kB view details)

Uploaded Python 3

File details

Details for the file reddit_cqlmapper-0.3.0.tar.gz.

File metadata

  • Download URL: reddit_cqlmapper-0.3.0.tar.gz
  • Upload date:
  • Size: 105.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.7.0 requests/2.25.1 setuptools/47.3.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for reddit_cqlmapper-0.3.0.tar.gz
Algorithm Hash digest
SHA256 69722be61c257cf0e8c3da35a6ed811e4cd5f6a3f661b3abf2a486ad17d4cb81
MD5 af27c2a3e598a4089a726ba184c31644
BLAKE2b-256 086d747a1656753b7c962b493d12f3f062806da3f544ae80b712148f2fd7cdba

See more details on using hashes here.

File details

Details for the file reddit_cqlmapper-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: reddit_cqlmapper-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 145.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.7.0 requests/2.25.1 setuptools/47.3.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for reddit_cqlmapper-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cfa34183b07fb2761d86e7a1346007dd06efa4a33c98d6ef9ae7b1394eb992f0
MD5 bed67d4d97ddb652d1e1a4b4f7c5647b
BLAKE2b-256 7ba318b258a817212c735734d1343e06b08fd15f5bf17153a6c3e7b6279c8efd

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