The following issues were found

fastapi/__init__.py
38 issues
Unable to import 'starlette'
Error

Line: 5 Column: 1

              
__version__ = "0.68.0"

from starlette import status as status

from .applications import FastAPI as FastAPI
from .background import BackgroundTasks as BackgroundTasks
from .datastructures import UploadFile as UploadFile
from .exceptions import HTTPException as HTTPException

            

Reported by Pylint.

Unable to import '__init__.applications'
Error

Line: 7 Column: 1

              
from starlette import status as status

from .applications import FastAPI as FastAPI
from .background import BackgroundTasks as BackgroundTasks
from .datastructures import UploadFile as UploadFile
from .exceptions import HTTPException as HTTPException
from .param_functions import Body as Body
from .param_functions import Cookie as Cookie

            

Reported by Pylint.

Unable to import '__init__.background'
Error

Line: 8 Column: 1

              from starlette import status as status

from .applications import FastAPI as FastAPI
from .background import BackgroundTasks as BackgroundTasks
from .datastructures import UploadFile as UploadFile
from .exceptions import HTTPException as HTTPException
from .param_functions import Body as Body
from .param_functions import Cookie as Cookie
from .param_functions import Depends as Depends

            

Reported by Pylint.

Unable to import '__init__.datastructures'
Error

Line: 9 Column: 1

              
from .applications import FastAPI as FastAPI
from .background import BackgroundTasks as BackgroundTasks
from .datastructures import UploadFile as UploadFile
from .exceptions import HTTPException as HTTPException
from .param_functions import Body as Body
from .param_functions import Cookie as Cookie
from .param_functions import Depends as Depends
from .param_functions import File as File

            

Reported by Pylint.

Unable to import '__init__.exceptions'
Error

Line: 10 Column: 1

              from .applications import FastAPI as FastAPI
from .background import BackgroundTasks as BackgroundTasks
from .datastructures import UploadFile as UploadFile
from .exceptions import HTTPException as HTTPException
from .param_functions import Body as Body
from .param_functions import Cookie as Cookie
from .param_functions import Depends as Depends
from .param_functions import File as File
from .param_functions import Form as Form

            

Reported by Pylint.

Unable to import '__init__.param_functions'
Error

Line: 11 Column: 1

              from .background import BackgroundTasks as BackgroundTasks
from .datastructures import UploadFile as UploadFile
from .exceptions import HTTPException as HTTPException
from .param_functions import Body as Body
from .param_functions import Cookie as Cookie
from .param_functions import Depends as Depends
from .param_functions import File as File
from .param_functions import Form as Form
from .param_functions import Header as Header

            

Reported by Pylint.

Unable to import '__init__.param_functions'
Error

Line: 12 Column: 1

              from .datastructures import UploadFile as UploadFile
from .exceptions import HTTPException as HTTPException
from .param_functions import Body as Body
from .param_functions import Cookie as Cookie
from .param_functions import Depends as Depends
from .param_functions import File as File
from .param_functions import Form as Form
from .param_functions import Header as Header
from .param_functions import Path as Path

            

Reported by Pylint.

Unable to import '__init__.param_functions'
Error

Line: 13 Column: 1

              from .exceptions import HTTPException as HTTPException
from .param_functions import Body as Body
from .param_functions import Cookie as Cookie
from .param_functions import Depends as Depends
from .param_functions import File as File
from .param_functions import Form as Form
from .param_functions import Header as Header
from .param_functions import Path as Path
from .param_functions import Query as Query

            

Reported by Pylint.

Unable to import '__init__.param_functions'
Error

Line: 14 Column: 1

              from .param_functions import Body as Body
from .param_functions import Cookie as Cookie
from .param_functions import Depends as Depends
from .param_functions import File as File
from .param_functions import Form as Form
from .param_functions import Header as Header
from .param_functions import Path as Path
from .param_functions import Query as Query
from .param_functions import Security as Security

            

Reported by Pylint.

Unable to import '__init__.param_functions'
Error

Line: 15 Column: 1

              from .param_functions import Cookie as Cookie
