mirror of
https://github.com/rjNemo/fastapi
synced 2026-06-12 05:26:45 +00:00
💚 Revert to flit install and re-format
As it has shown to be more reliable, and closer to final user environments
This commit is contained in:
parent
ae50492735
commit
7da9625505
54 changed files with 78 additions and 127 deletions
|
|
@ -7,8 +7,8 @@ python:
|
||||||
- "3.7-dev"
|
- "3.7-dev"
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- pip install pipenv
|
- pip install flit
|
||||||
- pipenv install --dev
|
- flit install
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- bash scripts/test.sh
|
- bash scripts/test.sh
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
class Item(BaseModel):
|
class Item(BaseModel):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
class Item(BaseModel):
|
class Item(BaseModel):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
class Item(BaseModel):
|
class Item(BaseModel):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
class Item(BaseModel):
|
class Item(BaseModel):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI, Path
|
from fastapi import FastAPI, Path
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import Body, FastAPI
|
from fastapi import Body, FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import Body, FastAPI
|
from fastapi import Body, FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import Body, FastAPI
|
from fastapi import Body, FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.types import UrlStr
|
from pydantic.types import UrlStr
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
from typing import List, Set
|
from typing import List, Set
|
||||||
|
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.types import UrlStr
|
from pydantic.types import UrlStr
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
from typing import List, Set
|
from typing import List, Set
|
||||||
|
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.types import UrlStr
|
from pydantic.types import UrlStr
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.types import UrlStr
|
from pydantic.types import UrlStr
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel, Schema
|
|
||||||
|
|
||||||
from fastapi import Body, FastAPI
|
from fastapi import Body, FastAPI
|
||||||
|
from pydantic import BaseModel, Schema
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import Body, FastAPI
|
from fastapi import Body, FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from starlette.responses import UJSONResponse
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from starlette.responses import UJSONResponse
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from starlette.responses import HTMLResponse
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from starlette.responses import HTMLResponse
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from starlette.responses import HTMLResponse
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from starlette.responses import HTMLResponse
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from starlette.responses import HTMLResponse
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from starlette.responses import HTMLResponse
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import Depends, FastAPI
|
from fastapi import Depends, FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import Cookie, Depends, FastAPI
|
from fastapi import Cookie, Depends, FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
from random import choice
|
from random import choice
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import Cookie, Depends, FastAPI
|
from fastapi import Cookie, Depends, FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.types import EmailStr
|
from pydantic.types import EmailStr
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.types import EmailStr
|
from pydantic.types import EmailStr
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from couchbase import LOCKMODE_WAIT
|
from couchbase import LOCKMODE_WAIT
|
||||||
from couchbase.bucket import Bucket
|
from couchbase.bucket import Bucket
|
||||||
from couchbase.cluster import Cluster, PasswordAuthenticator
|
from couchbase.cluster import Cluster, PasswordAuthenticator
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
USERPROFILE_DOC_TYPE = "userprofile"
|
USERPROFILE_DOC_TYPE = "userprofile"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from starlette.status import HTTP_201_CREATED
|
from starlette.status import HTTP_201_CREATED
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.types import EmailStr
|
from pydantic.types import EmailStr
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
|
from fastapi import FastAPI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.types import EmailStr
|
from pydantic.types import EmailStr
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
|
|
||||||
from fastapi import Depends, FastAPI, Security
|
from fastapi import Depends, FastAPI, Security
|
||||||
from fastapi.security import OAuth2PasswordBearer
|
from fastapi.security import OAuth2PasswordBearer
|
||||||
|
from pydantic import BaseModel
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from pydantic import BaseModel
|
|
||||||
from starlette.exceptions import HTTPException
|
|
||||||
|
|
||||||
from fastapi import Depends, FastAPI, Security
|
from fastapi import Depends, FastAPI, Security
|
||||||
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
||||||
|
from pydantic import BaseModel
|
||||||
|
from starlette.exceptions import HTTPException
|
||||||
|
|
||||||
fake_users_db = {
|
fake_users_db = {
|
||||||
"johndoe": {
|
"johndoe": {
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,14 @@ from datetime import datetime, timedelta
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
import jwt
|
import jwt
|
||||||
|
from fastapi import Depends, FastAPI, Security
|
||||||
|
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
||||||
from jwt import PyJWTError
|
from jwt import PyJWTError
|
||||||
from passlib.context import CryptContext
|
from passlib.context import CryptContext
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from starlette.exceptions import HTTPException
|
from starlette.exceptions import HTTPException
|
||||||
from starlette.status import HTTP_403_FORBIDDEN
|
from starlette.status import HTTP_403_FORBIDDEN
|
||||||
|
|
||||||
from fastapi import Depends, FastAPI, Security
|
|
||||||
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
|
||||||
|
|
||||||
# to get a string like this run:
|
# to get a string like this run:
|
||||||
# openssl rand -hex 32
|
# openssl rand -hex 32
|
||||||
SECRET_KEY = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7"
|
SECRET_KEY = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
|
||||||
from sqlalchemy import Boolean, Column, Integer, String, create_engine
|
from sqlalchemy import Boolean, Column, Integer, String, create_engine
|
||||||
from sqlalchemy.ext.declarative import declarative_base, declared_attr
|
from sqlalchemy.ext.declarative import declarative_base, declared_attr
|
||||||
from sqlalchemy.orm import scoped_session, sessionmaker
|
from sqlalchemy.orm import scoped_session, sessionmaker
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
from typing import Any, Callable, Dict, List, Optional, Type
|
from typing import Any, Callable, Dict, List, Optional, Type
|
||||||
|
|
||||||
|
from fastapi import routing
|
||||||
|
from fastapi.openapi.docs import get_redoc_html, get_swagger_ui_html
|
||||||
|
from fastapi.openapi.utils import get_openapi
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from starlette.applications import Starlette
|
from starlette.applications import Starlette
|
||||||
from starlette.exceptions import ExceptionMiddleware, HTTPException
|
from starlette.exceptions import ExceptionMiddleware, HTTPException
|
||||||
|
|
@ -8,10 +11,6 @@ from starlette.middleware.lifespan import LifespanMiddleware
|
||||||
from starlette.requests import Request
|
from starlette.requests import Request
|
||||||
from starlette.responses import JSONResponse, Response
|
from starlette.responses import JSONResponse, Response
|
||||||
|
|
||||||
from fastapi import routing
|
|
||||||
from fastapi.openapi.docs import get_redoc_html, get_swagger_ui_html
|
|
||||||
from fastapi.openapi.utils import get_openapi
|
|
||||||
|
|
||||||
|
|
||||||
async def http_exception(request: Request, exc: HTTPException) -> JSONResponse:
|
async def http_exception(request: Request, exc: HTTPException) -> JSONResponse:
|
||||||
return JSONResponse({"detail": exc.detail}, status_code=exc.status_code)
|
return JSONResponse({"detail": exc.detail}, status_code=exc.status_code)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import Callable, List, Sequence
|
from typing import Callable, List, Sequence
|
||||||
|
|
||||||
from pydantic.fields import Field
|
|
||||||
|
|
||||||
from fastapi.security.base import SecurityBase
|
from fastapi.security.base import SecurityBase
|
||||||
|
from pydantic.fields import Field
|
||||||
|
|
||||||
param_supported_types = (str, int, float, bool)
|
param_supported_types = (str, int, float, bool)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@ import inspect
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from typing import Any, Callable, Dict, List, Mapping, Sequence, Tuple, Type
|
from typing import Any, Callable, Dict, List, Mapping, Sequence, Tuple, Type
|
||||||
|
|
||||||
|
from fastapi import params
|
||||||
|
from fastapi.dependencies.models import Dependant, SecurityRequirement
|
||||||
|
from fastapi.security.base import SecurityBase
|
||||||
|
from fastapi.utils import get_path_param_names
|
||||||
from pydantic import BaseConfig, Schema, create_model
|
from pydantic import BaseConfig, Schema, create_model
|
||||||
from pydantic.error_wrappers import ErrorWrapper
|
from pydantic.error_wrappers import ErrorWrapper
|
||||||
from pydantic.errors import MissingError
|
from pydantic.errors import MissingError
|
||||||
|
|
@ -12,11 +16,6 @@ from pydantic.utils import lenient_issubclass
|
||||||
from starlette.concurrency import run_in_threadpool
|
from starlette.concurrency import run_in_threadpool
|
||||||
from starlette.requests import Request
|
from starlette.requests import Request
|
||||||
|
|
||||||
from fastapi import params
|
|
||||||
from fastapi.dependencies.models import Dependant, SecurityRequirement
|
|
||||||
from fastapi.security.base import SecurityBase
|
|
||||||
from fastapi.utils import get_path_param_names
|
|
||||||
|
|
||||||
param_supported_types = (str, int, float, bool)
|
param_supported_types = (str, int, float, bool)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,5 @@
|
||||||
from typing import Any, Dict, List, Optional, Sequence, Tuple, Type
|
from typing import Any, Dict, List, Optional, Sequence, Tuple, Type
|
||||||
|
|
||||||
from pydantic.fields import Field
|
|
||||||
from pydantic.schema import Schema, field_schema, get_model_name_map
|
|
||||||
from pydantic.utils import lenient_issubclass
|
|
||||||
from starlette.responses import JSONResponse
|
|
||||||
from starlette.routing import BaseRoute
|
|
||||||
from starlette.status import HTTP_422_UNPROCESSABLE_ENTITY
|
|
||||||
|
|
||||||
from fastapi import routing
|
from fastapi import routing
|
||||||
from fastapi.dependencies.models import Dependant
|
from fastapi.dependencies.models import Dependant
|
||||||
from fastapi.dependencies.utils import get_flat_dependant
|
from fastapi.dependencies.utils import get_flat_dependant
|
||||||
|
|
@ -15,6 +8,12 @@ from fastapi.openapi.constants import METHODS_WITH_BODY, REF_PREFIX
|
||||||
from fastapi.openapi.models import OpenAPI
|
from fastapi.openapi.models import OpenAPI
|
||||||
from fastapi.params import Body, Param
|
from fastapi.params import Body, Param
|
||||||
from fastapi.utils import get_flat_models_from_routes, get_model_definitions
|
from fastapi.utils import get_flat_models_from_routes, get_model_definitions
|
||||||
|
from pydantic.fields import Field
|
||||||
|
from pydantic.schema import Schema, field_schema, get_model_name_map
|
||||||
|
from pydantic.utils import lenient_issubclass
|
||||||
|
from starlette.responses import JSONResponse
|
||||||
|
from starlette.routing import BaseRoute
|
||||||
|
from starlette.status import HTTP_422_UNPROCESSABLE_ENTITY
|
||||||
|
|
||||||
validation_error_definition = {
|
validation_error_definition = {
|
||||||
"title": "ValidationError",
|
"title": "ValidationError",
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@ import inspect
|
||||||
import logging
|
import logging
|
||||||
from typing import Any, Callable, List, Optional, Type
|
from typing import Any, Callable, List, Optional, Type
|
||||||
|
|
||||||
|
from fastapi import params
|
||||||
|
from fastapi.dependencies.models import Dependant
|
||||||
|
from fastapi.dependencies.utils import get_body_field, get_dependant, solve_dependencies
|
||||||
|
from fastapi.encoders import jsonable_encoder
|
||||||
from pydantic import BaseConfig, BaseModel, Schema
|
from pydantic import BaseConfig, BaseModel, Schema
|
||||||
from pydantic.error_wrappers import ErrorWrapper, ValidationError
|
from pydantic.error_wrappers import ErrorWrapper, ValidationError
|
||||||
from pydantic.fields import Field
|
from pydantic.fields import Field
|
||||||
|
|
@ -16,11 +20,6 @@ from starlette.responses import JSONResponse, Response
|
||||||
from starlette.routing import get_name, request_response
|
from starlette.routing import get_name, request_response
|
||||||
from starlette.status import HTTP_422_UNPROCESSABLE_ENTITY
|
from starlette.status import HTTP_422_UNPROCESSABLE_ENTITY
|
||||||
|
|
||||||
from fastapi import params
|
|
||||||
from fastapi.dependencies.models import Dependant
|
|
||||||
from fastapi.dependencies.utils import get_body_field, get_dependant, solve_dependencies
|
|
||||||
from fastapi.encoders import jsonable_encoder
|
|
||||||
|
|
||||||
|
|
||||||
def serialize_response(*, field: Field = None, response: Response) -> Any:
|
def serialize_response(*, field: Field = None, response: Response) -> Any:
|
||||||
if field:
|
if field:
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
from starlette.requests import Request
|
|
||||||
|
|
||||||
from fastapi.openapi.models import APIKey, APIKeyIn
|
from fastapi.openapi.models import APIKey, APIKeyIn
|
||||||
from fastapi.security.base import SecurityBase
|
from fastapi.security.base import SecurityBase
|
||||||
|
from starlette.requests import Request
|
||||||
|
|
||||||
|
|
||||||
class APIKeyBase(SecurityBase):
|
class APIKeyBase(SecurityBase):
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
from starlette.requests import Request
|
|
||||||
|
|
||||||
from fastapi.openapi.models import (
|
from fastapi.openapi.models import (
|
||||||
HTTPBase as HTTPBaseModel,
|
HTTPBase as HTTPBaseModel,
|
||||||
HTTPBearer as HTTPBearerModel,
|
HTTPBearer as HTTPBearerModel,
|
||||||
)
|
)
|
||||||
from fastapi.security.base import SecurityBase
|
from fastapi.security.base import SecurityBase
|
||||||
|
from starlette.requests import Request
|
||||||
|
|
||||||
|
|
||||||
class HTTPBase(SecurityBase):
|
class HTTPBase(SecurityBase):
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
|
from fastapi.openapi.models import OAuth2 as OAuth2Model, OAuthFlows as OAuthFlowsModel
|
||||||
|
from fastapi.security.base import SecurityBase
|
||||||
from pydantic import BaseModel, Schema
|
from pydantic import BaseModel, Schema
|
||||||
from starlette.exceptions import HTTPException
|
from starlette.exceptions import HTTPException
|
||||||
from starlette.requests import Request
|
from starlette.requests import Request
|
||||||
from starlette.status import HTTP_403_FORBIDDEN
|
from starlette.status import HTTP_403_FORBIDDEN
|
||||||
|
|
||||||
from fastapi.openapi.models import OAuth2 as OAuth2Model, OAuthFlows as OAuthFlowsModel
|
|
||||||
from fastapi.security.base import SecurityBase
|
|
||||||
|
|
||||||
|
|
||||||
class OAuth2PasswordRequestData(BaseModel):
|
class OAuth2PasswordRequestData(BaseModel):
|
||||||
grant_type: str = "password"
|
grant_type: str = "password"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
from starlette.requests import Request
|
|
||||||
|
|
||||||
from fastapi.openapi.models import OpenIdConnect as OpenIdConnectModel
|
from fastapi.openapi.models import OpenIdConnect as OpenIdConnectModel
|
||||||
from fastapi.security.base import SecurityBase
|
from fastapi.security.base import SecurityBase
|
||||||
|
from starlette.requests import Request
|
||||||
|
|
||||||
|
|
||||||
class OpenIdConnect(SecurityBase):
|
class OpenIdConnect(SecurityBase):
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
import re
|
import re
|
||||||
from typing import Any, Dict, List, Sequence, Set, Type
|
from typing import Any, Dict, List, Sequence, Set, Type
|
||||||
|
|
||||||
|
from fastapi import routing
|
||||||
|
from fastapi.openapi.constants import REF_PREFIX
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from pydantic.fields import Field
|
from pydantic.fields import Field
|
||||||
from pydantic.schema import get_flat_models_from_fields, model_process_schema
|
from pydantic.schema import get_flat_models_from_fields, model_process_schema
|
||||||
from starlette.routing import BaseRoute
|
from starlette.routing import BaseRoute
|
||||||
|
|
||||||
from fastapi import routing
|
|
||||||
from fastapi.openapi.constants import REF_PREFIX
|
|
||||||
|
|
||||||
|
|
||||||
def get_flat_models_from_routes(
|
def get_flat_models_from_routes(
|
||||||
routes: Sequence[Type[BaseRoute]]
|
routes: Sequence[Type[BaseRoute]]
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,13 @@ set -x
|
||||||
export VERSION_SCRIPT="import sys; print('%s.%s' % sys.version_info[0:2])"
|
export VERSION_SCRIPT="import sys; print('%s.%s' % sys.version_info[0:2])"
|
||||||
export PYTHON_VERSION=`python -c "$VERSION_SCRIPT"`
|
export PYTHON_VERSION=`python -c "$VERSION_SCRIPT"`
|
||||||
|
|
||||||
export PYTHONPATH=.:./docs/tutorial/src
|
export PYTHONPATH=./docs/tutorial/src
|
||||||
# PYTHONPATH=. pytest --cov=fastapi --cov=tests --cov-fail-under=100 --cov-report=term-missing ${@} --cov-report=html
|
# PYTHONPATH=. pytest --cov=fastapi --cov=tests --cov-fail-under=100 --cov-report=term-missing ${@} --cov-report=html
|
||||||
pipenv run -- pytest --cov=fastapi --cov=tests --cov=docs/tutorial/src --cov-report=term-missing ${@} --cov-report=html
|
pytest --cov=fastapi --cov=tests --cov=docs/tutorial/src --cov-report=term-missing ${@} --cov-report=html
|
||||||
pipenv run -- mypy fastapi --disallow-untyped-defs
|
mypy fastapi --disallow-untyped-defs
|
||||||
if [ "${PYTHON_VERSION}" = '3.7' ]; then
|
if [ "${PYTHON_VERSION}" = '3.7' ]; then
|
||||||
echo "Skipping 'black' on 3.7. See issue https://github.com/ambv/black/issues/494"
|
echo "Skipping 'black' on 3.7. See issue https://github.com/ambv/black/issues/494"
|
||||||
else
|
else
|
||||||
pipenv run -- black fastapi tests --check
|
black fastapi tests --check
|
||||||
fi
|
fi
|
||||||
pipenv run -- isort --multi-line=3 --trailing-comma --force-grid-wrap=0 --combine-as --line-width 88 --recursive --check-only fastapi tests
|
isort --multi-line=3 --trailing-comma --force-grid-wrap=0 --combine-as --line-width 88 --recursive --check-only fastapi tests
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,3 @@
|
||||||
from pydantic import BaseModel
|
|
||||||
from starlette.responses import HTMLResponse, JSONResponse, PlainTextResponse
|
|
||||||
from starlette.status import HTTP_202_ACCEPTED
|
|
||||||
|
|
||||||
from fastapi import (
|
from fastapi import (
|
||||||
Body,
|
Body,
|
||||||
Cookie,
|
Cookie,
|
||||||
|
|
@ -20,6 +16,9 @@ from fastapi.security import (
|
||||||
OAuth2PasswordBearer,
|
OAuth2PasswordBearer,
|
||||||
OAuth2PasswordRequestForm,
|
OAuth2PasswordRequestForm,
|
||||||
)
|
)
|
||||||
|
from pydantic import BaseModel
|
||||||
|
from starlette.responses import HTMLResponse, JSONResponse, PlainTextResponse
|
||||||
|
from starlette.status import HTTP_202_ACCEPTED
|
||||||
|
|
||||||
from .endpoints.a import router as router_a
|
from .endpoints.a import router as router_a
|
||||||
from .endpoints.b import router as router_b
|
from .endpoints.b import router as router_b
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue