Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork938
Start adding types to Submodule, add py.typed to manifest#1282
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
That's great work, thanks a lot!
It's good to see that people are already starting to use it, too.
Can't wait to merge.
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Thanks a million for all your work! |
Returning an explicit value from a generator function causes thatvalue to be bound to the `value` attribute of the StopIterationexception. This is available as the result of "yield from" when itis used as an expression; or by explicitly catching StopIteration,binding the StopIteration exception to a variable, and accessingthe attribute. This feature of generators is rarely used.The `return iter([])` statement in Submodule.iter_items uses thisfeature, causing the resulting StopIteration exception object tohave a `value` attribute that refers to a separate second iteratorthat also yields no values. From context, this behavior is clearlynot the goal; a bare return statement should be used here (whichhas the same effect except for the `value` attribute of theStopIteration exception). The code had used a bare return prior to82b131c (gitpython-developers#1282), when `return` was changed to `return iter([])`.That was part of a change that added numerous type annotations. Itlooks like it was either a mistake, or possibly an attempt to workaround an old bug in a static type checker.This commit extends the test_iter_items_from_invalid_hash test toassert that the `value` attribute of the StopIteration is its usualdefault value of None. This commit only extends the test; it doesnot fix the bug.
Returning an explicit value from a generator function causes thatvalue to be bound to the `value` attribute of the StopIterationexception. This is available as the result of "yield from" when itis used as an expression; or by explicitly catching StopIteration,binding the StopIteration exception to a variable, and accessingthe attribute. This feature of generators is rarely used.The `return iter([])` statement in Submodule.iter_items uses thisfeature, causing the resulting StopIteration exception object tohave a `value` attribute that refers to a separate second iteratorthat also yields no values. From context, this behavior is clearlynot the goal; a bare return statement should be used here (whichhas the same effect except for the `value` attribute of theStopIteration exception). The code had used a bare return prior to82b131c (gitpython-developers#1282), when `return` was changed to `return iter([])`.That was part of a change that added numerous type annotations. Itlooks like it was either a mistake, or possibly an attempt to workaround an old bug in a static type checker.This commit extends the test_iter_items_from_invalid_hash test toassert that the `value` attribute of the StopIteration is its usualdefault value of None. This commit only extends the test; it doesnot fix the bug.
Returning an explicit value from a generator function causes thatvalue to be bound to the `value` attribute of the StopIterationexception. This is available as the result of "yield from" when itis used as an expression; or by explicitly catching StopIteration,binding the StopIteration exception to a variable, and accessingthe attribute. This feature of generators is rarely used.The `return iter([])` statement in Submodule.iter_items uses thisfeature, causing the resulting StopIteration exception object tohave a `value` attribute that refers to a separate second iteratorthat also yields no values (gitpython-developers#1779).From context, this behavior is clearly not the goal; a bare returnstatement should be used here (which has the same effect except forthe `value` attribute of the StopIteration exception). The code hadused a bare return prior to82b131c (gitpython-developers#1282), when `return` waschanged to `return iter([])`. That was part of a change that addednumerous type annotations. It looks like it was either a mistake,or possibly an attempt to work around an old bug in a static typechecker.This commit extends the test_iter_items_from_invalid_hash test toassert that the `value` attribute of the StopIteration is its usualdefault value of None. This commit only extends the test; it doesnot fix the bug.
Uh oh!
There was an error while loading.Please reload this page.
Started to add types to Submodule
Removed include_package_data() from setup and added py.typed to MANIFEST.INI instead (this is what mypy package does, but not what the mypy instructions say!)
Improve types for .traverse() with TypeVar and overloads, create TraversableIterableObj class to reduce code duplication from overloads.
Add some more checks to test_commit.test_traverse()