pytorch-lightning
pytorch-lightning copied to clipboard
make plugin type check more flexible
What does this PR do?
The current type check of plugins
for Trainer is restricted to list
by isinstance(plugins, list)
. However, if plugins
is instantiated from something like Hydra or OmegaConf, it will have type <class 'omegaconf.listconfig.ListConfig'>
, and the current logic would wrap that list-like object with a second-layer list and cause subsequant logic to fail. If you look at the code, it is not necessary that plugins
must be a list - it suffices as long as it is iterable. Therefore, the proposed simple fix change the check from isinstance(plugins, list)
to isinstance(plugins, Iterable)
. I hope this can benefit those who uses Hydra or OmegaConf.
Before submitting
- Was this discussed/agreed via a GitHub issue? (not for typos and docs)
- [x] Did you read the contributor guideline, Pull Request section?
- [ ] Did you make sure your PR does only one thing, instead of bundling different changes together?
- Did you make sure to update the documentation with your changes? (if necessary)
- Did you write any new necessary tests? (not for typos and docs)
- [ ] Did you verify new and existing tests pass locally with your changes?
- Did you list all the breaking changes introduced by this pull request?
- Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)
PR review
Anyone in the community is welcome to review the PR. Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:
Reviewer checklist
- [ ] Is this pull request ready for review? (if not, please submit in draft mode)
- [ ] Check that all items from Before submitting are resolved
- [ ] Make sure the title is self-explanatory and the description concisely explains the PR
- [ ] Add labels and milestones (and optionally projects) to the PR so it can be classified
📚 Documentation preview 📚: https://pytorch-lightning--20186.org.readthedocs.build/en/20186/