Typing for scrapy.settings.BaseSettings #5977
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds full typing for
BaseSettings
. There is one potential optimisation here:BaseSettings
is both the Scrapy settings as a whole (with keys that can only be strings) and setting values for things likeFEEDS
(with keys of various types), if it's possible to separate these it's possible to type the former more correctly. But that seems to require changing the class hierarchy and so it's more harm than good.Another things that is out of scope and not really useful is
Settings
vsBaseSettings
in the annotations of the code that uses settings. The code difference between those classes is only the__init__
method so their interfaces are currently identical.