示例#1
0
 def handle(self, dirname):
     stats = {'num_processed': 0, 'num_skipped': 0, 'num_invalid': 0}
     image_dir, filenames = self._get_image_files(dirname)
     if image_dir:
         for filename in filenames:
             try:
                 lookup_value = self._get_lookup_value_from_filename(
                     filename)
                 self._process_image(image_dir, filename, lookup_value)
                 stats['num_processed'] += 1
             except Product.MultipleObjectsReturned:
                 self.logger.warning(
                     "Multiple products matching %s='%s', skipping" %
                     (self._field, lookup_value))
                 stats['num_skipped'] += 1
             except Product.DoesNotExist:
                 self.logger.warning("No item matching %s='%s'" %
                                     (self._field, lookup_value))
                 stats['num_skipped'] += 1
             except IdenticalImageError:
                 self.logger.warning(
                     " - Identical image already exists for %s='%s', skipping"
                     % (self._field, lookup_value))
                 stats['num_skipped'] += 1
             except IOError, e:
                 raise ImageImportError(
                     _('%(filename)s is not a valid image (%(error)s)') % {
                         'filename': filename,
                         'error': e
                     })
                 stats['num_invalid'] += 1
             except FieldError, e:
                 raise ImageImportError(e)
                 self._process_image(image_dir, filename)
示例#2
0
 def handle(self, dirname):
     stats = {
         'num_processed': 0,
         'num_skipped': 0,
         'num_invalid': 0}
     image_dir, filenames = self._get_image_files(dirname)
     if image_dir:
         for filename in filenames:
             try:
                 lookup_value \
                     = self._get_lookup_value_from_filename(filename)
                 self._process_image(image_dir, filename, lookup_value)
                 stats['num_processed'] += 1
             except Product.MultipleObjectsReturned:
                 self.logger.warning("Multiple products matching %s='%s',"
                                     " skipping"
                                     % (self._field, lookup_value))
                 stats['num_skipped'] += 1
             except Product.DoesNotExist:
                 self.logger.warning("No item matching %s='%s'"
                                     % (self._field, lookup_value))
                 stats['num_skipped'] += 1
             except IdenticalImageError:
                 self.logger.warning("Identical image already exists for"
                                     " %s='%s', skipping"
                                     % (self._field, lookup_value))
                 stats['num_skipped'] += 1
             except IOError as e:
                 stats['num_invalid'] += 1
                 raise ImageImportError(_('%(filename)s is not a valid'
                                          ' image (%(error)s)')
                                        % {'filename': filename,
                                           'error': e})
             except FieldError as e:
                 raise ImageImportError(e)
         if image_dir != dirname:
             shutil.rmtree(image_dir)
     else:
         raise InvalidImageArchive(_('%s is not a valid image archive')
                                   % dirname)
     self.logger.info("Finished image import: %(num_processed)d imported,"
                      " %(num_skipped)d skipped" % stats)