Will 29ce2401ca [V3 Config] Fix unloading and implement singleton driver (#1458)
* Add the identifier as an initialization parameter

* Remove config object singleton and opt for a shared JSON datastore

* Fix bot unloading to deal with memory leaks

* Fix tests

* Fix clear all bug
2018-04-02 16:47:27 -08:00

61 lines
1.5 KiB
Python

__all__ = ["BaseDriver"]
class BaseDriver:
def __init__(self, cog_name, identifier):
self.cog_name = cog_name
self.unique_cog_identifier = identifier
async def get(self, *identifiers: str):
"""
Finds the value indicate by the given identifiers.
Parameters
----------
identifiers
A list of identifiers that correspond to nested dict accesses.
Returns
-------
Any
Stored value.
"""
raise NotImplementedError
def get_config_details(self):
"""
Asks users for additional configuration information necessary
to use this config driver.
Returns
-------
Dict of configuration details.
"""
raise NotImplementedError
async def set(self, *identifiers: str, value=None):
"""
Sets the value of the key indicated by the given identifiers.
Parameters
----------
identifiers
A list of identifiers that correspond to nested dict accesses.
value
Any JSON serializable python object.
"""
raise NotImplementedError
async def clear(self, *identifiers: str):
"""
Clears out the value specified by the given identifiers.
Equivalent to using ``del`` on a dict.
Parameters
----------
identifiers
A list of identifiers that correspond to nested dict accesses.
"""
raise NotImplementedError