from .param_functions import Depends as Depends
from .param_functions import File as File
from .param_functions import Form as Form
from .param_functions import Header as Header
from .param_functions import Path as Path
from .param_functions import Query as Query
from .param_functions import Security as Security
from .requests import Request as Request

            

Reported by Pylint.

tests/main.py
37 issues
Missing module docstring
Error

Line: 1 Column: 1

              import http
from typing import Optional

from fastapi import FastAPI, Path, Query

app = FastAPI()


@app.api_route("/api_route")

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 10 Column: 1

              

@app.api_route("/api_route")
def non_operation():
    return {"message": "Hello World"}


def non_decorated_route():
    return {"message": "Hello World"}

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 14 Column: 1

                  return {"message": "Hello World"}


def non_decorated_route():
    return {"message": "Hello World"}


app.add_api_route("/non_decorated_route", non_decorated_route)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 22 Column: 1

              

@app.get("/text")
def get_text():
    return "Hello World"


@app.get("/path/{item_id}")
def get_id(item_id):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 27 Column: 1

              

@app.get("/path/{item_id}")
def get_id(item_id):
    return item_id


@app.get("/path/str/{item_id}")
def get_str_id(item_id: str):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 32 Column: 1

              

@app.get("/path/str/{item_id}")
def get_str_id(item_id: str):
    return item_id


@app.get("/path/int/{item_id}")
def get_int_id(item_id: int):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 37 Column: 1

              

@app.get("/path/int/{item_id}")
def get_int_id(item_id: int):
    return item_id


@app.get("/path/float/{item_id}")
def get_float_id(item_id: float):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 42 Column: 1

              

@app.get("/path/float/{item_id}")
def get_float_id(item_id: float):
    return item_id


@app.get("/path/bool/{item_id}")
def get_bool_id(item_id: bool):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 47 Column: 1

              

@app.get("/path/bool/{item_id}")
def get_bool_id(item_id: bool):
    return item_id


@app.get("/path/param/{item_id}")
def get_path_param_id(item_id: Optional[str] = Path(None)):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 52 Column: 1

              

@app.get("/path/param/{item_id}")
def get_path_param_id(item_id: Optional[str] = Path(None)):
    return item_id


@app.get("/path/param-required/{item_id}")
def get_path_param_required_id(item_id: str = Path(...)):

            

Reported by Pylint.

pending_tests/main.py
37 issues
Unable to import 'fastapi'
Error

Line: 1 Column: 1

              from fastapi import (
    Body,
    Cookie,
    Depends,
    FastAPI,
    File,
    Form,
    Header,
    Path,

            

Reported by Pylint.

Unable to import 'fastapi.security'
Error

Line: 13 Column: 1

                  Query,
    Security,
)
from fastapi.security import (
    HTTPBasic,
    OAuth2,
    OAuth2PasswordBearer,
    OAuth2PasswordRequestForm,
)

            

Reported by Pylint.

Unable to import 'pydantic'
Error

Line: 19 Column: 1

                  OAuth2PasswordBearer,
    OAuth2PasswordRequestForm,
)
from pydantic import BaseModel
from starlette.responses import HTMLResponse, JSONResponse, PlainTextResponse
from starlette.status import HTTP_202_ACCEPTED

app = FastAPI()


            

Reported by Pylint.

Unable to import 'starlette.responses'
Error

Line: 20 Column: 1

                  OAuth2PasswordRequestForm,
)
from pydantic import BaseModel
from starlette.responses import HTMLResponse, JSONResponse, PlainTextResponse
from starlette.status import HTTP_202_ACCEPTED

app = FastAPI()



            

Reported by Pylint.

Unable to import 'starlette.status'
Error

Line: 21 Column: 1

              )
from pydantic import BaseModel
from starlette.responses import HTMLResponse, JSONResponse, PlainTextResponse
from starlette.status import HTTP_202_ACCEPTED

app = FastAPI()


@app.get("/security")

            

Reported by Pylint.

Unused File imported from fastapi
Error

