PyCQA/flake8-bugbear

B008: extend-immutable-calls does not work with imported function

Aperta

#252 aperta il 4 apr 2022

 (5 commenti) (1 reazione) (0 assegnatari)Python (116 fork)github user discovery
bugenhancementhelp wanted

Metriche repository

Star
 (1116 stelle)
Metriche merge PR
 (Merge medio 4h 17m) (3 PR mergiate in 30 g)

Descrizione

I have small framework, which has Depends function simialr to fastapi feature. In my projects I want flake8-bubear to ignore only this funcion, but not any other function with same name. I've tried to set full link in flake config, but it does not work. I know that it is possible to always use full function name, but it looks dirty:

Example 1. Correct behavior - no B008 In config:

extend-immutable-calls=myapp.api.lambda_handler.depends.Depends

In code

import myapp.api.lambda_handler.depends

@app.handler
def get_data(
        session: Session = myapp.api.lambda_handler.depends.Depends(),
) -> HttpResponse[ListResponse[AA]]:

Example 2. Incorrect behavior - B008 In config:

extend-immutable-calls=myapp.api.lambda_handler.depends.Depends

In code

from myapp.api.lambda_handler.depends import Depends

@app.handler
def get_data(
        session: Session = Depends(),
) -> HttpResponse[ListResponse[AA]]:

Example 3. Incorrect behavior - no B008

extend-immutable-calls=Depends
from myapp.api.lambda_handler.depends import Depends

@app.handler
def get_data(
        session: Session = Depends(),
) -> HttpResponse[ListResponse[AA]]:
    ...

def Depends(): 
    return []

@app.handler
def put_data(
        session: Session = Depends(),
) -> HttpResponse[ListResponse[AA]]:

Guida contributor