def handle(self, *args, **options): generators = generator_registry.get_ids() generator_ids = [ __val.strip() for __val in str(options['generator_ids']).split(',') if __val ] # Sanity checks diff = list(set(generator_ids) - set(list(generators))) if diff: raise CommandError( "The following generator ids are not registered {}".format( ', '.join(diff) ) ) for generator_id in generators: self.stdout.write('Validating generator: %s\n' % generator_id) for image_file in cachefile_registry.get(generator_id): if image_file.name: self.stdout.write(' %s\n' % image_file.name) try: image_file.generate() except MissingSource as err: self.stdout.write('\t No source associated with\n') except Exception as err: self.stdout.write('\tFailed %s\n' % (err))
def test_registered_specs(self): self.assertEqual(list(generator_registry.get_ids()), [ "imagekit:thumbnail", "pinax_images:image:thumbnail", "pinax_images:image:list_thumbnail", "pinax_images:image:small_thumbnail", "pinax_images:image:medium_thumbnail" ])
def handle(self, *args, **options): generators = generator_registry.get_ids() if args: patterns = self.compile_patterns(args) generators = (id for id in generators if any(p.match(id) for p in patterns)) for generator_id in generators: self.stdout.write('Validating generator: %s\n' % generator_id) generate_thumbs_by_id_task.delay(generator_id)
def handle(self, *args, **options): generators = generator_registry.get_ids() if args: patterns = self.compile_patterns(args) generators = (id for id in generators if any( p.match(id) for p in patterns)) for generator_id in generators: self.stdout.write('Validating generator: %s\n' % generator_id) generate_thumbs_by_id_task.delay(generator_id)
def handle(self, *args, **options): generators = generator_registry.get_ids() if args: patterns = self.compile_patterns(args) generators = (id for id in generators if any( p.match(id) for p in patterns)) for generator_id in generators: self.stdout.write('Validating generator: %s\n' % generator_id) try: for image_file in cachefile_registry.get(generator_id): if image_file.name: self.stdout.write(' %s\n' % image_file.name) try: image_file.generate() except Exception as err: self.stdout.write('\tFailed %s\n' % (err)) except: items = cachefile_registry._cachefiles.items() for k, v in items: if generator_id in v: #k is SourceGroupFilesGenerator model_class = k.source_group.model_class image_field = k.source_group.image_field all_objects = model_class.objects.all() item_count = len(all_objects) count = 0 for instance in all_objects: count += 1 print try: source = getattr(instance, image_field) specs = spec_data_field_hash[generator_id] spec = generator_registry.get(generator_id, source=source, specs=specs) file = ImageCacheFile(spec) self.stdout.write(' [%s of %s] - %s\n' % (count, item_count, file)) call_strategy_method(file, 'on_source_saved') except Exception: self.stdout.write('ERROR: %s\n' % (traceback.format_exc()))
def handle(self, *args, **options): generators = generator_registry.get_ids() if args: patterns = self.compile_patterns(args) generators = (id for id in generators if any(p.match(id) for p in patterns)) for generator_id in generators: self.stdout.write('Validating generator: %s\n' % generator_id) try: for image_file in cachefile_registry.get(generator_id): if image_file.name: self.stdout.write(' %s\n' % image_file.name) try: image_file.generate() except Exception as err: self.stdout.write('\tFailed %s\n' % (err)) except: items = cachefile_registry._cachefiles.items() for k, v in items: if generator_id in v: #k is SourceGroupFilesGenerator model_class = k.source_group.model_class image_field = k.source_group.image_field all_objects = model_class.objects.all() item_count = len(all_objects) count = 0 for instance in all_objects: count += 1 print try: source = getattr(instance, image_field) specs = spec_data_field_hash[generator_id] spec = generator_registry.get(generator_id, source=source, specs=specs) file = ImageCacheFile(spec) self.stdout.write(' [%s of %s] - %s\n' % (count, item_count, file)) call_strategy_method(file, 'on_source_saved') except Exception, err: self.stdout.write('ERROR: %s\n' % (traceback.format_exc()))
def ensure_thumbs_exist_task(ct_id, pk): ct = ContentType.objects.get_for_id(ct_id) obj = ct.model_class().objects.get(pk=pk) visited = set() for gen_id in generator_registry.get_ids(): split = gen_id.split(':') if len(split) == 3: f = split[2] if f not in visited: visited.add(f) if hasattr(obj, f): file = getattr(obj, f) try: file.generate(force=False) #logger.info('%s: %s' % (f, file.url)) except Exception as exc: logger.info("Error generating thumb: %s" % exc)