def __init__( self, *, debug: bool = False, routes: List[BaseRoute] = None, title: str = "FastAPI", description: str = "", version: str = "0.1.0", openapi_url: Optional[str] = "/openapi.json", openapi_prefix: str = "", default_response_class: Type[Response] = JSONResponse, docs_url: Optional[str] = "/docs", redoc_url: Optional[str] = "/redoc", swagger_ui_oauth2_redirect_url: Optional[ str] = "/docs/oauth2-redirect", swagger_ui_init_oauth: Optional[dict] = None, middleware: Sequence[Middleware] = None, exception_handlers: Dict[Union[int, Type[Exception]], Callable] = None, on_startup: Sequence[Callable] = None, on_shutdown: Sequence[Callable] = None, **extra: Dict[str, Any], ) -> None: self.default_response_class = default_response_class self._debug = debug self.state = State() self.router: routing.APIRouter = routing.APIRouter( routes, dependency_overrides_provider=self, on_startup=on_startup, on_shutdown=on_shutdown, ) self.exception_handlers = ({} if exception_handlers is None else dict(exception_handlers)) self.user_middleware = [] if middleware is None else list(middleware) self.middleware_stack = self.build_middleware_stack() self.title = title self.description = description self.version = version self.openapi_url = openapi_url self.openapi_prefix = openapi_prefix.rstrip("/") self.docs_url = docs_url self.redoc_url = redoc_url self.swagger_ui_oauth2_redirect_url = swagger_ui_oauth2_redirect_url self.swagger_ui_init_oauth = swagger_ui_init_oauth self.extra = extra self.dependency_overrides: Dict[Callable, Callable] = {} self.openapi_version = "3.0.2" if self.openapi_url: assert self.title, "A title must be provided for OpenAPI, e.g.: 'My API'" assert self.version, "A version must be provided for OpenAPI, e.g.: '2.1.0'" if self.docs_url or self.redoc_url: assert self.openapi_url, "The openapi_url is required for the docs" self.openapi_schema: Optional[Dict[str, Any]] = None self.setup()
def __init__( self, debug: bool = False, routes: List[BaseRoute] = None, template_directory: str = None, title: str = "Fast API", description: str = "", version: str = "0.1.0", openapi_url: Optional[str] = "/openapi.json", openapi_prefix: str = "", default_response_class: Type[Response] = JSONResponse, docs_url: Optional[str] = "/docs", redoc_url: Optional[str] = "/redoc", swagger_ui_oauth2_redirect_url: Optional[ str] = "/docs/oauth2-redirect", swagger_ui_init_oauth: Optional[dict] = None, **extra: Dict[str, Any], ) -> None: self.default_response_class = default_response_class self._debug = debug self.state = State() self.router: routing.APIRouter = routing.APIRouter( routes, dependency_overrides_provider=self) self.exception_middleware = ExceptionMiddleware(self.router, debug=debug) self.error_middleware = ServerErrorMiddleware( self.exception_middleware, debug=debug) self.title = title self.description = description self.version = version self.openapi_url = openapi_url self.openapi_prefix = openapi_prefix.rstrip("/") self.docs_url = docs_url self.redoc_url = redoc_url self.swagger_ui_oauth2_redirect_url = swagger_ui_oauth2_redirect_url self.swagger_ui_init_oauth = swagger_ui_init_oauth self.extra = extra self.dependency_overrides: Dict[Callable, Callable] = {} self.openapi_version = "3.0.2" if self.openapi_url: assert self.title, "A title must be provided for OpenAPI, e.g.: 'My API'" assert self.version, "A version must be provided for OpenAPI, e.g.: '2.1.0'" if self.docs_url or self.redoc_url: assert self.openapi_url, "The openapi_url is required for the docs" self.openapi_schema: Optional[Dict[str, Any]] = None self.setup()
def __init__( self, debug: bool = False, template_directory: str = None, title: str = "Fast API", description: str = "", version: str = "0.1.0", openapi_url: Optional[str] = "/openapi.json", docs_url: Optional[str] = "/docs", redoc_url: Optional[str] = "/redoc", **extra: Dict[str, Any], ) -> None: self._debug = debug self.router: routing.APIRouter = routing.APIRouter() self.exception_middleware = ExceptionMiddleware(self.router, debug=debug) self.error_middleware = ServerErrorMiddleware( self.exception_middleware, debug=debug) self.lifespan_middleware = LifespanMiddleware(self.error_middleware) self.schema_generator = None self.template_env = self.load_template_env(template_directory) self.title = title self.description = description self.version = version self.openapi_url = openapi_url self.docs_url = docs_url self.redoc_url = redoc_url self.extra = extra self.openapi_version = "3.0.2" if self.openapi_url: assert self.title, "A title must be provided for OpenAPI, e.g.: 'My API'" assert self.version, "A version must be provided for OpenAPI, e.g.: '2.1.0'" if self.docs_url or self.redoc_url: assert self.openapi_url, "The openapi_url is required for the docs" self.openapi_schema: Optional[Dict[str, Any]] = None self.setup()
def __init__( self, *, debug: bool = False, routes: Optional[List[BaseRoute]] = None, title: str = "FastAPI", description: str = "", version: str = "0.1.0", openapi_url: Optional[str] = "/openapi.json", openapi_tags: Optional[List[Dict[str, Any]]] = None, servers: Optional[List[Dict[str, Union[str, Any]]]] = None, default_response_class: Type[Response] = JSONResponse, docs_url: Optional[str] = "/docs", redoc_url: Optional[str] = "/redoc", swagger_ui_oauth2_redirect_url: Optional[ str] = "/docs/oauth2-redirect", swagger_ui_init_oauth: Optional[dict] = None, middleware: Optional[Sequence[Middleware]] = None, exception_handlers: Optional[Dict[Union[int, Type[Exception]], Callable]] = None, on_startup: Optional[Sequence[Callable]] = None, on_shutdown: Optional[Sequence[Callable]] = None, openapi_prefix: str = "", root_path: str = "", root_path_in_servers: bool = True, **extra: Any, ) -> None: self.default_response_class = default_response_class self._debug = debug self.state = State() self.router: routing.APIRouter = routing.APIRouter( routes, dependency_overrides_provider=self, on_startup=on_startup, on_shutdown=on_shutdown, ) self.exception_handlers = ({} if exception_handlers is None else dict(exception_handlers)) self.user_middleware = [] if middleware is None else list(middleware) self.middleware_stack = self.build_middleware_stack() self.title = title self.description = description self.version = version self.servers = servers or [] self.openapi_url = openapi_url self.openapi_tags = openapi_tags # TODO: remove when discarding the openapi_prefix parameter if openapi_prefix: logger.warning( '"openapi_prefix" has been deprecated in favor of "root_path", which ' "follows more closely the ASGI standard, is simpler, and more " "automatic. Check the docs at " "https://fastapi.tiangolo.com/advanced/sub-applications/") self.root_path = root_path or openapi_prefix self.root_path_in_servers = root_path_in_servers self.docs_url = docs_url self.redoc_url = redoc_url self.swagger_ui_oauth2_redirect_url = swagger_ui_oauth2_redirect_url self.swagger_ui_init_oauth = swagger_ui_init_oauth self.extra = extra self.dependency_overrides: Dict[Callable, Callable] = {} self.openapi_version = "3.0.2" if self.openapi_url: assert self.title, "A title must be provided for OpenAPI, e.g.: 'My API'" assert self.version, "A version must be provided for OpenAPI, e.g.: '2.1.0'" self.openapi_schema: Optional[Dict[str, Any]] = None self.setup()
import pytest from starlette.testclient import TestClient from robot_server.service.app import app from robot_server.service.dependencies import get_hardware, verify_hardware from opentrons.hardware_control import API, HardwareAPILike from opentrons import config from opentrons.calibration_storage import delete from opentrons.protocol_api import labware from opentrons.types import Point from opentrons.protocol_api.geometry import Deck from robot_server.service.protocol.manager import ProtocolManager from robot_server.service.session.manager import SessionManager test_router = routing.APIRouter() @test_router.get('/alwaysRaise') async def always_raise(): raise RuntimeError app.include_router(test_router) @pytest.fixture def hardware(): return MagicMock(spec=API)
from os import access from fastapi import routing, Depends, Header, File, UploadFile import json import random import requests import string from fastapi.exceptions import HTTPException from mongoengine.errors import DoesNotExist, ValidationError import datetime from mongoengine import Q from api.utils.jwt import generate_token from api.utils.auth import authenticate_user from api.utils.logs import console_logger from api.db.models import * from api.service.sample.serializers import * from passlib.context import CryptContext from config import Config pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") router = routing.APIRouter() @router.post("/login") async def end_point_for_login(): try: return 'success' except Exception as e: return {'error_message': str(e)}
def __init__( self, *, debug: bool = False, routes: Optional[List[BaseRoute]] = None, title: str = "FastAPI", description: str = "", version: str = "0.1.0", openapi_url: Optional[str] = "/openapi.json", openapi_tags: Optional[List[Dict[str, Any]]] = None, servers: Optional[List[Dict[str, Union[str, Any]]]] = None, dependencies: Optional[Sequence[Depends]] = None, default_response_class: Type[Response] = Default(JSONResponse), docs_url: Optional[str] = "/docs", redoc_url: Optional[str] = "/redoc", swagger_ui_oauth2_redirect_url: Optional[ str] = "/docs/oauth2-redirect", swagger_ui_init_oauth: Optional[Dict[str, Any]] = None, middleware: Optional[Sequence[Middleware]] = None, exception_handlers: Optional[Dict[Union[int, Type[Exception]], Callable[[Request, Any], Coroutine[ Any, Any, Response]], ]] = None, on_startup: Optional[Sequence[Callable[[], Any]]] = None, on_shutdown: Optional[Sequence[Callable[[], Any]]] = None, terms_of_service: Optional[str] = None, contact: Optional[Dict[str, Union[str, Any]]] = None, license_info: Optional[Dict[str, Union[str, Any]]] = None, openapi_prefix: str = "", root_path: str = "", root_path_in_servers: bool = True, responses: Optional[Dict[Union[int, str], Dict[str, Any]]] = None, callbacks: Optional[List[BaseRoute]] = None, deprecated: Optional[bool] = None, include_in_schema: bool = True, swagger_ui_parameters: Optional[Dict[str, Any]] = None, generate_unique_id_function: Callable[ [routing.APIRoute], str] = Default(generate_unique_id), **extra: Any, ) -> None: self._debug: bool = debug self.title = title self.description = description self.version = version self.terms_of_service = terms_of_service self.contact = contact self.license_info = license_info self.openapi_url = openapi_url self.openapi_tags = openapi_tags self.root_path_in_servers = root_path_in_servers self.docs_url = docs_url self.redoc_url = redoc_url self.swagger_ui_oauth2_redirect_url = swagger_ui_oauth2_redirect_url self.swagger_ui_init_oauth = swagger_ui_init_oauth self.swagger_ui_parameters = swagger_ui_parameters self.servers = servers or [] self.extra = extra self.openapi_version = "3.0.2" self.openapi_schema: Optional[Dict[str, Any]] = None if self.openapi_url: assert self.title, "A title must be provided for OpenAPI, e.g.: 'My API'" assert self.version, "A version must be provided for OpenAPI, e.g.: '2.1.0'" # TODO: remove when discarding the openapi_prefix parameter if openapi_prefix: logger.warning( '"openapi_prefix" has been deprecated in favor of "root_path", which ' "follows more closely the ASGI standard, is simpler, and more " "automatic. Check the docs at " "https://fastapi.tiangolo.com/advanced/sub-applications/") self.root_path = root_path or openapi_prefix self.state: State = State() self.dependency_overrides: Dict[Callable[..., Any], Callable[..., Any]] = {} self.router: routing.APIRouter = routing.APIRouter( routes=routes, dependency_overrides_provider=self, on_startup=on_startup, on_shutdown=on_shutdown, default_response_class=default_response_class, dependencies=dependencies, callbacks=callbacks, deprecated=deprecated, include_in_schema=include_in_schema, responses=responses, generate_unique_id_function=generate_unique_id_function, ) self.exception_handlers: Dict[Any, Callable[[Request, Any], Union[ Response, Awaitable[Response]]]] = ({} if exception_handlers is None else dict(exception_handlers)) self.exception_handlers.setdefault(HTTPException, http_exception_handler) self.exception_handlers.setdefault( RequestValidationError, request_validation_exception_handler) self.user_middleware: List[Middleware] = ([] if middleware is None else list(middleware)) self.middleware_stack: ASGIApp = self.build_middleware_stack() self.setup()