72 lines
1.4 KiB
Python
72 lines
1.4 KiB
Python
# standard imports
|
|
import os
|
|
|
|
|
|
class SimpleFileStore:
|
|
|
|
def __init__(self, path):
|
|
self.__path = path
|
|
os.makedirs(self.__path, exist_ok=True)
|
|
|
|
|
|
def add(self, k, contents=None):
|
|
fp = os.path.join(self.__path, k)
|
|
if contents == None:
|
|
contents = ''
|
|
|
|
f = open(fp, 'w')
|
|
f.write(contents)
|
|
f.close()
|
|
|
|
|
|
def remove(self, k):
|
|
fp = os.path.join(self.__path, k)
|
|
os.unlink(fp)
|
|
|
|
|
|
def get(self, k):
|
|
fp = os.path.join(self.__path, k)
|
|
f = open(fp, 'r')
|
|
r = f.read()
|
|
f.close()
|
|
return r
|
|
|
|
|
|
def list(self):
|
|
files = []
|
|
for p in os.listdir(self.__path):
|
|
fp = os.path.join(self.__path, p)
|
|
f = open(fp, 'r')
|
|
r = f.read()
|
|
f.close()
|
|
if len(r) == 0:
|
|
r = None
|
|
files.append((p, r,))
|
|
return files
|
|
|
|
|
|
def path(self, key=None):
|
|
if key == None:
|
|
return self.__path
|
|
return os.path.join(self.__path, key)
|
|
|
|
|
|
def replace(self, key, contents):
|
|
fp = os.path.join(self.__path, key)
|
|
os.stat(fp)
|
|
f = open(fp, 'w')
|
|
r = f.write(contents)
|
|
f.close()
|
|
|
|
|
|
class SimpleFileStoreFactory:
|
|
|
|
def __init__(self, path):
|
|
self.__path = path
|
|
|
|
|
|
def add(self, k):
|
|
k = str(k)
|
|
store_path = os.path.join(self.__path, k)
|
|
return SimpleFileStore(store_path)
|