Line: 1 Column: 1

              from fastapi import (
    Body,
    Cookie,
    Depends,
    FastAPI,
    File,
    Form,
    Header,
    Path,

            

Reported by Pylint.

Unused Path imported from fastapi
Error

Line: 1 Column: 1

              from fastapi import (
    Body,
    Cookie,
    Depends,
    FastAPI,
    File,
    Form,
    Header,
    Path,

            

Reported by Pylint.

Unused Query imported from fastapi
Error

Line: 1 Column: 1

              from fastapi import (
    Body,
    Cookie,
    Depends,
    FastAPI,
    File,
    Form,
    Header,
    Path,

            

Reported by Pylint.

Unused Header imported from fastapi
Error

Line: 1 Column: 1

              from fastapi import (
    Body,
    Cookie,
    Depends,
    FastAPI,
    File,
    Form,
    Header,
    Path,

            

Reported by Pylint.

Unused Body imported from fastapi
Error

Line: 1 Column: 1

              from fastapi import (
    Body,
    Cookie,
    Depends,
    FastAPI,
    File,
    Form,
    Header,
    Path,

            

Reported by Pylint.

tests/test_extra_routes.py
36 issues
Unable to import 'pydantic'
Error

Line: 6 Column: 1

              from fastapi import FastAPI
from fastapi.responses import JSONResponse
from fastapi.testclient import TestClient
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):

            

Reported by Pylint.

Unused argument 'item_id'
Error

Line: 49 Column: 16

              

@app.trace("/items/{item_id}")
def trace_item(item_id: str):
    return JSONResponse(media_type="message/http")


client = TestClient(app)


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from typing import Optional

from fastapi import FastAPI
from fastapi.responses import JSONResponse
from fastapi.testclient import TestClient
from pydantic import BaseModel

app = FastAPI()


            

Reported by Pylint.

Missing class docstring
Error

Line: 11 Column: 1

              app = FastAPI()


class Item(BaseModel):
    name: str
    price: Optional[float] = None


@app.api_route("/items/{item_id}", methods=["GET"])

            

Reported by Pylint.

Too few public methods (0/2)
Error

Line: 11 Column: 1

              app = FastAPI()


class Item(BaseModel):
    name: str
    price: Optional[float] = None


@app.api_route("/items/{item_id}", methods=["GET"])

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 17 Column: 1

              

@app.api_route("/items/{item_id}", methods=["GET"])
def get_items(item_id: str):
    return {"item_id": item_id}


def get_not_decorated(item_id: str):
    return {"item_id": item_id}

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 21 Column: 1

                  return {"item_id": item_id}


def get_not_decorated(item_id: str):
    return {"item_id": item_id}


app.add_api_route("/items-not-decorated/{item_id}", get_not_decorated)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 29 Column: 1

              

@app.delete("/items/{item_id}")
def delete_item(item_id: str, item: Item):
    return {"item_id": item_id, "item": item}


@app.head("/items/{item_id}")
def head_item(item_id: str):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 34 Column: 1

              

@app.head("/items/{item_id}")
def head_item(item_id: str):
    return JSONResponse(headers={"x-fastapi-item-id": item_id})


@app.options("/items/{item_id}")
def options_item(item_id: str):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 39 Column: 1

              

@app.options("/items/{item_id}")
def options_item(item_id: str):
    return JSONResponse(headers={"x-fastapi-item-id": item_id})


@app.patch("/items/{item_id}")
def patch_item(item_id: str, item: Item):

            

Reported by Pylint.

tests/test_response_model_include_exclude.py
35 issues
Unable to import 'pydantic'
Error

Line: 3 Column: 1

              from fastapi import FastAPI
from fastapi.testclient import TestClient
from pydantic import BaseModel


class Model1(BaseModel):
    foo: str
    bar: str


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from fastapi import FastAPI
from fastapi.testclient import TestClient
from pydantic import BaseModel


class Model1(BaseModel):
    foo: str
    bar: str


            

Reported by Pylint.

Too few public methods (0/2)
Error

Line: 6 Column: 1

              from pydantic import BaseModel


class Model1(BaseModel):
    foo: str
    bar: str


class Model2(BaseModel):

            

Reported by Pylint.

Missing class docstring
Error

Line: 6 Column: 1

              from pydantic import BaseModel


class Model1(BaseModel):
    foo: str
    bar: str


class Model2(BaseModel):

            

Reported by Pylint.

Black listed name "foo"
Error

Line: 7 Column: 5

              

class Model1(BaseModel):
    foo: str
    bar: str


class Model2(BaseModel):
    ref: Model1

            

Reported by Pylint.

Black listed name "bar"
Error

Line: 8 Column: 5

              
class Model1(BaseModel):
    foo: str
    bar: str


class Model2(BaseModel):
    ref: Model1
    baz: str

            

Reported by Pylint.

Too few public methods (0/2)
Error

Line: 11 Column: 1

                  bar: str


class Model2(BaseModel):
    ref: Model1
    baz: str


class Model3(BaseModel):

            

Reported by Pylint.

Missing class docstring
Error

Line: 11 Column: 1

                  bar: str


class Model2(BaseModel):
    ref: Model1
    baz: str


class Model3(BaseModel):

            

Reported by Pylint.

Black listed name "baz"
Error

Line: 13 Column: 5

              
class Model2(BaseModel):
    ref: Model1
    baz: str


class Model3(BaseModel):
    name: str
    age: int

            

Reported by Pylint.

Too few public methods (0/2)
Error

Line: 16 Column: 1

                  baz: str


class Model3(BaseModel):
    name: str
    age: int
    ref2: Model2



            

Reported by Pylint.

tests/test_infer_param_optionality.py
33 issues
Missing module docstring
Error

Line: 1 Column: 1

              from typing import Optional

from fastapi import APIRouter, FastAPI
from fastapi.testclient import TestClient

app = FastAPI()


user_router = APIRouter()

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 14 Column: 1

              

@user_router.get("/")
def get_users():
    return [{"user_id": "u1"}, {"user_id": "u2"}]


@user_router.get("/{user_id}")
def get_user(user_id: str):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 19 Column: 1

              

@user_router.get("/{user_id}")
def get_user(user_id: str):
    return {"user_id": user_id}


@item_router.get("/")
def get_items(user_id: Optional[str] = None):

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 24 Column: 1

              

@item_router.get("/")
def get_items(user_id: Optional[str] = None):
    if user_id is None:
        return [{"item_id": "i1", "user_id": "u1"}, {"item_id": "i2", "user_id": "u2"}]
    else:
        return [{"item_id": "i2", "user_id": user_id}]


            

Reported by Pylint.

Unnecessary "else" after "return"
Error

Line: 25 Column: 5

              
@item_router.get("/")
def get_items(user_id: Optional[str] = None):
    if user_id is None:
        return [{"item_id": "i1", "user_id": "u1"}, {"item_id": "i2", "user_id": "u2"}]
    else:
        return [{"item_id": "i2", "user_id": user_id}]



            

Reported by Pylint.

Missing function or method docstring
Error

Line: 32 Column: 1

              

@item_router.get("/{item_id}")
def get_item(item_id: str, user_id: Optional[str] = None):
    if user_id is None:
        return {"item_id": item_id}
    else:
        return {"item_id": item_id, "user_id": user_id}


            

Reported by Pylint.

Unnecessary "else" after "return"
Error

Line: 33 Column: 5

              
@item_router.get("/{item_id}")
def get_item(item_id: str, user_id: Optional[str] = None):
    if user_id is None:
        return {"item_id": item_id}
    else:
        return {"item_id": item_id, "user_id": user_id}



            

Reported by Pylint.

Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Security

Line: 51
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html

              def test_get_users():
    """Check that /users returns expected data"""
    response = client.get("/users")
    assert response.status_code == 200, response.text
    assert response.json() == [{"user_id": "u1"}, {"user_id": "u2"}]


def test_get_user():
    """Check that /users/{user_id} returns expected data"""

            

Reported by Bandit.

Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Security

Line: 52
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html

                  """Check that /users returns expected data"""
    response = client.get("/users")
    assert response.status_code == 200, response.text
    assert response.json() == [{"user_id": "u1"}, {"user_id": "u2"}]


def test_get_user():
    """Check that /users/{user_id} returns expected data"""
    response = client.get("/users/abc123")

            

Reported by Bandit.

Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Security

Line: 58
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html

              def test_get_user():
    """Check that /users/{user_id} returns expected data"""
    response = client.get("/users/abc123")
    assert response.status_code == 200, response.text
    assert response.json() == {"user_id": "abc123"}


def test_get_items_1():
    """Check that /items returns expected data"""

            

Reported by Bandit.

tests/test_multipart_installation.py
32 issues
Unable to import 'pytest'
Error

Line: 1 Column: 1

              import pytest
from fastapi import FastAPI, File, Form, UploadFile
from fastapi.dependencies.utils import (
    multipart_incorrect_install_error,
    multipart_not_installed_error,
)


def test_incorrect_multipart_installed_form(monkeypatch):

            

Reported by Pylint.

Unused variable 'root'
Error

Line: 15 Column: 9

                      app = FastAPI()

        @app.post("/")
        async def root(username: str = Form(...)):
            return username  # pragma: nocover


def test_incorrect_multipart_installed_file_upload(monkeypatch):
    monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)

            

Reported by Pylint.

Unused variable 'root'
Error

Line: 25 Column: 9

                      app = FastAPI()

        @app.post("/")
        async def root(f: UploadFile = File(...)):
            return f  # pragma: nocover


def test_incorrect_multipart_installed_file_bytes(monkeypatch):
    monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)

            

Reported by Pylint.

Unused variable 'root'
Error

Line: 35 Column: 9

                      app = FastAPI()

        @app.post("/")
        async def root(f: bytes = File(...)):
            return f  # pragma: nocover


def test_incorrect_multipart_installed_multi_form(monkeypatch):
    monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)

            

Reported by Pylint.

Unused variable 'root'
Error

Line: 45 Column: 9

                      app = FastAPI()

        @app.post("/")
        async def root(username: str = Form(...), password: str = Form(...)):
            return username  # pragma: nocover


def test_incorrect_multipart_installed_form_file(monkeypatch):
    monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)

            

