當前位置: 首頁>>代碼示例>>Python>>正文


Python exceptions.SanicException方法代碼示例

本文整理匯總了Python中sanic.exceptions.SanicException方法的典型用法代碼示例。如果您正苦於以下問題:Python exceptions.SanicException方法的具體用法?Python exceptions.SanicException怎麽用?Python exceptions.SanicException使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在sanic.exceptions的用法示例。


在下文中一共展示了exceptions.SanicException方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: add_task

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def add_task(self, task):
        """Schedule a task to run later, after the loop has started.
        Different from asyncio.ensure_future in that it does not
        also return a future, and the actual ensure_future call
        is delayed until before server start.

        :param task: future, couroutine or awaitable
        """
        try:
            loop = self.loop  # Will raise SanicError if loop is not started
            self._loop_add_task(task, self, loop)
        except SanicException:
            self.listener("before_server_start")(
                partial(self._loop_add_task, task)
            )

    # Decorator 
開發者ID:huge-success,項目名稱:sanic,代碼行數:19,代碼來源:app.py

示例2: index

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def index(request):
    token = request.headers.get("X-Token")
    if token not in G.config.tokens:
        C["global"].update({"401": 1})
        raise SanicException("Unauthorized", status_code=401)
    try:
        latitude = float(request.args.get("lat", default=None))
        longitude = float(request.args.get("lon", default=None))
        ghash = geohash.encode(latitude, longitude, G.config.precision)
    except:
        C["stats"][token[:6]].update({"400": 1})
        raise SanicException("Bad Request", status_code=400)
    try:
        data = search(ghash)
        if data is None:
            C["stats"][token[:6]].update({"404": 1})
            return jsonify(G.config.fallback)
        else:
            C["stats"][token[:6]].update({"200": 1})
            return jsonify(data)
    except:
        C["stats"][token[:6]].update({"500": 1})
        return jsonify(G.config.fallback) 
開發者ID:uol,項目名稱:geo-br,代碼行數:25,代碼來源:sapp.py

示例3: reaction_add

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def reaction_add(cls, activity, local, **kwargs):

        search_model = cls if local else Inbox
        add_to = await search_model.find_one(
            {"activity.object.id": activity.render['object']}
        )
        if add_to:
            if add_to.reactions and add_to.reactions.get(activity.render['type']):
                if add_to.reactions[activity.render['type']].get(activity.user.name):
                    raise SanicException(f'This post is already {activity.render["type"]}d', status_code=409)
            else:
                await cls.update_one(
                    {'_id': add_to.id},
                    {'$set': {f"reactions.{activity.render['type']}.{activity.user.name}":
                                  activity.render['id'],
                              "updated": datetime.now()}}
                )

        await cls.save(activity, **kwargs) 
開發者ID:autogestion,項目名稱:pubgate,代碼行數:21,代碼來源:boxes.py

示例4: reaction_undo

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def reaction_undo(cls, activity):
        reaction_type = activity.render['object']['type']
        local = check_origin(activity.render["object"]["object"], activity.render["actor"])
        search_model = cls if local else Inbox

        undo_from = await search_model.find_one(
            {"activity.object.id": activity.render['object']['object']}
        )
        if undo_from:
            if undo_from.reactions and undo_from.reactions.get(reaction_type) \
                    and undo_from.reactions[reaction_type].get(activity.user.name):
                await cls.update_one(
                    {'_id': undo_from.id},
                    {'$unset': {f"reactions.{reaction_type}.{activity.user.name}": 1}}
                )
            else:
                raise SanicException(f'This post is not {reaction_type}d', status_code=409)

        await cls.delete(activity.render["object"]["id"]) 
開發者ID:autogestion,項目名稱:pubgate,代碼行數:21,代碼來源:boxes.py

示例5: default

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def default(self, request, exception):
        if issubclass(type(exception), SanicException):
            return json(
                {'error': '{}'.format(exception)},
                status=getattr(exception, 'status_code', 500),
                headers=getattr(exception, 'headers', dict())
            )

        else:
            print_exc()
            if self.debug:
                error = {'error': '{}'.format(exception)},
            else:
                error = {'error': 'internal server error'},

            return json(
                error,
                status=getattr(exception, 'status_code', 500),
                headers=getattr(exception, 'headers', dict())
            ) 
開發者ID:autogestion,項目名稱:pubgate,代碼行數:22,代碼來源:logging.py

示例6: default

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def default(self, request: Request, exception: Exception) -> HTTPResponse:
        """The default error handler for exceptions.

        This handles errors which have no error handler assigned. Synse Server
        does not register any other custom error handlers, so all exceptions
        raised by the application will be caught and handled here.
        """
        logger.info('creating error response for request', error=exception)

        if isinstance(exception, SanicException):
            return super(SynseErrorHandler, self).default(request, exception)

        if not isinstance(exception, SynseError):
            # Setting __cause__ on the exception is effectively the same
            # as what happens when you `raise NewException() from old_exception
            new = SynseError(str(exception))
            new.__cause__ = exception
            exception = new

        return utils.http_json_response(
            body=exception.make_response(),
            status=exception.http_code,
        ) 
開發者ID:vapor-ware,項目名稱:synse-server,代碼行數:25,代碼來源:errors.py

示例7: default

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def default(self, request, exception):
        # Here, we have access to the exception object
        # and can do anything with it (log, send to external service, etc)

        # Some exceptions are trivial and built into Sanic (404s, etc)
        if not isinstance(exception, SanicException):
            print(exception)

        # Then, we must finish handling the exception by returning
        # our response to the client
        # For this we can just call the super class' default handler
        return super().default(request, exception) 
