kumoai 2.12.0.dev202510231830__cp311-cp311-win_amd64.whl → 2.14.0.dev202512311733__cp311-cp311-win_amd64.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.
- kumoai/__init__.py +41 -35
- kumoai/_version.py +1 -1
- kumoai/client/client.py +15 -13
- kumoai/client/endpoints.py +1 -0
- kumoai/client/jobs.py +24 -0
- kumoai/client/pquery.py +6 -2
- kumoai/client/rfm.py +35 -7
- kumoai/connector/utils.py +23 -2
- kumoai/experimental/rfm/__init__.py +191 -48
- kumoai/experimental/rfm/authenticate.py +3 -4
- kumoai/experimental/rfm/backend/__init__.py +0 -0
- kumoai/experimental/rfm/backend/local/__init__.py +42 -0
- kumoai/experimental/rfm/{local_graph_store.py → backend/local/graph_store.py} +65 -127
- kumoai/experimental/rfm/backend/local/sampler.py +312 -0
- kumoai/experimental/rfm/backend/local/table.py +113 -0
- kumoai/experimental/rfm/backend/snow/__init__.py +37 -0
- kumoai/experimental/rfm/backend/snow/sampler.py +297 -0
- kumoai/experimental/rfm/backend/snow/table.py +242 -0
- kumoai/experimental/rfm/backend/sqlite/__init__.py +32 -0
- kumoai/experimental/rfm/backend/sqlite/sampler.py +398 -0
- kumoai/experimental/rfm/backend/sqlite/table.py +184 -0
- kumoai/experimental/rfm/base/__init__.py +30 -0
- kumoai/experimental/rfm/base/column.py +152 -0
- kumoai/experimental/rfm/base/expression.py +44 -0
- kumoai/experimental/rfm/base/sampler.py +761 -0
- kumoai/experimental/rfm/base/source.py +19 -0
- kumoai/experimental/rfm/base/sql_sampler.py +143 -0
- kumoai/experimental/rfm/base/table.py +735 -0
- kumoai/experimental/rfm/graph.py +1237 -0
- kumoai/experimental/rfm/infer/__init__.py +8 -0
- kumoai/experimental/rfm/infer/dtype.py +82 -0
- kumoai/experimental/rfm/infer/multicategorical.py +1 -1
- kumoai/experimental/rfm/infer/pkey.py +128 -0
- kumoai/experimental/rfm/infer/stype.py +35 -0
- kumoai/experimental/rfm/infer/time_col.py +61 -0
- kumoai/experimental/rfm/pquery/__init__.py +0 -4
- kumoai/experimental/rfm/pquery/executor.py +27 -27
- kumoai/experimental/rfm/pquery/pandas_executor.py +64 -40
- kumoai/experimental/rfm/relbench.py +76 -0
- kumoai/experimental/rfm/rfm.py +386 -276
- kumoai/experimental/rfm/sagemaker.py +138 -0
- kumoai/kumolib.cp311-win_amd64.pyd +0 -0
- kumoai/pquery/predictive_query.py +10 -6
- kumoai/spcs.py +1 -3
- kumoai/testing/decorators.py +1 -1
- kumoai/testing/snow.py +50 -0
- kumoai/trainer/distilled_trainer.py +175 -0
- kumoai/trainer/trainer.py +9 -10
- kumoai/utils/__init__.py +3 -2
- kumoai/utils/display.py +51 -0
- kumoai/utils/progress_logger.py +188 -16
- kumoai/utils/sql.py +3 -0
- {kumoai-2.12.0.dev202510231830.dist-info → kumoai-2.14.0.dev202512311733.dist-info}/METADATA +13 -2
- {kumoai-2.12.0.dev202510231830.dist-info → kumoai-2.14.0.dev202512311733.dist-info}/RECORD +57 -36
- kumoai/experimental/rfm/local_graph.py +0 -810
- kumoai/experimental/rfm/local_graph_sampler.py +0 -184
- kumoai/experimental/rfm/local_pquery_driver.py +0 -494
- kumoai/experimental/rfm/local_table.py +0 -545
- kumoai/experimental/rfm/pquery/backend.py +0 -136
- kumoai/experimental/rfm/pquery/pandas_backend.py +0 -478
- kumoai/experimental/rfm/utils.py +0 -344
- {kumoai-2.12.0.dev202510231830.dist-info → kumoai-2.14.0.dev202512311733.dist-info}/WHEEL +0 -0
- {kumoai-2.12.0.dev202510231830.dist-info → kumoai-2.14.0.dev202512311733.dist-info}/licenses/LICENSE +0 -0
- {kumoai-2.12.0.dev202510231830.dist-info → kumoai-2.14.0.dev202512311733.dist-info}/top_level.txt +0 -0
kumoai/utils/progress_logger.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import re
|
|
1
2
|
import sys
|
|
2
3
|
import time
|
|
3
|
-
from typing import Any
|
|
4
|
+
from typing import Any
|
|
4
5
|
|
|
5
6
|
from rich.console import Console, ConsoleOptions, RenderResult
|
|
6
7
|
from rich.live import Live
|
|
@@ -20,12 +21,22 @@ from typing_extensions import Self
|
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class ProgressLogger:
|
|
23
|
-
def __init__(self, msg: str) -> None:
|
|
24
|
+
def __init__(self, msg: str, verbose: bool = True) -> None:
|
|
24
25
|
self.msg = msg
|
|
25
|
-
self.
|
|
26
|
+
self.verbose = verbose
|
|
27
|
+
|
|
28
|
+
self.logs: list[str] = []
|
|
29
|
+
|
|
30
|
+
self.start_time: float | None = None
|
|
31
|
+
self.end_time: float | None = None
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def default(cls, msg: str, verbose: bool = True) -> 'ProgressLogger':
|
|
35
|
+
from kumoai import in_snowflake_notebook
|
|
26
36
|
|
|
27
|
-
|
|
28
|
-
|
|
37
|
+
if in_snowflake_notebook():
|
|
38
|
+
return StreamlitProgressLogger(msg, verbose)
|
|
39
|
+
return RichProgressLogger(msg, verbose)
|
|
29
40
|
|
|
30
41
|
@property
|
|
31
42
|
def duration(self) -> float:
|
|
@@ -37,6 +48,12 @@ class ProgressLogger:
|
|
|
37
48
|
def log(self, msg: str) -> None:
|
|
38
49
|
self.logs.append(msg)
|
|
39
50
|
|
|
51
|
+
def init_progress(self, total: int, description: str) -> None:
|
|
52
|
+
pass
|
|
53
|
+
|
|
54
|
+
def step(self) -> None:
|
|
55
|
+
pass
|
|
56
|
+
|
|
40
57
|
def __enter__(self) -> Self:
|
|
41
58
|
self.start_time = time.perf_counter()
|
|
42
59
|
return self
|
|
@@ -66,22 +83,21 @@ class ColoredTimeRemainingColumn(TimeRemainingColumn):
|
|
|
66
83
|
return Text(str(super().render(task)), style=self.style)
|
|
67
84
|
|
|
68
85
|
|
|
69
|
-
class
|
|
86
|
+
class RichProgressLogger(ProgressLogger):
|
|
70
87
|
def __init__(
|
|
71
88
|
self,
|
|
72
89
|
msg: str,
|
|
73
90
|
verbose: bool = True,
|
|
74
91
|
refresh_per_second: int = 10,
|
|
75
92
|
) -> None:
|
|
76
|
-
super().__init__(msg=msg)
|
|
93
|
+
super().__init__(msg=msg, verbose=verbose)
|
|
77
94
|
|
|
78
|
-
self.verbose = verbose
|
|
79
95
|
self.refresh_per_second = refresh_per_second
|
|
80
96
|
|
|
81
|
-
self._progress:
|
|
82
|
-
self._task:
|
|
97
|
+
self._progress: Progress | None = None
|
|
98
|
+
self._task: int | None = None
|
|
83
99
|
|
|
84
|
-
self._live:
|
|
100
|
+
self._live: Live | None = None
|
|
85
101
|
self._exception: bool = False
|
|
86
102
|
|
|
87
103
|
def init_progress(self, total: int, description: str) -> None:
|
|
@@ -103,10 +119,13 @@ class InteractiveProgressLogger(ProgressLogger):
|
|
|
103
119
|
self._progress.update(self._task, advance=1) # type: ignore
|
|
104
120
|
|
|
105
121
|
def __enter__(self) -> Self:
|
|
122
|
+
from kumoai import in_notebook
|
|
123
|
+
|
|
106
124
|
super().__enter__()
|
|
107
125
|
|
|
108
|
-
|
|
109
|
-
|
|
126
|
+
if not in_notebook(): # Render progress bar in TUI.
|
|
127
|
+
sys.stdout.write("\x1b]9;4;3\x07")
|
|
128
|
+
sys.stdout.flush()
|
|
110
129
|
|
|
111
130
|
if self.verbose:
|
|
112
131
|
self._live = Live(
|
|
@@ -119,6 +138,8 @@ class InteractiveProgressLogger(ProgressLogger):
|
|
|
119
138
|
return self
|
|
120
139
|
|
|
121
140
|
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
|
|
141
|
+
from kumoai import in_notebook
|
|
142
|
+
|
|
122
143
|
super().__exit__(exc_type, exc_val, exc_tb)
|
|
123
144
|
|
|
124
145
|
if exc_type is not None:
|
|
@@ -134,8 +155,9 @@ class InteractiveProgressLogger(ProgressLogger):
|
|
|
134
155
|
self._live.stop()
|
|
135
156
|
self._live = None
|
|
136
157
|
|
|
137
|
-
|
|
138
|
-
|
|
158
|
+
if not in_notebook():
|
|
159
|
+
sys.stdout.write("\x1b]9;4;0\x07")
|
|
160
|
+
sys.stdout.flush()
|
|
139
161
|
|
|
140
162
|
def __rich_console__(
|
|
141
163
|
self,
|
|
@@ -145,7 +167,7 @@ class InteractiveProgressLogger(ProgressLogger):
|
|
|
145
167
|
|
|
146
168
|
table = Table.grid(padding=(0, 1))
|
|
147
169
|
|
|
148
|
-
icon:
|
|
170
|
+
icon: Text | Padding
|
|
149
171
|
if self._exception:
|
|
150
172
|
style = 'red'
|
|
151
173
|
icon = Text('❌', style=style)
|
|
@@ -169,3 +191,153 @@ class InteractiveProgressLogger(ProgressLogger):
|
|
|
169
191
|
|
|
170
192
|
if self.verbose and self._progress is not None:
|
|
171
193
|
yield self._progress.get_renderable()
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
class StreamlitProgressLogger(ProgressLogger):
|
|
197
|
+
def __init__(
|
|
198
|
+
self,
|
|
199
|
+
msg: str,
|
|
200
|
+
verbose: bool = True,
|
|
201
|
+
) -> None:
|
|
202
|
+
super().__init__(msg=msg, verbose=verbose)
|
|
203
|
+
|
|
204
|
+
self._status: Any = None
|
|
205
|
+
|
|
206
|
+
self._total = 0
|
|
207
|
+
self._current = 0
|
|
208
|
+
self._description: str = ''
|
|
209
|
+
self._progress: Any = None
|
|
210
|
+
|
|
211
|
+
def __enter__(self) -> Self:
|
|
212
|
+
super().__enter__()
|
|
213
|
+
|
|
214
|
+
import streamlit as st
|
|
215
|
+
|
|
216
|
+
# Adjust layout for prettier output:
|
|
217
|
+
st.markdown(STREAMLIT_CSS, unsafe_allow_html=True)
|
|
218
|
+
|
|
219
|
+
if self.verbose:
|
|
220
|
+
self._status = st.status(
|
|
221
|
+
f':blue[{self._sanitize_text(self.msg)}]',
|
|
222
|
+
expanded=True,
|
|
223
|
+
)
|
|
224
|
+
|
|
225
|
+
return self
|
|
226
|
+
|
|
227
|
+
def log(self, msg: str) -> None:
|
|
228
|
+
super().log(msg)
|
|
229
|
+
if self.verbose and self._status is not None:
|
|
230
|
+
self._status.write(self._sanitize_text(msg))
|
|
231
|
+
|
|
232
|
+
def init_progress(self, total: int, description: str) -> None:
|
|
233
|
+
if self.verbose and self._status is not None:
|
|
234
|
+
self._total = total
|
|
235
|
+
self._current = 0
|
|
236
|
+
self._description = self._sanitize_text(description)
|
|
237
|
+
percent = min(self._current / self._total, 1.0)
|
|
238
|
+
self._progress = self._status.progress(
|
|
239
|
+
value=percent,
|
|
240
|
+
text=f'{self._description} [{self._current}/{self._total}]',
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
def step(self) -> None:
|
|
244
|
+
self._current += 1
|
|
245
|
+
|
|
246
|
+
if self.verbose and self._progress is not None:
|
|
247
|
+
percent = min(self._current / self._total, 1.0)
|
|
248
|
+
self._progress.progress(
|
|
249
|
+
value=percent,
|
|
250
|
+
text=f'{self._description} [{self._current}/{self._total}]',
|
|
251
|
+
)
|
|
252
|
+
|
|
253
|
+
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
|
|
254
|
+
super().__exit__(exc_type, exc_val, exc_tb)
|
|
255
|
+
|
|
256
|
+
if not self.verbose or self._status is None:
|
|
257
|
+
return
|
|
258
|
+
|
|
259
|
+
label = f'{self._sanitize_text(self.msg)} ({self.duration:.2f}s)'
|
|
260
|
+
|
|
261
|
+
if exc_type is not None:
|
|
262
|
+
self._status.update(
|
|
263
|
+
label=f':red[{label}]',
|
|
264
|
+
state='error',
|
|
265
|
+
expanded=True,
|
|
266
|
+
)
|
|
267
|
+
else:
|
|
268
|
+
self._status.update(
|
|
269
|
+
label=f':green[{label}]',
|
|
270
|
+
state='complete',
|
|
271
|
+
expanded=True,
|
|
272
|
+
)
|
|
273
|
+
|
|
274
|
+
@staticmethod
|
|
275
|
+
def _sanitize_text(msg: str) -> str:
|
|
276
|
+
return re.sub(r'\[/?bold\]', '**', msg)
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
STREAMLIT_CSS = """
|
|
280
|
+
<style>
|
|
281
|
+
/* Fix horizontal scrollbar */
|
|
282
|
+
.stExpander summary {
|
|
283
|
+
width: auto;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/* Fix paddings/margins */
|
|
287
|
+
.stExpander summary {
|
|
288
|
+
padding: 0.75rem 1rem 0.5rem;
|
|
289
|
+
}
|
|
290
|
+
.stExpander p {
|
|
291
|
+
margin: 0px 0px 0.2rem;
|
|
292
|
+
}
|
|
293
|
+
.stExpander [data-testid="stExpanderDetails"] {
|
|
294
|
+
padding-bottom: 1.45rem;
|
|
295
|
+
}
|
|
296
|
+
.stExpander .stProgress div:first-child {
|
|
297
|
+
padding-bottom: 4px;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* Fix expand icon position */
|
|
301
|
+
.stExpander summary svg {
|
|
302
|
+
height: 1.5rem;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* Fix summary icons */
|
|
306
|
+
.stExpander summary [data-testid="stExpanderIconCheck"] {
|
|
307
|
+
font-size: 1.8rem;
|
|
308
|
+
margin-top: -3px;
|
|
309
|
+
color: rgb(21, 130, 55);
|
|
310
|
+
}
|
|
311
|
+
.stExpander summary [data-testid="stExpanderIconError"] {
|
|
312
|
+
font-size: 1.8rem;
|
|
313
|
+
margin-top: -3px;
|
|
314
|
+
color: rgb(255, 43, 43);
|
|
315
|
+
}
|
|
316
|
+
.stExpander summary span:first-child span:first-child {
|
|
317
|
+
width: 1.6rem;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/* Add border between title and content */
|
|
321
|
+
.stExpander [data-testid="stExpanderDetails"] {
|
|
322
|
+
border-top: 1px solid rgba(30, 37, 47, 0.2);
|
|
323
|
+
padding-top: 0.5rem;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/* Fix title font size */
|
|
327
|
+
.stExpander summary p {
|
|
328
|
+
font-size: 1rem;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* Gray out content */
|
|
332
|
+
.stExpander [data-testid="stExpanderDetails"] {
|
|
333
|
+
color: rgba(30, 37, 47, 0.5);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/* Fix progress bar font size */
|
|
337
|
+
.stExpander .stProgress p {
|
|
338
|
+
line-height: 1.6;
|
|
339
|
+
font-size: 1rem;
|
|
340
|
+
color: rgba(30, 37, 47, 0.5);
|
|
341
|
+
}
|
|
342
|
+
</style>
|
|
343
|
+
"""
|
kumoai/utils/sql.py
ADDED
{kumoai-2.12.0.dev202510231830.dist-info → kumoai-2.14.0.dev202512311733.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kumoai
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.14.0.dev202512311733
|
|
4
4
|
Summary: AI on the Modern Data Stack
|
|
5
5
|
Author-email: "Kumo.AI" <hello@kumo.ai>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -23,7 +23,7 @@ Requires-Dist: requests>=2.28.2
|
|
|
23
23
|
Requires-Dist: urllib3
|
|
24
24
|
Requires-Dist: plotly
|
|
25
25
|
Requires-Dist: typing_extensions>=4.5.0
|
|
26
|
-
Requires-Dist: kumo-api==0.
|
|
26
|
+
Requires-Dist: kumo-api==0.49.0
|
|
27
27
|
Requires-Dist: tqdm>=4.66.0
|
|
28
28
|
Requires-Dist: aiohttp>=3.10.0
|
|
29
29
|
Requires-Dist: pydantic>=1.10.21
|
|
@@ -38,6 +38,17 @@ Provides-Extra: test
|
|
|
38
38
|
Requires-Dist: pytest; extra == "test"
|
|
39
39
|
Requires-Dist: pytest-mock; extra == "test"
|
|
40
40
|
Requires-Dist: requests-mock; extra == "test"
|
|
41
|
+
Provides-Extra: sqlite
|
|
42
|
+
Requires-Dist: adbc_driver_sqlite; extra == "sqlite"
|
|
43
|
+
Provides-Extra: snowflake
|
|
44
|
+
Requires-Dist: numpy<2.0; extra == "snowflake"
|
|
45
|
+
Requires-Dist: snowflake-connector-python; extra == "snowflake"
|
|
46
|
+
Requires-Dist: pyyaml; extra == "snowflake"
|
|
47
|
+
Provides-Extra: sagemaker
|
|
48
|
+
Requires-Dist: boto3<2.0,>=1.30.0; extra == "sagemaker"
|
|
49
|
+
Requires-Dist: mypy-boto3-sagemaker-runtime<2.0,>=1.34.0; extra == "sagemaker"
|
|
50
|
+
Provides-Extra: test-sagemaker
|
|
51
|
+
Requires-Dist: sagemaker<3.0; extra == "test-sagemaker"
|
|
41
52
|
Dynamic: license-file
|
|
42
53
|
Dynamic: requires-dist
|
|
43
54
|
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
kumoai/__init__.py,sha256=
|
|
1
|
+
kumoai/__init__.py,sha256=cKL7QeT-b5OHi75jtvFzbIKGjeJV5Tago7jKLX0nuYE,11207
|
|
2
2
|
kumoai/_logging.py,sha256=qL4JbMQwKXri2f-SEJoFB8TY5ALG12S-nobGTNWxW-A,915
|
|
3
3
|
kumoai/_singleton.py,sha256=i2BHWKpccNh5SJGDyU0IXsnYzJAYr8Xb0wz4c6LRbpo,861
|
|
4
|
-
kumoai/_version.py,sha256=
|
|
4
|
+
kumoai/_version.py,sha256=32sxKc23c2ZwBpjMCJy1uV7Onu-qs9SnwRCDZjcM_3g,39
|
|
5
5
|
kumoai/databricks.py,sha256=ahwJz6DWLXMkndT0XwEDBxF-hoqhidFR8wBUQ4TLZ68,490
|
|
6
6
|
kumoai/exceptions.py,sha256=7TMs0SC8xrU009_Pgd4QXtSF9lxJq8MtRbeX9pcQUy4,859
|
|
7
7
|
kumoai/formatting.py,sha256=o3uCnLwXPhe1KI5WV9sBgRrcU7ed4rgu_pf89GL9Nc0,983
|
|
8
8
|
kumoai/futures.py,sha256=J8rtZMEYFzdn5xF_x-LAiKJz3KGL6PT02f6rq_2bOJk,3836
|
|
9
9
|
kumoai/jobs.py,sha256=dCi7BAdfm2tCnonYlGU4WJokJWbh3RzFfaOX2EYCIHU,2576
|
|
10
|
-
kumoai/kumolib.cp311-win_amd64.pyd,sha256
|
|
10
|
+
kumoai/kumolib.cp311-win_amd64.pyd,sha256=-_lCmpkrGAbk6knUATi0h6fu5DrlEoFk85pL0ZBBFwE,196096
|
|
11
11
|
kumoai/mixin.py,sha256=IaiB8SAI0VqOoMVzzIaUlqMt53-QPUK6OB0HikG-V9E,840
|
|
12
|
-
kumoai/spcs.py,sha256=
|
|
12
|
+
kumoai/spcs.py,sha256=KWfENrwSLruprlD-QPh63uU0N6npiNrwkeKfBk3EUyQ,4260
|
|
13
13
|
kumoai/artifact_export/__init__.py,sha256=UXAQI5q92ChBzWAk8o3J6pElzYHudAzFZssQXd4o7i8,247
|
|
14
14
|
kumoai/artifact_export/config.py,sha256=PRoUByzu5l-nyBKFR4vnRlq19b53ExGVy8YDCD7zMuI,8233
|
|
15
15
|
kumoai/artifact_export/job.py,sha256=lOFIdPCrvhwdfvvDhQ2yzW8J4qIdYQoHZO1Rz3kJky4,3383
|
|
16
16
|
kumoai/client/__init__.py,sha256=v0ISO1QD8JJhIJS6IzWz5-SL3EhtNCPeX3j1b2HBY0s,69
|
|
17
|
-
kumoai/client/client.py,sha256=
|
|
17
|
+
kumoai/client/client.py,sha256=cabrXk8fPPrXsTDoWiBsZnXNpZsH3Ap2gk5pyVqxO9Y,8938
|
|
18
18
|
kumoai/client/connector.py,sha256=CO2LG5aDpCLxWNYYFRXGZs1AhYH3dRcbqBEUGwHQGzQ,4030
|
|
19
|
-
kumoai/client/endpoints.py,sha256=
|
|
19
|
+
kumoai/client/endpoints.py,sha256=DpEKEQ1yvL15iHZadXZKO94t-qXrYLaeV1sknX4IuPg,5532
|
|
20
20
|
kumoai/client/graph.py,sha256=6MFyPYxDPfGTWeAI_84RUgWx9rVvqbLnR0Ourtgj5rg,3951
|
|
21
|
-
kumoai/client/jobs.py,sha256=
|
|
21
|
+
kumoai/client/jobs.py,sha256=PHRIEBW72BPyTO1PC7SwaszWr9gjfo7IZX2ExGkqXXc,18537
|
|
22
22
|
kumoai/client/online.py,sha256=4s_8Sv8m_k_tty4CO7RuAt0e6BDMkGvsZZ3VX8zyDb8,2798
|
|
23
|
-
kumoai/client/pquery.py,sha256=
|
|
24
|
-
kumoai/client/rfm.py,sha256=
|
|
23
|
+
kumoai/client/pquery.py,sha256=8hBT44-1gc2QoO-tjdDsJXJA4mLO1thmS27b4XDlUUY,7298
|
|
24
|
+
kumoai/client/rfm.py,sha256=Gmt_dqoXekBCLiF0eQPgpoJ1cbnhnU8VbINF3U13qbQ,3838
|
|
25
25
|
kumoai/client/source_table.py,sha256=mMHJtQ_yUHRI9LdHLVHxNGt83bbzmC1_d-NmXjbiTuI,2154
|
|
26
26
|
kumoai/client/table.py,sha256=VhjLEMLQS1Z7zjcb2Yt3gZfiVqiD7b1gj-WNux_504A,3336
|
|
27
27
|
kumoai/client/utils.py,sha256=RSD5Ia0lQQDR1drRFBJFdo2KVHfQqhJuk6m6du7Kl4E,3979
|
|
@@ -50,51 +50,72 @@ kumoai/connector/glue_connector.py,sha256=kqT2q53Da7PeeaZrvLVzFXC186E7glh5eGitKL
|
|
|
50
50
|
kumoai/connector/s3_connector.py,sha256=AUzENbQ20bYXh3XOXEOsWRKlaGGkm3YrW9JfBLm-LqY,10433
|
|
51
51
|
kumoai/connector/snowflake_connector.py,sha256=tQzIWxC4oDGqxFt0212w5eoIPT4QBP2nuF9SdKRNwNI,9274
|
|
52
52
|
kumoai/connector/source_table.py,sha256=fnqwIKY6qYo4G0EsRzchb6FgZ-dQyU6aRaD9UAxsml0,18010
|
|
53
|
-
kumoai/connector/utils.py,sha256=
|
|
53
|
+
kumoai/connector/utils.py,sha256=5K9BMdWiIP3hhdkUc6Xt1e0xv5YyziXtZ4PnBqq0Ehw,66490
|
|
54
54
|
kumoai/encoder/__init__.py,sha256=8FeP6mUyCeXxr1b8kUIi5dxe5vEXQRft9tPoaV1CBqg,186
|
|
55
55
|
kumoai/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
-
kumoai/experimental/rfm/__init__.py,sha256=
|
|
57
|
-
kumoai/experimental/rfm/authenticate.py,sha256=
|
|
58
|
-
kumoai/experimental/rfm/
|
|
59
|
-
kumoai/experimental/rfm/
|
|
60
|
-
kumoai/experimental/rfm/
|
|
61
|
-
kumoai/experimental/rfm/
|
|
62
|
-
kumoai/experimental/rfm/
|
|
63
|
-
kumoai/experimental/rfm/
|
|
64
|
-
kumoai/experimental/rfm/
|
|
65
|
-
kumoai/experimental/rfm/
|
|
56
|
+
kumoai/experimental/rfm/__init__.py,sha256=O72rdiWbA6yWwc6rCvW9LmnVbDmPqPwVkmNYguQk3t0,7173
|
|
57
|
+
kumoai/experimental/rfm/authenticate.py,sha256=odKaqOAEkdC_wB340cs_ozjSvQLTce45WLiJSEzQaL8,19283
|
|
58
|
+
kumoai/experimental/rfm/graph.py,sha256=Wu6fUS2id-9UUBVEuDsTFROJuikLOOpMXcBTyA68ty0,47588
|
|
59
|
+
kumoai/experimental/rfm/relbench.py,sha256=30O7QAKYcMgr6C9Qpgev7gxSMAtWXop25p7DtmzrBlE,2352
|
|
60
|
+
kumoai/experimental/rfm/rfm.py,sha256=do8M6n0BwdpX4hvukZV-wPyjZpjTdGmhwEWKluYzdhw,50710
|
|
61
|
+
kumoai/experimental/rfm/sagemaker.py,sha256=7Yk4um0gBBn7u-Bz8JRv53z0__FcD0uESoiImJhxsBw,5101
|
|
62
|
+
kumoai/experimental/rfm/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
+
kumoai/experimental/rfm/backend/local/__init__.py,sha256=8JbLaai0yhtldFcDkddphIJKMiKc0XnodvYBWkrGPXI,1056
|
|
64
|
+
kumoai/experimental/rfm/backend/local/graph_store.py,sha256=fmBOdXK6a7hHqfB5NqpcGB8GTH60pEbTn7hZJcJi6yk,11591
|
|
65
|
+
kumoai/experimental/rfm/backend/local/sampler.py,sha256=tD3l5xfcxjsWDaC45V-xOAI_-Jyyk_au-E7wyrMqCx4,11038
|
|
66
|
+
kumoai/experimental/rfm/backend/local/table.py,sha256=86lztrVxdpya25X4r8mR2c_t-tI8gAEyahz-mNmk9tA,3602
|
|
67
|
+
kumoai/experimental/rfm/backend/snow/__init__.py,sha256=lsF0sJXZ0Pc3NvBTBXJHudp-iZJXdidrhyqFQKEU5_Q,1030
|
|
68
|
+
kumoai/experimental/rfm/backend/snow/sampler.py,sha256=qaMbb3Cv0BiaKbImg1UK_EuYfaSuo7LOjFOybJTH1gA,11780
|
|
69
|
+
kumoai/experimental/rfm/backend/snow/table.py,sha256=ZEaHsTV7dt4aS1Wp_4gYV475Ysyr7icRVlyKxKrjh7o,9134
|
|
70
|
+
kumoai/experimental/rfm/backend/sqlite/__init__.py,sha256=wkSr2D_E5VCH4RGW8FCN2iJp-6wb_RTCMO8R3p5lkiw,934
|
|
71
|
+
kumoai/experimental/rfm/backend/sqlite/sampler.py,sha256=7IRuzqOGlhgE8act-_kxiIXWwwH4Uk9Fu7Em-vPx0Hk,16599
|
|
72
|
+
kumoai/experimental/rfm/backend/sqlite/table.py,sha256=nH3S3lBVfG6aWp0DtCUVJRBZhlQV4ieskbz-5D0AlG0,6867
|
|
73
|
+
kumoai/experimental/rfm/base/__init__.py,sha256=is8HTLng28h5AtpledQ-hdIheGM052JdBhjv8HtKhDw,754
|
|
74
|
+
kumoai/experimental/rfm/base/column.py,sha256=JeDKSZnTChFHMaIC3TcEgdPG9Rr2PATTAMIMhjnvXrs,5117
|
|
75
|
+
kumoai/experimental/rfm/base/expression.py,sha256=04NgmrrvjM1yFXnOMDZtb5V1-oFufqCamv2KTETOHik,1296
|
|
76
|
+
kumoai/experimental/rfm/base/sampler.py,sha256=rwH-HjxaOeSmgP9RBdl5vdYOX09iIpijxjdHcuLXl8M,31643
|
|
77
|
+
kumoai/experimental/rfm/base/source.py,sha256=67rpePejkZli4B_eDWzDrn_8Q5Msyo2XZ9F8IGB0ImI,320
|
|
78
|
+
kumoai/experimental/rfm/base/sql_sampler.py,sha256=ehsIIuJQqSswI5Ojk3jp0gFOQtBlGib7X-svcLdl68c,5237
|
|
79
|
+
kumoai/experimental/rfm/base/table.py,sha256=uW6U8oQJ0Xo_2QwoHm-ht1xLb_MMVxCrjvyCft_zA3U,27269
|
|
80
|
+
kumoai/experimental/rfm/infer/__init__.py,sha256=Uf4Od7B2G80U61mkkxsnxHPGu1Hh2RqOazTkOYtNLvA,538
|
|
66
81
|
kumoai/experimental/rfm/infer/categorical.py,sha256=bqmfrE5ZCBTcb35lA4SyAkCu3MgttAn29VBJYMBNhVg,893
|
|
82
|
+
kumoai/experimental/rfm/infer/dtype.py,sha256=LnAazTqfic0SOH0Py_ooXvVxXR5OVi6-Og1L_9lMOZc,2864
|
|
67
83
|
kumoai/experimental/rfm/infer/id.py,sha256=xaJBETLZa8ttzZCsDwFSwfyCi3VYsLc_kDWT_t_6Ih4,954
|
|
68
|
-
kumoai/experimental/rfm/infer/multicategorical.py,sha256=
|
|
84
|
+
kumoai/experimental/rfm/infer/multicategorical.py,sha256=mMuRCbfs0zsfOoPB_eCs6nlt4WgNPvklmYPRq7w85L4,1167
|
|
85
|
+
kumoai/experimental/rfm/infer/pkey.py,sha256=GCAUN8Hz5-leVv2-H8soP3k-DsXJ1O_uQU25-CsSWN0,4540
|
|
86
|
+
kumoai/experimental/rfm/infer/stype.py,sha256=lOgiGJ_rsaeiFWyVUw0IMwn_7hGOqL8mvy2rGzXfi3Q,929
|
|
87
|
+
kumoai/experimental/rfm/infer/time_col.py,sha256=-OJbjHxD05UuSF2ePBkywzm-h2Qd9kC4BEFaHuglUbs,1850
|
|
69
88
|
kumoai/experimental/rfm/infer/timestamp.py,sha256=L2VxjtYTSyUBYAo4M-L08xSQlPpqnHMAVF5_vxjh3Y0,1135
|
|
70
|
-
kumoai/experimental/rfm/pquery/__init__.py,sha256=
|
|
71
|
-
kumoai/experimental/rfm/pquery/
|
|
72
|
-
kumoai/experimental/rfm/pquery/
|
|
73
|
-
kumoai/experimental/rfm/pquery/pandas_backend.py,sha256=slG4WhuY0IOAtm_pKYuRDUQ-1wUcLESQsaUkFkQFq74,15874
|
|
74
|
-
kumoai/experimental/rfm/pquery/pandas_executor.py,sha256=W0CEnjDdqxkBADSyvnupwS1k86N9DhFXejJEDKS1MBo,17832
|
|
89
|
+
kumoai/experimental/rfm/pquery/__init__.py,sha256=RkTn0I74uXOUuOiBpa6S-_QEYctMutkUnBEfF9ztQzI,159
|
|
90
|
+
kumoai/experimental/rfm/pquery/executor.py,sha256=mz5mqhHbgZM0f5oNFLyThWGM4UePx_kd1O4zyJ_8ToQ,2830
|
|
91
|
+
kumoai/experimental/rfm/pquery/pandas_executor.py,sha256=awZSp41i0qTPzMowWJ1-FY4rbpTH7hxMeV91drEPfUQ,18984
|
|
75
92
|
kumoai/graph/__init__.py,sha256=QGk3OMwRzQJSGESdcc7hcQH6UDmNVJYTdqnRren4c7Q,240
|
|
76
93
|
kumoai/graph/column.py,sha256=cQhioibTbIKIBZ-bf8-Bt4F4Iblhidps-CYWrkxRPnE,4295
|
|
77
94
|
kumoai/graph/graph.py,sha256=Pq-dxi4MwoDtrrwm3xeyUB9Hl7ryNfHq4rMHuvyNB3c,39239
|
|
78
95
|
kumoai/graph/table.py,sha256=BB-4ezyd7hrrj6QZwRBa80ySH0trwYb4fmhRn3xoK-k,34726
|
|
79
96
|
kumoai/pquery/__init__.py,sha256=FF6QUTG_xrz2ic1I8NcIa8O993Ae98eZ9gkvQ4rapgo,558
|
|
80
97
|
kumoai/pquery/prediction_table.py,sha256=hWG4L_ze4PLgUoxCXNKk8_nkYxVXELQs8_X8KGOE9yk,11063
|
|
81
|
-
kumoai/pquery/predictive_query.py,sha256=
|
|
98
|
+
kumoai/pquery/predictive_query.py,sha256=I5Ntc7YO1qEGxKrLuhAzZO3SySr8Wnjhde8eDbbB7zk,25542
|
|
82
99
|
kumoai/pquery/training_table.py,sha256=L1QjaVlY4SAPD8OUmTaH6YjZzBbPOnS9mnAT69znWv0,16233
|
|
83
100
|
kumoai/testing/__init__.py,sha256=XBQ_Sa3WnOYlpXZ3gUn8w6nVfZt-nfPhytfIBeiPt4w,178
|
|
84
|
-
kumoai/testing/decorators.py,sha256=
|
|
101
|
+
kumoai/testing/decorators.py,sha256=p79ZCQqPY_MHWy0_l7-xQ6wUIqFTn4AbrGWTHLvpbQY,1664
|
|
102
|
+
kumoai/testing/snow.py,sha256=i0m8y7ciqUnQeP1Xe_-bOxVh_xyAuuyz_rTEHJFkYY0,1537
|
|
85
103
|
kumoai/trainer/__init__.py,sha256=uCFXy9bw_byn_wYd3M-BTZCHTVvv4XXr8qRlh-QOvag,981
|
|
86
104
|
kumoai/trainer/baseline_trainer.py,sha256=oXweh8j1sar6KhQfr3A7gmQxcDq7SG0Bx3jIenbtyC4,4117
|
|
87
105
|
kumoai/trainer/config.py,sha256=7_Jv1w1mqaokCQwQdJkqCSgVpmh8GqE3fL1Ky_vvttI,100
|
|
106
|
+
kumoai/trainer/distilled_trainer.py,sha256=hdZWi1_6bxNBDwHGmEMXTYtFUwC0JiDLozOR8zQvBBY,6659
|
|
88
107
|
kumoai/trainer/job.py,sha256=IBP2SeIk21XpRK1Um1NIs2dEKid319cHu6UkCjKO6jc,46130
|
|
89
108
|
kumoai/trainer/online_serving.py,sha256=T1jicl-qXiiWGQWUCwlfQsyxWUODybj_975gx9yglH4,9824
|
|
90
|
-
kumoai/trainer/trainer.py,sha256=
|
|
109
|
+
kumoai/trainer/trainer.py,sha256=AKumc3X2Vm3qxZSA85Dv_fSLC4JQ3rM7P0ixOWbEex0,20608
|
|
91
110
|
kumoai/trainer/util.py,sha256=LCXkY5MNl6NbEVd2OZ0aVqF6fvr3KiCFh6pH0igAi_g,4165
|
|
92
|
-
kumoai/utils/__init__.py,sha256=
|
|
111
|
+
kumoai/utils/__init__.py,sha256=lazi9gAl5YBg1Nk121zSDg-BIKTVETjFTZwTFUlGngo,267
|
|
93
112
|
kumoai/utils/datasets.py,sha256=UyAII-oAn7x3ombuvpbSQ41aVF9SYKBjQthTD-vcT2A,3011
|
|
113
|
+
kumoai/utils/display.py,sha256=gBLUk5xj4BaNSrmdYqQWK54w6NXqqAI6cpKnqBclr3g,1448
|
|
94
114
|
kumoai/utils/forecasting.py,sha256=ZgKeUCbWLOot0giAkoigwU5du8LkrwAicFOi5hVn6wg,7624
|
|
95
|
-
kumoai/utils/progress_logger.py,sha256=
|
|
96
|
-
kumoai
|
|
97
|
-
kumoai-2.
|
|
98
|
-
kumoai-2.
|
|
99
|
-
kumoai-2.
|
|
100
|
-
kumoai-2.
|
|
115
|
+
kumoai/utils/progress_logger.py,sha256=OR_4Yh__8ZPhBtSTMESFuFQbyennfWZuD6zjiaqzaLw,9608
|
|
116
|
+
kumoai/utils/sql.py,sha256=a9HT5IIUaXfbQaLbZ2HuuYHLBDev_cer1Tzif7xE-R4,121
|
|
117
|
+
kumoai-2.14.0.dev202512311733.dist-info/licenses/LICENSE,sha256=ZUilBDp--4vbhsEr6f_Upw9rnIx09zQ3K9fXQ0rfd6w,1111
|
|
118
|
+
kumoai-2.14.0.dev202512311733.dist-info/METADATA,sha256=ZWj6e55R1osKL4fg1RJ6nU4W67dw3hWz3_MBPyeB2y0,2628
|
|
119
|
+
kumoai-2.14.0.dev202512311733.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
|
|
120
|
+
kumoai-2.14.0.dev202512311733.dist-info/top_level.txt,sha256=YjU6UcmomoDx30vEXLsOU784ED7VztQOsFApk1SFwvs,7
|
|
121
|
+
kumoai-2.14.0.dev202512311733.dist-info/RECORD,,
|