针对pulse-transit的工具
This commit is contained in:
56
dist/client/pandas/core/ops/invalid.py
vendored
Normal file
56
dist/client/pandas/core/ops/invalid.py
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
"""
|
||||
Templates for invalid operations.
|
||||
"""
|
||||
import operator
|
||||
|
||||
import numpy as np
|
||||
|
||||
|
||||
def invalid_comparison(left, right, op):
|
||||
"""
|
||||
If a comparison has mismatched types and is not necessarily meaningful,
|
||||
follow python3 conventions by:
|
||||
|
||||
- returning all-False for equality
|
||||
- returning all-True for inequality
|
||||
- raising TypeError otherwise
|
||||
|
||||
Parameters
|
||||
----------
|
||||
left : array-like
|
||||
right : scalar, array-like
|
||||
op : operator.{eq, ne, lt, le, gt}
|
||||
|
||||
Raises
|
||||
------
|
||||
TypeError : on inequality comparisons
|
||||
"""
|
||||
if op is operator.eq:
|
||||
res_values = np.zeros(left.shape, dtype=bool)
|
||||
elif op is operator.ne:
|
||||
res_values = np.ones(left.shape, dtype=bool)
|
||||
else:
|
||||
typ = type(right).__name__
|
||||
raise TypeError(f"Invalid comparison between dtype={left.dtype} and {typ}")
|
||||
return res_values
|
||||
|
||||
|
||||
def make_invalid_op(name: str):
|
||||
"""
|
||||
Return a binary method that always raises a TypeError.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
name : str
|
||||
|
||||
Returns
|
||||
-------
|
||||
invalid_op : function
|
||||
"""
|
||||
|
||||
def invalid_op(self, other=None):
|
||||
typ = type(self).__name__
|
||||
raise TypeError(f"cannot perform {name} with this index type: {typ}")
|
||||
|
||||
invalid_op.__name__ = name
|
||||
return invalid_op
|
||||
Reference in New Issue
Block a user