From 4d764927553659fd919f9df32940ad90a5a84086 Mon Sep 17 00:00:00 2001 From: MomIsBestFriend <> Date: Thu, 5 Dec 2019 12:47:51 +0200 Subject: [PATCH 1/4] TYP: Annotations in pandas/core/{accessor, sorting}.py --- pandas/core/accessor.py | 12 ++++++++---- pandas/core/sorting.py | 8 +++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/pandas/core/accessor.py b/pandas/core/accessor.py index 96b7cf8f97c3f..4de6b58fd8a3b 100644 --- a/pandas/core/accessor.py +++ b/pandas/core/accessor.py @@ -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 +): """ 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, accessor) -> None: self._name = name self._accessor = accessor diff --git a/pandas/core/sorting.py b/pandas/core/sorting.py index b99ac9cc333c6..243a863ea228a 100644 --- a/pandas/core/sorting.py +++ b/pandas/core/sorting.py @@ -187,7 +187,7 @@ def indexer_from_factorized(labels, shape, compress: bool = True): return get_group_index_sorter(ids, ngroups) -def lexsort_indexer(keys, orders=None, na_position="last"): +def lexsort_indexer(keys, orders=None, na_position: str = "last"): from pandas.core.arrays import Categorical labels = [] @@ -233,7 +233,9 @@ def lexsort_indexer(keys, orders=None, na_position="last"): return indexer_from_factorized(labels, shape) -def nargsort(items, kind="quicksort", ascending: bool = True, na_position="last"): +def nargsort( + items, kind: str = "quicksort", ascending: bool = True, na_position: str = "last" +): """ This is intended to be a drop-in replacement for np.argsort which handles NaNs. It adds ascending and na_position parameters. @@ -273,7 +275,7 @@ class _KeyMapper: Ease my suffering. Map compressed group id -> key tuple """ - def __init__(self, comp_ids, ngroups, levels, labels): + def __init__(self, comp_ids, ngroups, levels, labels) -> None: self.levels = levels self.labels = labels self.comp_ids = comp_ids.astype(np.int64) From 82af45c9d7d4c7153b7e3b6957e1cc29ebc9e25d Mon Sep 17 00:00:00 2001 From: MomIsBestFriend <> Date: Thu, 5 Dec 2019 22:53:03 +0200 Subject: [PATCH 2/4] Fixes for @jbrockmendel review --- pandas/core/accessor.py | 2 +- pandas/core/sorting.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/core/accessor.py b/pandas/core/accessor.py index 4de6b58fd8a3b..8e3a38d1fecab 100644 --- a/pandas/core/accessor.py +++ b/pandas/core/accessor.py @@ -166,7 +166,7 @@ class CachedAccessor: the single argument ``data``. """ - def __init__(self, name, accessor) -> None: + def __init__(self, name: str, accessor) -> None: self._name = name self._accessor = accessor diff --git a/pandas/core/sorting.py b/pandas/core/sorting.py index 243a863ea228a..31aab1676060b 100644 --- a/pandas/core/sorting.py +++ b/pandas/core/sorting.py @@ -275,7 +275,7 @@ class _KeyMapper: Ease my suffering. Map compressed group id -> key tuple """ - def __init__(self, comp_ids, ngroups, levels, labels) -> None: + def __init__(self, comp_ids, ngroups: int, levels, labels) -> None: self.levels = levels self.labels = labels self.comp_ids = comp_ids.astype(np.int64) From c523753e9281b70b379b9d521d758fdd48f574ec Mon Sep 17 00:00:00 2001 From: MomIsBestFriend <50263213+MomIsBestFriend@users.noreply.github.com> Date: Fri, 6 Dec 2019 12:27:23 +0200 Subject: [PATCH 3/4] Update pandas/core/sorting.py Co-Authored-By: Simon Hawkins --- pandas/core/sorting.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/sorting.py b/pandas/core/sorting.py index 31aab1676060b..3005bdcbe78a4 100644 --- a/pandas/core/sorting.py +++ b/pandas/core/sorting.py @@ -275,7 +275,7 @@ class _KeyMapper: Ease my suffering. Map compressed group id -> key tuple """ - def __init__(self, comp_ids, ngroups: int, levels, labels) -> None: + def __init__(self, comp_ids, ngroups: int, levels, labels): self.levels = levels self.labels = labels self.comp_ids = comp_ids.astype(np.int64) From b5826a7f210b62207dceab68c01a5cb2059ce7dc Mon Sep 17 00:00:00 2001 From: MomIsBestFriend <> Date: Fri, 6 Dec 2019 13:40:09 +0200 Subject: [PATCH 4/4] TYP: annotations --- pandas/core/accessor.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pandas/core/accessor.py b/pandas/core/accessor.py index 8e3a38d1fecab..963c9c65cb30c 100644 --- a/pandas/core/accessor.py +++ b/pandas/core/accessor.py @@ -4,7 +4,7 @@ that can be mixed into or pinned onto other pandas classes. """ -from typing import FrozenSet, List, Set, Union +from typing import FrozenSet, Set import warnings from pandas.util._decorators import Appender @@ -59,7 +59,7 @@ def _delegate_method(self, name, *args, **kwargs): @classmethod def _add_delegate_accessors( - cls, delegate, accessors: List[str], typ: str, overwrite: bool = False + cls, delegate, accessors, typ: str, overwrite: bool = False ): """ Add accessors to cls from the delegate class. @@ -109,9 +109,7 @@ def f(self, *args, **kwargs): setattr(cls, name, f) -def delegate_names( - delegate, accessors: Union[List[str], Set[str]], typ: str, overwrite: bool = False -): +def delegate_names(delegate, accessors, typ: str, overwrite: bool = False): """ Add delegated names to a class using a class decorator. This provides an alternative usage to directly calling `_add_delegate_accessors`