Skip to content

fix mypy errors in pandas/tests/arithmetic/test_datetime64.py #31716

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

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pandas/core/indexes/datetimes.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from datetime import date, datetime, time, timedelta, tzinfo
import operator
from typing import Optional
from typing import Callable, Optional
import warnings

import numpy as np
Expand Down Expand Up @@ -191,6 +191,7 @@ class DatetimeIndex(DatetimeTimedeltaMixin):

_data: DatetimeArray
tz: Optional[tzinfo]
tz_localize: Callable[..., "DatetimeIndex"]
Copy link
Contributor Author

@SaturnFromTitan SaturnFromTitan Feb 5, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I try to fake-annotate this tz_localize implementation.

I tried using something like Callable[["DatetimeIndex", Optional[str], str, str], "DatetimeIndex"], but then mypy would raise errors when omitting some arguments like index.tz_localize("US/Eastern")

Copy link
Contributor Author

@SaturnFromTitan SaturnFromTitan Feb 5, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The original problem was this line of code would raise: "DatetimeIndex" has no attribute "tz_localize"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is going to be a common problem with inherit_names. best case would be to find a way to fix it at the source

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the original mypy error? I'd be hesitant to make any changes to the actual code base to silence errors coming from the test suite

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@WillAyd I stated it in my second comment. I think @jbrockmendel is right, but it's not clear how a solution might look like. I'm investigating though ✌️

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like this would be the last issue where an annotation like this is required to finish #28926 off. Therefore it's maybe worth still merging this one and working on a more general solution afterwards? Wdyt @WillAyd @simonjayhawkins?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer to either ignore where required in a few places or just leave things as they are today

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, I'll close this PR then and create a follow-up issue that focuses on refactoring inherit_names

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xref: #32100

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great thanks for understanding - your contributions are very much appreciated


# --------------------------------------------------------------------
# Constructors
Expand Down
3 changes: 0 additions & 3 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,6 @@ check_untyped_defs=False
[mypy-pandas.conftest]
ignore_errors=True

[mypy-pandas.tests.arithmetic.test_datetime64]
ignore_errors=True

[mypy-pandas.tests.indexes.datetimes.test_tools]
ignore_errors=True

Expand Down