From: Ira W. Snyder Date: Mon, 25 Dec 2006 01:39:24 +0000 (-0800) Subject: [RARSLAVE] Add PAR2Set class X-Git-Tag: v2.0.0~61 X-Git-Url: https://www.irasnyder.com/gitweb/?p=rarslave2.git;a=commitdiff_plain;h=61bead019809659b0a98f2309e19b5459139659a [RARSLAVE] Add PAR2Set class Add the PAR2Set class, which is able to tell whether a parset is the same as another set. Signed-off-by: Ira W. Snyder --- diff --git a/rarslave.py b/rarslave.py index 789452e..fab1f69 100644 --- a/rarslave.py +++ b/rarslave.py @@ -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 ()