@@ -248,7 +248,7 @@ def clear_cache(func):
248
248
"""
249
249
def clear_cache_if_not_raised (self ,* args ,** kwargs ):
250
250
rval = func (self ,* args ,** kwargs )
251
- del ( self .entries )
251
+ self ._delete_entries_cache ( )
252
252
return rval
253
253
254
254
# END wrapper method
@@ -345,6 +345,15 @@ def path(self):
345
345
"""
346
346
return self ._file_path
347
347
348
+ def _delete_entries_cache (self ):
349
+ """Safely clear the entries cache so it can be recreated"""
350
+ try :
351
+ del (self .entries )
352
+ except AttributeError :
353
+ # fails in python 2.6.5 with this exception
354
+ pass
355
+ # END exception handling
356
+
348
357
@classmethod
349
358
def _read_entry (cls ,stream ):
350
359
"""Return: One entry of the given stream"""
@@ -774,7 +783,7 @@ def update(self):
774
783
Returns
775
784
self
776
785
"""
777
- del ( self .entries )
786
+ self ._delete_entries_cache ()
778
787
# allows to lazily reread on demand
779
788
return self
780
789
@@ -937,7 +946,7 @@ def add(self, items, force=True, fprogress=lambda *args: None):
937
946
self ._flush_stdin_and_wait (proc ,ignore_stdout = True )# ignore stdout
938
947
939
948
# force rereading our entries once it is all done
940
- del ( self .entries )
949
+ self ._delete_entries_cache ()
941
950
entries_added .extend (self .entries [(f ,0 )]for f in added_files )
942
951
# END path handling
943
952