Reported by Pylint.

Unused argument 'password'
Error

Line: 45 Column: 51

                      app = FastAPI()

        @app.post("/")
        async def root(username: str = Form(...), password: str = Form(...)):
            return username  # pragma: nocover


def test_incorrect_multipart_installed_form_file(monkeypatch):
    monkeypatch.delattr("multipart.multipart.parse_options_header", raising=False)

            

Reported by Pylint.

Unused variable 'root'
Error

Line: 55 Column: 9

                      app = FastAPI()

        @app.post("/")
        async def root(username: str = Form(...), f: UploadFile = File(...)):
            return username  # pragma: nocover


def test_no_multipart_installed(monkeypatch):
    monkeypatch.delattr("multipart.__version__", raising=False)

            

Reported by Pylint.

Unused argument 'f'
Error

Line: 55 Column: 51

                      app = FastAPI()

        @app.post("/")
        async def root(username: str = Form(...), f: UploadFile = File(...)):
            return username  # pragma: nocover


def test_no_multipart_installed(monkeypatch):
    monkeypatch.delattr("multipart.__version__", raising=False)

            

Reported by Pylint.

Unused variable 'root'
Error

Line: 65 Column: 9

                      app = FastAPI()

        @app.post("/")
        async def root(username: str = Form(...)):
            return username  # pragma: nocover


