kumoai 2.10.0.dev202509291830__cp312-cp312-macosx_11_0_arm64.whl → 2.13.0.dev202511161731__cp312-cp312-macosx_11_0_arm64.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 +4 -2
- kumoai/_version.py +1 -1
- kumoai/client/client.py +10 -5
- kumoai/client/endpoints.py +1 -0
- kumoai/client/rfm.py +37 -8
- kumoai/experimental/rfm/__init__.py +5 -3
- kumoai/experimental/rfm/infer/timestamp.py +5 -4
- kumoai/experimental/rfm/local_graph.py +90 -74
- kumoai/experimental/rfm/local_graph_sampler.py +16 -8
- kumoai/experimental/rfm/local_graph_store.py +13 -1
- kumoai/experimental/rfm/local_pquery_driver.py +323 -38
- kumoai/experimental/rfm/local_table.py +100 -22
- kumoai/experimental/rfm/pquery/__init__.py +4 -4
- kumoai/experimental/rfm/pquery/{backend.py → executor.py} +24 -58
- kumoai/experimental/rfm/pquery/{pandas_backend.py → pandas_executor.py} +277 -223
- kumoai/experimental/rfm/rfm.py +313 -84
- kumoai/jobs.py +1 -0
- kumoai/trainer/trainer.py +12 -10
- kumoai/utils/progress_logger.py +13 -0
- {kumoai-2.10.0.dev202509291830.dist-info → kumoai-2.13.0.dev202511161731.dist-info}/METADATA +4 -5
- {kumoai-2.10.0.dev202509291830.dist-info → kumoai-2.13.0.dev202511161731.dist-info}/RECORD +24 -24
- {kumoai-2.10.0.dev202509291830.dist-info → kumoai-2.13.0.dev202511161731.dist-info}/WHEEL +0 -0
- {kumoai-2.10.0.dev202509291830.dist-info → kumoai-2.13.0.dev202511161731.dist-info}/licenses/LICENSE +0 -0
- {kumoai-2.10.0.dev202509291830.dist-info → kumoai-2.13.0.dev202511161731.dist-info}/top_level.txt +0 -0
kumoai/jobs.py
CHANGED
|
@@ -26,6 +26,7 @@ class JobInterface(ABC, Generic[IDType, JobRequestType, JobResourceType]):
|
|
|
26
26
|
limit (int): Max number of jobs to list, default 10.
|
|
27
27
|
|
|
28
28
|
Example:
|
|
29
|
+
>>> # doctest: +SKIP
|
|
29
30
|
>>> tags = {'pquery_name': 'my_pquery_name'}
|
|
30
31
|
>>> jobs = BatchPredictionJob.search_by_tags(tags)
|
|
31
32
|
Search limited to 10 results based on the `limit` parameter.
|
kumoai/trainer/trainer.py
CHANGED
|
@@ -20,7 +20,6 @@ from kumoapi.jobs import (
|
|
|
20
20
|
TrainingJobResource,
|
|
21
21
|
)
|
|
22
22
|
from kumoapi.model_plan import ModelPlan
|
|
23
|
-
from kumoapi.task import TaskType
|
|
24
23
|
|
|
25
24
|
from kumoai import global_state
|
|
26
25
|
from kumoai.artifact_export.config import OutputConfig
|
|
@@ -360,6 +359,9 @@ class Trainer:
|
|
|
360
359
|
'deprecated. Please use output_config to specify these '
|
|
361
360
|
'parameters.')
|
|
362
361
|
assert output_config is not None
|
|
362
|
+
# Be able to pass output_config as a dictionary
|
|
363
|
+
if isinstance(output_config, dict):
|
|
364
|
+
output_config = OutputConfig(**output_config)
|
|
363
365
|
output_table_name = to_db_table_name(output_config.output_table_name)
|
|
364
366
|
validate_output_arguments(
|
|
365
367
|
output_config.output_types,
|
|
@@ -402,15 +404,15 @@ class Trainer:
|
|
|
402
404
|
pred_table_data_path = prediction_table.table_data_uri
|
|
403
405
|
|
|
404
406
|
api = global_state.client.batch_prediction_job_api
|
|
405
|
-
|
|
406
|
-
from kumoai.pquery.predictive_query import PredictiveQuery
|
|
407
|
-
pquery = PredictiveQuery.load_from_training_job(training_job_id)
|
|
408
|
-
if pquery.get_task_type() == TaskType.BINARY_CLASSIFICATION:
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
407
|
+
# Remove to resolve https://github.com/kumo-ai/kumo/issues/24250
|
|
408
|
+
# from kumoai.pquery.predictive_query import PredictiveQuery
|
|
409
|
+
# pquery = PredictiveQuery.load_from_training_job(training_job_id)
|
|
410
|
+
# if pquery.get_task_type() == TaskType.BINARY_CLASSIFICATION:
|
|
411
|
+
# if binary_classification_threshold is None:
|
|
412
|
+
# logger.warning(
|
|
413
|
+
# "No binary classification threshold provided. "
|
|
414
|
+
# "Using default threshold of 0.5.")
|
|
415
|
+
# binary_classification_threshold = 0.5
|
|
414
416
|
job_id, response = api.maybe_create(
|
|
415
417
|
BatchPredictionRequest(
|
|
416
418
|
dict(custom_tags),
|
kumoai/utils/progress_logger.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import sys
|
|
1
2
|
import time
|
|
2
3
|
from typing import Any, List, Optional, Union
|
|
3
4
|
|
|
@@ -102,8 +103,14 @@ class InteractiveProgressLogger(ProgressLogger):
|
|
|
102
103
|
self._progress.update(self._task, advance=1) # type: ignore
|
|
103
104
|
|
|
104
105
|
def __enter__(self) -> Self:
|
|
106
|
+
from kumoai import in_notebook
|
|
107
|
+
|
|
105
108
|
super().__enter__()
|
|
106
109
|
|
|
110
|
+
if not in_notebook(): # Render progress bar in TUI.
|
|
111
|
+
sys.stdout.write("\x1b]9;4;3\x07")
|
|
112
|
+
sys.stdout.flush()
|
|
113
|
+
|
|
107
114
|
if self.verbose:
|
|
108
115
|
self._live = Live(
|
|
109
116
|
self,
|
|
@@ -115,6 +122,8 @@ class InteractiveProgressLogger(ProgressLogger):
|
|
|
115
122
|
return self
|
|
116
123
|
|
|
117
124
|
def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
|
|
125
|
+
from kumoai import in_notebook
|
|
126
|
+
|
|
118
127
|
super().__exit__(exc_type, exc_val, exc_tb)
|
|
119
128
|
|
|
120
129
|
if exc_type is not None:
|
|
@@ -130,6 +139,10 @@ class InteractiveProgressLogger(ProgressLogger):
|
|
|
130
139
|
self._live.stop()
|
|
131
140
|
self._live = None
|
|
132
141
|
|
|
142
|
+
if not in_notebook():
|
|
143
|
+
sys.stdout.write("\x1b]9;4;0\x07")
|
|
144
|
+
sys.stdout.flush()
|
|
145
|
+
|
|
133
146
|
def __rich_console__(
|
|
134
147
|
self,
|
|
135
148
|
console: Console,
|
{kumoai-2.10.0.dev202509291830.dist-info → kumoai-2.13.0.dev202511161731.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kumoai
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.13.0.dev202511161731
|
|
4
4
|
Summary: AI on the Modern Data Stack
|
|
5
5
|
Author-email: "Kumo.AI" <hello@kumo.ai>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -9,13 +9,12 @@ Project-URL: documentation, https://kumo.ai/docs
|
|
|
9
9
|
Keywords: deep-learning,graph-neural-networks,cloud-data-warehouse
|
|
10
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
11
|
Classifier: Programming Language :: Python
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.10
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
16
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
-
Requires-Python: >=3.
|
|
17
|
+
Requires-Python: >=3.10
|
|
19
18
|
Description-Content-Type: text/markdown
|
|
20
19
|
License-File: LICENSE
|
|
21
20
|
Requires-Dist: pandas
|
|
@@ -24,7 +23,7 @@ Requires-Dist: requests>=2.28.2
|
|
|
24
23
|
Requires-Dist: urllib3
|
|
25
24
|
Requires-Dist: plotly
|
|
26
25
|
Requires-Dist: typing_extensions>=4.5.0
|
|
27
|
-
Requires-Dist: kumo-api==0.
|
|
26
|
+
Requires-Dist: kumo-api==0.45.0
|
|
28
27
|
Requires-Dist: tqdm>=4.66.0
|
|
29
28
|
Requires-Dist: aiohttp>=3.10.0
|
|
30
29
|
Requires-Dist: pydantic>=1.10.21
|
|
@@ -54,7 +53,7 @@ interact with the Kumo machine learning platform
|
|
|
54
53
|
|
|
55
54
|
## Installation
|
|
56
55
|
|
|
57
|
-
The Kumo SDK is available for Python 3.
|
|
56
|
+
The Kumo SDK is available for Python 3.10 to Python 3.13. To install, simply run
|
|
58
57
|
|
|
59
58
|
```
|
|
60
59
|
pip install kumoai
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
kumoai/_logging.py,sha256=U2_5ROdyk92P4xO4H2WJV8EC7dr6YxmmnM-b7QX9M7I,886
|
|
2
2
|
kumoai/mixin.py,sha256=MP413xzuCqWhxAPUHmloLA3j4ZyF1tEtfi516b_hOXQ,812
|
|
3
|
-
kumoai/_version.py,sha256=
|
|
3
|
+
kumoai/_version.py,sha256=ZJwnjTF2EK7dxXu4_ryrxiXCF6I3X1XNDSF3n5JfkOc,39
|
|
4
4
|
kumoai/kumolib.cpython-312-darwin.so,sha256=xQvdWHx9xmQ11y3F3ywxJv6A0sDk6D3-2fQbxSdM1z4,232576
|
|
5
|
-
kumoai/__init__.py,sha256=
|
|
5
|
+
kumoai/__init__.py,sha256=LU1zmKYc0KV5hy2VGKUuXgSvbJwj2rSRQ_R_bpHyl1o,10708
|
|
6
6
|
kumoai/formatting.py,sha256=jA_rLDCGKZI8WWCha-vtuLenVKTZvli99Tqpurz1H84,953
|
|
7
7
|
kumoai/futures.py,sha256=oJFIfdCM_3nWIqQteBKYMY4fPhoYlYWE_JA2o6tx-ng,3737
|
|
8
|
-
kumoai/jobs.py,sha256=
|
|
8
|
+
kumoai/jobs.py,sha256=NrdLEFNo7oeCYSy-kj2nAvCFrz9BZ_xrhkqHFHk5ksY,2496
|
|
9
9
|
kumoai/exceptions.py,sha256=b-_sdbAKOg50uaJZ65GmBLdTo4HANdjl8_R0sJpwaN0,833
|
|
10
10
|
kumoai/databricks.py,sha256=e6E4lOFvZHXFwh4CO1kXU1zzDU3AapLQYMxjiHPC-HQ,476
|
|
11
11
|
kumoai/spcs.py,sha256=N4ddeoHAc4I3bKrDitsb91lUx5VKvCyPyMT3zWiuCcY,4275
|
|
12
12
|
kumoai/_singleton.py,sha256=UTwrbDkoZSGB8ZelorvprPDDv9uZkUi1q_SrmsyngpQ,836
|
|
13
13
|
kumoai/experimental/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
kumoai/experimental/rfm/local_graph_sampler.py,sha256=
|
|
15
|
-
kumoai/experimental/rfm/local_graph.py,sha256=
|
|
16
|
-
kumoai/experimental/rfm/local_pquery_driver.py,sha256=
|
|
17
|
-
kumoai/experimental/rfm/__init__.py,sha256=
|
|
14
|
+
kumoai/experimental/rfm/local_graph_sampler.py,sha256=o60_sdMa_fr60DrdmCIaE6lKQAD2msp1t-GGubFNt-o,6738
|
|
15
|
+
kumoai/experimental/rfm/local_graph.py,sha256=2iJDlsGVzqCe1bD_puXWlhwGkn7YnQyJ4p4C-fwCZNE,30076
|
|
16
|
+
kumoai/experimental/rfm/local_pquery_driver.py,sha256=aO7Jfwx9gxGKYvpqxZx1LLWdI1MhuZQOPtAITxoOQO0,26162
|
|
17
|
+
kumoai/experimental/rfm/__init__.py,sha256=ornmi2x947jkQLptMn7ZLvTf2Sw-RMcVW73AnjVsWAo,1709
|
|
18
18
|
kumoai/experimental/rfm/utils.py,sha256=3IiBvT_aLBkkcJh3H11_50yt_XlEzHR0cm9Kprrtl8k,11123
|
|
19
|
-
kumoai/experimental/rfm/local_table.py,sha256=
|
|
20
|
-
kumoai/experimental/rfm/rfm.py,sha256=
|
|
21
|
-
kumoai/experimental/rfm/local_graph_store.py,sha256=
|
|
19
|
+
kumoai/experimental/rfm/local_table.py,sha256=r8xZ33Mjs6JD8ud6h23tZ99Dag2DvZ4h6tWjmGrKQg4,19605
|
|
20
|
+
kumoai/experimental/rfm/rfm.py,sha256=OHE6xpVREfm5GtZ4LXPY71FKzjNc94LWiBTPrmE6Xzc,48097
|
|
21
|
+
kumoai/experimental/rfm/local_graph_store.py,sha256=8BqonuaMftAAsjgZpB369i5AeNd1PkisMbbEqc0cKBo,13847
|
|
22
22
|
kumoai/experimental/rfm/authenticate.py,sha256=FiuHMvP7V3zBZUlHMDMbNLhc-UgDZgz4hjVSTuQ7DRw,18888
|
|
23
|
-
kumoai/experimental/rfm/pquery/
|
|
24
|
-
kumoai/experimental/rfm/pquery/
|
|
25
|
-
kumoai/experimental/rfm/pquery/
|
|
23
|
+
kumoai/experimental/rfm/pquery/__init__.py,sha256=X0O3EIq5SMfBEE-ii5Cq6iDhR3s3XMXB52Cx5htoePw,152
|
|
24
|
+
kumoai/experimental/rfm/pquery/pandas_executor.py,sha256=kiBJq7uVGbasG7TiqsubEl6ey3UYzZiM4bwxILqp_54,18487
|
|
25
|
+
kumoai/experimental/rfm/pquery/executor.py,sha256=f7-pJhL0BgFU9E4o4gQpQyArOvyrZtwxFmks34-QOAE,2741
|
|
26
26
|
kumoai/experimental/rfm/infer/multicategorical.py,sha256=0-cLpDnGryhr76QhZNO-klKokJ6MUSfxXcGdQ61oykY,1102
|
|
27
27
|
kumoai/experimental/rfm/infer/categorical.py,sha256=VwNaKwKbRYkTxEJ1R6gziffC8dGsEThcDEfbi-KqW5c,853
|
|
28
28
|
kumoai/experimental/rfm/infer/id.py,sha256=ZIO0DWIoiEoS_8MVc5lkqBfkTWWQ0yGCgjkwLdaYa_Q,908
|
|
29
29
|
kumoai/experimental/rfm/infer/__init__.py,sha256=xQ8_SuejIzXyn2J7bIKX3pXumFtRuEfBtE5oEDUDJjI,293
|
|
30
|
-
kumoai/experimental/rfm/infer/timestamp.py,sha256=
|
|
30
|
+
kumoai/experimental/rfm/infer/timestamp.py,sha256=vM9--7eStzaGG13Y-oLYlpNJyhL6f9dp17HDXwtl_DM,1094
|
|
31
31
|
kumoai/encoder/__init__.py,sha256=VPGs4miBC_WfwWeOXeHhFomOUocERFavhKf5fqITcds,182
|
|
32
32
|
kumoai/graph/graph.py,sha256=iyp4klPIMn2ttuEqMJvsrxKb_tmz_DTnvziIhCegduM,38291
|
|
33
33
|
kumoai/graph/__init__.py,sha256=n8X4X8luox4hPBHTRC9R-3JzvYYMoR8n7lF1H4w4Hzc,228
|
|
@@ -38,7 +38,7 @@ kumoai/artifact_export/job.py,sha256=GEisSwvcjK_35RgOfsLXGgxMTXIWm765B_BW_Kgs-V0
|
|
|
38
38
|
kumoai/artifact_export/__init__.py,sha256=BsfDrc3mCHpO9-BqvqKm8qrXDIwfdaoH5UIoG4eQkc4,238
|
|
39
39
|
kumoai/utils/datasets.py,sha256=ptKIUoBONVD55pTVNdRCkQT3NWdN_r9UAUu4xewPa3U,2928
|
|
40
40
|
kumoai/utils/__init__.py,sha256=wGDC_31XJ-7ipm6eawjLAJaP4EfmtNOH8BHzaetQ9Ko,268
|
|
41
|
-
kumoai/utils/progress_logger.py,sha256=
|
|
41
|
+
kumoai/utils/progress_logger.py,sha256=pngEGzMHkiOUKOa6fbzxCEc2xlA4SJKV4TDTVVoqObM,5062
|
|
42
42
|
kumoai/utils/forecasting.py,sha256=-nDS6ucKNfQhTQOfebjefj0wwWH3-KYNslIomxwwMBM,7415
|
|
43
43
|
kumoai/codegen/generate.py,sha256=SvfWWa71xSAOjH9645yQvgoEM-o4BYjupM_EpUxqB_E,7331
|
|
44
44
|
kumoai/codegen/naming.py,sha256=_XVQGxHfuub4bhvyuBKjltD5Lm_oPpibvP_LZteCGk0,3021
|
|
@@ -73,7 +73,7 @@ kumoai/pquery/predictive_query.py,sha256=oUqwdOWLLkPM-G4PhpUk_6mwSJGBtaD3t37Wp5O
|
|
|
73
73
|
kumoai/pquery/prediction_table.py,sha256=QPDH22X1UB0NIufY7qGuV2XW7brG3Pv--FbjNezzM2g,10776
|
|
74
74
|
kumoai/pquery/training_table.py,sha256=elmPDZx11kPiC_dkOhJcBUGtHKgL32GCBvZ9k6U0pMg,15809
|
|
75
75
|
kumoai/client/pquery.py,sha256=R2hc-M8vPoyIDH0ywLwFVxCznVAqpZz3w2HszjdNW-o,6891
|
|
76
|
-
kumoai/client/client.py,sha256=
|
|
76
|
+
kumoai/client/client.py,sha256=S1OfGDwTzoyf40fhg111xGQGNfEP-OnoXqFV6X9iMEc,8580
|
|
77
77
|
kumoai/client/graph.py,sha256=zvLEDExLT_RVbUMHqVl0m6tO6s2gXmYSoWmPF6YMlnA,3831
|
|
78
78
|
kumoai/client/online.py,sha256=pkBBh_DEC3GAnPcNw6bopNRlGe7EUbIFe7_seQqZRaw,2720
|
|
79
79
|
kumoai/client/source_table.py,sha256=VCsCcM7KYcnjGP7HLTb-AOSEGEVsJTWjk8bMg1JdgPU,2101
|
|
@@ -82,17 +82,17 @@ kumoai/client/jobs.py,sha256=iu_Wrta6BQMlV6ZtzSnmhjwNPKDMQDXOsqVVIyWodqw,17074
|
|
|
82
82
|
kumoai/client/utils.py,sha256=lz1NubwMDHCwzQRowRXm7mjAoYRd5UjRQIwXdtWAl90,3849
|
|
83
83
|
kumoai/client/connector.py,sha256=x3i2aBTJTEMZvYRcWkY-UfWVOANZjqAso4GBbcshFjw,3920
|
|
84
84
|
kumoai/client/table.py,sha256=cQG-RPm-e91idEgse1IPJDvBmzddIDGDkuyrR1rq4wU,3235
|
|
85
|
-
kumoai/client/rfm.py,sha256=
|
|
86
|
-
kumoai/client/endpoints.py,sha256=
|
|
85
|
+
kumoai/client/rfm.py,sha256=NxKk8mH2A-B58rSXhDWaph4KeiSyJYDq-RO-vAHh7es,3726
|
|
86
|
+
kumoai/client/endpoints.py,sha256=iF2ZD25AJCIVbmBJ8tTZ8y1Ch0m6nTp18ydN7h4WiTk,5382
|
|
87
87
|
kumoai/trainer/config.py,sha256=-2RfK10AsVVThSyfWtlyfH4Fc4EwTdu0V3yrDRtIOjk,98
|
|
88
88
|
kumoai/trainer/util.py,sha256=bDPGkMF9KOy4HgtA-OwhXP17z9cbrfMnZGtyGuUq_Eo,4062
|
|
89
89
|
kumoai/trainer/job.py,sha256=Wk69nzFhbvuA3nEvtCstI04z5CxkgvQ6tHnGchE0Lkg,44938
|
|
90
90
|
kumoai/trainer/baseline_trainer.py,sha256=LlfViNOmswNv4c6zJJLsyv0pC2mM2WKMGYx06ogtEVc,4024
|
|
91
91
|
kumoai/trainer/__init__.py,sha256=zUdFl-f-sBWmm2x8R-rdVzPBeU2FaMzUY5mkcgoTa1k,939
|
|
92
92
|
kumoai/trainer/online_serving.py,sha256=9cddb5paeZaCgbUeceQdAOxysCtV5XP-KcsgFz_XR5w,9566
|
|
93
|
-
kumoai/trainer/trainer.py,sha256=
|
|
94
|
-
kumoai-2.
|
|
95
|
-
kumoai-2.
|
|
96
|
-
kumoai-2.
|
|
97
|
-
kumoai-2.
|
|
98
|
-
kumoai-2.
|
|
93
|
+
kumoai/trainer/trainer.py,sha256=hBXO7gwpo3t59zKFTeIkK65B8QRmWCwO33sbDuEAPlY,20133
|
|
94
|
+
kumoai-2.13.0.dev202511161731.dist-info/RECORD,,
|
|
95
|
+
kumoai-2.13.0.dev202511161731.dist-info/WHEEL,sha256=V1loQ6TpxABu1APUg0MoTRBOzSKT5xVc3skizX-ovCU,136
|
|
96
|
+
kumoai-2.13.0.dev202511161731.dist-info/top_level.txt,sha256=YjU6UcmomoDx30vEXLsOU784ED7VztQOsFApk1SFwvs,7
|
|
97
|
+
kumoai-2.13.0.dev202511161731.dist-info/METADATA,sha256=eFRuDnF3kJMN67DFzm2JhldvbXqUmNpDDkGc725Y4ak,2052
|
|
98
|
+
kumoai-2.13.0.dev202511161731.dist-info/licenses/LICENSE,sha256=TbWlyqRmhq9PEzCaTI0H0nWLQCCOywQM8wYH8MbjfLo,1102
|
|
File without changes
|
{kumoai-2.10.0.dev202509291830.dist-info → kumoai-2.13.0.dev202511161731.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{kumoai-2.10.0.dev202509291830.dist-info → kumoai-2.13.0.dev202511161731.dist-info}/top_level.txt
RENAMED
|
File without changes
|