-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
TYP: Annotations in pandas/core/{accessor, sorting}.py #30079
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
Merged
WillAyd
merged 6 commits into
pandas-dev:master
from
ShaharNaveh:TYP-core/accessor__sorting
Dec 6, 2019
Merged
Changes from 3 commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
4d76492
TYP: Annotations in pandas/core/{accessor, sorting}.py
814dd68
Merge remote-tracking branch 'upstream/master' into TYP-core/accessor…
82af45c
Fixes for @jbrockmendel review
c523753
Update pandas/core/sorting.py
ShaharNaveh b5826a7
TYP: annotations
a106b23
Merge remote-tracking branch 'upstream/master' into TYP-core/accessor…
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ | |
that can be mixed into or pinned onto other pandas classes. | ||
|
||
""" | ||
from typing import FrozenSet, Set | ||
from typing import FrozenSet, List, Set, Union | ||
import warnings | ||
|
||
from pandas.util._decorators import Appender | ||
|
@@ -58,7 +58,9 @@ def _delegate_method(self, name, *args, **kwargs): | |
raise TypeError("You cannot call method {name}".format(name=name)) | ||
|
||
@classmethod | ||
def _add_delegate_accessors(cls, delegate, accessors, typ, overwrite=False): | ||
def _add_delegate_accessors( | ||
cls, delegate, accessors: List[str], typ: str, overwrite: bool = False | ||
): | ||
""" | ||
Add accessors to cls from the delegate class. | ||
|
||
|
@@ -107,7 +109,9 @@ def f(self, *args, **kwargs): | |
setattr(cls, name, f) | ||
|
||
|
||
def delegate_names(delegate, accessors, typ, overwrite=False): | ||
def delegate_names( | ||
delegate, accessors: Union[List[str], Set[str]], typ: str, overwrite: bool = False | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @simonjayhawkins is there some container-ish thing we would use for |
||
): | ||
""" | ||
Add delegated names to a class using a class decorator. This provides | ||
an alternative usage to directly calling `_add_delegate_accessors` | ||
|
@@ -162,7 +166,7 @@ class CachedAccessor: | |
the single argument ``data``. | ||
""" | ||
|
||
def __init__(self, name, accessor): | ||
def __init__(self, name: str, accessor) -> None: | ||
self._name = name | ||
self._accessor = accessor | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
the type annotation of
accessors
here needs to be compatible withdelegate_names
below._add_delegate_accessors
is used in the inner function ofdelegate_names
. This inner functionadd_delegate_accessors
does not have type annotations and is therefore not checked by mypy. Annotating the inner functions givespandas\core\accessor.py:143: error: Argument 2 to "_add_delegate_accessors" of "PandasDelegate" has incompatible type "Union[List[str], Set[str]]"; expected "List[str]"
Probably
Sequence[str]
is more appropriate, however beware a string is also a sequence of str.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.
Every combination I tried I got an error. I think I will drop the annotations for
accessors
in this PR.