def test_no_multipart_installed_file(monkeypatch):
    monkeypatch.delattr("multipart.__version__", raising=False)

            

Reported by Pylint.

Unused variable 'root'
Error

Line: 75 Column: 9

                      app = FastAPI()

        @app.post("/")
        async def root(f: UploadFile = File(...)):
            return f  # pragma: nocover


def test_no_multipart_installed_file_bytes(monkeypatch):
    monkeypatch.delattr("multipart.__version__", raising=False)

            

Reported by Pylint.

docs_src/security/tutorial005.py
32 issues
Unable to import 'fastapi'
Error

Line: 4 Column: 1

              from datetime import datetime, timedelta
from typing import List, Optional

from fastapi import Depends, FastAPI, HTTPException, Security, status
from fastapi.security import (
    OAuth2PasswordBearer,
    OAuth2PasswordRequestForm,
    SecurityScopes,
)

            

Reported by Pylint.

Unable to import 'fastapi.security'
Error

Line: 5 Column: 1

              from typing import List, Optional

from fastapi import Depends, FastAPI, HTTPException, Security, status
from fastapi.security import (
    OAuth2PasswordBearer,
    OAuth2PasswordRequestForm,
    SecurityScopes,
)
from jose import JWTError, jwt

            

Reported by Pylint.

