From 92abe81a0d72dc4e12eb4702e9c1a5241a924c59 Mon Sep 17 00:00:00 2001 From: hut Date: Mon, 23 Nov 2009 22:26:35 +0100 Subject: added the ability to freeze/clone directory objects --- code/directory.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'code/directory.py') diff --git a/code/directory.py b/code/directory.py index 4cb9fd72..d8855432 100644 --- a/code/directory.py +++ b/code/directory.py @@ -1,3 +1,4 @@ +class FrozenException(Exception): pass class Directory(): def __init__(self, path): @@ -8,8 +9,11 @@ class Directory(): self.mtime = None self.exists = True + self.frozen = False + def load_files(self): import os + if self.frozen: raise FrozenException() try: self.files = os.listdir(self.path) self.exists = True @@ -18,6 +22,17 @@ class Directory(): self.exists = False self.files_loaded = True + def clone(self): + clone = Directory(self.path) + for key in iter(self.__dict__): + clone.__dict__[key] = self.__dict__[key] + return clone + + def frozenClone(self): + clone = self.clone() + clone.frozen = True + return clone + def __len__(self): return len(self.files) -- cgit 1.4.1-2-gfad0