def funkRunner3(root_img_dir='', single_style='', update=''): import multiprocessing #import Queue import threading import os from glob import glob from magicColorspaceModAspctLoadFaster2 import rename_retouched_file, sort_files_by_values destdir = os.environ.get('DESTDIR', '/mnt/Post_Complete/ImageDrop') print 'Starting Funkrunner2 Pools' ## Get all modules on poython exec path import sys sys.path.append('/usr/local/batchRunScripts/python/jbmodules/image_processing/marketplace_dev') ########## One ########## # # 1A # List of images to run through processing as glob of the root_img_dir #print root_img_dir, ' <-- Rootimgdir FunkR2' if update: root_img_dir = '/mnt/Post_Complete/Complete_Archive/MARKETPLACE' imagesGlob = os.path.join(root_img_dir, '*/999999/*.??[gG]') images = [f for f in glob(imagesGlob) if f is not None] elif single_style: imagesGlob = glob(os.path.join(root_img_dir, '*/*/{0}*.??g'.format(single_style))) + glob(os.path.join(root_img_dir, '*/*/*/{0}*.??g'.format(single_style))) images = [f for f in imagesGlob if f is not None] elif os.environ.get('ROOT_IMG_DIR') or root_img_dir: root_img_dir = os.environ.get('ROOT_IMG_DIR', root_img_dir) imagesGlob = os.path.join(root_img_dir, '*/*/*.??[gG]') images = [f for f in glob(imagesGlob) if f is not None] else: root_img_dir = '/mnt/Post_Complete/Complete_Archive/MARKETPLACE' imagesGlob = os.path.join(root_img_dir, '*/*/*.??[gG]') images = [f for f in glob(imagesGlob) if f is not None] print imagesGlob, "GLOBB11" # 1B # Rename files using Multiproc pool poolRename = multiprocessing.Pool(8) while len(images) == 0: print len(images), ' <-- Length of the Images to Rename,Process etc. Now the Renamer' break resrename = poolRename.map(rename_retouched_file, images) poolRename.close() poolRename.join() print 'Images Renamed' ## replace the glob pattern for single styles after the rename #imagesGlob = imagesGlob.replace('_[1-6]', '*') print imagesGlob, "GLOBB22" ########## Two ########## # # 2 # Extract image pixel data for enhancements. As list of tuples, [<url>, {rgbdata} ].. ithink if not single_style: imagesGlob = [ f for f in glob(os.path.join(root_img_dir, '*/*/*.??[gG]')) + glob(os.path.join(root_img_dir, '*/*/*/*.??[gG]')) if f is not None ] img_list = [f for f in imagesGlob if f is not None] print type(img_list), '\tLen ImageList preThreaded', destdir img_dict = run_threaded_imgdict(argslist=(img_list,)) print type(img_dict), '\tLen ImageDict postThreaded', destdir else: imagesGlob = glob(os.path.join(root_img_dir, '*/*/{0}*.??g'.format(single_style))) + glob(os.path.join(root_img_dir, '*/*/*/{0}*.??g'.format(single_style))) img_list = [f for f in imagesGlob if f is not None] img_dict = run_threaded_imgdict(argslist=(img_list,)) ########## Three ########## # # 3A # Init Task and Results Queues from ConsumerManager import Starter s = Starter() s.img_dict = img_dict s.destdir = destdir s.start() # # if single_style and len(imagesGlob) <= 7: # settest = list(set([ f.split('/')[:9] for f in glob(imagesGlob) if f is not None ] )) # print settest, len(settest), ' <=====END FLAG TEST' # for img in imagesGlob: # os.remove(img) # print 'Deleted {0} after uploading'.format(img) # else: print 'DUNNNN --> multproc2', single_style, len(imagesGlob), '<-- LENGlob' if img_dict and type(img_dict) == dict: return img_dict else: return img_list
def funkRunner3(root_img_dir=None, single_flag=None): import multiprocessing #import Queue import threading import glob, os #from os import os.path import jbmodules from jbmodules import image_processing from jbmodules.image_processing.marketplace.magicColorspaceModAspctLoadFaster2 import rename_retouched_file, sort_files_by_values destdir = '/mnt/Post_Complete/ImageDrop' print 'Starting Funkrunner2 Pools' ## Get all modules on poython exec path import sys sys.path.append('/usr/local/batchRunScripts/python/jbmodules/image_processing/magick_tweaks') sys.path.append('/usr/local/batchRunScripts/mozu') sys.path.append('/usr/local/batchRunScripts/python') sys.path.append('/usr/local/batchRunScripts/python/jbmodules') sys.path.append('/usr/local/batchRunScripts/python/jbmodules/mongo_tools') sys.path.append('/usr/local/batchRunScripts/python/jbmodules/image_processing') sys.path.append('/usr/local/batchRunScripts/python/jbmodules/image_processing/marketplace') ########## One ########## # # 1A # List of images to run through processing as glob of the root_img_dir #print root_img_dir, ' <-- Rootimgdir FunkR2' if root_img_dir == '/mnt/Post_Complete/Complete_Archive/MARKETPLACE' or root_img_dir is None: if not single_flag: imagesGlob = os.path.join(root_img_dir, '*/*/*.??[gG]') else: imagesGlob = os.path.join(root_img_dir, '*/*/*/{0}_[1-6].??[gG]'.format(single_flag)) else: imagesGlob = os.path.join(root_img_dir, '*.??[gG]') print imagesGlob, "GLOBB" # 1B # Rename files using Multiproc pool poolRename = multiprocessing.Pool(8) images = [ f for f in glob.glob(imagesGlob) if f is not None ] while len(images) == 0: print len(images), ' <-- Length of the Images to Rename,Process etc. Now the Renamer' break resrename = poolRename.map(rename_retouched_file, images) poolRename.close() poolRename.join() print 'Images Renamed' ########## Two ########## # # 2 # Extract image pixel data for enhancements. As list of tuples, [<url>, {rgbdata} ].. ithink img_list = [ f for f in glob.glob(imagesGlob) if f is not None ] print type(img_list), '\tLen ImageList preThreaded', destdir img_dict = run_threaded_imgdict(argslist=(img_list,)) print type(img_dict), '\tLen ImageDict postThreaded', destdir ########## Three ########## # # 3A # Init Task and Results Queues from ConsumerManager import Starter s = Starter() s.img_dict = img_dict s.destdir = destdir s.start() if single_flag and len(imagesGlob) <= 7: settest = list(set([ f.split('/')[:9] for f in glob.glob(imagesGlob) if f is not None ] )) print settest, len(settest), ' <=====END FLAG TEST' for img in imagesGlob: os.remove(img) print 'Deleted {0} after uploading'.format(img) else: print 'multproc2', single_flag, len(imagesGlob), '<-- LENGlob'