本文整理汇总了Python中spyne.MethodContext.in_header方法的典型用法代码示例。如果您正苦于以下问题:Python MethodContext.in_header方法的具体用法?Python MethodContext.in_header怎么用?Python MethodContext.in_header使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类spyne.MethodContext
的用法示例。
在下文中一共展示了MethodContext.in_header方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __call__
# 需要导入模块: from spyne import MethodContext [as 别名]
# 或者: from spyne.MethodContext import in_header [as 别名]
def __call__(self, *args, **kwargs):
initial_ctx = MethodContext(self)
initial_ctx.method_request_string = self.__key
initial_ctx.in_header = self.__in_header
initial_ctx.transport.type = NullServer.transport
initial_ctx.locale = self.__locale
contexts = self.app.in_protocol.generate_method_contexts(initial_ctx)
cnt = 0
retval = None
logger.warning( "%s start request %s" % (_big_header, _big_footer) )
for ctx in contexts:
# this reconstruction is quite costly. I wonder whether it's a
# problem though.
_type_info = ctx.descriptor.in_message._type_info
ctx.in_object = [None] * len(_type_info)
for i in range(len(args)):
ctx.in_object[i] = args[i]
for i,k in enumerate(_type_info.keys()):
val = kwargs.get(k, None)
if val is not None:
ctx.in_object[i] = val
if cnt == 0:
p_ctx = ctx
else:
ctx.descriptor.aux.initialize_context(ctx, p_ctx, error=None)
# do logging.getLogger('spyne.server.null').setLevel(logging.CRITICAL)
# to hide the following
logger.warning( "%s start context %s" % (_small_header, _small_footer) )
logger.warning( "%r.%r" % (ctx.service_class, ctx.descriptor.function) )
try:
self.app.process_request(ctx)
finally:
logger.warning( "%s end context %s" % (_small_header, _small_footer) )
if ctx.out_error:
raise ctx.out_error
else:
if len(ctx.descriptor.out_message._type_info) == 0:
_retval = None
elif len(ctx.descriptor.out_message._type_info) == 1:
_retval = ctx.out_object[0]
else:
_retval = ctx.out_object
if cnt == 0 and self.__ostr:
self.__server.get_out_string(ctx)
_retval = ctx.out_string
if cnt == 0:
retval = _retval
else:
ctx.close()
cnt += 1
p_ctx.close()
logger.warning( "%s end request %s" % (_big_header, _big_footer) )
return retval
示例2: __call__
# 需要导入模块: from spyne import MethodContext [as 别名]
# 或者: from spyne.MethodContext import in_header [as 别名]
def __call__(self, *args, **kwargs):
initial_ctx = MethodContext(self, MethodContext.SERVER)
initial_ctx.method_request_string = self._key
initial_ctx.in_header = self._in_header
initial_ctx.transport.type = NullServer.transport
initial_ctx.locale = self._locale
contexts = self.app.in_protocol.generate_method_contexts(initial_ctx)
retval = None
logger.warning("%s start request %s" % (_big_header, _big_footer))
if self._async:
from twisted.internet.defer import Deferred
for cnt, ctx in enumerate(contexts):
# this reconstruction is quite costly. I wonder whether it's a
# problem though.
_type_info = ctx.descriptor.in_message._type_info
ctx.in_object = [None] * len(_type_info)
for i in range(len(args)):
ctx.in_object[i] = args[i]
for i, k in enumerate(_type_info.keys()):
val = kwargs.get(k, None)
if val is not None:
ctx.in_object[i] = val
if ctx.descriptor.body_style == BODY_STYLE_BARE:
ctx.in_object = ctx.descriptor.in_message \
.get_serialization_instance(ctx.in_object)
if cnt == 0:
p_ctx = ctx
else:
ctx.descriptor.aux.initialize_context(ctx, p_ctx, error=None)
# do logging.getLogger('spyne.server.null').setLevel(logging.CRITICAL)
# to hide the following
logger.warning("%s start context %s" % (_small_header,
_small_footer))
logger.warning("%r.%r" % (ctx.service_class,
ctx.descriptor.function))
try:
self.app.process_request(ctx)
finally:
logger.warning("%s end context %s" % (_small_header,
_small_footer))
if cnt == 0:
if self._async and isinstance(ctx.out_object[0], Deferred):
retval = ctx.out_object[0]
retval.addCallback(_cb_async, ctx, cnt, self)
else:
retval = _cb_sync(ctx, cnt, self)
if not self._async:
p_ctx.close()
logger.warning("%s end request %s" % (_big_header, _big_footer))
return retval
示例3: __call__
# 需要导入模块: from spyne import MethodContext [as 别名]
# 或者: from spyne.MethodContext import in_header [as 别名]
def __call__(self, *args, **kwargs):
initial_ctx = MethodContext(self)
initial_ctx.method_request_string = self.__key
initial_ctx.in_header = self.__in_header
initial_ctx.transport.type = NullServer.transport
contexts = self.app.in_protocol.generate_method_contexts(initial_ctx)
cnt = 0
retval = None
logger.warning( "%s start request %s" % (_big_header, _big_footer) )
for ctx in contexts:
# this reconstruction is quite costly. I wonder whether it's a
# problem though.
_type_info = ctx.descriptor.in_message._type_info
ctx.in_object = [None] * len(_type_info)
for i in range(len(args)):
ctx.in_object[i] = args[i]
for i,k in enumerate(_type_info.keys()):
val = kwargs.get(k, None)
if val is not None:
ctx.in_object[i] = val
if cnt == 0:
p_ctx = ctx
else:
ctx.descriptor.aux.initialize_context(ctx, p_ctx, error=None)
# do logging.getLogger('spyne.server.null').setLevel(logging.CRITICAL)
# to hide the following
logger.warning( "%s start context %s" % (_small_header, _small_footer) )
self.app.process_request(ctx)
logger.warning( "%s end context %s" % (_small_header, _small_footer) )
if ctx.out_error:
raise ctx.out_error
else:
if len(ctx.descriptor.out_message._type_info) == 0:
_retval = None
elif len(ctx.descriptor.out_message._type_info) == 1:
_retval = ctx.out_object[0]
# workaround to have the context disposed of when the caller is
# done with the return value. the context is sometimes needed to
# fully construct the return object (e.g. when the object is a
# sqlalchemy object bound to a session that's defined in the
# context object).
try:
_retval.__ctx__ = ctx
except AttributeError:
# not all objects let this happen. (eg. built-in types
# like str, but they don't need the context anyway).
pass
else:
_retval = ctx.out_object
# same as above
try:
_retval[0].__ctx__ = ctx
except AttributeError:
pass
if cnt == 0:
retval = _retval
cnt += 1
logger.warning( "%s end request %s" % (_big_header, _big_footer) )
return retval