New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lack of type checks in pkgutil.walk_packages and friends #68932
Comments
The documentation states that pkgutil.walk_packages() path must be None or a list of paths [1]. After passing in a string, the result was a blank list rather than a type error or automatic conversion to a list. If this method is documented that it must only accept a list or None, then there should surely be type checks to this effect? This was a bit of a gotcha that left me head scratching for 30 minutes (after not realising it only took a list, not an str, which in itself seems a bit odd) |
Well, normally no, we don't use type checks. On the other hand, having it produce an incorrect result rather than an error of *some* sort is not so good (the problem is that it is ultimately calling map(func, path), and map happily iterates the string applying func to each character in turn), so in this case I think it is worth the explicit check for string. |
Hi r.david.murray, What error do you think should be raised in this case, when path is an instance of str? I'll issue a PR once I know what end results are expected. |
As I mentioned on the PR I think it should be a ValueError, and that the PR also needs tests. |
I've updated the PR with required changes along with the test. Please have a look and let me know if any changes are needed. |
In thinking about merging this, I realize something I should have thought about earlier: we are proposing to raise an error where none was previously raised. Now, any code that would hit this would be broken, but nonetheless, by our backward compatibility policy we should do this only in 3.7, and we should add a note to the porting section of What's New. And the PR needs a news entry. |
Thanks, Sanyam. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: