Giter Club home page Giter Club logo

Comments (5)

daviskirk avatar daviskirk commented on May 16, 2024

This isn't really a solution, but a few comments for you, me and future readers ;)

I'm assuming from you usage of pylance that you're using vscode here.
Using vscode and pylance with the code above I actually don't get any of your errors.

Are you by chance using:

"python.analysis.typeCheckingMode": "strict"

?

That's the only way I get this error.

Unfortunately I have always found the strict pylance typechecking to be more annoying than helpful as it has a bunch of places where it's either overly strict or is not very supportive of pythonic code (not just in pydantic). I tend to use check types using mypy and turn pylance type checking off (or use the "basic" setting).

For example, the BaseModel has exaclty the same problem:

class FooModel(BaseModel):
    value: str

    class Config:
        title = 'foo'


class BarModel(FooModel):

    class Config:  # this will have a similar "error"
        bla = "blub"

You can of course always explicitly inherit from the parents config (like you're doing in the "fixed" version above). However, pydantics ModelMetaclass already basically does the same thing when the class is created and my assumption is that pylance can't pick up this type of "dynamic" inheritance.

from pydantic-settings.

pikeas avatar pikeas commented on May 16, 2024

I'm assuming from you usage of pylance that you're using vscode here. Are you by chance using: "python.analysis.typeCheckingMode": "strict"?

Yes and yes.

For example, the BaseModel has exactly the same problem:

This is incorrect, or at least not the case for me, which is why I included a BaseModel example. There are no complaints from Pylance when adding a Config to BaseModel, only when adding a Config to BaseSettings.

from pydantic-settings.

PrettyWood avatar PrettyWood commented on May 16, 2024

@pikeas What @daviskirk wanted to say is that you would have the same error with a second BaseModel inheriting from the first one. Internally BaseSettings inherits from BaseModel hence the same error

from pydantic-settings.

pikeas avatar pikeas commented on May 16, 2024

@pikeas What @daviskirk wanted to say is that you would have the same error with a second BaseModel inheriting from the first one. Internally BaseSettings inherits from BaseModel hence the same error

Thanks for clarifying, I didn't catch that initially. I think that running Pylance or MyPy in strict mode is a common use case, and worth smoothing over when possible. If Pydantic's types can be tweaked so this Just Works, that seems worth doing. Otherwise, updating the docs to use Config(ParentModel.Config)?

from pydantic-settings.

hramezani avatar hramezani commented on May 16, 2024

This is fixed in pydantic-settings by using SettingsConfigDict

from pydantic-settings.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.