Conversation
a33f56d to
1b386e5
Compare
| def xafter(self, dt: datetime.datetime, count: int | None = None, inc: bool = False) -> Generator[datetime.datetime]: ... | ||
| def xafter( | ||
| self, dt: datetime.datetime, count: int | None = None, inc: bool = False | ||
| ) -> Generator[datetime.datetime, None, None]: ... |
There was a problem hiding this comment.
Hmm, this shouldn't be needed - the defaults for send and return type vars is already None, so omitting them is the preferred form:
Lines 543 to 544 in 24827c4
Did you run into a specific problem that this helps with?
There was a problem hiding this comment.
Yes:
[ 3s] + python3.11 -m mypy dateutil-stubs
[ 5s] dateutil-stubs/rrule.pyi:67: error: "Generator" expects 3 type arguments, but 1 given [type-arg]
[ 5s] dateutil-stubs/tz/win.pyi:2: error: Module "ctypes" has no attribute "_NameTypes" [attr-defined]
(for the second issue I also opened a PR)
There was a problem hiding this comment.
What version of mypy are you using? I'm guessing it's an older version that ships with an outdated copy of the stdlib stubs? Does it work if you use a later version (I think circa 1.15+ based on when those types were last touched in typeshed)?
There was a problem hiding this comment.
Well, all the other places in this project specify all 3 parameters.
There was a problem hiding this comment.
Yeah, that would be the problem. mypy 1.8.0 uses older version of the stdlib stubs that wouldn't be compatible with the current python-dateutil stubs (which I'm assuming you forked to create dateutil-stubs).
If you want to type check the current stubs, you'll need to either use a more recent version of mypy or use --custom-typeshed-dir with a checkout of a more recent copy of the typeshed stdlib stubs.
There was a problem hiding this comment.
Well, all the other places in this project specify all 3 parameters.
I'm sure there's some stragglers left over from before type var defaults were introduced :). We might update these in bulk eventually, but they don't really cause any problems at the moment since both forms are treated equivalently by type checkers. At least for new stubs the single argument form is preferred.
There was a problem hiding this comment.
I'm fine with keeping this as a patch on my side. Thanks for the pointers about mypy!
There was a problem hiding this comment.
I'll go ahead and close this out then. Thanks for the PR in any case!
If you do find any other issues with the dateutil stubs, patches here are always welcome!
|
According to mypy_primer, this change has no effect on the checked open source code. 🤖🎉 |
No description provided.