Add path query to persist
This commit is contained in:
parent
92d1ec42ed
commit
02be210eb4
@ -1,3 +1,5 @@
|
|||||||
|
- 0.0.12
|
||||||
|
* Add path method
|
||||||
- 0.0.11
|
- 0.0.11
|
||||||
* Add sync from persisted store
|
* Add sync from persisted store
|
||||||
- 0.0.10
|
- 0.0.10
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
name = shep
|
name = shep
|
||||||
version = 0.0.11
|
version = 0.0.12
|
||||||
description = Multi-state key stores using bit masks
|
description = Multi-state key stores using bit masks
|
||||||
author = Louis Holbrook
|
author = Louis Holbrook
|
||||||
author_email = dev@holbrook.no
|
author_email = dev@holbrook.no
|
||||||
|
@ -90,3 +90,9 @@ class PersistedState(State):
|
|||||||
super(PersistedState, self).put(o[0], state=state, contents=o[1])
|
super(PersistedState, self).put(o[0], state=state, contents=o[1])
|
||||||
except StateItemExists:
|
except StateItemExists:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def path(self, state, key=None):
|
||||||
|
k = self.name(state)
|
||||||
|
|
||||||
|
return self.__stores[k].path(key=key)
|
||||||
|
@ -5,12 +5,12 @@ import os
|
|||||||
class SimpleFileStore:
|
class SimpleFileStore:
|
||||||
|
|
||||||
def __init__(self, path):
|
def __init__(self, path):
|
||||||
self.path = path
|
self.__path = path
|
||||||
os.makedirs(self.path, exist_ok=True)
|
os.makedirs(self.__path, exist_ok=True)
|
||||||
|
|
||||||
|
|
||||||
def add(self, k, contents=None, force=False):
|
def add(self, k, contents=None, force=False):
|
||||||
fp = os.path.join(self.path, k)
|
fp = os.path.join(self.__path, k)
|
||||||
have_file = False
|
have_file = False
|
||||||
try:
|
try:
|
||||||
os.stat(fp)
|
os.stat(fp)
|
||||||
@ -32,12 +32,12 @@ class SimpleFileStore:
|
|||||||
|
|
||||||
|
|
||||||
def remove(self, k):
|
def remove(self, k):
|
||||||
fp = os.path.join(self.path, k)
|
fp = os.path.join(self.__path, k)
|
||||||
os.unlink(fp)
|
os.unlink(fp)
|
||||||
|
|
||||||
|
|
||||||
def get(self, k):
|
def get(self, k):
|
||||||
fp = os.path.join(self.path, k)
|
fp = os.path.join(self.__path, k)
|
||||||
f = open(fp, 'r')
|
f = open(fp, 'r')
|
||||||
r = f.read()
|
r = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
@ -46,8 +46,8 @@ class SimpleFileStore:
|
|||||||
|
|
||||||
def list(self):
|
def list(self):
|
||||||
files = []
|
files = []
|
||||||
for p in os.listdir(self.path):
|
for p in os.listdir(self.__path):
|
||||||
fp = os.path.join(self.path, p)
|
fp = os.path.join(self.__path, p)
|
||||||
f = open(fp, 'r')
|
f = open(fp, 'r')
|
||||||
r = f.read()
|
r = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
@ -57,13 +57,19 @@ class SimpleFileStore:
|
|||||||
return files
|
return files
|
||||||
|
|
||||||
|
|
||||||
|
def path(self, key=None):
|
||||||
|
if key == None:
|
||||||
|
return self.__path
|
||||||
|
return os.path.join(self.__path, key)
|
||||||
|
|
||||||
|
|
||||||
class SimpleFileStoreFactory:
|
class SimpleFileStoreFactory:
|
||||||
|
|
||||||
def __init__(self, path):
|
def __init__(self, path):
|
||||||
self.path = path
|
self.__path = path
|
||||||
|
|
||||||
|
|
||||||
def add(self, k):
|
def add(self, k):
|
||||||
k = str(k)
|
k = str(k)
|
||||||
store_path = os.path.join(self.path, k)
|
store_path = os.path.join(self.__path, k)
|
||||||
return SimpleFileStore(store_path)
|
return SimpleFileStore(store_path)
|
||||||
|
@ -135,6 +135,16 @@ class TestStateReport(unittest.TestCase):
|
|||||||
self.states.sync(self.states.FOO)
|
self.states.sync(self.states.FOO)
|
||||||
self.assertEqual(self.states.get('yyy'), None)
|
self.assertEqual(self.states.get('yyy'), None)
|
||||||
self.assertEqual(self.states.get('zzzz'), 'xyzzy')
|
self.assertEqual(self.states.get('zzzz'), 'xyzzy')
|
||||||
|
|
||||||
|
|
||||||
|
def test_path(self):
|
||||||
|
self.states.put('yyy', state=self.states.FOO)
|
||||||
|
|
||||||
|
d = os.path.join(self.d, 'FOO')
|
||||||
|
self.assertEqual(self.states.path(self.states.FOO), d)
|
||||||
|
|
||||||
|
d = os.path.join(self.d, 'FOO', 'BAR')
|
||||||
|
self.assertEqual(self.states.path(self.states.FOO, key='BAR'), d)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
Reference in New Issue
Block a user