def get_thumbnailer(obj, relative_name=None):
 if hasattr(obj, 'easy_thumbnails_thumbnailer'):
  return obj.easy_thumbnails_thumbnailer
 if isinstance(obj, Thumbnailer):
  return obj
 elif isinstance(obj, FieldFile):
  if (not relative_name):
   relative_name = obj.name
  return ThumbnailerFieldFile(obj.instance, obj.field, relative_name)
 source_storage = None
 if isinstance(obj, six.string_types):
  relative_name = obj
  obj = None
 if (not relative_name):
  raise ValueError('If object is not a FieldFile or Thumbnailer instance, the relative name must be provided')
 if isinstance(obj, File):
  obj = obj.file
 if (isinstance(obj, Storage) or (obj == default_storage)):
  source_storage = obj
  obj = None
 return Thumbnailer(file=obj, name=relative_name, source_storage=source_storage, remote_source=(obj is not None))

def get_thumbnailer ( obj , relative_name = None ) : if hasattr ( obj , 'easy_thumbnails_thumbnailer' ) : return obj . easy_thumbnails_thumbnailer if isinstance ( obj , Thumbnailer ) : return obj elif isinstance ( obj , FieldFile ) : if ( not relative_name ) : relative_name = obj . name return ThumbnailerFieldFile ( obj . instance , obj . field , relative_name ) source_storage = None if isinstance ( obj , six . string_types ) : relative_name = obj obj = None if ( not relative_name ) : raise ValueError ( 'If object is not a FieldFile or Thumbnailer instance, the relative name must be provided' ) if isinstance ( obj , File ) : obj = obj . file if ( isinstance ( obj , Storage ) or ( obj == default_storage ) ) : source_storage = obj obj = None return Thumbnailer ( file = obj , name = relative_name , source_storage = source_storage , remote_source = ( obj is not None ) )
get a :class:thumbnailer for a source file .