Unable to import 'jose'
Error

Line: 10 Column: 1

                  OAuth2PasswordRequestForm,
    SecurityScopes,
)
from jose import JWTError, jwt
from passlib.context import CryptContext
from pydantic import BaseModel, ValidationError

# to get a string like this run:
# openssl rand -hex 32

            

Reported by Pylint.

Unable to import 'passlib.context'
Error

Line: 11 Column: 1

                  SecurityScopes,
)
from jose import JWTError, jwt
from passlib.context import CryptContext
from pydantic import BaseModel, ValidationError

# to get a string like this run:
# openssl rand -hex 32
SECRET_KEY = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7"

            

Reported by Pylint.

Unable to import 'pydantic'
Error

Line: 12 Column: 1

              )
from jose import JWTError, jwt
from passlib.context import CryptContext
from pydantic import BaseModel, ValidationError

# to get a string like this run:
# openssl rand -hex 32
SECRET_KEY = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7"
ALGORITHM = "HS256"

            

Reported by Pylint.

Instance of 'bool' has no 'username' member
Error

Line: 153 Column: 22

                      raise HTTPException(status_code=400, detail="Incorrect username or password")
    access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
    access_token = create_access_token(
        data={"sub": user.username, "scopes": form_data.scopes},
        expires_delta=access_token_expires,
    )
    return {"access_token": access_token, "token_type": "bearer"}



            

Reported by Pylint.

Using an f-string that does not have any interpolated variables
Error

Line: 110 Column: 30

                  if security_scopes.scopes:
        authenticate_value = f'Bearer scope="{security_scopes.scope_str}"'
    else:
        authenticate_value = f"Bearer"
    credentials_exception = HTTPException(
        status_code=status.HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": authenticate_value},
    )

            

Reported by Pylint.

Consider explicitly re-raising using the 'from' keyword
Error

Line: 124 Column: 9

                      token_scopes = payload.get("scopes", [])
        token_data = TokenData(scopes=token_scopes, username=username)
    except (JWTError, ValidationError):
        raise credentials_exception
    user = get_user(fake_users_db, username=token_data.username)
    if user is None:
        raise credentials_exception
    for scope in security_scopes.scopes:
        if scope not in token_data.scopes:

            

Reported by Pylint.

Unused argument 'current_user'
Error

Line: 172 Column: 30

              

@app.get("/status/")
async def read_system_status(current_user: User = Depends(get_current_user)):
    return {"status": "ok"}

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from datetime import datetime, timedelta
from typing import List, Optional

from fastapi import Depends, FastAPI, HTTPException, Security, status
from fastapi.security import (
    OAuth2PasswordBearer,
    OAuth2PasswordRequestForm,
    SecurityScopes,
)

            

Reported by Pylint.

fastapi/openapi/utils.py
32 issues
Unable to import 'pydantic'
Error

Line: 24 Column: 1

                  generate_operation_id_for_path,
    get_model_definitions,
)
from pydantic import BaseModel
from pydantic.fields import ModelField, Undefined
from pydantic.schema import (
    field_schema,
    get_flat_models_from_fields,
    get_model_name_map,

            

Reported by Pylint.

Unable to import 'pydantic.fields'
Error

Line: 25 Column: 1

                  get_model_definitions,
)
from pydantic import BaseModel
from pydantic.fields import ModelField, Undefined
from pydantic.schema import (
    field_schema,
    get_flat_models_from_fields,
    get_model_name_map,
)

            

Reported by Pylint.

Unable to import 'pydantic.schema'
Error

Line: 26 Column: 1

              )
from pydantic import BaseModel
from pydantic.fields import ModelField, Undefined
from pydantic.schema import (
    field_schema,
    get_flat_models_from_fields,
    get_model_name_map,
)
from pydantic.utils import lenient_issubclass

            

