Improve docstrings for key-value store
This commit is contained in:
parent
4d4f4bf23e
commit
ac817b7808
@ -38,11 +38,17 @@ class _KeyValueStoreModel(ModelBase):
|
|||||||
|
|
||||||
|
|
||||||
class KeyValueStore():
|
class KeyValueStore():
|
||||||
|
"""
|
||||||
|
Generic bot-wide, persistent key-value store
|
||||||
|
Can be used to store generic values, e.g. very first bot startup time.
|
||||||
|
Supports the types str, datetime, float and int.
|
||||||
|
"""
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_value(key: str) -> Optional[ValueTypes]:
|
def get_value(key: str) -> Optional[ValueTypes]:
|
||||||
"""
|
"""
|
||||||
Get the value for the given key.
|
Get the value for the given key.
|
||||||
|
:param key: Key to get the value for
|
||||||
"""
|
"""
|
||||||
kv = _KeyValueStoreModel.session.query(_KeyValueStoreModel).filter(
|
kv = _KeyValueStoreModel.session.query(_KeyValueStoreModel).filter(
|
||||||
_KeyValueStoreModel.key == key).first()
|
_KeyValueStoreModel.key == key).first()
|
||||||
@ -63,6 +69,8 @@ class KeyValueStore():
|
|||||||
def store_value(key: str, value: ValueTypes) -> None:
|
def store_value(key: str, value: ValueTypes) -> None:
|
||||||
"""
|
"""
|
||||||
Store the given value for the given key.
|
Store the given value for the given key.
|
||||||
|
:param key: Key to store the value for - can be used in get-value to retrieve the key
|
||||||
|
:param value: Value to store - can be str, datetime, float or int
|
||||||
"""
|
"""
|
||||||
kv = _KeyValueStoreModel.session.query(_KeyValueStoreModel).filter(
|
kv = _KeyValueStoreModel.session.query(_KeyValueStoreModel).filter(
|
||||||
_KeyValueStoreModel.key == key).first()
|
_KeyValueStoreModel.key == key).first()
|
||||||
@ -89,6 +97,7 @@ class KeyValueStore():
|
|||||||
def delete_value(key: str) -> None:
|
def delete_value(key: str) -> None:
|
||||||
"""
|
"""
|
||||||
Delete the value for the given key.
|
Delete the value for the given key.
|
||||||
|
:param key: Key to delete the value for
|
||||||
"""
|
"""
|
||||||
kv = _KeyValueStoreModel.session.query(_KeyValueStoreModel).filter(
|
kv = _KeyValueStoreModel.session.query(_KeyValueStoreModel).filter(
|
||||||
_KeyValueStoreModel.key == key).first()
|
_KeyValueStoreModel.key == key).first()
|
||||||
|
@ -32,6 +32,8 @@ def test_key_value_store(time_machine):
|
|||||||
# test deleting
|
# test deleting
|
||||||
KeyValueStore.delete_value("test_float")
|
KeyValueStore.delete_value("test_float")
|
||||||
assert KeyValueStore.get_value("test_float") is None
|
assert KeyValueStore.get_value("test_float") is None
|
||||||
|
# Delete same value again (should not fail)
|
||||||
|
KeyValueStore.delete_value("test_float")
|
||||||
|
|
||||||
with pytest.raises(ValueError, match=r"Unknown value type"):
|
with pytest.raises(ValueError, match=r"Unknown value type"):
|
||||||
KeyValueStore.store_value("test_float", {'some': 'dict'})
|
KeyValueStore.store_value("test_float", {'some': 'dict'})
|
||||||
|
Loading…
Reference in New Issue
Block a user