開發者ID:huge-success,項目名稱:sanic,代碼行數:14,代碼來源:exception_monitoring.py

示例8: test

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def test(request):
    # Here, something occurs which causes an unexpected exception
    # This exception will flow to our custom handler.
    raise SanicException('You Broke It!') 
開發者ID:huge-success,項目名稱:sanic,代碼行數:6,代碼來源:exception_monitoring.py

示例9: test

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def test(request):
    raise SanicException('You Broke It!') 
開發者ID:huge-success,項目名稱:sanic,代碼行數:4,代碼來源:raygun_example.py

示例10: create_error

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def create_error(request):
    raise SanicException("I was here and I don't like where I am") 
開發者ID:huge-success,項目名稱:sanic,代碼行數:4,代碼來源:rollbar_example.py

示例11: test_app_loop_not_running

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def test_app_loop_not_running(app):
    with pytest.raises(SanicException) as excinfo:
        app.loop

    assert str(excinfo.value) == (
        "Loop can only be retrieved after the app has started "
        "running. Not supported with `create_server` function"
    ) 
開發者ID:huge-success,項目名稱:sanic,代碼行數:10,代碼來源:test_app.py

示例12: loop

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def loop(self):
        """Synonymous with asyncio.get_event_loop().

        Only supported when using the `app.run` method.
        """
        if not self.is_running and self.asgi is False:
            raise SanicException(
                "Loop can only be retrieved after the app has started "
                "running. Not supported with `create_server` function"
            )
        return get_event_loop()

    # -------------------------------------------------------------------- #
    # Registration
    # -------------------------------------------------------------------- # 
開發者ID:huge-success,項目名稱:sanic,代碼行數:17,代碼來源:app.py

示例13: exception_response

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def exception_response(request, exception, debug):
    status = 500
    text = (
        "The server encountered an internal error "
        "and cannot complete your request."
    )

    headers = {}
    if isinstance(exception, SanicException):
        text = f"{exception}"
        status = getattr(exception, "status_code", status)
        headers = getattr(exception, "headers", headers)
    elif debug:
        text = f"{exception}"

    status_text = STATUS_CODES.get(status, b"Error Occurred").decode()
    title = escape(f"{status} — {status_text}")
    text = escape(text)

    if debug and not getattr(exception, "quiet", False):
        return html(
            f"<!DOCTYPE html><meta charset=UTF-8><title>{title}</title>"
            f"<style>{TRACEBACK_STYLE}</style>\n"
            f"<h1>⚠️ {title}</h1><p>{text}\n"
            f"{_render_traceback_html(request, exception)}",
            status=status,
        )

    # Keeping it minimal with trailing newline for pretty curl/console output
    return html(
        f"<!DOCTYPE html><meta charset=UTF-8><title>{title}</title>"
        "<style>html { font-family: sans-serif }</style>\n"
        f"<h1>⚠️ {title}</h1><p>{text}\n",
        status=status,
        headers=headers,
    ) 
開發者ID:huge-success,項目名稱:sanic,代碼行數:38,代碼來源:errorpages.py

示例14: _make_request_processor

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def _make_request_processor(weak_request):
    # type: (Callable[[], Request]) -> EventProcessor
    def sanic_processor(event, hint):
        # type: (Event, Optional[Hint]) -> Optional[Event]

        try:
            if hint and issubclass(hint["exc_info"][0], SanicException):
                return None
        except KeyError:
            pass

        request = weak_request()
        if request is None:
            return event

        with capture_internal_exceptions():
            extractor = SanicRequestExtractor(request)
            extractor.extract_into_event(event)

            request_info = event["request"]
            urlparts = urlparse.urlsplit(request.url)

            request_info["url"] = "%s://%s%s" % (
                urlparts.scheme,
                urlparts.netloc,
                urlparts.path,
            )

            request_info["query_string"] = urlparts.query
            request_info["method"] = request.method
            request_info["env"] = {"REMOTE_ADDR": request.remote_addr}
            request_info["headers"] = _filter_headers(dict(request.headers))

        return event

    return sanic_processor 
開發者ID:getsentry,項目名稱:sentry-python,代碼行數:38,代碼來源:sanic.py

示例15: create_handler

# 需要導入模塊: from sanic import exceptions [as 別名]
# 或者: from sanic.exceptions import SanicException [as 別名]
def create_handler(transmute_func, context):

    @wraps(transmute_func.raw_func)
    async def handler(request, *args, **kwargs):
        exc, result = None, None
        try:
            args, kwargs = await extract_params(request, context,
                                                transmute_func)
            result = await transmute_func.raw_func(*args, **kwargs)
        except SanicException as se:
            code = se.status_code or 400
            exc = APIException(message=str(se), code=code)
        except Exception as e:
            exc = e
        content_type = request.headers.get("Content-Type", DEFAULT_HTTP_CONTENT_TYPE)
        response = transmute_func.process_result(
            context, result, exc, content_type
        )
        return HTTPResponse(
            status=response["code"],
            content_type=response["content-type"],
            headers=response["headers"],
            body_bytes=response["body"],
        )
    handler.transmute_func = transmute_func
    return handler 
開發者ID:yunstanford,項目名稱:sanic-transmute,代碼行數:28,代碼來源:handler.py


注:本文中的sanic.exceptions.SanicException方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。