pixeltable 0.2.3__py3-none-any.whl → 0.2.4__py3-none-any.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 pixeltable might be problematic. Click here for more details.
- pixeltable/catalog/column.py +1 -1
- pixeltable/client.py +72 -2
- pixeltable/env.py +36 -52
- pixeltable/functions/__init__.py +1 -1
- pixeltable/functions/fireworks.py +10 -37
- pixeltable/functions/openai.py +192 -24
- pixeltable/functions/together.py +104 -9
- pixeltable/tests/conftest.py +4 -4
- pixeltable/tests/functions/test_fireworks.py +42 -0
- pixeltable/tests/functions/test_functions.py +60 -0
- pixeltable/tests/{test_functions.py → functions/test_huggingface.py} +5 -141
- pixeltable/tests/functions/test_openai.py +152 -0
- pixeltable/tests/functions/test_together.py +111 -0
- pixeltable/tests/test_dataframe.py +4 -4
- pixeltable/tests/test_table.py +105 -2
- pixeltable/tests/utils.py +128 -5
- pixeltable/type_system.py +41 -84
- pixeltable/utils/arrow.py +98 -0
- pixeltable/utils/hf_datasets.py +157 -0
- pixeltable/utils/parquet.py +68 -27
- pixeltable/utils/pytorch.py +16 -97
- {pixeltable-0.2.3.dist-info → pixeltable-0.2.4.dist-info}/METADATA +33 -27
- {pixeltable-0.2.3.dist-info → pixeltable-0.2.4.dist-info}/RECORD +25 -19
- {pixeltable-0.2.3.dist-info → pixeltable-0.2.4.dist-info}/LICENSE +0 -0
- {pixeltable-0.2.3.dist-info → pixeltable-0.2.4.dist-info}/WHEEL +0 -0
pixeltable/utils/pytorch.py
CHANGED
|
@@ -1,25 +1,17 @@
|
|
|
1
1
|
import io
|
|
2
2
|
import pyarrow as pa
|
|
3
|
-
import pyarrow.parquet
|
|
3
|
+
import pyarrow.parquet
|
|
4
4
|
import torch
|
|
5
5
|
import torch.utils.data
|
|
6
|
-
import math
|
|
7
6
|
from pathlib import Path
|
|
8
7
|
import PIL.Image
|
|
9
8
|
import json
|
|
10
|
-
from typing import Dict,
|
|
9
|
+
from typing import Dict, Iterator, Any
|
|
11
10
|
import datetime
|
|
12
11
|
|
|
13
12
|
from pixeltable.type_system import ColumnType
|
|
14
|
-
from pixeltable.utils.parquet import get_part_metadata
|
|
15
13
|
import numpy as np
|
|
16
14
|
|
|
17
|
-
def _cumsum(lst):
|
|
18
|
-
acc = [0]
|
|
19
|
-
for x in lst:
|
|
20
|
-
acc.append(acc[-1] + x)
|
|
21
|
-
return acc
|
|
22
|
-
|
|
23
15
|
class PixeltablePytorchDataset(torch.utils.data.IterableDataset):
|
|
24
16
|
"""
|
|
25
17
|
PyTorch dataset interface for pixeltable data.
|
|
@@ -47,24 +39,7 @@ class PixeltablePytorchDataset(torch.utils.data.IterableDataset):
|
|
|
47
39
|
with column_type_path.open() as f:
|
|
48
40
|
column_types = json.load(f)
|
|
49
41
|
self.column_types = {k: ColumnType.from_dict(v) for k, v in column_types.items()}
|
|
50
|
-
self.part_metadata =
|
|
51
|
-
self._totals = _cumsum([x[1] for x in self.part_metadata])
|
|
52
|
-
|
|
53
|
-
def _get_start_position(self, row_start: int) -> Tuple[int, int]:
|
|
54
|
-
"""
|
|
55
|
-
Returns the starting parquet file and row within that file for a given 'global' row number.
|
|
56
|
-
based on the individual sizes of each part
|
|
57
|
-
"""
|
|
58
|
-
assert row_start >= self._totals[0]
|
|
59
|
-
assert row_start < self._totals[-1]
|
|
60
|
-
|
|
61
|
-
prev_acc = 0
|
|
62
|
-
for i, acc in enumerate(self._totals[1:], start=1):
|
|
63
|
-
if acc > row_start:
|
|
64
|
-
return (i - 1, row_start - prev_acc)
|
|
65
|
-
prev_acc = acc
|
|
66
|
-
|
|
67
|
-
assert False, "unreachable"
|
|
42
|
+
self.part_metadata = pa.parquet.ParquetDataset(path).files
|
|
68
43
|
|
|
69
44
|
def _unmarshall(self, k: str, v: Any) -> Any:
|
|
70
45
|
if self.column_types[k].is_image_type():
|
|
@@ -88,13 +63,10 @@ class PixeltablePytorchDataset(torch.utils.data.IterableDataset):
|
|
|
88
63
|
return json.loads(v)
|
|
89
64
|
elif self.column_types[k].is_array_type():
|
|
90
65
|
assert isinstance(v, np.ndarray)
|
|
91
|
-
# WRITEABLE is required for torch collate function, or undefined behavior
|
|
92
66
|
if not v.flags["WRITEABLE"]:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
else:
|
|
97
|
-
return v
|
|
67
|
+
v = v.copy()
|
|
68
|
+
assert v.flags["WRITEABLE"]
|
|
69
|
+
return v
|
|
98
70
|
elif self.column_types[k].is_timestamp_type():
|
|
99
71
|
# pytorch default collation only supports numeric types
|
|
100
72
|
assert isinstance(v, datetime.datetime)
|
|
@@ -103,70 +75,17 @@ class PixeltablePytorchDataset(torch.utils.data.IterableDataset):
|
|
|
103
75
|
assert not isinstance(v, np.ndarray) # all array outputs should be handled above
|
|
104
76
|
return v
|
|
105
77
|
|
|
106
|
-
def __iter__(self) ->
|
|
78
|
+
def __iter__(self) -> Iterator[Dict[str, Any]]:
|
|
79
|
+
import pixeltable.utils.arrow as arrow
|
|
107
80
|
worker_info = torch.utils.data.get_worker_info()
|
|
108
|
-
if worker_info is None: # single-process data loading, return the full iterator
|
|
109
|
-
start_row = 0
|
|
110
|
-
end_row = self._totals[-1]
|
|
111
|
-
else: # in a worker process
|
|
112
|
-
num_workers = [
|
|
113
|
-
math.floor(self._totals[-1] / float(worker_info.num_workers))
|
|
114
|
-
for _ in range(worker_info.num_workers)
|
|
115
|
-
]
|
|
116
|
-
assert self._totals[-1] - sum(num_workers) < worker_info.num_workers
|
|
117
|
-
for i in range(self._totals[-1] - sum(num_workers)):
|
|
118
|
-
num_workers[i] += 1
|
|
119
|
-
|
|
120
|
-
assert sum(num_workers) == self._totals[-1]
|
|
121
|
-
start_rows = _cumsum(num_workers)
|
|
122
|
-
start_row = start_rows[worker_info.id]
|
|
123
|
-
end_row = start_rows[worker_info.id + 1]
|
|
124
81
|
|
|
125
|
-
if
|
|
126
|
-
|
|
82
|
+
if worker_info is None:
|
|
83
|
+
part_list = range(len(self.part_metadata))
|
|
127
84
|
else:
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
def _iter_range(self, start_row : int, end_row : int) -> Generator[Dict[str, Any], None, None]:
|
|
131
|
-
(part_no, iter_start) = self._get_start_position(start_row)
|
|
132
|
-
total = end_row - start_row
|
|
133
|
-
|
|
134
|
-
acc = 0
|
|
135
|
-
part_pos = part_no
|
|
136
|
-
iter_pos = iter_start
|
|
137
|
-
|
|
138
|
-
def _to_column_dict(tab : pa.Table) -> Dict[str, Any]:
|
|
139
|
-
column_dict = {}
|
|
140
|
-
for k in tab.column_names:
|
|
141
|
-
if self.column_types[k].is_array_type():
|
|
142
|
-
# treat array columns as numpy arrays to easily preserve numpy type
|
|
143
|
-
column_dict[k] = tab.column(k).to_numpy()
|
|
144
|
-
else:
|
|
145
|
-
# for the rest, use pydict to preserve python types
|
|
146
|
-
column_dict[k] = tab.column(k).to_pylist()
|
|
147
|
-
return column_dict
|
|
148
|
-
|
|
149
|
-
tab: pa.Table = pq.read_table(self.path / self.part_metadata[part_no][0])
|
|
150
|
-
column_dict = _to_column_dict(tab)
|
|
151
|
-
assert tab.num_rows == self.part_metadata[part_no][1]
|
|
152
|
-
|
|
153
|
-
while True:
|
|
154
|
-
while iter_pos < tab.num_rows and acc < total:
|
|
155
|
-
next_tup = {}
|
|
156
|
-
for col_name, col_vals in column_dict.items():
|
|
157
|
-
raw_val = col_vals[iter_pos]
|
|
158
|
-
next_tup[col_name] = self._unmarshall(col_name, raw_val)
|
|
159
|
-
|
|
160
|
-
yield next_tup
|
|
161
|
-
acc += 1
|
|
162
|
-
iter_pos += 1
|
|
163
|
-
|
|
164
|
-
if acc == total:
|
|
165
|
-
break
|
|
85
|
+
part_list = [ i for i in part_list if (i % worker_info.num_workers) == worker_info.id ]
|
|
166
86
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
column_dict = _to_column_dict(tab)
|
|
87
|
+
for part_no in part_list:
|
|
88
|
+
pqf = pa.parquet.ParquetFile(self.part_metadata[part_no])
|
|
89
|
+
for batch in pqf.iter_batches():
|
|
90
|
+
for tup in arrow.iter_tuples(batch):
|
|
91
|
+
yield {k: self._unmarshall(k, v) for k, v in tup.items()}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pixeltable
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.4
|
|
4
4
|
Summary: Pixeltable: The Multimodal AI Data Plane
|
|
5
5
|
Author: Marcel Kornacker
|
|
6
6
|
Author-email: marcelk@gmail.com
|
|
@@ -15,12 +15,12 @@ Requires-Dist: beautifulsoup4 (>=4.0.0,<5.0.0)
|
|
|
15
15
|
Requires-Dist: cloudpickle (>=2.2.1,<3.0.0)
|
|
16
16
|
Requires-Dist: jinja2 (>=3.1.3,<4.0.0)
|
|
17
17
|
Requires-Dist: jmespath (>=1.0.1,<2.0.0)
|
|
18
|
-
Requires-Dist: numpy (>=1.26
|
|
18
|
+
Requires-Dist: numpy (>=1.26)
|
|
19
19
|
Requires-Dist: opencv-python-headless (>=4.7.0.68,<5.0.0.0)
|
|
20
20
|
Requires-Dist: pandas (>=2.0,<3.0)
|
|
21
|
-
Requires-Dist: pgserver (==0.0
|
|
21
|
+
Requires-Dist: pgserver (==0.1.0)
|
|
22
22
|
Requires-Dist: pgvector (>=0.2.1,<0.3.0)
|
|
23
|
-
Requires-Dist: pillow (>=
|
|
23
|
+
Requires-Dist: pillow (>=10.0)
|
|
24
24
|
Requires-Dist: psutil (>=5.9.5,<6.0.0)
|
|
25
25
|
Requires-Dist: psycopg2-binary (>=2.9.5,<3.0.0)
|
|
26
26
|
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
|
|
@@ -28,37 +28,42 @@ Requires-Dist: regex (>=2022.10.31,<2023.0.0)
|
|
|
28
28
|
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
29
29
|
Requires-Dist: sqlalchemy-utils (>=0.41.1,<0.42.0)
|
|
30
30
|
Requires-Dist: sqlalchemy[mypy] (>=2.0.23,<3.0.0)
|
|
31
|
+
Requires-Dist: tenacity (>=8.2,<9.0)
|
|
31
32
|
Requires-Dist: tqdm (>=4.64.1,<5.0.0)
|
|
32
33
|
Description-Content-Type: text/markdown
|
|
33
34
|
|
|
35
|
+
<div align="center">
|
|
34
36
|
<img src="docs/pixeltable-banner.png" width="45%"/>
|
|
35
37
|
|
|
36
|
-
#
|
|
38
|
+
# Unifying Data, Models, and Orchestration for AI Products
|
|
37
39
|
|
|
38
40
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
39
41
|
|
|
40
42
|

|
|
41
43
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
data plumbing.
|
|
44
|
+
[Installation](https://pixeltable.github.io/pixeltable/getting-started/) | [Documentation](https://pixeltable.github.io/pixeltable/)
|
|
45
|
+
</div>
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
It brings together data storage, versioning, and indexing with orchestration and model
|
|
48
|
-
versioning under a declarative table interface, with transformations, model inference,
|
|
49
|
-
and custom logic represented as computed columns.
|
|
47
|
+
Pixeltable is a Python library that lets AI engineers and data scientists focus on exploration, modeling, and app development without dealing with the customary data plumbing.
|
|
50
48
|
|
|
51
|
-
##
|
|
49
|
+
## What problems does Pixeltable solve?
|
|
50
|
+
|
|
51
|
+
Today’s solutions for AI app development require extensive custom coding and infrastructure
|
|
52
|
+
plumbing. Tracking lineage and versions between and across data transformations, models, and
|
|
53
|
+
deployment is cumbersome. Pixeltable is a replacement for traditional data plumbing, providing
|
|
54
|
+
a unified plane for data, models, and orchestration. It removes the data plumbing overhead in
|
|
55
|
+
building and productionizing AI applications.
|
|
56
|
+
|
|
57
|
+
## ⚡Quick Start
|
|
58
|
+
Learn the basics of Pixeltable through interactive examples. View the notebooks on Google Colab or Kaggle, for free.
|
|
52
59
|
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
### Pixeltable Basics
|
|
61
|
+
In this tutorial, we'll survey how to create tables, populate them with data, and enhance them with built-in and user-defined transformations and AI operations.
|
|
55
62
|
|
|
56
|
-
<a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/master/docs/tutorials/pixeltable-basics.ipynb">
|
|
57
|
-
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
|
|
58
|
-
</a>
|
|
63
|
+
[](https://www.kaggle.com/code/brunep/pixeltable-basics) <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/master/docs/tutorials/pixeltable-basics.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a>
|
|
59
64
|
|
|
60
|
-
## Installation
|
|
61
65
|
|
|
66
|
+
## 💾 Installation
|
|
62
67
|
Pixeltable works with Python 3.9, 3.10, or 3.11 running on Linux or MacOS.
|
|
63
68
|
|
|
64
69
|
```
|
|
@@ -78,14 +83,6 @@ guide. Then, check out the
|
|
|
78
83
|
[Pixeltable Basics](https://pixeltable.github.io/pixeltable/tutorials/pixeltable-basics/)
|
|
79
84
|
tutorial for a tour of its most important features.
|
|
80
85
|
|
|
81
|
-
## What problems does Pixeltable solve?
|
|
82
|
-
|
|
83
|
-
Today’s solutions for AI app development require extensive custom coding and infrastructure
|
|
84
|
-
plumbing. Tracking lineage and versions between and across data transformations, models, and
|
|
85
|
-
deployment is cumbersome. Pixeltable is a replacement for traditional data plumbing, providing
|
|
86
|
-
a unified plane for data, models, and orchestration. It removes the data plumbing overhead in
|
|
87
|
-
building and productionizing AI applications.
|
|
88
|
-
|
|
89
86
|
## Why should you use Pixeltable?
|
|
90
87
|
|
|
91
88
|
- It gives you transparency and reproducibility
|
|
@@ -119,3 +116,12 @@ get cost projections before adding new data and new augmentations.
|
|
|
119
116
|
* Rely on Pixeltable's automatic versioning and snapshot functionality to protect against regressions
|
|
120
117
|
and to ensure reproducibility.
|
|
121
118
|
|
|
119
|
+
## Contributions & Feedback
|
|
120
|
+
|
|
121
|
+
Are you experiencing issues or bugs with Pixeltable? File an [Issue](https://github.com/pixeltable/pixeltable/issues).
|
|
122
|
+
</br>Do you want to contribute? Feel free to open a [PR](https://github.com/pixeltable/pixeltable/pulls).
|
|
123
|
+
|
|
124
|
+
## :classical_building: License
|
|
125
|
+
|
|
126
|
+
This library is licensed under the Apache 2.0 License.
|
|
127
|
+
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
pixeltable/__init__.py,sha256=enh38lhZ_38Ys3rCy_XC_BlPNPK9H2CKV4KePaqnV4E,959
|
|
2
2
|
pixeltable/catalog/__init__.py,sha256=E41bxaPeQIcgRYzTWc2vkDOboQhRymrJf4IcHQO7o_8,453
|
|
3
3
|
pixeltable/catalog/catalog.py,sha256=0TYWB1R6YBp9qCkWF7kCcX2Yw70UuburKKIemv5L1Js,7908
|
|
4
|
-
pixeltable/catalog/column.py,sha256=
|
|
4
|
+
pixeltable/catalog/column.py,sha256=rlWhKh_k9zLXus0Slcrxzsl6tJpyOxylu2qfUk0waVI,8663
|
|
5
5
|
pixeltable/catalog/dir.py,sha256=pG1nMpG123POo6WMSHhAmnwXOQ26uUJfUcbzL-Jb4ws,919
|
|
6
6
|
pixeltable/catalog/globals.py,sha256=yLEGNbsSnLzjWNHVJacfjA9hbw13Q6QXLOSCRmdTlq0,943
|
|
7
7
|
pixeltable/catalog/insertable_table.py,sha256=1JGZqmx5tKbm_UmJLIalntFDs81s-mvTv0gOqk98b3Q,8280
|
|
@@ -13,9 +13,9 @@ pixeltable/catalog/table.py,sha256=CJQc2NnebfL1ekMcaZhJEZ0CI408-F7R90_czjDKy-g,2
|
|
|
13
13
|
pixeltable/catalog/table_version.py,sha256=Q1NSaeLmFw7gYgARyyW6JJ79GRhjtp0_Q410KH27e1Q,35680
|
|
14
14
|
pixeltable/catalog/table_version_path.py,sha256=kn5T0m5XBqphlDqCKsqD-s159diCjKvrSrtzYZHwKuw,5461
|
|
15
15
|
pixeltable/catalog/view.py,sha256=BIL3s4DV3tWbOcqtqnhn46B2UvLaBhppfJUlNEt5nec,9734
|
|
16
|
-
pixeltable/client.py,sha256=
|
|
16
|
+
pixeltable/client.py,sha256=RweoJoUGap_uzAcrhSwU6yOH7j_fsSM-VgyKSCYGvv8,23616
|
|
17
17
|
pixeltable/dataframe.py,sha256=vBc4T-QU-lTTtnljqDbBFTHwm2CecLHIjJumEv8lQ0s,28339
|
|
18
|
-
pixeltable/env.py,sha256=
|
|
18
|
+
pixeltable/env.py,sha256=A38md5r-hE6i-6Og1Nptlzo0ci3Oyn62ogPs6hlNLZE,15744
|
|
19
19
|
pixeltable/exceptions.py,sha256=MSP9zeL0AmXT93XqjdvgGN4rzno1_KRrGriq6hpemnw,376
|
|
20
20
|
pixeltable/exec/__init__.py,sha256=FOQBSMQ3buGg5kRzymkfDCk5fnVfICn3LrsJtbyNC6E,412
|
|
21
21
|
pixeltable/exec/aggregation_node.py,sha256=cf6rVAgrGh_uaMrCIgXJIwQTmbcboJlnrH_MmPIQSd0,3321
|
|
@@ -65,15 +65,15 @@ pixeltable/func/globals.py,sha256=UP4hAkEVKD_3lr7l_VVUUCetJP85sydUYiVAU4m5-aw,12
|
|
|
65
65
|
pixeltable/func/nos_function.py,sha256=HzIKK4XjTo1E6pML-EbhuX3u_LYibFWUuTkIxoIih7c,9650
|
|
66
66
|
pixeltable/func/signature.py,sha256=5Xo3hIVSXoYtkU-BvUi21b6FghIQABm48UfVjQr9QYU,7107
|
|
67
67
|
pixeltable/func/udf.py,sha256=XlB7dzOc98XinUrs4tMGUAetV0SmQ_Z2oKPDBsx46o0,6457
|
|
68
|
-
pixeltable/functions/__init__.py,sha256=
|
|
68
|
+
pixeltable/functions/__init__.py,sha256=T8FZuE9YSh4KeRg7tBgOEdg8LLyvn89xWLIRylpiP-I,3390
|
|
69
69
|
pixeltable/functions/eval.py,sha256=qLc_55VTwi_IDnAJFq79Hy7FLi7Gb26DxdykYiBTMrM,8453
|
|
70
|
-
pixeltable/functions/fireworks.py,sha256=
|
|
70
|
+
pixeltable/functions/fireworks.py,sha256=e_rCITg18yNndNI8TJPXRSN6DR0hYWT-_dUavoPuyfc,908
|
|
71
71
|
pixeltable/functions/huggingface.py,sha256=Wg8AgCsoGFx8AX3AThko66L7uSg9cUEjL8_QxKoA4dg,4804
|
|
72
72
|
pixeltable/functions/image.py,sha256=xR_S_0BuX6Ycc5E366GpOfP0JptD7beQwHE_fLl8ZVM,431
|
|
73
|
-
pixeltable/functions/openai.py,sha256=
|
|
73
|
+
pixeltable/functions/openai.py,sha256=xh40TvNanhXPXWGte_ZKxuyD6TYWzmC_1G3qRNDkNv8,6861
|
|
74
74
|
pixeltable/functions/pil/image.py,sha256=8gItSXXuJaCkq9FHEJE9qFpRM3WAoa59x89Xa0DgksQ,6217
|
|
75
75
|
pixeltable/functions/string.py,sha256=RYOgZwifjC943YloEMi3PdflnjFqOYB2FddrUvzgtXs,516
|
|
76
|
-
pixeltable/functions/together.py,sha256=
|
|
76
|
+
pixeltable/functions/together.py,sha256=sG23nLMScmp4wRA4K1EIJDY9peqE1IPgxlK3fhNrbgw,3423
|
|
77
77
|
pixeltable/functions/util.py,sha256=v094FgixHchzKMj4YvfHExDRGIVhCL2D-NL3pl-92oo,1596
|
|
78
78
|
pixeltable/functions/video.py,sha256=WZF4G3tV-_LfRQHUinXe_rnu1-4N68Ht60JCR_s7Bew,2403
|
|
79
79
|
pixeltable/iterators/__init__.py,sha256=sfsasCypAq5rNOTMlr4j2ROXxzdl4M8L2KvQIEbd0cQ,70
|
|
@@ -85,42 +85,48 @@ pixeltable/metadata/converters/convert_10.py,sha256=0mSGCn7vqtef63riPi9msUaaUvsS
|
|
|
85
85
|
pixeltable/metadata/schema.py,sha256=oTxtFSvbmCEcr54F929_NYFVp76N8gpN4nHDr9VnA9M,7761
|
|
86
86
|
pixeltable/plan.py,sha256=BQMCxOCy7lO4dqBCt5W9GUFdBWkuhr13-T8_2E97fUk,34710
|
|
87
87
|
pixeltable/store.py,sha256=ICqfHiotyMyTi2gsQ-Qw-ed1ooNkAx0vgMSMri4xfqk,19511
|
|
88
|
-
pixeltable/tests/conftest.py,sha256=
|
|
88
|
+
pixeltable/tests/conftest.py,sha256=qTfWzGHH35gSkHPOaCAzdDtWWJDEktNIPprLh1wjHwU,6684
|
|
89
|
+
pixeltable/tests/functions/test_fireworks.py,sha256=G-54dABoRbmXApyjWZKKrKKooIp7sWcpAT6rJWVESWk,1666
|
|
90
|
+
pixeltable/tests/functions/test_functions.py,sha256=SRE4zRwfJ1Hetu8uMp5X-Iqg-pawn87q07JHa7w_8l0,2884
|
|
91
|
+
pixeltable/tests/functions/test_huggingface.py,sha256=jOnE51qCHosB6FYIBUWf4VsK4m9mLO3zaBxnKZ5cmHI,7739
|
|
92
|
+
pixeltable/tests/functions/test_openai.py,sha256=ptt3QDAQttddqWjmeGMmOkedJg14KFr_b2FT9Chmwlw,8172
|
|
93
|
+
pixeltable/tests/functions/test_together.py,sha256=0XGAO2J17tefSlhtMbOFN92bp1SgUB9kw_almcz6fyQ,4788
|
|
89
94
|
pixeltable/tests/test_audio.py,sha256=92PMPrMtYzLoaLiW92MupEfWPEcfoLlYlZKlxmWQXdI,3186
|
|
90
95
|
pixeltable/tests/test_catalog.py,sha256=Npxt72g5aZkfg1fqE-19L8rGilzicAiTC0ithIy3woI,1189
|
|
91
96
|
pixeltable/tests/test_client.py,sha256=9acrjElh1YVX8WXWO04VQ-S6mNx9ZtqAHoh4uBc81y4,531
|
|
92
97
|
pixeltable/tests/test_component_view.py,sha256=VfcBgdG1QKeo0AOnHmO21J3qdm_8-06RljB7kkTeTok,17732
|
|
93
|
-
pixeltable/tests/test_dataframe.py,sha256=
|
|
98
|
+
pixeltable/tests/test_dataframe.py,sha256=KytKHjsyHluB9DmxmI0g3YPC7UTvbnv5YhysaUMfVzA,17975
|
|
94
99
|
pixeltable/tests/test_dirs.py,sha256=WuWGOcpUFPCl1PGZgOMcU5bpzv1ClUqZ5AxavrDeCic,3611
|
|
95
100
|
pixeltable/tests/test_document.py,sha256=5G52cMbkkX2lk5SwyYQ1KYjQjgUfVhjcsjPtL9xjGXU,5810
|
|
96
101
|
pixeltable/tests/test_exprs.py,sha256=ZwImlJpTu9YQ2AnAplurjxDmabYqG7rB7aU6TxQAJdI,32743
|
|
97
102
|
pixeltable/tests/test_function.py,sha256=6sA_3Oe1p4sUhL5L5hYyW-mG1TPGfFDmW1BPVPnGXek,12817
|
|
98
|
-
pixeltable/tests/test_functions.py,sha256=pKRsb8503vkYWzp_BOGuxd-PDtOb04NKW-T6_4sJ3B0,14394
|
|
99
103
|
pixeltable/tests/test_migration.py,sha256=UjJhhg061TtyTAa1CAB-BdlT9YwLJkl8yIGSetnqcKw,1535
|
|
100
104
|
pixeltable/tests/test_nos.py,sha256=ITE7FNEaNreJ_XTz4wYLWuidFSUQMFp3ShuHTz05OrE,2649
|
|
101
105
|
pixeltable/tests/test_snapshot.py,sha256=J8wepLOaOrJkqDWq1dkou8MIR5Hf1DEseAqlUrb7BFg,9297
|
|
102
|
-
pixeltable/tests/test_table.py,sha256=
|
|
106
|
+
pixeltable/tests/test_table.py,sha256=zthAzzO9DGmOSsnFD2Xuy40t4-_1ZzchAMKg9JXs1kY,53303
|
|
103
107
|
pixeltable/tests/test_transactional_directory.py,sha256=Jx55PZgrkHTI0Eli09puwMckvwfCM9arPTQUT9g6Tbg,1308
|
|
104
108
|
pixeltable/tests/test_types.py,sha256=4_LR5Poc8Fa5fOpRBaAc_qAN21SsVxFP54Npq_6n9G8,970
|
|
105
109
|
pixeltable/tests/test_video.py,sha256=j9vgxp9f2WdH0rCoMXqhgTW3XG-czTBU4rrnuR95y8E,7782
|
|
106
110
|
pixeltable/tests/test_view.py,sha256=vbKEk9kWF5U6B78uNLSQsGw46s2oOOhHnJy8p9NmNTo,21859
|
|
107
|
-
pixeltable/tests/utils.py,sha256=
|
|
111
|
+
pixeltable/tests/utils.py,sha256=OY8r6SM9MAEiXehqBymF8BkHYmlAd7-D09nfzTZMCsA,14359
|
|
108
112
|
pixeltable/tool/create_test_db_dump.py,sha256=ARlLUfOs4stxIPFl-hGl_KX-ck6JRWmUiXqTwTtS1GU,5148
|
|
109
113
|
pixeltable/tool/create_test_video.py,sha256=OLfccymYReIpzE8osZn4rQvLXxxiPC_l0vc06U74hVM,2899
|
|
110
|
-
pixeltable/type_system.py,sha256=
|
|
114
|
+
pixeltable/type_system.py,sha256=oUrqqux-YJrzNpPFp_3WkSdI3lHm7AcZByTCnWa97VQ,30374
|
|
111
115
|
pixeltable/utils/__init__.py,sha256=UYlrf6TIWJT0g-Hac0b34-dEk478B5Qx8dGco34YlIk,439
|
|
116
|
+
pixeltable/utils/arrow.py,sha256=83_7aG5UR2qtTktw_otLkQs-RQbLk0VVM0JLJkbweNU,3692
|
|
112
117
|
pixeltable/utils/clip.py,sha256=HXXWFBJXW9XysdMk9_3hP1V1S-3B8Hwd5rNMbJFjjnI,720
|
|
113
118
|
pixeltable/utils/coco.py,sha256=mk1cxjKYQC0ABm2ZQ9SNu9MvBPECmmKvnASpxnFXdL0,5604
|
|
114
119
|
pixeltable/utils/documents.py,sha256=MGtWZs93Bt_pdExxT9yjH7VWbawSd5A2O5_YdxEZlMk,1094
|
|
115
120
|
pixeltable/utils/filecache.py,sha256=UoNONG2VaAc2IBB0e3sQdsvyOPOes2XSDc5_CsA4qek,7839
|
|
116
121
|
pixeltable/utils/help.py,sha256=cCnxJ4VP9MJ57iDqExmnDcM-JG3a1lw_q7g-D7bpSVI,252
|
|
122
|
+
pixeltable/utils/hf_datasets.py,sha256=TxN0H9d25VfXiWwT1XAziNFJMKLSK9Y7x1oPejbuFok,7005
|
|
117
123
|
pixeltable/utils/media_store.py,sha256=x71wnJDZDHcdd13VCfL4AkHQ6IJB41gNA-zBvXJwFos,3116
|
|
118
|
-
pixeltable/utils/parquet.py,sha256=
|
|
119
|
-
pixeltable/utils/pytorch.py,sha256=
|
|
124
|
+
pixeltable/utils/parquet.py,sha256=DmiF74UYNvnGOOgHUHk_108QZALsQY7HnZoJw6-H3xc,7120
|
|
125
|
+
pixeltable/utils/pytorch.py,sha256=BR4tgfUWw-2rwWTOgzXj5qdMBpe1Arpp5SK4ax6jjpk,3483
|
|
120
126
|
pixeltable/utils/s3.py,sha256=rkanuhk9DWvSfmbOLQW1j1Iov4sl2KhxGGKN-AJ8LSE,432
|
|
121
127
|
pixeltable/utils/sql.py,sha256=5n5_OmXAGtqFdL6z5XvgnU-vlx6Ba6f1WJrO1ZwUle8,765
|
|
122
128
|
pixeltable/utils/transactional_directory.py,sha256=UGzCrGtLR3hEEf8sYGuWBzLVFAEQml3vdIavigWeTBM,1349
|
|
123
|
-
pixeltable-0.2.
|
|
124
|
-
pixeltable-0.2.
|
|
125
|
-
pixeltable-0.2.
|
|
126
|
-
pixeltable-0.2.
|
|
129
|
+
pixeltable-0.2.4.dist-info/LICENSE,sha256=0UNMmwuqWPC0xDY1NWMm4uNJ2_MyA1pnTNRgQTvuBiQ,746
|
|
130
|
+
pixeltable-0.2.4.dist-info/METADATA,sha256=tUA1jMlooZRLprmQniFTby9KDCuOHFr5b1FVv4fCZdM,5983
|
|
131
|
+
pixeltable-0.2.4.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
|
|
132
|
+
pixeltable-0.2.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|