maxframe 1.3.0__cp311-cp311-macosx_10_9_universal2.whl → 1.3.1__cp311-cp311-macosx_10_9_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of maxframe might be problematic. Click here for more details.
- maxframe/_utils.cpython-311-darwin.so +0 -0
- maxframe/core/graph/core.cpython-311-darwin.so +0 -0
- maxframe/dataframe/groupby/aggregation.py +53 -1
- maxframe/dataframe/reduction/aggregation.py +63 -0
- maxframe/dataframe/reduction/core.py +17 -5
- maxframe/learn/contrib/llm/models/dashscope.py +34 -0
- maxframe/learn/contrib/llm/models/managed.py +15 -0
- maxframe/learn/contrib/llm/multi_modal.py +92 -0
- maxframe/learn/contrib/llm/text.py +21 -5
- maxframe/learn/contrib/xgboost/predict.py +1 -3
- maxframe/lib/mmh3.cpython-311-darwin.so +0 -0
- maxframe/serialization/core.cpython-311-darwin.so +0 -0
- {maxframe-1.3.0.dist-info → maxframe-1.3.1.dist-info}/METADATA +2 -1
- {maxframe-1.3.0.dist-info → maxframe-1.3.1.dist-info}/RECORD +16 -16
- {maxframe-1.3.0.dist-info → maxframe-1.3.1.dist-info}/WHEEL +0 -0
- {maxframe-1.3.0.dist-info → maxframe-1.3.1.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -303,11 +303,63 @@ def agg(groupby, func=None, method="auto", *args, **kwargs):
|
|
|
303
303
|
if aggregated result is very large, 'auto' will use 'shuffle' method
|
|
304
304
|
in distributed mode and use 'tree' in local mode.
|
|
305
305
|
|
|
306
|
-
|
|
307
306
|
Returns
|
|
308
307
|
-------
|
|
309
308
|
Series or DataFrame
|
|
310
309
|
Aggregated result.
|
|
310
|
+
|
|
311
|
+
Examples
|
|
312
|
+
--------
|
|
313
|
+
>>> import maxframe.dataframe as md
|
|
314
|
+
>>> df = md.DataFrame(
|
|
315
|
+
... {
|
|
316
|
+
... "A": [1, 1, 2, 2],
|
|
317
|
+
... "B": [1, 2, 3, 4],
|
|
318
|
+
... "C": [0.362838, 0.227877, 1.267767, -0.562860],
|
|
319
|
+
... }
|
|
320
|
+
... ).execute()
|
|
321
|
+
A B C
|
|
322
|
+
0 1 1 0.362838
|
|
323
|
+
1 1 2 0.227877
|
|
324
|
+
2 2 3 1.267767
|
|
325
|
+
3 2 4 -0.562860
|
|
326
|
+
|
|
327
|
+
The aggregation is for each column.
|
|
328
|
+
|
|
329
|
+
>>> df.groupby('A').agg('min').execute()
|
|
330
|
+
B C
|
|
331
|
+
A
|
|
332
|
+
1 1 0.227877
|
|
333
|
+
2 3 -0.562860
|
|
334
|
+
|
|
335
|
+
Multiple aggregations.
|
|
336
|
+
|
|
337
|
+
>>> df.groupby('A').agg(['min', 'max']).execute()
|
|
338
|
+
B C
|
|
339
|
+
min max min max
|
|
340
|
+
A
|
|
341
|
+
1 1 2 0.227877 0.362838
|
|
342
|
+
2 3 4 -0.562860 1.267767
|
|
343
|
+
|
|
344
|
+
Different aggregations per column
|
|
345
|
+
|
|
346
|
+
>>> df.groupby('A').agg({'B': ['min', 'max'], 'C': 'sum'}).execute()
|
|
347
|
+
B C
|
|
348
|
+
min max sum
|
|
349
|
+
A
|
|
350
|
+
1 1 2 0.590715
|
|
351
|
+
2 3 4 0.704907
|
|
352
|
+
|
|
353
|
+
To control the output names with different aggregations per column, pandas supports “named aggregation”
|
|
354
|
+
|
|
355
|
+
>>> from maxframe.dataframe.groupby import NamedAgg
|
|
356
|
+
>>> df.groupby("A").agg(
|
|
357
|
+
... b_min=NamedAgg(column="B", aggfunc="min"),
|
|
358
|
+
... c_sum=NamedAgg(column="C", aggfunc="sum")).execute()
|
|
359
|
+
b_min c_sum
|
|
360
|
+
A
|
|
361
|
+
1 1 0.590715
|
|
362
|
+
2 3 0.704907
|
|
311
363
|
"""
|
|
312
364
|
|
|
313
365
|
# When perform a computation on the grouped data, we won't shuffle
|
|
@@ -315,6 +315,69 @@ def compile_reduction_funcs(op: DataFrameAggregate, input: TileableType):
|
|
|
315
315
|
|
|
316
316
|
|
|
317
317
|
def aggregate(df, func=None, axis=0, **kw):
|
|
318
|
+
"""
|
|
319
|
+
Aggregate using one or more operations over the specified axis.
|
|
320
|
+
|
|
321
|
+
Parameters
|
|
322
|
+
----------
|
|
323
|
+
df : DataFrame, Series
|
|
324
|
+
Object to aggregate.
|
|
325
|
+
func : list or dict
|
|
326
|
+
Function to use for aggregating the data.
|
|
327
|
+
axis : {0 or ‘index’, 1 or ‘columns’}, default 0
|
|
328
|
+
If 0 or ‘index’: apply function to each column. If 1 or ‘columns’: apply function to each row.
|
|
329
|
+
kw
|
|
330
|
+
Keyword arguments to pass to func.
|
|
331
|
+
|
|
332
|
+
Returns
|
|
333
|
+
-------
|
|
334
|
+
scalar, Series or DataFrame
|
|
335
|
+
The return can be:
|
|
336
|
+
|
|
337
|
+
* scalar : when Series.agg is called with single function
|
|
338
|
+
* Series : when DataFrame.agg is called with a single function
|
|
339
|
+
* DataFrame : when DataFrame.agg is called with several functions
|
|
340
|
+
|
|
341
|
+
Examples
|
|
342
|
+
--------
|
|
343
|
+
>>> import maxframe.dataframe as md
|
|
344
|
+
>>> df = md.DataFrame([[1, 2, 3],
|
|
345
|
+
... [4, 5, 6],
|
|
346
|
+
... [7, 8, 9],
|
|
347
|
+
... [np.nan, np.nan, np.nan]],
|
|
348
|
+
... columns=['A', 'B', 'C']).execute()
|
|
349
|
+
|
|
350
|
+
Aggregate these functions over the rows.
|
|
351
|
+
|
|
352
|
+
>>> df.agg(['sum', 'min']).execute()
|
|
353
|
+
A B C
|
|
354
|
+
min 1.0 2.0 3.0
|
|
355
|
+
sum 12.0 15.0 18.0
|
|
356
|
+
|
|
357
|
+
Different aggregations per column.
|
|
358
|
+
|
|
359
|
+
>>> df.agg({'A' : ['sum', 'min'], 'B' : ['min', 'max']}).execute()
|
|
360
|
+
A B
|
|
361
|
+
max NaN 8.0
|
|
362
|
+
min 1.0 2.0
|
|
363
|
+
sum 12.0 NaN
|
|
364
|
+
|
|
365
|
+
Aggregate different functions over the columns and rename the index of the resulting DataFrame.
|
|
366
|
+
|
|
367
|
+
>>> df.agg(x=('A', 'max'), y=('B', 'min'), z=('C', 'mean')).execute()
|
|
368
|
+
A B C
|
|
369
|
+
x 7.0 NaN NaN
|
|
370
|
+
y NaN 2.0 NaN
|
|
371
|
+
z NaN NaN 6.0
|
|
372
|
+
|
|
373
|
+
>>> s = md.Series([1, 2, 3, 4])
|
|
374
|
+
>>> s.agg('min').execute()
|
|
375
|
+
1
|
|
376
|
+
|
|
377
|
+
>>> s.agg(['min', 'max']).execute()
|
|
378
|
+
max 4
|
|
379
|
+
min 1
|
|
380
|
+
"""
|
|
318
381
|
axis = validate_axis(axis, df)
|
|
319
382
|
if (
|
|
320
383
|
df.ndim == 2
|
|
@@ -404,6 +404,7 @@ class ReductionPostStep(NamedTuple):
|
|
|
404
404
|
func_name: str
|
|
405
405
|
columns: Optional[List[str]]
|
|
406
406
|
func_idl: bytes
|
|
407
|
+
post_func_aliases: Optional[List[str]] = None
|
|
407
408
|
|
|
408
409
|
|
|
409
410
|
class ReductionSteps(NamedTuple):
|
|
@@ -462,6 +463,7 @@ class ReductionCompiler:
|
|
|
462
463
|
self._output_key_to_agg_steps = dict()
|
|
463
464
|
self._output_key_to_post_steps = dict()
|
|
464
465
|
self._output_key_to_post_cols = dict()
|
|
466
|
+
self._output_key_to_col_func_mapping = dict()
|
|
465
467
|
|
|
466
468
|
@classmethod
|
|
467
469
|
def _check_function_valid(cls, func):
|
|
@@ -531,6 +533,14 @@ class ReductionCompiler:
|
|
|
531
533
|
self._output_key_to_post_steps[step.output_key] = step
|
|
532
534
|
self._update_col_dict(self._output_key_to_post_cols, step.output_key, cols)
|
|
533
535
|
|
|
536
|
+
if cols is not None:
|
|
537
|
+
col_name_map = (
|
|
538
|
+
self._output_key_to_col_func_mapping.get(step.output_key) or {}
|
|
539
|
+
)
|
|
540
|
+
for col in cols:
|
|
541
|
+
col_name_map[col] = func_name
|
|
542
|
+
self._output_key_to_col_func_mapping[step.output_key] = col_name_map
|
|
543
|
+
|
|
534
544
|
@staticmethod
|
|
535
545
|
def _build_mock_return_object(func, input_dtype, ndim):
|
|
536
546
|
from ..initializer import DataFrame as MaxDataFrame
|
|
@@ -812,11 +822,12 @@ class ReductionCompiler:
|
|
|
812
822
|
agg_funcs.append(step)
|
|
813
823
|
|
|
814
824
|
for key, step in self._output_key_to_post_steps.items():
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
825
|
+
post_cols = self._output_key_to_post_cols[key]
|
|
826
|
+
func_renames = None
|
|
827
|
+
if post_cols:
|
|
828
|
+
col_map = self._output_key_to_col_func_mapping.get(key)
|
|
829
|
+
if col_map:
|
|
830
|
+
func_renames = [col_map[c] for c in post_cols]
|
|
820
831
|
|
|
821
832
|
func_name = step.func_name
|
|
822
833
|
if self._lambda_counter == 1 and step.func_name == "<lambda_0>":
|
|
@@ -831,6 +842,7 @@ class ReductionCompiler:
|
|
|
831
842
|
func_name,
|
|
832
843
|
post_cols,
|
|
833
844
|
step.func_idl,
|
|
845
|
+
func_renames,
|
|
834
846
|
)
|
|
835
847
|
)
|
|
836
848
|
|
|
@@ -34,8 +34,25 @@ class DashScopeLLMMixin(Serializable):
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
class DashScopeTextLLM(TextLLM, DashScopeLLMMixin):
|
|
37
|
+
"""
|
|
38
|
+
DashScope text LLM.
|
|
39
|
+
"""
|
|
40
|
+
|
|
37
41
|
api_key_resource = StringField("api_key_resource", default=None)
|
|
38
42
|
|
|
43
|
+
def __init__(self, name: str, api_key_resource: str):
|
|
44
|
+
"""
|
|
45
|
+
Initialize a DashScope text LLM.
|
|
46
|
+
|
|
47
|
+
Parameters
|
|
48
|
+
----------
|
|
49
|
+
name : str
|
|
50
|
+
The LLM name to use, check DashScope for `available models <https://help.aliyun.com/zh/model-studio/getting-started/models>`_.
|
|
51
|
+
api_key_resource : str
|
|
52
|
+
The MaxCompute resource file name containing the DashScope API key.
|
|
53
|
+
"""
|
|
54
|
+
super().__init__(name=name, api_key_resource=api_key_resource)
|
|
55
|
+
|
|
39
56
|
def generate(
|
|
40
57
|
self,
|
|
41
58
|
data,
|
|
@@ -50,8 +67,25 @@ class DashScopeTextLLM(TextLLM, DashScopeLLMMixin):
|
|
|
50
67
|
|
|
51
68
|
|
|
52
69
|
class DashScopeMultiModalLLM(MultiModalLLM, DashScopeLLMMixin):
|
|
70
|
+
"""
|
|
71
|
+
DashScope multi-modal LLM.
|
|
72
|
+
"""
|
|
73
|
+
|
|
53
74
|
api_key_resource = StringField("api_key_resource", default=None)
|
|
54
75
|
|
|
76
|
+
def __init__(self, name: str, api_key_resource: str):
|
|
77
|
+
"""
|
|
78
|
+
Initialize a DashScope multi-modal LLM.
|
|
79
|
+
|
|
80
|
+
Parameters
|
|
81
|
+
----------
|
|
82
|
+
name : str
|
|
83
|
+
The LLM name to use, check DashScope for `available models <https://help.aliyun.com/zh/model-studio/getting-started/models>`_.
|
|
84
|
+
api_key_resource : str
|
|
85
|
+
The MaxCompute resource file name containing the DashScope API key.
|
|
86
|
+
"""
|
|
87
|
+
super().__init__(name=name, api_key_resource=api_key_resource)
|
|
88
|
+
|
|
55
89
|
def generate(
|
|
56
90
|
self,
|
|
57
91
|
data,
|
|
@@ -27,6 +27,21 @@ class ManagedLLMTextGenOperator(LLMTextGenOperator):
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class ManagedTextLLM(TextLLM):
|
|
30
|
+
"""
|
|
31
|
+
Managed text LLM by MaxFrame.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
def __init__(self, name: str):
|
|
35
|
+
"""
|
|
36
|
+
Initialize a managed text LLM.
|
|
37
|
+
|
|
38
|
+
Parameters
|
|
39
|
+
----------
|
|
40
|
+
name : str
|
|
41
|
+
The managed text LLM name to use.
|
|
42
|
+
"""
|
|
43
|
+
super().__init__(name=name)
|
|
44
|
+
|
|
30
45
|
def generate(
|
|
31
46
|
self,
|
|
32
47
|
data,
|
|
@@ -34,6 +34,98 @@ def generate(
|
|
|
34
34
|
prompt_template: Dict[str, Any],
|
|
35
35
|
params: Dict[str, Any] = None,
|
|
36
36
|
):
|
|
37
|
+
"""
|
|
38
|
+
Generate text with multi model llm based on given data and prompt template.
|
|
39
|
+
|
|
40
|
+
Parameters
|
|
41
|
+
----------
|
|
42
|
+
data : DataFrame or Series
|
|
43
|
+
Input data used for generation. Can be maxframe DataFrame, Series that contain text to be processed.
|
|
44
|
+
model : MultiModalLLM
|
|
45
|
+
Language model instance support **MultiModal** inputs used for text generation.
|
|
46
|
+
prompt_template : List[Dict[str, List[Dict[str, str]]]]
|
|
47
|
+
List of message with column names as placeholders. Each message contains a role and content. Content is a list of dict, each dict contains a text or image, the value can reference column data from input.
|
|
48
|
+
|
|
49
|
+
Here is an example of prompt template.
|
|
50
|
+
|
|
51
|
+
.. code-block:: python
|
|
52
|
+
|
|
53
|
+
[
|
|
54
|
+
{
|
|
55
|
+
"role": "<role>", # e.g. "user" or "assistant"
|
|
56
|
+
"content": [
|
|
57
|
+
{
|
|
58
|
+
# At least one of these fields is required
|
|
59
|
+
"image": "<image_data_url>", # optional
|
|
60
|
+
"text": "<prompt_text_template>" # optional
|
|
61
|
+
},
|
|
62
|
+
...
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
Where:
|
|
68
|
+
|
|
69
|
+
- ``text`` can be a Python format string using column names from input data as parameters (e.g. ``"{column_name}"``)
|
|
70
|
+
- ``image`` should be a DataURL string following `RFC2397 <https://en.wikipedia.org/wiki/Data_URI_scheme>`_ standard with format.
|
|
71
|
+
|
|
72
|
+
.. code-block:: none
|
|
73
|
+
|
|
74
|
+
data:<mime_type>[;base64],<column_name>
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
params : Dict[str, Any], optional
|
|
78
|
+
Additional parameters for generation configuration, by default None.
|
|
79
|
+
Can include settings like temperature, max_tokens, etc.
|
|
80
|
+
|
|
81
|
+
Returns
|
|
82
|
+
-------
|
|
83
|
+
DataFrame
|
|
84
|
+
Generated text raw response and success status. If the success is False, the generated text will return the
|
|
85
|
+
error message.
|
|
86
|
+
|
|
87
|
+
Notes
|
|
88
|
+
-----
|
|
89
|
+
- The ``api_key_resource`` parameter should reference a text file resource in MaxCompute that contains only your DashScope API key.
|
|
90
|
+
|
|
91
|
+
- Using DashScope services requires enabling public network access for your MaxCompute project. This can be configured through the MaxCompute console by `enabling the Internet access feature <https://help.aliyun.com/zh/maxcompute/user-guide/network-connection-process>`_ for your project. Without this configuration, the API calls to DashScope will fail due to network connectivity issues.
|
|
92
|
+
|
|
93
|
+
Examples
|
|
94
|
+
--------
|
|
95
|
+
You can initialize a DashScope multi-modal model (such as qwen-vl-max) by providing a model name and an ``api_key_resource``.
|
|
96
|
+
The ``api_key_resource`` is a MaxCompute resource name that points to a text file containing a `DashScope <https://dashscope.aliyun.com/>`_ API key.
|
|
97
|
+
|
|
98
|
+
>>> from maxframe.learn.contrib.llm.models.dashscope import DashScopeMultiModalLLM
|
|
99
|
+
>>> import maxframe.dataframe as md
|
|
100
|
+
>>>
|
|
101
|
+
>>> model = DashScopeMultiModalLLM(
|
|
102
|
+
... name="qwen-vl-max",
|
|
103
|
+
... api_key_resource="<api-key-resource-name>"
|
|
104
|
+
... )
|
|
105
|
+
|
|
106
|
+
We use Data Url Schema to provide multi modal input in prompt template, here is an example to fill in the image from table.
|
|
107
|
+
|
|
108
|
+
Assuming you have a MaxCompute table with two columns: ``image_id`` (as the index) and ``encoded_image_data_base64`` (containing Base64 encoded image data),
|
|
109
|
+
you can construct a prompt message template as follows:
|
|
110
|
+
|
|
111
|
+
>>> df = md.read_odps_table("image_content", index_col="image_id")
|
|
112
|
+
|
|
113
|
+
>>> prompt_template = [
|
|
114
|
+
... {
|
|
115
|
+
... "role": "user",
|
|
116
|
+
... "content": [
|
|
117
|
+
... {
|
|
118
|
+
... "image": "data:image/png;base64,encoded_image_data_base64",
|
|
119
|
+
... },
|
|
120
|
+
... {
|
|
121
|
+
... "text": "Analyze this image in detail",
|
|
122
|
+
... },
|
|
123
|
+
... ],
|
|
124
|
+
... },
|
|
125
|
+
... ]
|
|
126
|
+
>>> result = model.generate(df, prompt_template)
|
|
127
|
+
>>> result.execute()
|
|
128
|
+
"""
|
|
37
129
|
if not isinstance(data, DATAFRAME_TYPE) and not isinstance(data, SERIES_TYPE):
|
|
38
130
|
raise ValueError("data must be a maxframe dataframe or series object")
|
|
39
131
|
if not isinstance(model, MultiModalLLM):
|
|
@@ -145,16 +145,16 @@ def generate(
|
|
|
145
145
|
>>> import maxframe.dataframe as md
|
|
146
146
|
>>>
|
|
147
147
|
>>> # Initialize the model
|
|
148
|
-
>>> llm = ManagedTextLLM(name="Qwen2.5-
|
|
148
|
+
>>> llm = ManagedTextLLM(name="Qwen2.5-0.5B-instruct")
|
|
149
149
|
>>>
|
|
150
150
|
>>> # Prepare prompt template
|
|
151
151
|
>>> messages = [
|
|
152
152
|
... {
|
|
153
153
|
... "role": "user",
|
|
154
|
-
... "content": "{query}",
|
|
154
|
+
... "content": "Help answer following question: {query}",
|
|
155
155
|
... },
|
|
156
156
|
... ]
|
|
157
|
-
|
|
157
|
+
|
|
158
158
|
>>> # Create sample data
|
|
159
159
|
>>> df = md.DataFrame({"query": ["What is machine learning?"]})
|
|
160
160
|
>>>
|
|
@@ -177,7 +177,7 @@ def summary(series, model: TextLLM, index=None):
|
|
|
177
177
|
|
|
178
178
|
Parameters
|
|
179
179
|
----------
|
|
180
|
-
series :
|
|
180
|
+
series : Series
|
|
181
181
|
A maxframe Series containing text data to be summarized.
|
|
182
182
|
Each element should be a text string.
|
|
183
183
|
model : TextLLM
|
|
@@ -189,6 +189,11 @@ def summary(series, model: TextLLM, index=None):
|
|
|
189
189
|
-------
|
|
190
190
|
maxframe.Series
|
|
191
191
|
A pandas Series containing the generated summaries and success status.
|
|
192
|
+
|
|
193
|
+
Notes
|
|
194
|
+
-----
|
|
195
|
+
**Preview:** This API is in preview state and may be unstable.
|
|
196
|
+
The interface may change in future releases.
|
|
192
197
|
"""
|
|
193
198
|
if not isinstance(series, Series):
|
|
194
199
|
raise ValueError("series must be a maxframe series object")
|
|
@@ -208,7 +213,7 @@ def translate(
|
|
|
208
213
|
Parameters
|
|
209
214
|
----------
|
|
210
215
|
series : pandas.Series
|
|
211
|
-
A maxframe Series containing text data to
|
|
216
|
+
A maxframe Series containing text data to translate.
|
|
212
217
|
Each element should be a text string.
|
|
213
218
|
model : TextLLM
|
|
214
219
|
Language model instance used for text summarization.
|
|
@@ -223,6 +228,12 @@ def translate(
|
|
|
223
228
|
-------
|
|
224
229
|
maxframe.Series
|
|
225
230
|
A pandas Series containing the generated translation and success status.
|
|
231
|
+
|
|
232
|
+
Notes
|
|
233
|
+
-----
|
|
234
|
+
**Preview:** This API is in preview state and may be unstable.
|
|
235
|
+
The interface may change in future releases.
|
|
236
|
+
|
|
226
237
|
"""
|
|
227
238
|
if not isinstance(series, Series):
|
|
228
239
|
raise ValueError("series must be a maxframe series object")
|
|
@@ -268,6 +279,11 @@ def classify(
|
|
|
268
279
|
-------
|
|
269
280
|
maxframe.Series
|
|
270
281
|
A pandas Series containing the generated classification results and success status.
|
|
282
|
+
|
|
283
|
+
Notes
|
|
284
|
+
-----
|
|
285
|
+
**Preview:** This API is in preview state and may be unstable.
|
|
286
|
+
The interface may change in future releases.
|
|
271
287
|
"""
|
|
272
288
|
if not isinstance(series, Series):
|
|
273
289
|
raise ValueError("series must be a maxframe series object")
|
|
@@ -100,9 +100,7 @@ def predict(
|
|
|
100
100
|
import xgboost
|
|
101
101
|
|
|
102
102
|
data = check_data(data)
|
|
103
|
-
if
|
|
104
|
-
raise TypeError(f"model has to be a xgboost.Booster, got {type(model)} instead")
|
|
105
|
-
elif isinstance(model, xgboost.Booster):
|
|
103
|
+
if isinstance(model, xgboost.Booster):
|
|
106
104
|
model = to_remote_model(model, model_cls=Booster)
|
|
107
105
|
|
|
108
106
|
output_types = [OutputType.tensor]
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: maxframe
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.1
|
|
4
4
|
Summary: MaxFrame operator-based data analyze framework
|
|
5
5
|
Requires-Dist: numpy<2.0.0,>=1.19.0
|
|
6
6
|
Requires-Dist: pandas>=1.0.0
|
|
@@ -28,6 +28,7 @@ Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
|
28
28
|
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
|
|
29
29
|
Requires-Dist: pytest-timeout>=2.1.0; extra == "test"
|
|
30
30
|
Requires-Dist: matplotlib>=2.0.0; extra == "test"
|
|
31
|
+
Requires-Dist: xgboost<3.0.0,>=1.4.0; extra == "test"
|
|
31
32
|
Dynamic: description
|
|
32
33
|
|
|
33
34
|
MaxCompute MaxFrame Client
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
maxframe-1.3.
|
|
2
|
-
maxframe-1.3.
|
|
3
|
-
maxframe-1.3.
|
|
4
|
-
maxframe-1.3.
|
|
1
|
+
maxframe-1.3.1.dist-info/RECORD,,
|
|
2
|
+
maxframe-1.3.1.dist-info/WHEEL,sha256=RbtvOFtP--plS2sXkxxM8xYfkibPkCKcYIqEe_GHrhY,114
|
|
3
|
+
maxframe-1.3.1.dist-info/top_level.txt,sha256=64x-fc2q59c_vXwNUkehyjF1vb8JWqFSdYmUqIFqoTM,31
|
|
4
|
+
maxframe-1.3.1.dist-info/METADATA,sha256=qpNsY2M97jXwdy0BSqP97wYuc5QOZ8rlrHs9IesBpKA,3097
|
|
5
5
|
maxframe_client/conftest.py,sha256=JkQKlLZqd9uJekiO8HvMvEegidF-6KlCVFcg-KmQLLY,643
|
|
6
6
|
maxframe_client/__init__.py,sha256=z4QT02esANpxtSVZPO_96693bqSvhG82e4suaD6Ll1E,689
|
|
7
7
|
maxframe_client/fetcher.py,sha256=9zIq_mNGlk8DcTVH0f1-dgNmH72X0edRM9a8muwko6Y,9172
|
|
@@ -19,7 +19,7 @@ maxframe_client/session/tests/test_task.py,sha256=Q5srH-w58vYS3NVeuY_59hLn2d-ANJ
|
|
|
19
19
|
maxframe_client/session/tests/__init__.py,sha256=YsJxv7HbG4YYJmqAJZPYb8iHFRQX5JGpGn2PInDXvY8,596
|
|
20
20
|
maxframe/_utils.pyx,sha256=v1fcebb-o5Hee2xzMBMKLIXV9NHThYrS3SND6Sik24U,17017
|
|
21
21
|
maxframe/conftest.py,sha256=Jr7kv1m7VfJaDlfUW9pTKTfa9m9pkW_3jwNdmqB0zt4,6293
|
|
22
|
-
maxframe/_utils.cpython-311-darwin.so,sha256=
|
|
22
|
+
maxframe/_utils.cpython-311-darwin.so,sha256=IxG_mvjYyIiT-y1WQmGFT9hX-GxZ0INQnHNp2dLXOG0,846720
|
|
23
23
|
maxframe/opcodes.py,sha256=gqtlPSUJltfLVFsBsmfUT0rqLoIxXVGvOoA-gcDdwvM,10979
|
|
24
24
|
maxframe/env.py,sha256=9sJWTeOWuP6KRRYEejJgYa4FoZyAeSuXFd_A8_xl6YM,1402
|
|
25
25
|
maxframe/mixin.py,sha256=FnjS9bFlcg6LV8L62pyTVF29qgSJupFn9DZv8cv6MiI,3524
|
|
@@ -158,7 +158,7 @@ maxframe/dataframe/extensions/flatmap.py,sha256=2sA-ZOaZmv72U3l13poWbsYRz-Vr-Dmu
|
|
|
158
158
|
maxframe/dataframe/extensions/tests/test_apply_chunk.py,sha256=_NF_2sKBbbKyce2G7_HIQs7EsLRaQeYVg-PXxrV4pkM,5848
|
|
159
159
|
maxframe/dataframe/extensions/tests/test_extensions.py,sha256=zEt9CfM9se4kkgLHIgnXSPZ43VmU2ZbA59iTL86boZc,4779
|
|
160
160
|
maxframe/dataframe/extensions/tests/__init__.py,sha256=YsJxv7HbG4YYJmqAJZPYb8iHFRQX5JGpGn2PInDXvY8,596
|
|
161
|
-
maxframe/dataframe/groupby/aggregation.py,sha256=
|
|
161
|
+
maxframe/dataframe/groupby/aggregation.py,sha256=Md8E0alS2OXEX9IDN_Qg2XicfsPfNPqubzPCjs59mAQ,13342
|
|
162
162
|
maxframe/dataframe/groupby/fill.py,sha256=qCu2X6FT0VSP1fecbB1uQWTv82jzjZ5Wzs9wYc22n-Y,4808
|
|
163
163
|
maxframe/dataframe/groupby/cum.py,sha256=ITaWHRngx_QtiWY--agEHUdyjY-IdYaQLkF7tOolUEc,3683
|
|
164
164
|
maxframe/dataframe/groupby/__init__.py,sha256=guCWkfOiKC_3IPeiUIO6u_ghbrF39JvmrZTdAtVFyw0,3444
|
|
@@ -181,14 +181,14 @@ maxframe/dataframe/fetch/core.py,sha256=VjYAtY0NAnleui28xCL8y_bLbVBRsktIvzViSmpH
|
|
|
181
181
|
maxframe/dataframe/reduction/max.py,sha256=M6y3jKLd8ecJTc3LNb49tr74LaGPs6MCpuPWQJ-qWgU,1660
|
|
182
182
|
maxframe/dataframe/reduction/nunique.py,sha256=qaovc5DAxZFfGXdEaJy0uNHX69p2RnlmaUi7gmQbd54,3467
|
|
183
183
|
maxframe/dataframe/reduction/cummax.py,sha256=Odo-Ahex2Ey4cwO6_uJEuafbOovnkzZOw9pmyXs4i9A,1013
|
|
184
|
-
maxframe/dataframe/reduction/aggregation.py,sha256=
|
|
184
|
+
maxframe/dataframe/reduction/aggregation.py,sha256=wTege8DtMDq7_Zs6fNrGoo9xqdTtrflnz7LzGLne7X8,14448
|
|
185
185
|
maxframe/dataframe/reduction/skew.py,sha256=n4zYukXUYv1UFHGJFs1m2oToBKKnZ7ilhHBrRK1dHuQ,2538
|
|
186
186
|
maxframe/dataframe/reduction/custom_reduction.py,sha256=QjPVQ_8hdXjyWmOgeVlxsH8oir2zC_fa5NWK5wPtkik,1435
|
|
187
187
|
maxframe/dataframe/reduction/unique.py,sha256=IVb8lsLCfQ2tLJMLdAdxGO7BFpWD8LjJT3P-9XubBvI,2955
|
|
188
188
|
maxframe/dataframe/reduction/std.py,sha256=GmIp-lXVxZGFO2jZVcTmWwHz7rZfhhm2ONKTqZfU8LA,1355
|
|
189
189
|
maxframe/dataframe/reduction/str_concat.py,sha256=Wzuh57my-QOIqYMlnGn4i0mgH13dv4eWM53wEd11Iog,1657
|
|
190
190
|
maxframe/dataframe/reduction/__init__.py,sha256=6Xh-aQQmrGsPnsm3f-7chhsbMKTV1kWV9Y42ZJ6BTic,4335
|
|
191
|
-
maxframe/dataframe/reduction/core.py,sha256=
|
|
191
|
+
maxframe/dataframe/reduction/core.py,sha256=dqsuMJLOlgfQoP-BdIPLFj6RwsgUALAscgM5Ciyc_o8,30959
|
|
192
192
|
maxframe/dataframe/reduction/all.py,sha256=Amnoyro0zLqtk5ytuq0ntAOu7UqGHfhc8n3EONXmyUo,1966
|
|
193
193
|
maxframe/dataframe/reduction/cummin.py,sha256=dysmKMEMF_BiABSE8DNYzdWfzPNsHYPl_U8WMBbztow,1013
|
|
194
194
|
maxframe/dataframe/reduction/min.py,sha256=79EW7-KqVut9QULQ4l5UXzbCeYlrXtvYdlDzM328eFc,1660
|
|
@@ -293,16 +293,16 @@ maxframe/learn/utils/core.py,sha256=MohN0NI9Dc6a5GKJm6auK7Kd8R718tFz7BezjIBgC9s,
|
|
|
293
293
|
maxframe/learn/contrib/models.py,sha256=hB96eta2s31DEFFMuIXwxHnwJ9kYFJ5Ebwl3-RVEXu0,2553
|
|
294
294
|
maxframe/learn/contrib/__init__.py,sha256=sI7zXHdINJC0HKRv-PS78_sSRYIrGxa6j3G4xW9P5lc,672
|
|
295
295
|
maxframe/learn/contrib/utils.py,sha256=tTcz2JNumMZow6rmok-RE6rUIaJw7SO1YP1sruqMG_s,1663
|
|
296
|
-
maxframe/learn/contrib/llm/multi_modal.py,sha256=
|
|
296
|
+
maxframe/learn/contrib/llm/multi_modal.py,sha256=C6Vq-U8JRUSZMUDsrWt9m1GBPyp9f9V8ZaTzBNhsA9U,5406
|
|
297
297
|
maxframe/learn/contrib/llm/__init__.py,sha256=MBEWoYEQtBpZL070GOh721OYMvH3D2Y5BzyB4_DXZjY,649
|
|
298
298
|
maxframe/learn/contrib/llm/core.py,sha256=Z4s1ZssXCf5ebl-uDxGGlJ3KmXsbAm2wVZvikJZd6BM,2723
|
|
299
|
-
maxframe/learn/contrib/llm/text.py,sha256=
|
|
299
|
+
maxframe/learn/contrib/llm/text.py,sha256=Imsg_7cw0XOis4dmTuZTSw1iP0RIRta7rKVjx6TW35Y,9344
|
|
300
300
|
maxframe/learn/contrib/llm/models/__init__.py,sha256=I_l0NIpKILLkpPj_3xOv176QvHTeGstPq4xi688Z40c,661
|
|
301
|
-
maxframe/learn/contrib/llm/models/dashscope.py,sha256=
|
|
302
|
-
maxframe/learn/contrib/llm/models/managed.py,sha256=
|
|
301
|
+
maxframe/learn/contrib/llm/models/dashscope.py,sha256=X8FLgZ73U9UW_35wgFfk_2p11sCsDU41rLcy8eo6B2Q,3422
|
|
302
|
+
maxframe/learn/contrib/llm/models/managed.py,sha256=QeJ3J65TepG4CKllvV2kEBSiVJPBm30yhnfp_7QuM0o,1581
|
|
303
303
|
maxframe/learn/contrib/xgboost/classifier.py,sha256=-nQcAiUqoWe7QQK1t3qBiPj7i6D6dH_mQv0C6DdIpHw,4189
|
|
304
304
|
maxframe/learn/contrib/xgboost/dmatrix.py,sha256=ETl35ZzzcCbazn6q5ZFTH2St66ZEYTIErCtIHzpAsQg,4900
|
|
305
|
-
maxframe/learn/contrib/xgboost/predict.py,sha256=
|
|
305
|
+
maxframe/learn/contrib/xgboost/predict.py,sha256=8v1r7JD0B2Hv_eMy2D1HxrloyRd_nw21EhTs_hoDbnE,3889
|
|
306
306
|
maxframe/learn/contrib/xgboost/__init__.py,sha256=HsVMBBNXBQs2GaHMjuJrMdJRhpTDxQ37Amjc1GH7ESw,1051
|
|
307
307
|
maxframe/learn/contrib/xgboost/core.py,sha256=zoJ3AMxARDSj5ZzS6Td9eU505WPn5Bv6Tm4yAERi4HU,12114
|
|
308
308
|
maxframe/learn/contrib/xgboost/train.py,sha256=zIYGdVtjDufsMr_0_Z5PjFZyK6RKyi6MSXyJJSRIkyI,4547
|
|
@@ -332,7 +332,7 @@ maxframe/core/entity/objects.py,sha256=XgeJHAFg9CT3i76kUkxiAhn0hByNLCo1Jr8C_CFC5
|
|
|
332
332
|
maxframe/core/entity/tests/__init__.py,sha256=YsJxv7HbG4YYJmqAJZPYb8iHFRQX5JGpGn2PInDXvY8,596
|
|
333
333
|
maxframe/core/entity/tests/test_objects.py,sha256=o0_ntvlp1u3eObNwf-WpomK-AeZcIbdUf3CGit1K1Es,1349
|
|
334
334
|
maxframe/core/graph/__init__.py,sha256=qlKFvg4JNTmNOOvidxwOQOZofw5WePSWphkYpZ7hVoc,765
|
|
335
|
-
maxframe/core/graph/core.cpython-311-darwin.so,sha256=
|
|
335
|
+
maxframe/core/graph/core.cpython-311-darwin.so,sha256=itc2gBDIqmMDFOHdC4DLzdpwXv0kY_AFxh16X-rUR9E,685824
|
|
336
336
|
maxframe/core/graph/entity.py,sha256=feXajqZBbPTsZID8FcRzhDCll3LW-S5Lf3UGObSA_fw,4863
|
|
337
337
|
maxframe/core/graph/core.pyx,sha256=trOWJOlAn1bwMuErZwugqGXO1loCuhLBupYBxxmlHaI,15923
|
|
338
338
|
maxframe/core/graph/tests/__init__.py,sha256=YsJxv7HbG4YYJmqAJZPYb8iHFRQX5JGpGn2PInDXvY8,596
|
|
@@ -367,7 +367,7 @@ maxframe/serialization/__init__.py,sha256=St3P4ypcuRQgwgwFX4GXwHND-uLu9mVVSmlPtZ
|
|
|
367
367
|
maxframe/serialization/maxframe_objects.py,sha256=Ha2pFpBivutH_YES1EQN-zpWu3TbKtotJHiuc8Cs8S8,1365
|
|
368
368
|
maxframe/serialization/numpy.py,sha256=IbNaCDceyG7Bl3d_rT2NRnB0OaaWo82h1tycjiF2YZ8,3540
|
|
369
369
|
maxframe/serialization/scipy.py,sha256=W4P_r-4tAGGfVAFhwqcaHBxdW-dpZ6rIMLuppQzMXjo,2427
|
|
370
|
-
maxframe/serialization/core.cpython-311-darwin.so,sha256=
|
|
370
|
+
maxframe/serialization/core.cpython-311-darwin.so,sha256=FGfo183cF_88uLALPsFAUbXDncTelFScgB8HWV0k1kg,1195968
|
|
371
371
|
maxframe/serialization/core.pyx,sha256=eIAmTRpEj-byCyZsgNQFFOk2h_yb1hvfCKxt63j54YA,36238
|
|
372
372
|
maxframe/serialization/tests/test_serial.py,sha256=kMXTQsGiZJlTOY0j3CtsH4YVv2s6aHGVVZki_3wdYd8,13227
|
|
373
373
|
maxframe/serialization/tests/__init__.py,sha256=YsJxv7HbG4YYJmqAJZPYb8iHFRQX5JGpGn2PInDXvY8,596
|
|
@@ -404,7 +404,7 @@ maxframe/lib/version.py,sha256=krhgFvMhLdoNCJk3d9U-yyIAHixCR4S9-NggKdqrnHQ,18321
|
|
|
404
404
|
maxframe/lib/compression.py,sha256=QPxWRp0Q2q33EQzY-Jfx_iz7SELax6fu3GTmyIVyjGY,1442
|
|
405
405
|
maxframe/lib/__init__.py,sha256=spk1N3D3EL-0RyJDNlnwqHfQEW47lXL-rNDukcF6qlk,642
|
|
406
406
|
maxframe/lib/mmh3.pyi,sha256=R_MzTIyUSTn8TF4Gs2hRP7NSWfWi0SeuUauh4eZJc-g,1494
|
|
407
|
-
maxframe/lib/mmh3.cpython-311-darwin.so,sha256=
|
|
407
|
+
maxframe/lib/mmh3.cpython-311-darwin.so,sha256=doNtCJ6FDEOgsruQh7sqZ_ed7VotWdKQOjJupkopOS8,119784
|
|
408
408
|
maxframe/lib/functools_compat.py,sha256=c3gOw--FLvQNbamt0V8oqsTNRhPlASPEOzhMrzA2was,2616
|
|
409
409
|
maxframe/lib/mmh3_src/mmh3module.cpp,sha256=9J9eA42eKWTl546fvfQPNuIM3B2jpWSADpgIw3tr2jg,11604
|
|
410
410
|
maxframe/lib/mmh3_src/MurmurHash3.h,sha256=lg5uXUFyMBge2BWRn0FgrqaCFCMfDWoTXD4PQtjHrMA,1263
|
|
File without changes
|
|
File without changes
|