Skip to main content

Index a leveldb with tuples

Project description

Jigfyp is a query-builder for leveldb. It lets you specify leveldb ranges as tuples of strings.

Initializing

Initalize a Jigfyp with a LevelDB object.

import leveldb, Jigfyp

db = leveldb.LevelDB()
j = jigfyp.Jigfyp(db)

Working with individual keys

The key in these examples is b'one!two!three'.

j.put_one((b'one', b'two', b'three'), b'Hi')
j.get_one((b'one', b'two', b'three'))
j.delete_one((b'one', b'two', b'three'))

Working with ranges of keys

Here’s one way of adding a few records.

j.put_one((b'one', b'two', b'three'), b'Hi')
j.put_one((b'one', b'two', b'four'), b'Hi')
j.put_one((b'one', b'two', b'seven), b'Hi')
j.put_one((b'over', b'nine', b'thousand'), b'Hi')

If you’re writing several records, you can use the put_many method to save the same data but with a leveldb.WriteBatch, which is usually faster.

records = [
    ((b'one', b'two', b'three'), b'Hi'),
    ((b'one', b'two', b'four'), b'Hi'),
    ((b'one', b'two', b'seven), b'Hi'),
    ((b'over', b'nine', b'thousand'), b'Hi'),
]
j.put_many(records)

The cool part is the get_many and delete_many methods. With these, you specify a partial key, and everything that starts with that key is emitted. Consider a database containing the four above records. If we pass no arguments to get_many, we’ll read all the data.

j.get_many()

If we pass (b'one', b'two'),

j.get_many(b'one', b'two')

we’ll get three records with these keys

* ``(b'one', b'two', b'three')``
* ``(b'one', b'two', b'four')``

and not the record with these keys

  • (b'one', b'two', b'seven)

  • (b'over', b'nine', b'thousand')

Similarly, if we run the following command,

j.delete_many(b'one')

we delete all the records whose keys begin with b'one', leaving us with a single record in the database, with the key (b'over', b'nine', b'thousand').

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

jigfyp-0.0.1.tar.gz (2.2 kB view details)

Uploaded Source

File details

Details for the file jigfyp-0.0.1.tar.gz.

File metadata

  • Download URL: jigfyp-0.0.1.tar.gz
  • Upload date:
  • Size: 2.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for jigfyp-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ad38e1c7ecede3187c1b9de90fdd180b0c0503216ce8dc078828a92e0faab2b8
MD5 913d7fd53c0f1b5071b14fbcfe7a8ccf
BLAKE2b-256 bd8f4d5b9068ddec8c066e6b4fc8b6d01fbf68b104aaa04aceaa7c874900a2a8

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