Skip to main content

Key-Value Model for Detabase

Project description

PyPI version Downloads Statistic

Key-Value Model for Detabase

API

constructor

class KVModel(dict)

example:

from kv_deta import KVModel 

class Example(KVModel):
  class Config(KVModel.Config):
    deta_key = DETA_BASE_KEY
    # or
    deta = Deta(DETA_BASE_KEY)

    table_name = "my_kv_table"	# optional

    hash = my_hash_function	# default lambda x: hashlib.sha256(str(x).encode('utf8')).hexdigest()
kv = Example({"key":"value"})

update

kv.update({"k2":42})

like for dictionary

save

kv.save()

commit all data to detabase

get

mixed dict.get(key), deta.get(key), dict.setdefault(key, default)

kv.get(key="some key"[, default="newer data"])

returns value from deta.get(key) or update it by default if deta.get() returned None

incr, decr

based on Deta.Base.Util.incremental()

kv.incr(key="counter"[, quantity=1])

returns incremented value for key. if detabase have not specific key, creates it and set value=quantity

query

kv.query(param=criteria, limit=1000, last=None) -> Dict

keys

kv.keys(param=None) -> List

return list(key)

Table Struct

field description
key hash(key)
path origin key, hidden field
value data

News

Base currently supports maximum 16 digit numbers (integers and floating points), please store larger numbers as a string.

  • @classmethod query() -> dict by rules. you can search key(s) like a other regular fields

  • read() used query() and replaced all data in current object

    • v0.1.20 methods implementation exchanged incr2 <--> incr
  • bug detected: Deta.Base.Util.incremental() doesn't work with bigint

  • v0.1.18 setup repaired

  • v0.1.17 hotfix

  • v0.1.16 query(), keys()

  • v0.1.15 rename()

  • v0.1.13 backward compatibility broken

  • v0.1.12 incr() rewritten with Deta.Base.Util.incremental()

  • v0.1.11 incr(key: str, quantity=1), decr(key: str, quantity=1): return incr(key, -quantity)

  • v0.1.8 get() fix

  • get(key, default)

  • save()

License

  • It's opensource and free software, see the LICENSE for more details

similar projects

TODO

  • keys() get keys list
  • save() refactor
  • set, get, del
  • rename(key, new_key)
  • query() return dict
  • TTL
  • incr(), decr()
  • get(key)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

kv_deta-0.1.22a0-py3-none-any.whl (17.1 kB view hashes)

Uploaded Python 3

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