Reported by Pylint.

Unable to import 'pydantic.utils'
Error

Line: 31 Column: 1

                  get_flat_models_from_fields,
    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 = {

            

Reported by Pylint.

Unable to import 'starlette.responses'
Error

Line: 32 Column: 1

                  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 = {
    "title": "ValidationError",

            

Reported by Pylint.

Unable to import 'starlette.routing'
Error

Line: 33 Column: 1

              )
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 = {
    "title": "ValidationError",
    "type": "object",

            

Reported by Pylint.

Unable to import 'starlette.status'
Error

Line: 34 Column: 1

              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 = {
    "title": "ValidationError",
    "type": "object",
    "properties": {

            

Reported by Pylint.

Unused argument 'method'
Error

Line: 148 Column: 60

                  return generate_operation_id_for_path(name=route.name, path=path, method=method)


def generate_operation_summary(*, route: routing.APIRoute, method: str) -> str:
    if route.summary:
        return route.summary
    return route.name.replace("_", " ").title()



            

Reported by Pylint.

Unused variable 'cb_security_schemes'
Error

Line: 215 Column: 29

                                  if isinstance(callback, routing.APIRoute):
                        (
                            cb_path,
                            cb_security_schemes,
                            cb_definitions,
                        ) = get_openapi_path(
                            route=callback, model_name_map=model_name_map
                        )
                        callbacks[callback.name] = {callback.path: cb_path}

            

Reported by Pylint.

Unused variable 'cb_definitions'
Error

Line: 216 Column: 29

                                      (
                            cb_path,
                            cb_security_schemes,
                            cb_definitions,
                        ) = get_openapi_path(
                            route=callback, model_name_map=model_name_map
                        )
                        callbacks[callback.name] = {callback.path: cb_path}
                operation["callbacks"] = callbacks

            

Reported by Pylint.

tests/test_router_events.py
32 issues
Unable to import 'pydantic'
Error

Line: 3 Column: 1

              from fastapi import APIRouter, FastAPI
from fastapi.testclient import TestClient
from pydantic import BaseModel


class State(BaseModel):
    app_startup: bool = False
    app_shutdown: bool = False
    router_startup: bool = False

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from fastapi import APIRouter, FastAPI
from fastapi.testclient import TestClient
from pydantic import BaseModel


class State(BaseModel):
    app_startup: bool = False
    app_shutdown: bool = False
    router_startup: bool = False

            

Reported by Pylint.

Missing class docstring
Error

Line: 6 Column: 1

              from pydantic import BaseModel


class State(BaseModel):
    app_startup: bool = False
    app_shutdown: bool = False
    router_startup: bool = False
    router_shutdown: bool = False
    sub_router_startup: bool = False

            

Reported by Pylint.

Too few public methods (0/2)
Error

Line: 6 Column: 1

              from pydantic import BaseModel


class State(BaseModel):
    app_startup: bool = False
    app_shutdown: bool = False
    router_startup: bool = False
    router_shutdown: bool = False
    sub_router_startup: bool = False

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 21 Column: 1

              

@app.on_event("startup")
def app_startup():
    state.app_startup = True


@app.on_event("shutdown")
def app_shutdown():

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 26 Column: 1

              

@app.on_event("shutdown")
def app_shutdown():
    state.app_shutdown = True


router = APIRouter()


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 34 Column: 1

              

@router.on_event("startup")
def router_startup():
    state.router_startup = True


@router.on_event("shutdown")
def router_shutdown():

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 39 Column: 1

              

@router.on_event("shutdown")
def router_shutdown():
    state.router_shutdown = True


sub_router = APIRouter()


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 47 Column: 1

              

@sub_router.on_event("startup")
def sub_router_startup():
    state.sub_router_startup = True


@sub_router.on_event("shutdown")
def sub_router_shutdown():

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 52 Column: 1

              

@sub_router.on_event("shutdown")
def sub_router_shutdown():
    state.sub_router_shutdown = True


@sub_router.get("/")
def main():

            

Reported by Pylint.