Skip to main content

A library to handle persistent memory

Project description

membank

Python library for storing data in persistent memory (sqlite, postgresql, berkeley db)

goals

Provide interface to database storage that automates heavy lifting of database setup, migration, table definition, query construction.

quick intro

add items to persistent storage

import dataclasses as data # Python standard library

from membank import LoadMemory

@data.dataclass
class Dog():
    breed: str
    color: str = "black"
    weight: float = 0
    data: dict = data.field(default_factory=dict)
    picture: bytes = b''
    aliases: list = data.field(default_factory=list)

@data.dataclass
class DogWithID():
    id: str = data.field(default=None, metadata={"key": True})
    breed: str
    color: str = "black"
    weight: float = 0
    data: dict = data.field(default_factory=dict)
    picture: bytes = b''
    alive: bool = True

memory = LoadMemory() # defaults to sqlite memory
memory.put(Dog('Puli')) # stores object into database
dog = memory.get.dog() # retrieves first object found
assert dog.breed == 'Puli'
dog.color = "white"
memory.put(dog) # be carefull you store another dog
dog = memory.put(DogWithID("AB1234", "Puli"))
dog = memory.get.dogwithid(id="AB1234")
dog.color = "white"
memory.put(dog) # now you update existing dog

retrieve those after

memory = LoadMemory() # to make this work in new process, don't use sqlite memory
dog = memory.get.dog() # get first found or None
assert dog.color == 'black'
dogs = memory.get("dog") # always returns list (empty or with items)
assert len(dogs) >= 0

editing returned objects

dog = memory.get.dog()
dog.breed = 'Labdrador'
memory.put(dog) # stores edited object back

filter objects

dog = memory.get.dog(breed='Labdrador')
assert dog.breed == 'Labrador'

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

membank-0.4.1.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

membank-0.4.1-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file membank-0.4.1.tar.gz.

File metadata

  • Download URL: membank-0.4.1.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for membank-0.4.1.tar.gz
Algorithm Hash digest
SHA256 1a867f80df534596ce52cd7db92fdca1f49759a18d585f059fc8e87d40370b07
MD5 5a0107a35e611ff4f50dc74e9c6c16fd
BLAKE2b-256 cdbf6625503c5e0e9405b6e224751f5b3ed5553f18dbea485d93b1f1b350beb4

See more details on using hashes here.

File details

Details for the file membank-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: membank-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for membank-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ee4d9cbf826de4ad98b66c30fad549d0847164156f79f8c24c79e155a7778c33
MD5 2f74e0a4332914abd0378604dfd8203b
BLAKE2b-256 1a229b8a5394df02c0c12924db374bbd1331ef5fa8be6d684ae1f44e1b514c54

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