Skip to content

Relax the signature of logging.config.loadConfig - #6577

Merged
JelleZijlstra merged 1 commit into
python:masterfrom
JukkaL:logging-config
Dec 13, 2021
Merged

JelleZijlstra merged 1 commit into
python:masterfrom
JukkaL:logging-config

Conversation

@JukkaL

@JukkaL JukkaL commented Dec 13, 2021

Copy link
Copy Markdown
Contributor

I did a a cursory investigation using GitHub search and also looked at
a big internal codebase, and a significant fraction of callsites used
a dict type instead of a TypedDict or a dict literal.

It seems that it's a common use case to store the config within an
attribute. For example, something like this:

CONFIG = {
   ...
}

...
logging.config.dictConfig(CONFIG)

Another use case that was not properly supported is reading the
config from a file, and the config is given dict[str, Any] as
the type.

Mypy can still do some type checking of the argument if called
with a dict literal, so I feel this is a reasonable compromise
between type checking strictness and usability.

I did a a cursory investigation using GitHub search and also looked at
a big internal codebase, and a significant fraction of callsites used
a dict type instead of a TypedDict or a dict literal.

It seems that it's a common use case to store the config within an
attribute. For example, something like this:

```
CONFIG = {
   ...
}

...
logging.config.dictConfig(CONFIG)
```

Another use case that was not properly supported is reading the
config from a file, and the config is given `dict[str, Any]` as
the type.

Mypy can still do some type checking of the argument if called
with a dict literal, so I feel this is a reasonable compromise
between type checking strictness and usability.
@github-actions

Copy link
Copy Markdown
Contributor

According to mypy_primer, this change has no effect on the checked open source code. 🤖🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants