[RARSLAVE] Add PAR2Set class
authorIra W. Snyder <devel@irasnyder.com>
Mon, 25 Dec 2006 01:39:24 +0000 (17:39 -0800)
committerIra W. Snyder <devel@irasnyder.com>
Mon, 25 Dec 2006 01:39:24 +0000 (17:39 -0800)
Add the PAR2Set class, which is able to tell whether a parset is the same
as another set.

Signed-off-by: Ira W. Snyder <devel@irasnyder.com>
rarslave.py

index 789452e..fab1f69 100644 (file)
@@ -292,6 +292,51 @@ def printlist (li):
        for f in li:
                print f
 
+class PAR2Set (object):
+
+       dir = None
+       file = None
+       likely_files = []
+
+       def __init__ (self, dir, file):
+               assert os.path.isdir (dir)
+               assert os.path.isfile (os.path.join (dir, file))
+
+               self.dir = dir
+               self.file = file
+
+               basename = get_basename (file)
+               self.likely_files = find_likely_files (basename, dir)
+
+       def __list_eq (self, l1, l2):
+
+               if len(l1) != len(l2):
+                       return False
+
+               for e in l1:
+                       if e not in l2:
+                               return False
+
+               return True
+
+       def __eq__ (self, rhs):
+               return self.__list_eq (self.likely_files, rhs.likely_files)
+
+def generate_all_parsets (dir):
+       # Generate all parsets in the given directory.
+
+       assert os.path.isdir (dir) # Directory MUST be valid
+
+       parsets = []
+       p2files = find_all_par2_files (dir)
+
+       for f in p2files:
+               p = PAR2Set (dir, f)
+               if p not in parsets:
+                       parsets.append (p)
+
+       return parsets
+
 def main ():
        # Setup stage
        print '\nSETUP STAGE'
@@ -356,6 +401,12 @@ def main ():
        print '\nDELETEION STAGE'
        printlist ( find_deleteable_files (files) )
 
+       #### TESTING ####
+       parsets = generate_all_parsets ('test_material/02/')
+       print '\n\nPARSETS LEN:', len(parsets)
+       for p in parsets:
+               print p.likely_files[0]
+
 
 if __name__ == '__main__':
        main ()