-
Notifications
You must be signed in to change notification settings - Fork 146
SNOW-2359402 Enabled autoswitching on some unsupported args #3906
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
Changes from 24 commits
b4e8885
3f953fe
e762110
5e454b0
d2e69e8
4f09559
0f84e94
c82f927
57adc40
9ab0886
c67a75a
f2b35f4
ffa678a
e7fe898
50da76c
b6cb173
a93a7d6
cbee6a9
124379c
fddef76
830bcd2
c7d483d
0bd5609
7c92e5a
aae870a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -626,7 +626,7 @@ def get_unsupported_args_reason( | |||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| def register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| api_cls_name: Optional[str], | ||||||||||||||||||||||||||||||||||||||||
| api_cls_names: Union[list[Optional[str]], Optional[str]], | ||||||||||||||||||||||||||||||||||||||||
| method_name: str, | ||||||||||||||||||||||||||||||||||||||||
| unsupported_args: Optional["UnsupportedArgsRule"] = None, | ||||||||||||||||||||||||||||||||||||||||
| ) -> Callable[[Callable[..., Any]], Callable[..., Any]]: | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -644,22 +644,30 @@ def register_query_compiler_method_not_implemented( | |||||||||||||||||||||||||||||||||||||||
| without meaningful benefit. | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| Args: | ||||||||||||||||||||||||||||||||||||||||
| api_cls_name: Frontend class name (e.g., "BasePandasDataset", "Series", "DataFrame", "None"). | ||||||||||||||||||||||||||||||||||||||||
| api_cls_names: Frontend class names (e.g. "BasePandasDataset", "Series", "DataFrame", or None). It can be a list if multiple api_cls_names are needed. | ||||||||||||||||||||||||||||||||||||||||
| method_name: Method name to register. | ||||||||||||||||||||||||||||||||||||||||
| unsupported_args: UnsupportedArgsRule for args-based auto-switching. | ||||||||||||||||||||||||||||||||||||||||
| If None, method is treated as completely unimplemented. | ||||||||||||||||||||||||||||||||||||||||
| """ | ||||||||||||||||||||||||||||||||||||||||
| reg_key = MethodKey(api_cls_name, method_name) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| # register the method in the hybrid switch for unsupported args | ||||||||||||||||||||||||||||||||||||||||
| if unsupported_args is None: | ||||||||||||||||||||||||||||||||||||||||
| HYBRID_SWITCH_FOR_UNIMPLEMENTED_METHODS.add(reg_key) | ||||||||||||||||||||||||||||||||||||||||
| else: | ||||||||||||||||||||||||||||||||||||||||
| HYBRID_SWITCH_FOR_UNSUPPORTED_ARGS[reg_key] = unsupported_args | ||||||||||||||||||||||||||||||||||||||||
| if isinstance(api_cls_names, str) or api_cls_names is None: | ||||||||||||||||||||||||||||||||||||||||
| api_cls_names = [api_cls_names] | ||||||||||||||||||||||||||||||||||||||||
| assert ( | ||||||||||||||||||||||||||||||||||||||||
| api_cls_names | ||||||||||||||||||||||||||||||||||||||||
| ), "api_cls_names must be a string (e.g., 'DataFrame', 'Series') or a list of strings (e.g., ['DataFrame', 'Series']) or None for top-level functions" | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| register_function_for_pre_op_switch( | ||||||||||||||||||||||||||||||||||||||||
| class_name=api_cls_name, backend="Snowflake", method=method_name | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| for api_cls_name in api_cls_names: | ||||||||||||||||||||||||||||||||||||||||
| reg_key = MethodKey(api_cls_name, method_name) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| # register the method in the hybrid switch for unsupported args | ||||||||||||||||||||||||||||||||||||||||
| if unsupported_args is None: | ||||||||||||||||||||||||||||||||||||||||
| HYBRID_SWITCH_FOR_UNIMPLEMENTED_METHODS.add(reg_key) | ||||||||||||||||||||||||||||||||||||||||
| else: | ||||||||||||||||||||||||||||||||||||||||
| HYBRID_SWITCH_FOR_UNSUPPORTED_ARGS[reg_key] = unsupported_args | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| register_function_for_pre_op_switch( | ||||||||||||||||||||||||||||||||||||||||
| class_name=api_cls_name, backend="Snowflake", method=method_name | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| def decorator(query_compiler_method: Callable[..., Any]) -> Callable[..., Any]: | ||||||||||||||||||||||||||||||||||||||||
| @functools.wraps(query_compiler_method) | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -2591,6 +2599,22 @@ def _shift_index(self, periods: int, freq: Any) -> "SnowflakeQueryCompiler": # | |||||||||||||||||||||||||||||||||||||||
| # TODO: SNOW-1023324, implement shifting index only. | ||||||||||||||||||||||||||||||||||||||||
| ErrorMessage.not_implemented("shifting index values not yet supported.") | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| "BasePandasDataset", | ||||||||||||||||||||||||||||||||||||||||
| "shift", | ||||||||||||||||||||||||||||||||||||||||
| UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: args.get("suffix") is not None, | ||||||||||||||||||||||||||||||||||||||||
| "the 'suffix' parameter is not yet supported", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: not isinstance(args.get("periods"), int), | ||||||||||||||||||||||||||||||||||||||||
| "only int 'periods' is currently supported", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| def shift( | ||||||||||||||||||||||||||||||||||||||||
| self, | ||||||||||||||||||||||||||||||||||||||||
| periods: Union[int, Sequence[int]] = 1, | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -4178,6 +4202,19 @@ def first_last_valid_index( | |||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| return None | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| "BasePandasDataset", | ||||||||||||||||||||||||||||||||||||||||
| "sort_index", | ||||||||||||||||||||||||||||||||||||||||
| UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
| ("axis", 1), | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: args.get("key") is not None, | ||||||||||||||||||||||||||||||||||||||||
| "the 'key' parameter is not yet supported", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| def sort_index( | ||||||||||||||||||||||||||||||||||||||||
| self, | ||||||||||||||||||||||||||||||||||||||||
| *, | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -4240,7 +4277,7 @@ def sort_index( | |||||||||||||||||||||||||||||||||||||||
| 1.0 c | ||||||||||||||||||||||||||||||||||||||||
| dtype: object | ||||||||||||||||||||||||||||||||||||||||
| """ | ||||||||||||||||||||||||||||||||||||||||
| if axis in (1, "index"): | ||||||||||||||||||||||||||||||||||||||||
| if axis == 1: | ||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
-4257
to
+4294
Contributor
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. Why remove
Contributor
Author
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. This is redundant because the frontend layer already parses "index" to 1. |
||||||||||||||||||||||||||||||||||||||||
| ErrorMessage.not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| "sort_index is not supported yet on axis=1 in Snowpark pandas." | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -4264,8 +4301,17 @@ def sort_index( | |||||||||||||||||||||||||||||||||||||||
| include_indexer=include_indexer, | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| "BasePandasDataset", | ||||||||||||||||||||||||||||||||||||||||
| "sort_values", | ||||||||||||||||||||||||||||||||||||||||
| UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
| ("axis", 1), | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| def sort_columns_by_row_values( | ||||||||||||||||||||||||||||||||||||||||
| self, rows: IndexLabel, ascending: bool = True, **kwargs: Any | ||||||||||||||||||||||||||||||||||||||||
| self, rows: IndexLabel, ascending: bool = True, axis: int = 1, **kwargs: Any | ||||||||||||||||||||||||||||||||||||||||
| ) -> None: | ||||||||||||||||||||||||||||||||||||||||
| """ | ||||||||||||||||||||||||||||||||||||||||
| Reorder the columns based on the lexicographic order of the given rows. | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -4275,6 +4321,9 @@ def sort_columns_by_row_values( | |||||||||||||||||||||||||||||||||||||||
| The row or rows to sort by. | ||||||||||||||||||||||||||||||||||||||||
| ascending : bool, default: True | ||||||||||||||||||||||||||||||||||||||||
| Sort in ascending order (True) or descending order (False). | ||||||||||||||||||||||||||||||||||||||||
| axis: Always set to 1. Required because the decorator compares frontend | ||||||||||||||||||||||||||||||||||||||||
| method arguments during stay_cost computation (returning COST_IMPOSSIBLE) | ||||||||||||||||||||||||||||||||||||||||
| but examines QC method arguments when calling the wrapped method. | ||||||||||||||||||||||||||||||||||||||||
| **kwargs : dict | ||||||||||||||||||||||||||||||||||||||||
| Serves the compatibility purpose. Does not affect the result. | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
|
|
@@ -8658,6 +8707,18 @@ def cummax( | |||||||||||||||||||||||||||||||||||||||
| ).frame | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| None, | ||||||||||||||||||||||||||||||||||||||||
| "melt", | ||||||||||||||||||||||||||||||||||||||||
| UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: args.get("col_level") is not None, | ||||||||||||||||||||||||||||||||||||||||
| "col_level argument is not yet supported", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| def melt( | ||||||||||||||||||||||||||||||||||||||||
| self, | ||||||||||||||||||||||||||||||||||||||||
| id_vars: list[str], | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -9705,6 +9766,18 @@ def align( | |||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| return left_qc, right_qc | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| "DataFrame", | ||||||||||||||||||||||||||||||||||||||||
| "apply", | ||||||||||||||||||||||||||||||||||||||||
| UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: args.get("result_type") is not None, | ||||||||||||||||||||||||||||||||||||||||
| "the 'result_type' parameter is not yet supported", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| def apply( | ||||||||||||||||||||||||||||||||||||||||
| self, | ||||||||||||||||||||||||||||||||||||||||
| func: Union[AggFuncType, UserDefinedFunction], | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -10377,6 +10450,63 @@ def pivot( | |||||||||||||||||||||||||||||||||||||||
| sort=True, | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| None, | ||||||||||||||||||||||||||||||||||||||||
| "pivot_table", | ||||||||||||||||||||||||||||||||||||||||
| UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
| ("sort", False), | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: ( | ||||||||||||||||||||||||||||||||||||||||
| args.get("index") is not None | ||||||||||||||||||||||||||||||||||||||||
| and ( | ||||||||||||||||||||||||||||||||||||||||
| not isinstance(args.get("index"), str) | ||||||||||||||||||||||||||||||||||||||||
| and not all([isinstance(v, str) for v in args.get("index")]) | ||||||||||||||||||||||||||||||||||||||||
| and None not in args.get("index") | ||||||||||||||||||||||||||||||||||||||||
sfc-gh-jenzhang marked this conversation as resolved.
Show resolved
Hide resolved
sfc-gh-jenzhang marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+10545
to
+10552
Contributor
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. The condition logic has a potential issue when handling non-string, non-iterable values for Consider restructuring this condition to first check if the value is iterable before attempting to iterate over it, or use a try/except block to handle this case. A safer approach might be: lambda args: (
args.get("index") is not None
and not isinstance(args.get("index"), str)
and (
not hasattr(args.get("index"), "__iter__")
or not all(isinstance(v, str) for v in args.get("index"))
)
and None not in (args.get("index") if hasattr(args.get("index"), "__iter__") else [args.get("index")])
)The same issue appears in the similar conditions for
Suggested change
Spotted by Graphite Agent |
||||||||||||||||||||||||||||||||||||||||
| "non-string of list of string index is not yet supported for pivot_table", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: ( | ||||||||||||||||||||||||||||||||||||||||
| args.get("columns") is not None | ||||||||||||||||||||||||||||||||||||||||
| and ( | ||||||||||||||||||||||||||||||||||||||||
| not isinstance(args.get("columns"), str) | ||||||||||||||||||||||||||||||||||||||||
| and not all( | ||||||||||||||||||||||||||||||||||||||||
| [isinstance(v, str) for v in args.get("columns")] | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| and None not in args.get("columns") | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| "non-string of list of string columns is not yet supported for pivot_table", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: ( | ||||||||||||||||||||||||||||||||||||||||
| args.get("values") is not None | ||||||||||||||||||||||||||||||||||||||||
| and ( | ||||||||||||||||||||||||||||||||||||||||
| not isinstance(args.get("values"), str) | ||||||||||||||||||||||||||||||||||||||||
| and not all( | ||||||||||||||||||||||||||||||||||||||||
| [isinstance(v, str) for v in args.get("values")] | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| and None not in args.get("values") | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| "non-string of list of string values is not yet supported for pivot_table", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda args: ( | ||||||||||||||||||||||||||||||||||||||||
| isinstance(args.get("aggfunc"), dict) | ||||||||||||||||||||||||||||||||||||||||
| and any( | ||||||||||||||||||||||||||||||||||||||||
| not isinstance(af, str) | ||||||||||||||||||||||||||||||||||||||||
| for af in args.get("aggfunc").values() | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| and args.get("index") is None | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| "dictionary aggfunc with non-string aggregation functions is not yet supported for pivot_table with margins or when index is None", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| def pivot_table( | ||||||||||||||||||||||||||||||||||||||||
| self, | ||||||||||||||||||||||||||||||||||||||||
| index: Any, | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -10452,7 +10582,7 @@ def pivot_table( | |||||||||||||||||||||||||||||||||||||||
| index = [index] | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| # TODO: SNOW-857485 Support for non-str and list of non-str for index/columns/values | ||||||||||||||||||||||||||||||||||||||||
| if index and ( | ||||||||||||||||||||||||||||||||||||||||
| if index is not None and ( | ||||||||||||||||||||||||||||||||||||||||
| not isinstance(index, str) | ||||||||||||||||||||||||||||||||||||||||
| and not all([isinstance(v, str) for v in index]) | ||||||||||||||||||||||||||||||||||||||||
| and None not in index | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -10461,7 +10591,7 @@ def pivot_table( | |||||||||||||||||||||||||||||||||||||||
| f"Not implemented non-string of list of string {index}." | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| if values and ( | ||||||||||||||||||||||||||||||||||||||||
| if values is not None and ( | ||||||||||||||||||||||||||||||||||||||||
| not isinstance(values, str) | ||||||||||||||||||||||||||||||||||||||||
| and not all([isinstance(v, str) for v in values]) | ||||||||||||||||||||||||||||||||||||||||
| and None not in values | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -10470,7 +10600,7 @@ def pivot_table( | |||||||||||||||||||||||||||||||||||||||
| f"Not implemented non-string of list of string {values}." | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| if columns and ( | ||||||||||||||||||||||||||||||||||||||||
| if columns is not None and ( | ||||||||||||||||||||||||||||||||||||||||
| not isinstance(columns, str) | ||||||||||||||||||||||||||||||||||||||||
| and not all([isinstance(v, str) for v in columns]) | ||||||||||||||||||||||||||||||||||||||||
| and None not in columns | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -12541,6 +12671,23 @@ def _make_fill_expression_for_column_wise_fillna( | |||||||||||||||||||||||||||||||||||||||
| *columns_to_include, | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| ["DataFrame", "Series"], | ||||||||||||||||||||||||||||||||||||||||
| "fillna", | ||||||||||||||||||||||||||||||||||||||||
| UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda kwargs: kwargs.get("value") is not None | ||||||||||||||||||||||||||||||||||||||||
| and kwargs.get("limit") is not None, | ||||||||||||||||||||||||||||||||||||||||
| "the 'limit' parameter with 'value' parameter is not yet supported", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ( | ||||||||||||||||||||||||||||||||||||||||
| lambda kwargs: kwargs.get("downcast") is not None, | ||||||||||||||||||||||||||||||||||||||||
| "the 'downcast' parameter is not yet supported", | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| def fillna( | ||||||||||||||||||||||||||||||||||||||||
| self, | ||||||||||||||||||||||||||||||||||||||||
| value: Optional[Union[Hashable, Mapping, "pd.DataFrame", "pd.Series"]] = None, | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -12786,6 +12933,15 @@ def fillna_expr(snowflake_quoted_id: str) -> SnowparkColumn: | |||||||||||||||||||||||||||||||||||||||
| ).frame | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| "DataFrame", | ||||||||||||||||||||||||||||||||||||||||
| "dropna", | ||||||||||||||||||||||||||||||||||||||||
| UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
| ("axis", 1), | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| ), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| def dropna( | ||||||||||||||||||||||||||||||||||||||||
| self, | ||||||||||||||||||||||||||||||||||||||||
| axis: int, | ||||||||||||||||||||||||||||||||||||||||
|
|
@@ -21239,7 +21395,7 @@ def _stack_helper( | |||||||||||||||||||||||||||||||||||||||
| return qc | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @register_query_compiler_method_not_implemented( | ||||||||||||||||||||||||||||||||||||||||
| api_cls_name="DataFrame", | ||||||||||||||||||||||||||||||||||||||||
| api_cls_names="DataFrame", | ||||||||||||||||||||||||||||||||||||||||
| method_name="corr", | ||||||||||||||||||||||||||||||||||||||||
| unsupported_args=UnsupportedArgsRule( | ||||||||||||||||||||||||||||||||||||||||
| unsupported_conditions=[ | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.