semvec/pypi-packages huggingface dataset:
python-lmdb 1.0.0b1
simple lmdb bindings written using ctypes
License: http://opensource.org/licenses/MIT

python-lmdb
===========

Your (L)MDB bindings for Python, written entirely using ctypes, but only for Python 3 (at the moment). Does not use any CPython native extensions.

Usage
-----

    import lmdb
    lib = lmdb.LibLMDB()
    env = lmdb.Environment(lib, "data")
    with env.transaction() as txn:
        txn[b"key"] = b"value"
        print(txn[b"key"])
        del txn[b"key"]

Web API
-------

I have implemented a simple web REST API with Bottle. It supports simple
transactions, setting an item, getting an item, and deleting an item.

    $ gunicorn lmdb.web

You can use the following environment variables to configure the application:

* *LMDB_WEB_LIB*: Path to liblmdb.so
* *LMDB_WEB_DBPATH*: Path to database directory

It supports simple REST endpoints:

* `GET /` Server status overview
* `GET /_simple/<key>` Retrievement of item by key
* `PUT /_simple/<key>` Set an item with request body
* `DELETE /_simple/<key>` Delete an item
* `POST /_trans` Upload transaction and execute it
* `GET /_dump` Return transaction which inserts data

Transactions are uploaded as JSON with the following form:

    {
        "write": true, # optional, by default false
        "steps": [
            {"action": "set", "key": "foo", "value": "bar"},
            {"action": "delete", "key": "foo"},
        ]
    }