From 43213c4c4eb40a1f8643834efd8bbfd7e372c785 Mon Sep 17 00:00:00 2001 From: makbigc Date: Sat, 15 Jun 2019 21:53:56 +0800 Subject: [PATCH 1/4] Annotate IntervalIndex.intersection --- pandas/core/indexes/interval.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pandas/core/indexes/interval.py b/pandas/core/indexes/interval.py index 24fcb32d09d27..154c5dc9bb564 100644 --- a/pandas/core/indexes/interval.py +++ b/pandas/core/indexes/interval.py @@ -1140,7 +1140,10 @@ def overlaps(self, other): @Appender(_index_shared_docs['intersection']) @SetopCheck(op_name='intersection') - def intersection(self, other, sort=False): + def intersection(self, + other: IntervalIndex, + sort: bool = False + ) -> IntervalIndex: if self.left.is_unique and self.right.is_unique: taken = self._intersection_unique(other) elif (other.left.is_unique and other.right.is_unique and @@ -1157,7 +1160,9 @@ def intersection(self, other, sort=False): return taken - def _intersection_unique(self, other): + def _intersection_unique(self, + other: IntervalIndex + ) -> IntervalIndex: """ Used when the IntervalIndex does not have any common endpoint, no mater left or right. @@ -1179,7 +1184,9 @@ def _intersection_unique(self, other): return self.take(indexer) - def _intersection_non_unique(self, other): + def _intersection_non_unique(self, + other: IntervalIndex + ) -> IntervalIndex: """ Used when the IntervalIndex does have some common endpoints, on either sides. From 941ecae05c08ffcf136d2fee9df762d25e2f5cca Mon Sep 17 00:00:00 2001 From: makbigc Date: Sat, 15 Jun 2019 22:10:05 +0800 Subject: [PATCH 2/4] Remove the annotation for self and other --- pandas/core/indexes/interval.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/pandas/core/indexes/interval.py b/pandas/core/indexes/interval.py index 154c5dc9bb564..111378bce3312 100644 --- a/pandas/core/indexes/interval.py +++ b/pandas/core/indexes/interval.py @@ -1140,10 +1140,7 @@ def overlaps(self, other): @Appender(_index_shared_docs['intersection']) @SetopCheck(op_name='intersection') - def intersection(self, - other: IntervalIndex, - sort: bool = False - ) -> IntervalIndex: + def intersection(self, other, sort: bool = False): if self.left.is_unique and self.right.is_unique: taken = self._intersection_unique(other) elif (other.left.is_unique and other.right.is_unique and @@ -1160,9 +1157,7 @@ def intersection(self, return taken - def _intersection_unique(self, - other: IntervalIndex - ) -> IntervalIndex: + def _intersection_unique(self, other): """ Used when the IntervalIndex does not have any common endpoint, no mater left or right. @@ -1184,9 +1179,7 @@ def _intersection_unique(self, return self.take(indexer) - def _intersection_non_unique(self, - other: IntervalIndex - ) -> IntervalIndex: + def _intersection_non_unique(self, other): """ Used when the IntervalIndex does have some common endpoints, on either sides. From 92ec711490ad7e2906b7a28a1e35b2f85a6d90fd Mon Sep 17 00:00:00 2001 From: makbigc Date: Mon, 17 Jun 2019 10:36:33 +0800 Subject: [PATCH 3/4] Add annotation to other --- pandas/core/indexes/interval.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pandas/core/indexes/interval.py b/pandas/core/indexes/interval.py index 111378bce3312..b28747eaf3b3f 100644 --- a/pandas/core/indexes/interval.py +++ b/pandas/core/indexes/interval.py @@ -1140,7 +1140,10 @@ def overlaps(self, other): @Appender(_index_shared_docs['intersection']) @SetopCheck(op_name='intersection') - def intersection(self, other, sort: bool = False): + def intersection(self, + other: "IntervalIndex", + sort: bool = False + ) -> "IntervalIndex": if self.left.is_unique and self.right.is_unique: taken = self._intersection_unique(other) elif (other.left.is_unique and other.right.is_unique and @@ -1157,7 +1160,9 @@ def intersection(self, other, sort: bool = False): return taken - def _intersection_unique(self, other): + def _intersection_unique(self, + other: "IntervalIndex" + ) -> "IntervalIndex": """ Used when the IntervalIndex does not have any common endpoint, no mater left or right. @@ -1179,7 +1184,9 @@ def _intersection_unique(self, other): return self.take(indexer) - def _intersection_non_unique(self, other): + def _intersection_non_unique(self, + other: "IntervalIndex" + ) -> "IntervalIndex": """ Used when the IntervalIndex does have some common endpoints, on either sides. From 8577ef6127dfe190e3f2b630e74d0137822452fd Mon Sep 17 00:00:00 2001 From: makbigc Date: Tue, 18 Jun 2019 22:20:58 +0800 Subject: [PATCH 4/4] Use single quotes instead --- pandas/core/indexes/interval.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pandas/core/indexes/interval.py b/pandas/core/indexes/interval.py index b28747eaf3b3f..896935fa72adb 100644 --- a/pandas/core/indexes/interval.py +++ b/pandas/core/indexes/interval.py @@ -1141,9 +1141,9 @@ def overlaps(self, other): @Appender(_index_shared_docs['intersection']) @SetopCheck(op_name='intersection') def intersection(self, - other: "IntervalIndex", + other: 'IntervalIndex', sort: bool = False - ) -> "IntervalIndex": + ) -> 'IntervalIndex': if self.left.is_unique and self.right.is_unique: taken = self._intersection_unique(other) elif (other.left.is_unique and other.right.is_unique and @@ -1161,8 +1161,8 @@ def intersection(self, return taken def _intersection_unique(self, - other: "IntervalIndex" - ) -> "IntervalIndex": + other: 'IntervalIndex' + ) -> 'IntervalIndex': """ Used when the IntervalIndex does not have any common endpoint, no mater left or right. @@ -1185,8 +1185,8 @@ def _intersection_unique(self, return self.take(indexer) def _intersection_non_unique(self, - other: "IntervalIndex" - ) -> "IntervalIndex": + other: 'IntervalIndex' + ) -> 'IntervalIndex': """ Used when the IntervalIndex does have some common endpoints, on either sides.