本文整理汇总了Python中thumbor.utils.logger.debug函数的典型用法代码示例。如果您正苦于以下问题:Python debug函数的具体用法?Python debug怎么用?Python debug使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了debug函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: put
def put(self, bytes):
'''Save to redis
:param bytes: Bytes to write to the storage.
:return: Redis key for the current url
:rettype: string
'''
key = self.get_key_from_request()
result_ttl = self.get_max_age()
logger.debug(
"[REDIS_RESULT_STORAGE] putting `{key}` with ttl `{ttl}`".format(
key=key,
ttl=result_ttl
)
)
with (yield Storage.pool.connected_client()) as client:
if result_ttl > 0:
yield client.call('SETEX', key, result_ttl, bytes)
else:
yield client.call('SET', key, bytes)
raise tornado.gen.Return(key)
开发者ID:thumbor-community,项目名称:redis-tornado,代码行数:25,代码来源:redis_tornado_result_storage.py
示例2: srgb
def srgb(self):
try:
if not isinstance(self.engine, PILEngine):
logger.warn('Could not perform profileToProfile conversion: engine is not PIL engine')
return
if (ImageCms is None):
logger.warn('ImageCms is not installed. Could not perform profileToProfile conversion')
return
image = self.engine.image
embedded_profile = image.info.get('icc_profile')
if not embedded_profile:
logger.debug('Image does not have embedded profile. Assuming already in sRGB')
return
embedded_profile = BytesIO(embedded_profile)
srgb_profile = BytesIO(tiny_srgb)
output_mode = 'RGBA' if 'A' in image.mode else 'RGB'
image = ImageCms.profileToProfile(image, embedded_profile, srgb_profile, renderingIntent=0,
outputMode=output_mode)
self.engine.image = image
self.engine.icc_profile = image.info.get('icc_profile')
except Exception as err:
logger.exception(err)
开发者ID:PopSugar,项目名称:thumbor-plugins,代码行数:29,代码来源:srgb.py
示例3: execute_image_operations
def execute_image_operations(self):
self.context.request.quality = None
req = self.context.request
conf = self.context.config
should_store = self.context.config.RESULT_STORAGE_STORES_UNSAFE or not self.context.request.unsafe
if self.context.modules.result_storage and should_store:
start = datetime.datetime.now()
result = yield gen.maybe_future(self.context.modules.result_storage.get())
finish = datetime.datetime.now()
self.context.metrics.timing('result_storage.incoming_time', (finish - start).total_seconds() * 1000)
if result is None:
self.context.metrics.incr('result_storage.miss')
else:
self.context.metrics.incr('result_storage.hit')
self.context.metrics.incr('result_storage.bytes_read', len(result))
logger.debug('[RESULT_STORAGE] IMAGE FOUND: %s' % req.url)
self.finish_request(self.context, result)
return
if conf.MAX_WIDTH and (not isinstance(req.width, basestring)) and req.width > conf.MAX_WIDTH:
req.width = conf.MAX_WIDTH
if conf.MAX_HEIGHT and (not isinstance(req.height, basestring)) and req.height > conf.MAX_HEIGHT:
req.height = conf.MAX_HEIGHT
req.meta_callback = conf.META_CALLBACK_NAME or self.request.arguments.get('callback', [None])[0]
self.filters_runner = self.context.filters_factory.create_instances(self.context, self.context.request.filters)
# Apply all the filters from the PRE_LOAD phase and call get_image() afterwards.
self.filters_runner.apply_filters(thumbor.filters.PHASE_PRE_LOAD, self.get_image)
开发者ID:RealGeeks,项目名称:thumbor,代码行数:35,代码来源:__init__.py
示例4: optimize
def optimize(self, buffer, input_file, output_file):
command = [
self.zopflipng_path,
'-y',
]
if self.context.config.ZOPFLIPNG_COMPRESS_MORE:
command += [
'-m'
]
if self.context.config.ZOPFLIPNG_LOSSY_TRANSPARENT:
command += [
'--lossy_transparent'
]
if self.context.config.ZOPFLIPNG_LOSSY_8BIT:
command += [
'--lossy_8bit'
]
command += [
input_file,
output_file
]
with open(os.devnull) as null:
logger.debug("[ZOPFLIPNG] running: %s" % " ".join(command))
subprocess.call(command, stdin=null, stdout=null)
开发者ID:PopSugar,项目名称:thumbor-plugins,代码行数:29,代码来源:zopflipng.py
示例5: put
def put(self, bytes):
'''Save to redis
:param bytes: Bytes to write to the storage.
:return: Redis key for the current url
:rettype: string
'''
key = self.get_key_from_request()
result_ttl = self.get_max_age()
logger.debug(
"[REDIS_RESULT_STORAGE] putting `{key}` with ttl `{ttl}`".format(
key=key,
ttl=result_ttl
)
)
storage = self.get_storage()
storage.set(key, bytes)
if result_ttl > 0:
storage.expireat(
key,
datetime.now() + timedelta(
seconds=result_ttl
)
)
return key
开发者ID:abaldwin1,项目名称:tc_redis,代码行数:30,代码来源:redis_result_storage.py
示例6: distributed_collage
def distributed_collage(self, callback, orientation, alignment, urls):
logger.debug('filters.distributed_collage: distributed_collage invoked')
self.storage = self.context.modules.storage
self.callback = callback
self.orientation = orientation
self.alignment = alignment
self.urls = urls.split('|')
self.images = {}
total = len(self.urls)
if total > self.MAX_IMAGES:
logger.error('filters.distributed_collage: Too many images to join')
callback()
elif total == 0:
logger.error('filters.distributed_collage: No images to join')
callback()
else:
self.urls = self.urls[:self.MAX_IMAGES]
for url in self.urls:
self.images[url] = Picture(url, self)
# second loop needed to ensure that all images are in self.images
# otherwise, self.on_image_fetch can call the self.assembly()
# without that all images had being loaded
for url in self.urls:
buffer = yield tornado.gen.maybe_future(self.storage.get(url))
pic = self.images[url]
if buffer is not None:
pic.fill_buffer(buffer)
self.on_image_fetch()
else:
pic.request()
开发者ID:gi11es,项目名称:thumbor-debian,代码行数:33,代码来源:distributed_collage.py
示例7: get
def get(self, path):
file_abspath = self.normalize_path(path)
logger.debug('GET ' + path + ' (' + file_abspath + ')')
try:
return self.storage.read(file_abspath, self.storage.stat(file_abspath)[0])
except rados.ObjectNotFound:
return None
开发者ID:ksperis,项目名称:thumbor_ceph,代码行数:7,代码来源:ceph_storage.py
示例8: execute_image_operations
def execute_image_operations(self):
self.context.request.quality = None
req = self.context.request
conf = self.context.config
req.extension = splitext(req.image_url)[-1].lower()
should_store = self.context.config.RESULT_STORAGE_STORES_UNSAFE or not self.context.request.unsafe
if self.context.modules.result_storage and should_store:
result = self.context.modules.result_storage.get()
if result is not None:
mime = BaseEngine.get_mimetype(result)
if mime == '.gif' and self.context.config.USE_GIFSICLE_ENGINE:
self.context.request.engine = GifEngine(self.context)
else:
self.context.request.engine = self.context.modules.engine
logger.debug('[RESULT_STORAGE] IMAGE FOUND: %s' % req.url)
self.finish_request(self.context, result)
return
if conf.MAX_WIDTH and (not isinstance(req.width, basestring)) and req.width > conf.MAX_WIDTH:
req.width = conf.MAX_WIDTH
if conf.MAX_HEIGHT and (not isinstance(req.height, basestring)) and req.height > conf.MAX_HEIGHT:
req.height = conf.MAX_HEIGHT
req.meta_callback = conf.META_CALLBACK_NAME or self.request.arguments.get('callback', [None])[0]
self.filters_runner = self.context.filters_factory.create_instances(self.context, self.context.request.filters)
self.filters_runner.apply_filters(thumbor.filters.PHASE_PRE_LOAD, self.get_image)
开发者ID:SONIFI,项目名称:thumbor,代码行数:31,代码来源:__init__.py
示例9: load_sync
def load_sync(context, url, callback):
# Disable storage of original. These lines are useful if
# you want your Thumbor instance to store all originals persistently
# except video frames.
#
# from thumbor.storages.no_storage import Storage as NoStorage
# context.modules.storage = NoStorage(context)
unquoted_url = unquote(url)
command = BaseWikimediaEngine.wrap_command([
context.config.FFPROBE_PATH,
'-v',
'error',
'-show_entries',
'format=duration',
'-of',
'default=noprint_wrappers=1:nokey=1',
'%s%s' % (uri_scheme, unquoted_url)
], context)
logger.debug('Command: %r' % command)
process = Subprocess(command, stdout=Subprocess.STREAM)
process.set_exit_callback(
partial(
_parse_time_status,
context,
unquoted_url,
callback,
process
)
)
开发者ID:wikimedia,项目名称:thumbor-video-loader,代码行数:33,代码来源:__init__.py
示例10: define_image_type
def define_image_type(self, context, result):
if result is not None:
if isinstance(result, ResultStorageResult):
buffer = result.buffer
else:
buffer = result
image_extension = EXTENSION.get(BaseEngine.get_mimetype(buffer), ".jpg")
else:
image_extension = context.request.format
if image_extension is not None:
image_extension = ".%s" % image_extension
logger.debug("Image format specified as %s." % image_extension)
elif self.is_webp(context):
image_extension = ".webp"
logger.debug("Image format set by AUTO_WEBP as %s." % image_extension)
else:
image_extension = context.request.engine.extension
logger.debug("No image format specified. Retrieving from the image extension: %s." % image_extension)
content_type = CONTENT_TYPE.get(image_extension, CONTENT_TYPE[".jpg"])
if context.request.meta:
context.request.meta_callback = (
context.config.META_CALLBACK_NAME or self.request.arguments.get("callback", [None])[0]
)
content_type = "text/javascript" if context.request.meta_callback else "application/json"
logger.debug("Metadata requested. Serving content type of %s." % content_type)
logger.debug("Content Type of %s detected." % content_type)
return (image_extension, content_type)
开发者ID:nyimbi,项目名称:thumbor,代码行数:31,代码来源:__init__.py
示例11: load
def load(context, path, callback):
key = (
context.config.RACKSPACE_PYRAX_REGION,
context.config.get('RACKSPACE_PYRAX_IDENTITY_TYPE','rackspace'),
context.config.RACKSPACE_PYRAX_CFG,
context.config.RACKSPACE_PYRAX_PUBLIC,
context.config.RACKSPACE_LOADER_CONTAINER
)
if key not in CONNECTIONS:
if(context.config.RACKSPACE_PYRAX_REGION):
pyrax.set_default_region(context.config.RACKSPACE_PYRAX_REGION)
pyrax.set_setting('identity_type', context.config.get('RACKSPACE_PYRAX_IDENTITY_TYPE','rackspace'))
pyrax.set_credential_file(expanduser(context.config.RACKSPACE_PYRAX_CFG))
cf = pyrax.connect_to_cloudfiles(public=context.config.RACKSPACE_PYRAX_PUBLIC)
CONNECTIONS[key] = cf.get_container(context.config.RACKSPACE_LOADER_CONTAINER)
cont = CONNECTIONS[key]
file_abspath = normalize_path(context, path)
logger.debug("[LOADER] getting from %s/%s" % (context.config.RACKSPACE_LOADER_CONTAINER, file_abspath))
try:
obj = cont.get_object(file_abspath)
if obj:
logger.debug("[LOADER] Found object at %s/%s" % (context.config.RACKSPACE_LOADER_CONTAINER, file_abspath))
else:
logger.warning("[LOADER] Unable to find object %s/%s" % (context.config.RACKSPACE_LOADER_CONTAINER, file_abspath ))
except:
callback(None)
else:
callback(obj.get())
开发者ID:Superbalist,项目名称:thumbor_rackspace,代码行数:30,代码来源:cloudfiles_loader.py
示例12: __init__
def __init__(self, context):
'''
:param context: `Context` instance
'''
if context.config.get('COMMUNITY_EXTENSIONS', None):
for extension in context.config.get('COMMUNITY_EXTENSIONS'):
Extensions.load(extension)
Importer.import_community_modules(context.modules.importer)
self.context = Context.from_context(context)
if self.context.config.get('COMMUNITY_MONKEYPATCH', True):
logger.debug("Monkey patching ContextHandler.initialize")
# Monkey patch the ContextHandler.initialize method to generate a
# community context instead of the one from vanilla thumbor.
def initialize(self, context):
'''Initialize a new Context object
:param context: thumbor.context.Context
'''
self.context = Context.from_context(
context,
request_handler=self
)
ContextHandler.initialize = initialize
super(App, self).__init__(self.get_handlers())
开发者ID:Bladrak,项目名称:core,代码行数:30,代码来源:app.py
示例13: optimize
def optimize(self, buffer, input_file, output_file):
input_image = Image.open(input_file)
stats = ImageStat.Stat(input_image).extrema
has_alpha = False
if len(stats) > 3 and (stats[3][0] < 255):
has_alpha = True
if has_alpha == False:
intermediary = output_file + "-intermediate"
input_image.save(intermediary, "JPEG", quality=100)
input_file = intermediary
command = (
"%s --error-threshold %s --color-density-ratio %s --min-unique-colors %s --quality-out-max %s --quality-out-min %s --quality-in-min %s --max-steps %s %s %s > /dev/null 2>&1"
% (
self.imgmin_path,
self.error_threshold,
self.color_density_ratio,
self.min_unique_colors,
self.quality_out_max,
self.quality_out_min,
self.quality_in_min,
self.max_steps,
input_file,
output_file,
)
)
with open(os.devnull) as null:
logger.debug("[AUTO IMGMIN] running: " + command)
subprocess.call(command, shell=True, stdin=null)
开发者ID:Cartrdge,项目名称:thumbor-plugins,代码行数:30,代码来源:auto.py
示例14: get
def get(self, callback):
path = self.context.request.url
file_abspath = self.normalize_path(path)
if not self.validate_path(file_abspath):
logger.warn("[RESULT_STORAGE] unable to read from outside root path: %s" % file_abspath)
return None
logger.debug("[RESULT_STORAGE] getting from %s" % file_abspath)
if not exists(file_abspath) or self.is_expired(file_abspath):
logger.debug("[RESULT_STORAGE] image not found at %s" % file_abspath)
callback(None)
else:
with open(file_abspath, 'r') as f:
buffer = f.read()
result = ResultStorageResult(
buffer=buffer,
metadata={
'LastModified': datetime.fromtimestamp(getmtime(file_abspath)).replace(tzinfo=pytz.utc),
'ContentLength': len(buffer),
'ContentType': BaseEngine.get_mimetype(buffer)
}
)
callback(result)
开发者ID:RealGeeks,项目名称:thumbor,代码行数:25,代码来源:file_storage.py
示例15: define_image_type
def define_image_type(self, context, result):
if result is not None:
image_extension = EXTENSION.get(BaseEngine.get_mimetype(result), '.jpg')
else:
image_extension = context.request.format
if image_extension is not None:
image_extension = '.%s' % image_extension
logger.debug('Image format specified as %s.' % image_extension)
elif self.is_webp(context):
image_extension = '.webp'
logger.debug('Image format set by AUTO_WEBP as %s.' % image_extension)
else:
image_extension = context.request.engine.extension
logger.debug('No image format specified. Retrieving from the image extension: %s.' % image_extension)
content_type = CONTENT_TYPE.get(image_extension, CONTENT_TYPE['.jpg'])
if context.request.meta:
context.request.meta_callback = context.config.META_CALLBACK_NAME or self.request.arguments.get('callback', [None])[0]
content_type = 'text/javascript' if context.request.meta_callback else 'application/json'
logger.debug('Metadata requested. Serving content type of %s.' % content_type)
logger.debug('Content Type of %s detected.' % content_type)
return (image_extension, content_type)
开发者ID:xialisun,项目名称:thumbor,代码行数:25,代码来源:__init__.py
示例16: post
def post(self, **kwargs):
self.should_return_image = False
# URL can be passed as a URL argument or in the body
url = kwargs['url'] if 'url' in kwargs else kwargs['key']
if not url:
logger.error("Couldn't find url param in body or key in URL...")
raise tornado.web.HTTPError(404)
options = RequestParser.path_to_parameters(url)
yield self.check_image(options)
# We check the status code, if != 200 the image is incorrect, and we shouldn't store the key
if self.get_status() == 200:
logger.debug("Image is checked, clearing the response before trying to store...")
self.clear()
try:
shortener = Shortener(self.context)
key = shortener.generate(url)
shortener.put(key, url)
self.write(json.dumps({'key': key}))
self.set_header("Content-Type", "application/json")
except Exception as e:
logger.error("An error occurred while trying to store shortened URL: {error}.".format(error=e.message))
self.set_status(500)
self.write(json.dumps({'error': e.message}))
开发者ID:gi11es,项目名称:shortener,代码行数:29,代码来源:shortener.py
示例17: command
def command(
cls,
context,
pre=[],
post=[],
buffer='',
input_temp_file=None
):
if not input_temp_file:
input_temp_file = NamedTemporaryFile()
input_temp_file.write(buffer)
input_temp_file.flush()
command = [context.config.EXIFTOOL_PATH]
command += pre
command.append(input_temp_file.name)
command += post
logger.debug('[ExiftoolRunner] command: %r' % command, extra=log_extra(context))
code, stderr, stdout = ShellRunner.command(command, context)
input_temp_file.close()
if stderr:
logger.error('[ExiftoolRunner] error: %r' % stderr, extra=log_extra(context))
return stdout
开发者ID:wikimedia,项目名称:operations-debs-python-thumbor-wikimedia,代码行数:28,代码来源:__init__.py
示例18: select_engine
def select_engine(self):
if self.lcl['selected_engine'] is not None:
return self.lcl['selected_engine']
if self.lcl['extension'] is None:
ext = None
else:
ext = self.lcl['extension'].lstrip('.')
logger.debug('[Proxy] Looking for a %s engine' % ext)
for enginename, extensions in self.lcl['engines'].iteritems():
engine = self.lcl[enginename]
if ext in extensions:
if hasattr(engine, 'should_run'):
if engine.should_run(self.lcl['buffer']):
self.lcl['selected_engine'] = enginename
return enginename
else:
self.lcl['selected_engine'] = enginename
return enginename
raise Exception(
'Unable to find a suitable engine, tried %r' % self.lcl['engines']
) # pragma: no cover
开发者ID:wikimedia,项目名称:operations-debs-python-thumbor-wikimedia,代码行数:26,代码来源:proxy.py
示例19: format
def format(self, format):
if format.lower() not in ALLOWED_FORMATS:
logger.debug('Format not allowed: %s' % format.lower())
self.context.request.format = None
else:
logger.debug('Format specified: %s' % format.lower())
self.context.request.format = format.lower()
开发者ID:Hazer,项目名称:thumbor,代码行数:7,代码来源:format.py
示例20: get
def get(self):
path = self.context.request.url
file_abspath = self.normalize_path(path)
logger.debug('GET (result) ' + path + ' (' + file_abspath + ')')
try:
return self.storage.read(file_abspath, self.storage.stat(file_abspath)[0])
except rados.ObjectNotFound:
return None
开发者ID:ksperis,项目名称:thumbor,代码行数:8,代码来源:ceph_storage.py
注:本文中的thumbor.utils.logger.debug函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论