Skip to main content

rethinkdb python library

Project description

https://travis-ci.org/internetarchive/doublethink.svg?branch=master

doublethink

RethinkDB python library. Provides connection manager and ORM framework (object-relational mapping, sometimes called ODM or OM for nosql databases).

Connection Manager

Three main purposes:

  • round-robin connections among database servers

  • make sure connections close at proper time

  • retry retry-able queries on failure

Not currently a connection pool, because it doesn’t keep any connections open. Should be possible to implement connection pooling without changing the API. However, testing suggests there would be no appreciable performance gain from connection pooling.

Usage Example

import doublethink
rr = doublethink.Rethinker(['db0.foo.com', 'db0.foo.com:38015', 'db1.foo.com'], 'my_db')
rr.table('mytable').insert({'foo':'bar','baz':2}).run()
for result in rr.table('mytable'):
    print("result={}".format(result))

ORM

Simple yet powerful ORM system. Does not enforce a schema.

Usage Example

import doublethink

rr = doublethink.Rethinker(['db0.foo.com', 'db0.foo.com:38015', 'db1.foo.com'], 'my_db')

class MyTable(doublethink.Document):
    pass
MyTable.table_create(rr)

doc1 = MyTable(rr, {'animal': 'elephant', 'size': 'large'})
doc1.save()

doc1_copy = MyTable.load(rr, doc1.id)
doc1_copy.food = 'bread'
doc1_copy.save()

doc1.first_name = 'Frankworth'
doc1.save()

doc1.refresh()

Service Registry

Now also has a ServiceRegistry class, a lightweight solution for service discovery for distributed services. Maintains service info and status in a rethinkdb table called “services”.

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

doublethink-0.4.10.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

doublethink-0.4.10-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file doublethink-0.4.10.tar.gz.

File metadata

  • Download URL: doublethink-0.4.10.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for doublethink-0.4.10.tar.gz
Algorithm Hash digest
SHA256 f2bb6c7aa4bbb24ea275caa40eb0ca1a9a4f3bdfb1c24f72a9697a9747eeb903
MD5 1d31202c2529149218ea04ff298d7d9f
BLAKE2b-256 d1a82dfe88cb487f756e26fcc3345d0358abcfbc416c36f2dcbbbf5a80e9a8b2

See more details on using hashes here.

File details

Details for the file doublethink-0.4.10-py3-none-any.whl.

File metadata

  • Download URL: doublethink-0.4.10-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for doublethink-0.4.10-py3-none-any.whl
Algorithm Hash digest
SHA256 9a72cfb09420dd5e671d874ab2cda4785347af1defb311118079621776bfedc8
MD5 990d0af6a83a6ee27c9bc81f8569e012
BLAKE2b-256 860297a30ace6d26615d544f8b40f2801907f9d9b5c6a35dff8ca54c2b44490c

See more details on using hashes here.

Supported by

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