Hi Samuel,

 

> Because of this you can legitimately use "settings = Settings()" even when your Settings class has required fields - because they're filled from env variables.

 

Since the parameters don’t need to be provided when creating a `Settings` object, aren’t these fields *not* required? I saw a comment on the issue suggesting adding default values as a workaround. [1] Why doesn’t that work? I didn’t see any responses to that idea.

 

Alternatively, could you refactor your class hierarchy and relocate the `dataclass_transform` decorator so `BaseSettings` and `BaseModel` still share code, but BaseSettings’s branch of the hierarchy was not decorated with `dataclass_transform`?

 

-Erik

 

[1] https://github.com/samuelcolvin/pydantic/issues/3753#issuecomment-1060850457