summaryrefslogtreecommitdiff
path: root/passlib/apache.py
diff options
context:
space:
mode:
authorEli Collins <elic@assurancetechnologies.com>2011-07-27 12:05:54 -0400
committerEli Collins <elic@assurancetechnologies.com>2011-07-27 12:05:54 -0400
commitcfe7263879934f302322d03d310fb1edcfdf77dc (patch)
treeb8353430a744f3f55bbfe32f66d49783f7c1c018 /passlib/apache.py
parentfb0750de1f7b52adb0dc0aa7227300d358a69108 (diff)
downloadpasslib-cfe7263879934f302322d03d310fb1edcfdf77dc.tar.gz
removed duplicate code inside passlib.apache
Diffstat (limited to 'passlib/apache.py')
-rw-r--r--passlib/apache.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/passlib/apache.py b/passlib/apache.py
index 0069ef3..01c9e8f 100644
--- a/passlib/apache.py
+++ b/passlib/apache.py
@@ -56,6 +56,8 @@ class _CommonFile(object):
self._entry_order = []
self._entry_map = {}
+ #TODO: load_string ?
+
def load(self, force=True):
"""load entries from file
@@ -94,25 +96,25 @@ class _CommonFile(object):
#subclass: _parse_line(line) -> (key, hash)
- def save(self):
- "save entries to file"
- if not self.path:
- raise RuntimeError("no save path specified")
+ def _iter_lines(self):
+ "iterator yielding lines of database"
rl = self._render_line
entry_order = self._entry_order
entry_map = self._entry_map
assert len(entry_order) == len(entry_map), "internal error in entry list"
+ return (rl(key, entry_map[key]) for key in entry_order)
+
+ def save(self):
+ "save entries to file"
+ if not self.path:
+ raise RuntimeError("no save path specified")
with open(self.path, "wb") as fh:
- fh.writelines(rl(key, entry_map[key]) for key in entry_order)
+ fh.writelines(self._iter_lines())
self.mtime = os.path.getmtime(self.path)
def to_string(self):
"export whole database as a byte string"
- rl = self._render_line
- entry_order = self._entry_order
- entry_map = self._entry_map
- assert len(entry_order) == len(entry_map), "internal error in entry list"
- return bjoin(rl(key, entry_map[key]) for key in entry_order)
+ return bjoin(self._iter_lines())
#subclass: _render_line(entry) -> line