def __call__(self, files, path='/'): num_procs = utils.get_num_procs() chunks = multiprocessing.Manager().list() procs = [multiprocessing.Process( target=lambda *files: chunks.extend( self._get_chunks(files=files, path=path)), args=files[num::num_procs], ) for num in range(num_procs)] map(multiprocessing.Process.start, procs) map(multiprocessing.Process.join, procs) return _result(list(chunks))
def generate(self, gen_dir='html', style_sheet_file=os.path.join(this_dir, 'style.css'), index_tmpl_file=os.path.join(this_dir, 'index.tmpl'), ): index_tmpl = Template(index_tmpl_file) num_procs = utils.get_num_procs() subdirs = sorted(self._result.get_subdirs()) #generate html for each subdirectory procs = [multiprocessing.Process( target=lambda *subdirs: self._generate_subdirs( subdirs=subdirs, gen_dir=gen_dir, template=index_tmpl), args=subdirs[num::num_procs], ) for num in range(num_procs)] map(multiprocessing.Process.start, procs) map(multiprocessing.Process.join, procs) #copy in style sheet css_file = os.path.abspath(os.path.join(gen_dir, 'style.css')) print "Generating:", css_file open(css_file, 'w').write(Template(style_sheet_file).parse())