Reference¶
Schema¶
- class Schema[source]¶
ZLMDB database schema definition.
- SLOT_DATA_EMPTY = 0¶
Database slot is empty (unused, not necessarily zero’ed, but uninitialized).
- SLOT_DATA_INDEX = 5¶
FIXME.
- SLOT_DATA_MATERIALIZATION = 7¶
FIXME.
- SLOT_DATA_METADATA = 1¶
FIXME.
- SLOT_DATA_REPLICATION = 6¶
FIXME.
- SLOT_DATA_SEQUENCE = 3¶
FIXME.
- SLOT_DATA_TABLE = 4¶
Database slot contains a persistent map, for example a map of type OID to Pickle.
- SLOT_DATA_TYPE = 2¶
FIXME.
- slot(slot_index, marshal=None, unmarshal=None, build=None, cast=None, compress=False)[source]¶
Decorator for use on classes derived from zlmdb.PersistentMap. The decorator define slots in a LMDB database schema based on persistent maps, and slot configuration.
- Parameters:
slot_index
marshal
unmarshal
build
cast
compress
- Returns:
Database¶
- class Database(dbpath: str | None = None, maxsize: int = 10485760, readonly: bool = False, lock: bool = True, sync: bool = True, create: bool = True, open_now: bool = True, writemap: bool = False, context: Any = None, log: ILogger | None = None)[source]¶
ZLMDB database access.
Objects of this class are generally “light-weight” (cheap to create and destroy), but do manage internal resource such as file descriptors.
To manage these resources in a robust way, this class implements the Python context manager interface.
- attach_table(klass: Type[PersistentMap])[source]¶
- Parameters:
klass
- Returns:
- begin(write: bool = False, buffers: bool = False, stats: TransactionStats | None = None) Transaction[source]¶
- Parameters:
write
buffers
stats
- Returns:
- property context¶
return:
Transaction¶
PersistentMap¶
- class PersistentMap(slot: int | None, compress: int | None = None)[source]¶
Abstract base class for persistent maps stored in LMDB.
- attach_index(name: str, pmap: PersistentMap, fkey: Callable, nullable: bool = False, unique: bool = True)[source]¶
- Parameters:
name
pmap
fkey
nullable
unique
- count(txn: Transaction, prefix: Any = None) int[source]¶
Count number of records in the persistent map. When no prefix is given, the total number of records is returned. When a prefix is given, only the number of records with keys that have this prefix are counted.
- Parameters:
txn – The transaction in which to run.
prefix – The key prefix of records to count.
- Returns:
The number of records.
- count_range(txn: Transaction, from_key: Any, to_key: Any) int[source]¶
Counter number of records in the perstistent map with keys within the given range.
- Parameters:
txn – The transaction in which to run.
from_key – Count records starting and including from this key.
to_key – End counting records before this key.
- Returns:
The number of records.
- select(txn: Transaction, from_key: Any = None, to_key: Any = None, return_keys: bool = True, return_values: bool = True, reverse: bool = False, limit: int | None = None) PersistentMapIterator[source]¶
Select all records (key-value pairs) in table, optionally within a given key range.
- Parameters:
txn – The transaction in which to run.
from_key – Return records starting from (and including) this key.
to_key – Return records up to (but not including) this key.
return_keys – If
True(default), return keys of records.return_values – If
True(default), return values of records.reverse – If
True, return records in reverse order.limit – Limit number of records returned.
- Returns:
- truncate(txn: Transaction, rebuild_indexes: bool = True) int[source]¶
- Parameters:
txn
rebuild_indexes
- Returns:
Typed PersistentMap¶
- class MapBytes16FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes16KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with Bytes16 keys and Flatbuffers values.
- class MapBytes16TimestampUuid(slot=None, compress=None)[source]¶
Bases:
_Bytes16TimestampKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (Bytes20, Timestamp) keys and UUID values.
- class MapBytes16TimestampUuidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes16TimestampUuidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Bytes20, Timestamp, UUID) keys and Flatbuffers values.
- class MapBytes20Bytes16(slot=None, compress=None)[source]¶
Bases:
_Bytes20KeysMixin,_Bytes16ValuesMixin,PersistentMapPersistent map with Bytes20 keys and Bytes16 values.
- class MapBytes20Bytes20(slot=None, compress=None)[source]¶
Bases:
_Bytes20KeysMixin,_Bytes20ValuesMixin,PersistentMapPersistent map with Bytes20 keys and Bytes20 values.
- class MapBytes20Bytes20FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes20Bytes20KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Bytes20, Bytes20) keys and Flatbuffers values.
- class MapBytes20Bytes20Timestamp(slot=None, compress=None)[source]¶
Bases:
_Bytes20KeysMixin,_Bytes20TimestampValuesMixin,PersistentMapPersistent map with Bytes20 keys and (Bytes20, Timestamp) values.
- class MapBytes20FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes20KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with Bytes20 keys and Flatbuffers values.
- class MapBytes20StringFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes20StringKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Bytes20, String) keys and Flatbuffers values.
- class MapBytes20TimestampBytes20(slot=None, compress=None)[source]¶
Bases:
_Bytes20TimestampKeysMixin,_Bytes20ValuesMixin,PersistentMapPersistent map with (Bytes20, Timestamp) keys and Bytes20 values.
- class MapBytes20TimestampUuid(slot=None, compress=None)[source]¶
Bases:
_Bytes20TimestampKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (Bytes20, Timestamp) keys and UUID values.
- class MapBytes20Uuid(slot=None, compress=None)[source]¶
Bases:
_Bytes20KeysMixin,_UuidValuesMixin,PersistentMapPersistent map with Bytes20 keys and UUID values.
- class MapBytes32Bytes32(slot=None, compress=None)[source]¶
Bases:
_Bytes32KeysMixin,_Bytes32ValuesMixin,PersistentMapPersistent map with Bytes32 keys and Bytes32 values.
- class MapBytes32Bytes32FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes32Bytes32KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Bytes32, Bytes32) keys and Flatbuffers values.
- class MapBytes32FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes32KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with Bytes32 keys and Flatbuffers values.
- class MapBytes32StringFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes32StringKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Bytes32, String) keys and Flatbuffers values.
- class MapBytes32Timestamp(slot=None, compress=None)[source]¶
Bases:
_Bytes32KeysMixin,_TimestampValuesMixin,PersistentMapPersistent map with Bytes32 keys and Timestamp values.
- class MapBytes32Uuid(slot=None, compress=None)[source]¶
Bases:
_Bytes32KeysMixin,_UuidValuesMixin,PersistentMapPersistent map with Bytes32 keys and UUID values.
- class MapBytes32UuidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Bytes32UuidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Bytes32, UUID) keys and Flatbuffers values.
- class MapOid3FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Oid3KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (OID, OID, OID) / (uint64, uint64, uint64) keys and FlatBuffers values.
- class MapOidCbor(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_OidKeysMixin,_CborValuesMixin,PersistentMapPersistent map with OID (uint64) keys and CBOR values.
- class MapOidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_OidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with OID (uint64) keys and FlatBuffers values.
- class MapOidJson(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_OidKeysMixin,_JsonValuesMixin,PersistentMapPersistent map with OID (uint64) keys and JSON values.
- class MapOidOid(slot=None, compress=None)[source]¶
Bases:
_OidKeysMixin,_OidValuesMixin,PersistentMapPersistent map with OID (uint64) keys and OID (uint64) values.
- class MapOidOidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_OidOidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (OID, OID) / (uint64, uint64) keys and FlatBuffers values.
- class MapOidOidOid(slot=None, compress=None)[source]¶
Bases:
_OidOidKeysMixin,_OidValuesMixin,PersistentMapPersistent map with (OID, OID) keys and OID values.
- class MapOidOidSet(slot=None, compress=None)[source]¶
Bases:
_OidKeysMixin,_OidSetValuesMixin,PersistentMapPersistent map with OID (uint64) keys and OID-set (set of unique uint64) values.
- class MapOidPickle(slot=None, compress=None)[source]¶
Bases:
_OidKeysMixin,_PickleValuesMixin,PersistentMapPersistent map with OID (uint64) keys and Python pickle values.
- class MapOidString(slot=None, compress=None)[source]¶
Bases:
_OidKeysMixin,_StringValuesMixin,PersistentMapPersistent map with OID (uint64) keys and string (utf8) values.
- class MapOidStringOid(slot=None, compress=None)[source]¶
Bases:
_OidStringKeysMixin,_OidValuesMixin,PersistentMapPersistent map with (OID, string) keys and OID values.
- class MapOidTimestampFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_OidTimestampKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (OID, Timestamp) keys and Flatbuffers values, where Timestamp is a np.datetime64[ns].
- class MapOidTimestampOid(slot=None, compress=None)[source]¶
Bases:
_OidTimestampKeysMixin,_OidValuesMixin,PersistentMapPersistent map with (OID, Timestamp) keys and OID values, where Timestamp is a np.datetime64[ns].
- class MapOidTimestampStringOid(slot=None, compress=None)[source]¶
Bases:
_OidTimestampStringKeysMixin,_OidValuesMixin,PersistentMapPersistent map with (OID, Timestamp, String) keys and OID values, where Timestamp is a np.datetime64[ns].
- class MapOidUuid(slot=None, compress=None)[source]¶
Bases:
_OidKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with OID (uint64) keys and UUID (16 bytes) values.
- class MapSlotUuidUuid(slot=None, compress=None)[source]¶
Bases:
_SlotUuidKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (slot, UUID) and UUID values.
- class MapStringCbor(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_StringKeysMixin,_CborValuesMixin,PersistentMapPersistent map with string (utf8) keys and CBOR values.
- class MapStringFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_StringKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with string (utf8) keys and FlatBuffers values.
- class MapStringJson(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_StringKeysMixin,_JsonValuesMixin,PersistentMapPersistent map with string (utf8) keys and JSON values.
- class MapStringOid(slot=None, compress=None)[source]¶
Bases:
_StringKeysMixin,_OidValuesMixin,PersistentMapPersistent map with string (utf8) keys and OID (uint64) values.
- class MapStringOidOid(slot=None, compress=None)[source]¶
Bases:
_StringOidKeysMixin,_OidValuesMixin,PersistentMapPersistent map with (string:utf8, OID:uint64) keys and OID:uint64 values.
- class MapStringPickle(slot=None, compress=None)[source]¶
Bases:
_StringKeysMixin,_PickleValuesMixin,PersistentMapPersistent map with string (utf8) keys and Python pickle values.
- class MapStringString(slot=None, compress=None)[source]¶
Bases:
_StringKeysMixin,_StringValuesMixin,PersistentMapPersistent map with string (utf8) keys and string (utf8) values.
- class MapStringStringStringUuid(slot=None, compress=None)[source]¶
Bases:
_StringStringStringKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (string, string, string) keys and UUID (16 bytes) values.
- class MapStringStringUuid(slot=None, compress=None)[source]¶
Bases:
_StringStringKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (string, string) keys and UUID (16 bytes) values.
- class MapStringTimestampCbor(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_StringTimestampKeysMixin,_CborValuesMixin,PersistentMapPersistent map with (String, Timestamp) keys and CBOR values.
- class MapStringUuid(slot=None, compress=None)[source]¶
Bases:
_StringKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with string (utf8) keys and UUID (16 bytes) values.
- class MapTimestampBytes32FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_TimestampBytes32KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Timestamp, Bytes32) keys and FlatBuffers values.
- class MapTimestampFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_TimestampKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with Timestamp keys and FlatBuffers values.
- class MapTimestampStringCbor(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_TimestampStringKeysMixin,_CborValuesMixin,PersistentMapPersistent map with (Timestamp, String) keys and CBOR values.
- class MapTimestampStringFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_TimestampStringKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Timestamp, String) keys and FlatBuffers values.
- class MapTimestampUuidCbor(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_TimestampUuidKeysMixin,_CborValuesMixin,PersistentMapPersistent map with (Timestamp, UUID) keys and CBOR values.
- class MapTimestampUuidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_TimestampUuidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Timestamp, UUID) keys and FlatBuffers values.
- class MapTimestampUuidStringFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_TimestampUuidStringKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (Timestamp, UUID, String) keys and FlatBuffers values.
- class MapUint16UuidTimestampFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_Uint16UuidTimestampKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (uint16, UUID, Timestamp) keys and FlatBuffers values.
- class MapUuidBytes20Bytes20Uint8UuidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidBytes20Bytes20Uint8UuidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, bytes[20], bytes[20], uint8, UUID) keys and FlatBuffers values.
- class MapUuidBytes20Uint8FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidBytes20Uint8KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, bytes[20], uint8) keys and FlatBuffers values.
- class MapUuidBytes20Uint8UuidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidBytes20Uint8UuidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, bytes[20], uint8, UUID) keys and FlatBuffers values.
- class MapUuidBytes32FlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidBytes32KeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, Bytes32) keys and Flatbuffers values.
- class MapUuidCbor(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_UuidKeysMixin,_CborValuesMixin,PersistentMapPersistent map with UUID (16 bytes) keys and CBOR values.
- class MapUuidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with UUID (16 bytes) keys and FlatBuffers values.
- class MapUuidJson(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_UuidKeysMixin,_JsonValuesMixin,PersistentMapPersistent map with UUID (16 bytes) keys and JSON values.
- class MapUuidOid(slot=None, compress=None)[source]¶
Bases:
_UuidKeysMixin,_OidValuesMixin,PersistentMapPersistent map with UUID (16 bytes) keys and OID (uint64) values.
- class MapUuidPickle(slot=None, compress=None)[source]¶
Bases:
_UuidKeysMixin,_PickleValuesMixin,PersistentMapPersistent map with UUID (16 bytes) keys and Python Pickle values.
- class MapUuidString(slot=None, compress=None)[source]¶
Bases:
_UuidKeysMixin,_StringValuesMixin,PersistentMapPersistent map with UUID (16 bytes) keys and string (utf8) values.
- class MapUuidStringFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidStringKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, String) keys and Flatbuffers values.
- class MapUuidStringOid(slot=None, compress=None)[source]¶
Bases:
_UuidStringKeysMixin,_OidValuesMixin,PersistentMapPersistent map with (UUID, string) keys and Oid values.
- class MapUuidStringUuid(slot=None, compress=None)[source]¶
Bases:
_UuidStringKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (UUID, string) keys and UUID values.
- class MapUuidTimestampBytes32(slot=None, compress=None)[source]¶
Bases:
_UuidTimestampKeysMixin,_Bytes32ValuesMixin,PersistentMapPersistent map with (UUID, Timestamp) keys and Bytes32 values.
- class MapUuidTimestampCbor(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_UuidTimestampKeysMixin,_CborValuesMixin,PersistentMapPersistent map with (UUID, Timestamp) keys and CBOR values.
- class MapUuidTimestampFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidTimestampKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, Timestamp) keys and FlatBuffers values.
- class MapUuidTimestampUuid(slot=None, compress=None)[source]¶
Bases:
_UuidTimestampKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (UUID, timestamp) keys and UUID values.
- class MapUuidTimestampUuidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidTimestampUuidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, Timestamp, UUID) keys and FlatBuffers values.
- class MapUuidUuid(slot=None, compress=None)[source]¶
Bases:
_UuidKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with UUID (16 bytes) keys and UUID (16 bytes) values.
- class MapUuidUuidCbor(slot=None, compress=None, marshal=None, unmarshal=None)[source]¶
Bases:
_UuidUuidKeysMixin,_CborValuesMixin,PersistentMapPersistent map with (UUID, UUID) keys and CBOR values.
- class MapUuidUuidFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidUuidKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, UUID) keys and Flatbuffers values.
- class MapUuidUuidSet(slot=None, compress=None)[source]¶
Bases:
_UuidKeysMixin,_UuidSetValuesMixin,PersistentMapPersistent map with (UUID, string) keys and UUID values.
- class MapUuidUuidStringFlatBuffers(slot=None, compress=None, build=None, cast=None)[source]¶
Bases:
_UuidUuidStringKeysMixin,_FlatBuffersValuesMixin,PersistentMapPersistent map with (UUID, UUID, String) keys and Flatbuffers values.
- class MapUuidUuidStringUuid(slot=None, compress=None)[source]¶
Bases:
_UuidUuidStringKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (UUID, UUID, string) keys and UUID values.
- class MapUuidUuidUuid(slot=None, compress=None)[source]¶
Bases:
_UuidUuidKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (UUID, UUID) keys and UUID values.
- class MapUuidUuidUuidStringUuid(slot=None, compress=None)[source]¶
Bases:
_UuidUuidUuidStringKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (UUID, UUID, UUID, string) keys and UUID values.
- class MapUuidUuidUuidUuid(slot=None, compress=None)[source]¶
Bases:
_UuidUuidUuidKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (UUID, UUID, UUID) keys and UUID values.
- class MapUuidUuidUuidUuidUuid(slot=None, compress=None)[source]¶
Bases:
_UuidUuidUuidUuidKeysMixin,_UuidValuesMixin,PersistentMapPersistent map with (UUID, UUID, UUID, UUID) keys and UUID values.
Key Types¶
- class _OidKeysMixin[source]¶
- MAX_OID = 9007199254740992[source]¶
Valid OID are from the integer range [0, MAX_OID].
The upper bound 2**53 is chosen since it is the maximum integer that can be represented as a IEEE double such that all smaller integers are representable as well.
Hence, IDs can be safely used with languages that use IEEE double as their main (or only) number type (JavaScript, Lua, etc).