1 import os, sys, tempfile
5 type_patterns = cumulus.store.type_patterns
7 class FileStore(cumulus.store.Store):
8 def __init__(self, url, **kw):
9 # if constructor isn't called via factory interpret url as filename
10 if not hasattr (self, 'path'):
12 self.prefix = self.path.rstrip("/")
14 def _get_path(self, type, name):
15 return "%s/%s" % (self.prefix, name)
18 files = os.listdir(self.prefix)
19 return (f for f in files if type_patterns[type].match(f))
21 def get(self, type, name):
22 k = self._get_path(type, name)
25 def put(self, type, name, fp):
26 k = self._get_path(type, name)
33 def delete(self, type, name):
34 k = self._get_path(type, name)
37 def stat(self, type, name):
39 stat = os.stat(self._get_path(type, name))
40 return {'size': stat.st_size}
42 raise cumulus.store.NotFoundError, (type, name)