pixeltable 0.4.2__py3-none-any.whl → 0.4.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/__init__.py +1 -0
- pixeltable/__version__.py +2 -2
- pixeltable/catalog/__init__.py +3 -11
- pixeltable/catalog/catalog.py +575 -220
- pixeltable/catalog/column.py +22 -23
- pixeltable/catalog/dir.py +1 -2
- pixeltable/catalog/globals.py +2 -148
- pixeltable/catalog/insertable_table.py +15 -13
- pixeltable/catalog/path.py +6 -0
- pixeltable/catalog/schema_object.py +9 -4
- pixeltable/catalog/table.py +96 -85
- pixeltable/catalog/table_version.py +257 -174
- pixeltable/catalog/table_version_path.py +1 -1
- pixeltable/catalog/tbl_ops.py +44 -0
- pixeltable/catalog/update_status.py +179 -0
- pixeltable/catalog/view.py +50 -56
- pixeltable/config.py +76 -12
- pixeltable/dataframe.py +19 -6
- pixeltable/env.py +50 -4
- pixeltable/exec/data_row_batch.py +3 -1
- pixeltable/exec/exec_node.py +7 -24
- pixeltable/exec/expr_eval/schedulers.py +134 -7
- pixeltable/exec/in_memory_data_node.py +6 -7
- pixeltable/exprs/column_property_ref.py +21 -9
- pixeltable/exprs/column_ref.py +7 -2
- pixeltable/exprs/function_call.py +2 -2
- pixeltable/exprs/row_builder.py +10 -9
- pixeltable/exprs/rowid_ref.py +0 -4
- pixeltable/func/function.py +3 -3
- pixeltable/functions/audio.py +36 -9
- pixeltable/functions/gemini.py +4 -4
- pixeltable/functions/openai.py +1 -2
- pixeltable/functions/video.py +59 -16
- pixeltable/globals.py +109 -24
- pixeltable/io/__init__.py +1 -1
- pixeltable/io/datarows.py +2 -1
- pixeltable/io/external_store.py +3 -55
- pixeltable/io/globals.py +4 -4
- pixeltable/io/hf_datasets.py +10 -2
- pixeltable/io/label_studio.py +16 -16
- pixeltable/io/pandas.py +1 -0
- pixeltable/io/table_data_conduit.py +12 -13
- pixeltable/iterators/audio.py +17 -8
- pixeltable/iterators/image.py +5 -2
- pixeltable/metadata/__init__.py +1 -1
- pixeltable/metadata/converters/convert_39.py +125 -0
- pixeltable/metadata/converters/util.py +3 -0
- pixeltable/metadata/notes.py +1 -0
- pixeltable/metadata/schema.py +50 -1
- pixeltable/plan.py +4 -0
- pixeltable/share/packager.py +20 -38
- pixeltable/store.py +40 -51
- pixeltable/type_system.py +2 -2
- pixeltable/utils/coroutine.py +6 -23
- pixeltable/utils/media_store.py +50 -0
- {pixeltable-0.4.2.dist-info → pixeltable-0.4.4.dist-info}/METADATA +1 -1
- {pixeltable-0.4.2.dist-info → pixeltable-0.4.4.dist-info}/RECORD +60 -57
- {pixeltable-0.4.2.dist-info → pixeltable-0.4.4.dist-info}/LICENSE +0 -0
- {pixeltable-0.4.2.dist-info → pixeltable-0.4.4.dist-info}/WHEEL +0 -0
- {pixeltable-0.4.2.dist-info → pixeltable-0.4.4.dist-info}/entry_points.txt +0 -0
pixeltable/store.py
CHANGED
|
@@ -2,19 +2,17 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import abc
|
|
4
4
|
import logging
|
|
5
|
-
import os
|
|
6
5
|
import sys
|
|
7
|
-
import urllib.parse
|
|
8
|
-
import urllib.request
|
|
9
6
|
import warnings
|
|
10
7
|
from typing import Any, Iterable, Iterator, Optional, Union
|
|
11
8
|
|
|
12
9
|
import more_itertools
|
|
10
|
+
import psycopg
|
|
13
11
|
import sqlalchemy as sql
|
|
14
12
|
from tqdm import TqdmWarning, tqdm
|
|
15
13
|
|
|
16
14
|
from pixeltable import catalog, exceptions as excs
|
|
17
|
-
from pixeltable.catalog import RowCountStats
|
|
15
|
+
from pixeltable.catalog.update_status import RowCountStats
|
|
18
16
|
from pixeltable.env import Env
|
|
19
17
|
from pixeltable.exec import ExecNode
|
|
20
18
|
from pixeltable.metadata import schema
|
|
@@ -93,9 +91,8 @@ class StoreBase:
|
|
|
93
91
|
# to the last sql.Table version we created and cannot be reused
|
|
94
92
|
col.create_sa_cols()
|
|
95
93
|
all_cols.append(col.sa_col)
|
|
96
|
-
if col.
|
|
97
|
-
all_cols.append(col.
|
|
98
|
-
all_cols.append(col.sa_errortype_col)
|
|
94
|
+
if col.stores_cellmd:
|
|
95
|
+
all_cols.append(col.sa_cellmd_col)
|
|
99
96
|
|
|
100
97
|
if self.sa_tbl is not None:
|
|
101
98
|
# if we're called in response to a schema change, we need to remove the old table first
|
|
@@ -127,27 +124,7 @@ class StoreBase:
|
|
|
127
124
|
"""Return the name of the data store table"""
|
|
128
125
|
|
|
129
126
|
def _move_tmp_media_file(self, file_url: Optional[str], col: catalog.Column, v_min: int) -> str:
|
|
130
|
-
|
|
131
|
-
if file_url is None:
|
|
132
|
-
return None
|
|
133
|
-
assert isinstance(file_url, str), type(file_url)
|
|
134
|
-
pxt_tmp_dir = str(Env.get().tmp_dir)
|
|
135
|
-
parsed = urllib.parse.urlparse(file_url)
|
|
136
|
-
# We should never be passed a local file path here. The "len > 1" ensures that Windows
|
|
137
|
-
# file paths aren't mistaken for URLs with a single-character scheme.
|
|
138
|
-
assert len(parsed.scheme) > 1, file_url
|
|
139
|
-
if parsed.scheme != 'file':
|
|
140
|
-
# remote url
|
|
141
|
-
return file_url
|
|
142
|
-
file_path = urllib.parse.unquote(urllib.request.url2pathname(parsed.path))
|
|
143
|
-
if not file_path.startswith(pxt_tmp_dir):
|
|
144
|
-
# not a tmp file
|
|
145
|
-
return file_url
|
|
146
|
-
_, ext = os.path.splitext(file_path)
|
|
147
|
-
new_path = str(MediaStore.prepare_media_path(self.tbl_version.id, col.id, v_min, ext=ext))
|
|
148
|
-
os.rename(file_path, new_path)
|
|
149
|
-
new_file_url = urllib.parse.urljoin('file:', urllib.request.pathname2url(new_path))
|
|
150
|
-
return new_file_url
|
|
127
|
+
return MediaStore.move_tmp_media_file(file_url, self.tbl_version.id, col.id, v_min)
|
|
151
128
|
|
|
152
129
|
def _move_tmp_media_files(
|
|
153
130
|
self, table_row: list[Any], media_cols_by_sql_idx: dict[int, catalog.Column], v_min: int
|
|
@@ -170,8 +147,28 @@ class StoreBase:
|
|
|
170
147
|
return result
|
|
171
148
|
|
|
172
149
|
def create(self) -> None:
|
|
150
|
+
"""Create If Not Exists for this table"""
|
|
173
151
|
conn = Env.get().conn
|
|
174
|
-
self.
|
|
152
|
+
stmt = sql.schema.CreateTable(self.sa_tbl).compile(conn)
|
|
153
|
+
create_stmt = str(stmt)
|
|
154
|
+
if_not_exists_stmt = create_stmt.replace('CREATE TABLE', 'CREATE TABLE IF NOT EXISTS')
|
|
155
|
+
|
|
156
|
+
# Postgres seems not to handle concurrent Create Table If Not Exists correctly, we need to ignore the various
|
|
157
|
+
# errors that can occur when two connections run the same Create Table statement.
|
|
158
|
+
try:
|
|
159
|
+
conn.execute(sql.text(if_not_exists_stmt))
|
|
160
|
+
except (sql.exc.IntegrityError, sql.exc.ProgrammingError) as e:
|
|
161
|
+
Env.get().console_logger.info(f'StoreBase.create() failed with: {e}')
|
|
162
|
+
if (
|
|
163
|
+
isinstance(e.orig, psycopg.errors.UniqueViolation)
|
|
164
|
+
and 'duplicate key value violates unique constraint "pg_type_typname_nsp_index"' in str(e.orig)
|
|
165
|
+
) or (
|
|
166
|
+
isinstance(e.orig, (psycopg.errors.DuplicateObject, psycopg.errors.DuplicateTable))
|
|
167
|
+
and 'already exists' in str(e.orig)
|
|
168
|
+
):
|
|
169
|
+
pass
|
|
170
|
+
else:
|
|
171
|
+
raise
|
|
175
172
|
|
|
176
173
|
def drop(self) -> None:
|
|
177
174
|
"""Drop store table"""
|
|
@@ -189,11 +186,10 @@ class StoreBase:
|
|
|
189
186
|
col_type_str = col.get_sa_col_type().compile(dialect=conn.dialect)
|
|
190
187
|
s_txt = f'ALTER TABLE {self._storage_name()} ADD COLUMN {col.store_name()} {col_type_str} NULL'
|
|
191
188
|
added_storage_cols = [col.store_name()]
|
|
192
|
-
if col.
|
|
193
|
-
|
|
194
|
-
s_txt += f' , ADD COLUMN {col.
|
|
195
|
-
|
|
196
|
-
added_storage_cols.extend([col.errormsg_store_name(), col.errortype_store_name()])
|
|
189
|
+
if col.stores_cellmd:
|
|
190
|
+
cellmd_type_str = col.sa_cellmd_type().compile(dialect=conn.dialect)
|
|
191
|
+
s_txt += f' , ADD COLUMN {col.cellmd_store_name()} {cellmd_type_str} DEFAULT NULL'
|
|
192
|
+
added_storage_cols.append(col.cellmd_store_name())
|
|
197
193
|
|
|
198
194
|
stmt = sql.text(s_txt)
|
|
199
195
|
log_stmt(_logger, stmt)
|
|
@@ -204,9 +200,8 @@ class StoreBase:
|
|
|
204
200
|
def drop_column(self, col: catalog.Column) -> None:
|
|
205
201
|
"""Execute Alter Table Drop Column statement"""
|
|
206
202
|
s_txt = f'ALTER TABLE {self._storage_name()} DROP COLUMN {col.store_name()}'
|
|
207
|
-
if col.
|
|
208
|
-
s_txt += f' , DROP COLUMN {col.
|
|
209
|
-
s_txt += f' , DROP COLUMN {col.errortype_store_name()}'
|
|
203
|
+
if col.stores_cellmd:
|
|
204
|
+
s_txt += f' , DROP COLUMN {col.cellmd_store_name()}'
|
|
210
205
|
stmt = sql.text(s_txt)
|
|
211
206
|
log_stmt(_logger, stmt)
|
|
212
207
|
Env.get().conn.execute(stmt)
|
|
@@ -239,10 +234,9 @@ class StoreBase:
|
|
|
239
234
|
tmp_val_col = sql.Column(col.sa_col.name, col.sa_col.type)
|
|
240
235
|
tmp_cols = [*tmp_pk_cols, tmp_val_col]
|
|
241
236
|
# add error columns if the store column records errors
|
|
242
|
-
if col.
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
tmp_cols.extend((tmp_errortype_col, tmp_errormsg_col))
|
|
237
|
+
if col.stores_cellmd:
|
|
238
|
+
tmp_cellmd_col = sql.Column(col.sa_cellmd_col.name, col.sa_cellmd_col.type)
|
|
239
|
+
tmp_cols.append(tmp_cellmd_col)
|
|
246
240
|
tmp_col_names = [col.name for col in tmp_cols]
|
|
247
241
|
|
|
248
242
|
tmp_tbl = sql.Table(tmp_name, self.sa_md, *tmp_cols, prefixes=['TEMPORARY'])
|
|
@@ -285,10 +279,8 @@ class StoreBase:
|
|
|
285
279
|
for pk_col, tmp_pk_col in zip(self.pk_columns(), tmp_pk_cols):
|
|
286
280
|
update_stmt = update_stmt.where(pk_col == tmp_pk_col)
|
|
287
281
|
update_stmt = update_stmt.values({col.sa_col: tmp_val_col})
|
|
288
|
-
if col.
|
|
289
|
-
update_stmt = update_stmt.values(
|
|
290
|
-
{col.sa_errortype_col: tmp_errortype_col, col.sa_errormsg_col: tmp_errormsg_col}
|
|
291
|
-
)
|
|
282
|
+
if col.stores_cellmd:
|
|
283
|
+
update_stmt = update_stmt.values({col.sa_cellmd_col: tmp_cellmd_col})
|
|
292
284
|
log_explain(_logger, update_stmt, conn)
|
|
293
285
|
conn.execute(update_stmt)
|
|
294
286
|
|
|
@@ -309,7 +301,7 @@ class StoreBase:
|
|
|
309
301
|
show_progress: bool = True,
|
|
310
302
|
rowids: Optional[Iterator[int]] = None,
|
|
311
303
|
abort_on_exc: bool = False,
|
|
312
|
-
) -> tuple[set[int],
|
|
304
|
+
) -> tuple[set[int], RowCountStats]:
|
|
313
305
|
"""Insert rows into the store table and update the catalog table's md
|
|
314
306
|
Returns:
|
|
315
307
|
number of inserted rows, number of exceptions, set of column ids that have exceptions
|
|
@@ -373,12 +365,9 @@ class StoreBase:
|
|
|
373
365
|
if progress_bar is not None:
|
|
374
366
|
progress_bar.close()
|
|
375
367
|
computed_values = exec_plan.ctx.num_computed_exprs * num_rows
|
|
376
|
-
row_counts = RowCountStats(
|
|
377
|
-
ins_rows=num_rows, num_excs=num_excs, computed_values=computed_values
|
|
378
|
-
) # insert (StoreBase)
|
|
379
|
-
|
|
380
|
-
return cols_with_excs, UpdateStatus(row_count_stats=row_counts)
|
|
368
|
+
row_counts = RowCountStats(ins_rows=num_rows, num_excs=num_excs, computed_values=computed_values)
|
|
381
369
|
|
|
370
|
+
return cols_with_excs, row_counts
|
|
382
371
|
finally:
|
|
383
372
|
exec_plan.close()
|
|
384
373
|
|
pixeltable/type_system.py
CHANGED
|
@@ -1153,8 +1153,8 @@ class ImageType(ColumnType):
|
|
|
1153
1153
|
img.load()
|
|
1154
1154
|
return img
|
|
1155
1155
|
except Exception as exc:
|
|
1156
|
-
|
|
1157
|
-
raise excs.Error(f'data URL could not be decoded into a valid image: {
|
|
1156
|
+
error_msg_val = val if len(val) < 50 else val[:50] + '...'
|
|
1157
|
+
raise excs.Error(f'data URL could not be decoded into a valid image: {error_msg_val}') from exc
|
|
1158
1158
|
return val
|
|
1159
1159
|
|
|
1160
1160
|
def _validate_literal(self, val: Any) -> None:
|
pixeltable/utils/coroutine.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import threading
|
|
3
|
-
from concurrent.futures import ThreadPoolExecutor
|
|
4
3
|
from typing import Any, Coroutine, TypeVar
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
from pixeltable.env import Env
|
|
7
6
|
|
|
7
|
+
T = TypeVar('T')
|
|
8
8
|
|
|
9
9
|
# TODO This is a temporary hack to be able to run async UDFs in contexts that are not properly handled by the existing
|
|
10
10
|
# scheduler logic (e.g., as an embedding function as part of a similarity lookup). Once the scheduler is fully
|
|
@@ -15,27 +15,10 @@ def run_coroutine_synchronously(coroutine: Coroutine[Any, Any, T], timeout: floa
|
|
|
15
15
|
"""
|
|
16
16
|
Runs the given coroutine synchronously, even if called in the context of a running event loop.
|
|
17
17
|
"""
|
|
18
|
-
|
|
19
|
-
def run_in_new_loop() -> T:
|
|
20
|
-
new_loop = asyncio.new_event_loop()
|
|
21
|
-
asyncio.set_event_loop(new_loop)
|
|
22
|
-
try:
|
|
23
|
-
return new_loop.run_until_complete(coroutine)
|
|
24
|
-
finally:
|
|
25
|
-
new_loop.close()
|
|
26
|
-
|
|
27
|
-
try:
|
|
28
|
-
loop = asyncio.get_running_loop()
|
|
29
|
-
except RuntimeError:
|
|
30
|
-
# No event loop; just call `asyncio.run()`
|
|
31
|
-
return asyncio.run(coroutine)
|
|
18
|
+
loop = Env.get().event_loop
|
|
32
19
|
|
|
33
20
|
if threading.current_thread() is threading.main_thread():
|
|
34
|
-
|
|
35
|
-
return loop.run_until_complete(coroutine)
|
|
36
|
-
else:
|
|
37
|
-
with ThreadPoolExecutor() as pool:
|
|
38
|
-
future = pool.submit(run_in_new_loop)
|
|
39
|
-
return future.result(timeout=timeout)
|
|
21
|
+
return loop.run_until_complete(coroutine)
|
|
40
22
|
else:
|
|
41
|
-
|
|
23
|
+
# Not in main thread, use run_coroutine_threadsafe
|
|
24
|
+
return asyncio.run_coroutine_threadsafe(coroutine, loop).result(timeout)
|
pixeltable/utils/media_store.py
CHANGED
|
@@ -2,6 +2,7 @@ import glob
|
|
|
2
2
|
import os
|
|
3
3
|
import re
|
|
4
4
|
import shutil
|
|
5
|
+
import urllib
|
|
5
6
|
import uuid
|
|
6
7
|
from collections import defaultdict
|
|
7
8
|
from pathlib import Path
|
|
@@ -34,6 +35,55 @@ class MediaStore:
|
|
|
34
35
|
parent.mkdir(parents=True, exist_ok=True)
|
|
35
36
|
return parent / f'{tbl_id.hex}_{col_id}_{version}_{id_hex}{ext or ""}'
|
|
36
37
|
|
|
38
|
+
@classmethod
|
|
39
|
+
def move_tmp_media_file(cls, file_url: Optional[str], tbl_id: UUID, col_id: int, v_min: int) -> Optional[str]:
|
|
40
|
+
"""Move a tmp media file with given url into the MediaStore, and return new url
|
|
41
|
+
If it is not a tmp file in the tmp_dir, return the original url.
|
|
42
|
+
|
|
43
|
+
Args:
|
|
44
|
+
file_url: URL of the tmp media file to move
|
|
45
|
+
tbl_id: Table ID to associate with the media file
|
|
46
|
+
col_id: Column ID to associate with the media file
|
|
47
|
+
v_min: Version number to associate with the media file
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
URL of the media final location of the file
|
|
51
|
+
"""
|
|
52
|
+
if file_url is None:
|
|
53
|
+
return None
|
|
54
|
+
assert isinstance(file_url, str), type(file_url)
|
|
55
|
+
pxt_tmp_dir = str(Env.get().tmp_dir)
|
|
56
|
+
parsed = urllib.parse.urlparse(file_url)
|
|
57
|
+
# We should never be passed a local file path here. The "len > 1" ensures that Windows
|
|
58
|
+
# file paths aren't mistaken for URLs with a single-character scheme.
|
|
59
|
+
assert len(parsed.scheme) > 1, file_url
|
|
60
|
+
if parsed.scheme != 'file':
|
|
61
|
+
# remote url
|
|
62
|
+
return file_url
|
|
63
|
+
file_path = urllib.parse.unquote(urllib.request.url2pathname(parsed.path))
|
|
64
|
+
if not file_path.startswith(pxt_tmp_dir):
|
|
65
|
+
# not a tmp file
|
|
66
|
+
return file_url
|
|
67
|
+
new_file_url = cls.relocate_local_media_file(Path(file_path), tbl_id, col_id, v_min)
|
|
68
|
+
return new_file_url
|
|
69
|
+
|
|
70
|
+
@classmethod
|
|
71
|
+
def relocate_local_media_file(cls, src_path: Path, tbl_id: UUID, col_id: int, tbl_version: int) -> str:
|
|
72
|
+
dest_path = MediaStore.prepare_media_path(tbl_id, col_id, tbl_version, ext=src_path.suffix)
|
|
73
|
+
src_path.rename(dest_path)
|
|
74
|
+
return urllib.parse.urljoin('file:', urllib.request.pathname2url(str(dest_path)))
|
|
75
|
+
|
|
76
|
+
@classmethod
|
|
77
|
+
def save_media_file(cls, file_data: bytes, tbl_id: UUID, col_id: int, tbl_version: int) -> Path:
|
|
78
|
+
"""Save a media binary data to a file in the MediaStore."""
|
|
79
|
+
assert isinstance(file_data, bytes)
|
|
80
|
+
media_path = cls.prepare_media_path(tbl_id, col_id, tbl_version)
|
|
81
|
+
with open(media_path, 'wb') as f:
|
|
82
|
+
f.write(file_data)
|
|
83
|
+
f.flush() # Ensures Python buffers are written to OS
|
|
84
|
+
os.fsync(f.fileno()) # Forces OS to write to physical storage
|
|
85
|
+
return media_path
|
|
86
|
+
|
|
37
87
|
@classmethod
|
|
38
88
|
def delete(cls, tbl_id: UUID, version: Optional[int] = None) -> None:
|
|
39
89
|
"""Delete all files belonging to tbl_id. If version is not None, delete
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pixeltable
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: AI Data Infrastructure: Declarative, Multimodal, and Incremental
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: data-science,machine-learning,database,ai,computer-vision,chatbot,ml,artificial-intelligence,feature-engineering,multimodal,mlops,feature-store,vector-database,llm,genai
|
|
@@ -1,51 +1,53 @@
|
|
|
1
|
-
pixeltable/__init__.py,sha256
|
|
2
|
-
pixeltable/__version__.py,sha256=
|
|
3
|
-
pixeltable/catalog/__init__.py,sha256=
|
|
4
|
-
pixeltable/catalog/catalog.py,sha256=
|
|
5
|
-
pixeltable/catalog/column.py,sha256=
|
|
6
|
-
pixeltable/catalog/dir.py,sha256=
|
|
7
|
-
pixeltable/catalog/globals.py,sha256=
|
|
8
|
-
pixeltable/catalog/insertable_table.py,sha256=
|
|
1
|
+
pixeltable/__init__.py,sha256=-bu8Al-s2PyGpPYZgj016gMl9s6NMQfjxVRwvhfd8IY,1457
|
|
2
|
+
pixeltable/__version__.py,sha256=T7KXb1Im-4kQujXd5F_u-Wak6ZZevjWPic8US5EaoQE,112
|
|
3
|
+
pixeltable/catalog/__init__.py,sha256=oiiga_fe4iQsBh8lfLjLBTbvzaZfD4QM7hmMZDpAGGU,636
|
|
4
|
+
pixeltable/catalog/catalog.py,sha256=u4FsoduYQKYrKGN_yRvq7K4kU0-332ILozOS5fnPt90,91162
|
|
5
|
+
pixeltable/catalog/column.py,sha256=HZfujfvdkJeyOWfgmVutJLWOy19R8ZFczaEjYTZ5NQo,11495
|
|
6
|
+
pixeltable/catalog/dir.py,sha256=VYTscPlKR6XhupPTXlJ8txAHxS5GSpPJ3LIleDJagVQ,2047
|
|
7
|
+
pixeltable/catalog/globals.py,sha256=uMIDsbeDzFxZbcgKDTOiT5plC1gAKgz1oxxdh1odIPw,2648
|
|
8
|
+
pixeltable/catalog/insertable_table.py,sha256=uOvV3Ibcnh9xNLwfZrE6kQJWp0KWasBOk29sPuIa4c0,9485
|
|
9
9
|
pixeltable/catalog/named_function.py,sha256=vZ-j7P4HugWh9OmUzBMwyRYvO3tQn9jWyJz_1stPavU,1210
|
|
10
|
-
pixeltable/catalog/path.py,sha256=
|
|
11
|
-
pixeltable/catalog/schema_object.py,sha256=
|
|
12
|
-
pixeltable/catalog/table.py,sha256=
|
|
13
|
-
pixeltable/catalog/table_version.py,sha256=
|
|
10
|
+
pixeltable/catalog/path.py,sha256=VdoRy2eRVyR3FhJoo8wVFcuqqEq4o36RJsJ0cDX4Cac,2705
|
|
11
|
+
pixeltable/catalog/schema_object.py,sha256=XJ5kV7jEsjWmHTwQVQGHrInlOmu-vUDhBvczB_hTtxI,2123
|
|
12
|
+
pixeltable/catalog/table.py,sha256=1Z7fIza2v_CuVlLLmpEniZTls-_4EIfXwBov9pwtdmA,75786
|
|
13
|
+
pixeltable/catalog/table_version.py,sha256=XMwsHNWE8ybX7xecXREwVViT194t1dU0tIOInzLHYKc,68544
|
|
14
14
|
pixeltable/catalog/table_version_handle.py,sha256=FTPRqcGY-h-POcWyZbd9b8P2D5zIw5OSUvwF_dbyCGo,3608
|
|
15
|
-
pixeltable/catalog/table_version_path.py,sha256=
|
|
16
|
-
pixeltable/catalog/
|
|
17
|
-
pixeltable/
|
|
18
|
-
pixeltable/
|
|
19
|
-
pixeltable/
|
|
15
|
+
pixeltable/catalog/table_version_path.py,sha256=TcMG-R5b0O72HCvk0Qn8kGpZnfIsYhawOP7RjP1Sjb4,9815
|
|
16
|
+
pixeltable/catalog/tbl_ops.py,sha256=Vdcz4Nzvdw09zcQaCEaOr9Uufk2rQHgG0vBvMbQp9R8,1145
|
|
17
|
+
pixeltable/catalog/update_status.py,sha256=tF3KkDc6kvEQ7Tg3VMj-n774uKi1iLla61wLyeuwDRs,6888
|
|
18
|
+
pixeltable/catalog/view.py,sha256=lG_8x3g_-1wDLUTIG-q-bva5IAf_s-S_NAyDWTOu7Oo,14593
|
|
19
|
+
pixeltable/config.py,sha256=UGLZ-A7exqGB5os3BluMXXj3iEo7mGQKBXebriTZjkQ,7148
|
|
20
|
+
pixeltable/dataframe.py,sha256=QkyXKXd-TNPEvgRlCNSfGPmw5cz5s4RdOINsWYIyxfk,61386
|
|
21
|
+
pixeltable/env.py,sha256=yZZBWgqw4ez2bbHpVCuBlkbiJZMyB1QzfEGUEiYyaEg,37765
|
|
20
22
|
pixeltable/exceptions.py,sha256=Gm8d3TL2iiv6Pj2DLd29wp_j41qNBhxXL9iTQnL4Nk4,1116
|
|
21
23
|
pixeltable/exec/__init__.py,sha256=hQvj4ra4ubxu94qyuCBTHKsuYGzundkTTluOTIb5Bx8,524
|
|
22
24
|
pixeltable/exec/aggregation_node.py,sha256=HqzISO1nv7_DFyqjZLRkjtbDJl9fIEto1i6Kh5ru8vA,4498
|
|
23
25
|
pixeltable/exec/cache_prefetch_node.py,sha256=GOa70eJDFY3FQV3VvJOrUVI8LFvro-r-V6sh3w-eJAc,12130
|
|
24
26
|
pixeltable/exec/component_iteration_node.py,sha256=FZszWHrzsjHxCbUTwXtJIlgQqgYtvKZB6QWiDGkfIbs,4757
|
|
25
|
-
pixeltable/exec/data_row_batch.py,sha256=
|
|
27
|
+
pixeltable/exec/data_row_batch.py,sha256=s85NVDAMdPzx1C9XbS9xieDtnpad33w86PbW1k8ar0U,3460
|
|
26
28
|
pixeltable/exec/exec_context.py,sha256=jKeLStfkjwCKKAooC-7a7qZUnZU5O0_JQhanhVerV9c,984
|
|
27
|
-
pixeltable/exec/exec_node.py,sha256=
|
|
29
|
+
pixeltable/exec/exec_node.py,sha256=dEPVuXFU4niYONCk9ThKx8cZUBNkv0gbmKMDERgdDks,3671
|
|
28
30
|
pixeltable/exec/expr_eval/__init__.py,sha256=sQThSEByK_DLfB-_-18RFhpARx49cSXYEkpCDyi0vQI,61
|
|
29
31
|
pixeltable/exec/expr_eval/evaluators.py,sha256=-6s_y29Wh8p35SVKkXtnA0NkzcHVw1Z8PgHGiFrMsqs,17135
|
|
30
32
|
pixeltable/exec/expr_eval/expr_eval_node.py,sha256=klPhvsug91GiPIHkwcTj1ympxsoj8nbNHzkzkC-NR88,18953
|
|
31
33
|
pixeltable/exec/expr_eval/globals.py,sha256=fFrj2O53TgHDfVF8dgnyn1fPLi4ZHQuylewf5aHMwYk,7752
|
|
32
34
|
pixeltable/exec/expr_eval/row_buffer.py,sha256=YY0thdlMNNReEOTyPp36xKPeMeXSZ0VrI9bJsXgo7sU,2744
|
|
33
|
-
pixeltable/exec/expr_eval/schedulers.py,sha256=
|
|
34
|
-
pixeltable/exec/in_memory_data_node.py,sha256=
|
|
35
|
+
pixeltable/exec/expr_eval/schedulers.py,sha256=DuebLy_3Bu3MTUG3AQNk7JcVv69OeeRFu5bcZGT5T2c,22233
|
|
36
|
+
pixeltable/exec/in_memory_data_node.py,sha256=OEyF7t9i0jN_hIRGqxWbV6dk1c-wWCaa-hx7m7v1dBE,3569
|
|
35
37
|
pixeltable/exec/row_update_node.py,sha256=zU0eSyn81-vRrjAMOadRqU8luTshnPUtIbS7npyLBKY,2798
|
|
36
38
|
pixeltable/exec/sql_node.py,sha256=cMoBGPOFVmvL3UFjCKxhU3huJu_ko0PRr55-XhbF1i0,27572
|
|
37
39
|
pixeltable/exprs/__init__.py,sha256=AxSMjKNavCT9F6vBaNR-nwX2iupAI5hbMb5hEj65Tfk,1096
|
|
38
40
|
pixeltable/exprs/arithmetic_expr.py,sha256=sZPao0qdFWbrDx0eiAVxw1wGHJXZ5ZoCpQaScysBldE,7333
|
|
39
41
|
pixeltable/exprs/array_slice.py,sha256=8Zv0E2RghdJi1Mbk0kKtOz2ccGQuXwLLb6R9v1jk7hA,2180
|
|
40
|
-
pixeltable/exprs/column_property_ref.py,sha256=
|
|
41
|
-
pixeltable/exprs/column_ref.py,sha256=
|
|
42
|
+
pixeltable/exprs/column_property_ref.py,sha256=rq8VD34fZwAZuN9wIqQEwVay7LTPBKvXXdZPknOJM6M,4422
|
|
43
|
+
pixeltable/exprs/column_ref.py,sha256=MH83bYsef5UC4vWU71PE-lPiVd8hVw4tT6sjdCCvWNw,15473
|
|
42
44
|
pixeltable/exprs/comparison.py,sha256=lgaRx000ZaNH10A4hrtsi5XoZKE-CNEONGMi7jxJfcM,5133
|
|
43
45
|
pixeltable/exprs/compound_predicate.py,sha256=vJVRVueAmaKnjiHCLWyh8wHgktzzK0DVqbOIQJgTjF8,3801
|
|
44
46
|
pixeltable/exprs/data_row.py,sha256=4mW5Q56L53gLAX7xI0uBRW7a5Ax66Q0W9Bi-k_ZBoe8,11800
|
|
45
47
|
pixeltable/exprs/expr.py,sha256=uLEMuJzHwPW3hBIcsASnhjcPyGBkY8_8sFCqgRetKP0,36013
|
|
46
48
|
pixeltable/exprs/expr_dict.py,sha256=2ZeZ0eACx3VrRNEOjipuT5WxOIzjXQ_DSip8NTH0KRo,1584
|
|
47
49
|
pixeltable/exprs/expr_set.py,sha256=OlRTbHAAYH2fOEs1HE-8DIu7Z247xVfoT_9Y58GZoOQ,2559
|
|
48
|
-
pixeltable/exprs/function_call.py,sha256=
|
|
50
|
+
pixeltable/exprs/function_call.py,sha256=k5_a9Fb7arw1q3PnInl8kpNKvlEZcYyOR_yOzRItKUU,21992
|
|
49
51
|
pixeltable/exprs/globals.py,sha256=NIi16GCPYNFNrhDC0_IemHjFZEtbILJNmdxdguSdy00,2315
|
|
50
52
|
pixeltable/exprs/in_predicate.py,sha256=u98JmBX9XsglKe5uCy1NUMnyi3wioBri_tue2vI9_sk,3799
|
|
51
53
|
pixeltable/exprs/inline_expr.py,sha256=XYVKKXZN9BtHN5qlvZna-mgdOlot6WcmPu5usRBYei0,7972
|
|
@@ -55,8 +57,8 @@ pixeltable/exprs/json_path.py,sha256=sFuDjfz8_rlea4TKd68CS4pQTUiLDi68YwsgcQRHffI
|
|
|
55
57
|
pixeltable/exprs/literal.py,sha256=OCJL_pw_WKqx3bXMEwL6yNaKVAKDtGRzSZUFwucRxZI,4860
|
|
56
58
|
pixeltable/exprs/method_ref.py,sha256=NNhJTGo7luZLh8EJdFIZAax9LiiqqDCEK1AwPmHip0w,2642
|
|
57
59
|
pixeltable/exprs/object_ref.py,sha256=idYFcT27jv0BjtJT3paL37xDrZZc35_3eCJyQOIqdZU,1999
|
|
58
|
-
pixeltable/exprs/row_builder.py,sha256=
|
|
59
|
-
pixeltable/exprs/rowid_ref.py,sha256=
|
|
60
|
+
pixeltable/exprs/row_builder.py,sha256=K_HVjS1yxq2WImhVxSG_BG86ZyHaftfLenX5eVkQBmI,22394
|
|
61
|
+
pixeltable/exprs/rowid_ref.py,sha256=8MvQs3Uu01Gz__WXw9BCJv0CHrSaFDuQtU7rUr1AWEk,5008
|
|
60
62
|
pixeltable/exprs/similarity_expr.py,sha256=i0UUnMSKKGXd3Uksu6FU2NvkfG0qzfzfi-GPy-LdutM,3688
|
|
61
63
|
pixeltable/exprs/sql_element_cache.py,sha256=c7Q6vFK4xnf9vmcRYnXiAcwPBBwmw0dolftM4BwDO8c,1359
|
|
62
64
|
pixeltable/exprs/string_op.py,sha256=8GkqYpZrSJjHX1ghsUMI9Op2NJyBbvmLWJwDYf_vad0,4171
|
|
@@ -70,7 +72,7 @@ pixeltable/func/__init__.py,sha256=SQPtGr_9dZNyXzxaZQcP3oVLKnbbs4UqV6sg8XUQHxQ,5
|
|
|
70
72
|
pixeltable/func/aggregate_function.py,sha256=5_MgqHAlMaacX2sPIHv_auTvYXtqR5MIZy_WqYQSdho,13264
|
|
71
73
|
pixeltable/func/callable_function.py,sha256=g_pA-g631YcFGLix9PpHYfgjOeS2qF0Csm1VxX8fah0,9278
|
|
72
74
|
pixeltable/func/expr_template_function.py,sha256=wEidKrOBTZkA3U1PAtG6-6RlDFiiRJszIG4zNOuPcNY,5940
|
|
73
|
-
pixeltable/func/function.py,sha256=
|
|
75
|
+
pixeltable/func/function.py,sha256=3nSXRdGFGi471x7_TMVdSgXs1SQuLv4HaUJA7NLhv_M,23140
|
|
74
76
|
pixeltable/func/function_registry.py,sha256=7AQ1bdF2DJbTRn9xx6s5cC_VHtCBXGt_GyJJEjJHcMw,12308
|
|
75
77
|
pixeltable/func/globals.py,sha256=5Wo4GPxYgHRRk5nvV0h_lAthKSalxKvj5n1p-uMPR0U,1501
|
|
76
78
|
pixeltable/func/mcp.py,sha256=P9M2w8cm7ad-XmAcf2ZThfWmD8W46De1spwX98bZL4Y,2861
|
|
@@ -80,12 +82,12 @@ pixeltable/func/tools.py,sha256=hKmQFvfpBvtLcItPRpqAmqt_tDg6latwyfv5FXBofBc,6074
|
|
|
80
82
|
pixeltable/func/udf.py,sha256=6tKpMt37t3BmXwRyA5fFAd6OM4D5EPEd2KuAr7DQhr0,13231
|
|
81
83
|
pixeltable/functions/__init__.py,sha256=Akk6Nk-rpz2D_V4kJTfyP56xnNbCz3EtxVAuwLoiysA,588
|
|
82
84
|
pixeltable/functions/anthropic.py,sha256=G2E0sH5vP933eZZxhz1tOByy5cg6N2XPvhSqIBzqufo,8782
|
|
83
|
-
pixeltable/functions/audio.py,sha256=
|
|
85
|
+
pixeltable/functions/audio.py,sha256=6_tUhSZgxhOQQJemvZYNEoKNjWdr3SgJsvLkKCSmtfw,1633
|
|
84
86
|
pixeltable/functions/bedrock.py,sha256=lTCFHjYunF3minBGWcjXR90yJ8resFjXr4niyKhfxms,4217
|
|
85
87
|
pixeltable/functions/date.py,sha256=WUwqyrOWB8A00cTNEd6Vd7anQZo40_-7EWhpfpI-P6c,5323
|
|
86
88
|
pixeltable/functions/deepseek.py,sha256=IAo2e_DhkM0A5NrskxuPQUGYzIYAl4do_mdO1Qc3PeY,3338
|
|
87
89
|
pixeltable/functions/fireworks.py,sha256=q7eWlYfiWbA0d9r3CB_NAe1fw3q-Z7qsw2gyGJNgWLQ,4786
|
|
88
|
-
pixeltable/functions/gemini.py,sha256=
|
|
90
|
+
pixeltable/functions/gemini.py,sha256=Yede8DzWEa4eboW7SNTOooBabriUlsnQMUdG5jCWRQo,8320
|
|
89
91
|
pixeltable/functions/globals.py,sha256=ZXBV2LPXT2-yQYHHE7q8N1WdAr0WxiIO1ax0qwxhmK8,5118
|
|
90
92
|
pixeltable/functions/groq.py,sha256=FpR_LJpfZfzyhEvoBMMbQpQ-VQSRzBsS9U21qaINwww,3593
|
|
91
93
|
pixeltable/functions/huggingface.py,sha256=cJyf86qMcvivkGGNduNHAvh_idI-e4wJm0Zje1KJ2vQ,20611
|
|
@@ -95,39 +97,39 @@ pixeltable/functions/llama_cpp.py,sha256=1QB4vQ7J4Za1mL93bRIBXgokNtpzzYr_QU6KF27
|
|
|
95
97
|
pixeltable/functions/math.py,sha256=eZEFjXxNHDHjcCsOMhzfNbJthTsmtNxtSFV8AEeRIfM,4979
|
|
96
98
|
pixeltable/functions/mistralai.py,sha256=Fk52mfWUfxVy-yCxhH6wrGS7nLLSiOOrWxbTkkiQ-O8,5542
|
|
97
99
|
pixeltable/functions/ollama.py,sha256=4-6h9Foq_7Ut7JtEHGkeg1KbuKaFywSuMrKiw0xAyCA,4231
|
|
98
|
-
pixeltable/functions/openai.py,sha256=
|
|
100
|
+
pixeltable/functions/openai.py,sha256=8kGOUv2jh-df0ByMwP2sAQdSgzzSCj5WypCfhnvoD2c,27694
|
|
99
101
|
pixeltable/functions/replicate.py,sha256=sPvRGr0j0kCDc6Vz3mPUioFflApijukvZWJJUO2bqIQ,2429
|
|
100
102
|
pixeltable/functions/string.py,sha256=LdBNOna5PUSPmM5VlJ_qhmwzyFhumW0k6Dvx2rXSZtc,25356
|
|
101
103
|
pixeltable/functions/timestamp.py,sha256=0zp4urJagCcNLfJE0ltTCft-J9qs2C716TmRngKYaa0,9171
|
|
102
104
|
pixeltable/functions/together.py,sha256=A8J19BXywyWQ6a2_n05-8uIG5jquOBGqPmW3mb-NrIc,8842
|
|
103
105
|
pixeltable/functions/util.py,sha256=uQNkyBSkTVMe1wbUI2Q0nz-mM3qPVTF86yK8c9OFIcE,954
|
|
104
|
-
pixeltable/functions/video.py,sha256=
|
|
106
|
+
pixeltable/functions/video.py,sha256=zrh8De3w3zHe3QQ6T8d3IKGRNbin6wAcIQa6lRi5jL0,8511
|
|
105
107
|
pixeltable/functions/vision.py,sha256=_a0wY3akkVhWnnxlq__1VzSLylytlNadpNOOPOwSfLk,15393
|
|
106
108
|
pixeltable/functions/whisper.py,sha256=c9E6trhc2UcShVaGaEBCUEpArke1ql3MV5We0qSgmuU,2960
|
|
107
|
-
pixeltable/globals.py,sha256=
|
|
109
|
+
pixeltable/globals.py,sha256=6BrrjMUWRae92vSglWXpMgGRIWf8Wutop1OQxU3A6n0,36269
|
|
108
110
|
pixeltable/index/__init__.py,sha256=97aFuxiP_oz1ldn5iq8IWApkOV8XG6ZIBW5-9rkS0vM,122
|
|
109
111
|
pixeltable/index/base.py,sha256=200s7v3Zy810bRlbSAYzxxaEjVssl6r8esTHiSvWRwQ,1704
|
|
110
112
|
pixeltable/index/btree.py,sha256=8B06D67ay0DFUtEBC5q4bLjxMq7ILpKyyoLAiSaamzA,2503
|
|
111
113
|
pixeltable/index/embedding_index.py,sha256=B_k_3UJmSv7t2ljUg8GC_D4t1jc03PVsTAvxqiTmHBA,11754
|
|
112
|
-
pixeltable/io/__init__.py,sha256=
|
|
113
|
-
pixeltable/io/datarows.py,sha256=
|
|
114
|
-
pixeltable/io/external_store.py,sha256=
|
|
114
|
+
pixeltable/io/__init__.py,sha256=chVGh3ygtZwSY6g_skIyCsjxwzo2847jDq9YGObAY98,608
|
|
115
|
+
pixeltable/io/datarows.py,sha256=UibRI3TH6E8WTaUSxVC4g0FfLcbM57OjbUIk3IQpU2k,6179
|
|
116
|
+
pixeltable/io/external_store.py,sha256=rOYBwTqcZZVU2toWxJ_9Iy2w2YO0DhuABrM2xGmqHSo,14787
|
|
115
117
|
pixeltable/io/fiftyone.py,sha256=v0r28bIk2I0TRP5DfVHtBIUa4DpIJDK5sgExxOmHZ_w,6882
|
|
116
|
-
pixeltable/io/globals.py,sha256=
|
|
117
|
-
pixeltable/io/hf_datasets.py,sha256=
|
|
118
|
-
pixeltable/io/label_studio.py,sha256=
|
|
119
|
-
pixeltable/io/pandas.py,sha256=
|
|
118
|
+
pixeltable/io/globals.py,sha256=so-skHogbXocuzI_IweH2cEX_SW_tDvFqBZyxeMyMzc,11375
|
|
119
|
+
pixeltable/io/hf_datasets.py,sha256=USCWp0nqs2D9FFfxlGhFy6pn2kDUwGfDHgUiv0-osc8,5634
|
|
120
|
+
pixeltable/io/label_studio.py,sha256=XpPkOLktm37Jnhh5ce1PQpUYzeuPJjoCZDaSGedagF4,31426
|
|
121
|
+
pixeltable/io/pandas.py,sha256=wzxBggItahT0yjGoV0G_csVAcYlcMXArlF6lfePXqUc,9053
|
|
120
122
|
pixeltable/io/parquet.py,sha256=-cxyy9wMRzGFDJWhUIjACfQMyAmajyoFcTXSkB8qESE,7818
|
|
121
|
-
pixeltable/io/table_data_conduit.py,sha256=
|
|
123
|
+
pixeltable/io/table_data_conduit.py,sha256=8pTWXr9fCWUbGPcNX7Fm3WXhipBiv3pdbTMok02vbQs,22078
|
|
122
124
|
pixeltable/io/utils.py,sha256=YMfhpqMitWz1PhXJGkCNOgNtEM1AZ55S0zXVhljC5kY,4260
|
|
123
125
|
pixeltable/iterators/__init__.py,sha256=bU4EmbX85J1URmRw6G71f2I77b1ctqngEOwDmRB3T0w,455
|
|
124
|
-
pixeltable/iterators/audio.py,sha256=
|
|
126
|
+
pixeltable/iterators/audio.py,sha256=Xuv6sOuhhMbof87JrlO218Fm_j6MoMxEr88otmoXME4,9623
|
|
125
127
|
pixeltable/iterators/base.py,sha256=ZC0ZvXL4iw6AmT8cu-Mdx-T2UG9nmJYV1C6LK4efAfw,1669
|
|
126
128
|
pixeltable/iterators/document.py,sha256=wJYSnzusJFaxipv5y0uQw-surN9fFz0Aq-s7w_l_Yk8,20306
|
|
127
|
-
pixeltable/iterators/image.py,sha256=
|
|
129
|
+
pixeltable/iterators/image.py,sha256=RrFdf5cnFIQzWKJk4uYi1m1p2qAiz909THYhRQ27DbY,3603
|
|
128
130
|
pixeltable/iterators/string.py,sha256=URj5edWp-CsorjN_8nnfWGvtIFs_Zh4VPm6htlJbFkU,1257
|
|
129
131
|
pixeltable/iterators/video.py,sha256=L5S1YPmT_zM11vW9fK6d5nQpUvHVewQWmfDmy4BD45E,9134
|
|
130
|
-
pixeltable/metadata/__init__.py,sha256=
|
|
132
|
+
pixeltable/metadata/__init__.py,sha256=iJxMsd3s5yNZ5ciIBzQCa0frXZKgvFj2_-H0Sf4N1mk,3154
|
|
131
133
|
pixeltable/metadata/converters/convert_10.py,sha256=myYIo1DyccnsQUxDKG6mafnU5ge_EhZpHg_pesKBoK4,708
|
|
132
134
|
pixeltable/metadata/converters/convert_12.py,sha256=Ci-qyZW1gqci-8wnjeOB5afdq7KTuN-hVSV9OqSPx8g,162
|
|
133
135
|
pixeltable/metadata/converters/convert_13.py,sha256=B-_EkL0pSl1mAiv6DymeUAyBQUcYcV1qDdNz3Q359kc,1369
|
|
@@ -156,23 +158,24 @@ pixeltable/metadata/converters/convert_35.py,sha256=c88qft0RFQbdFIE_PZRHMjeku1r5
|
|
|
156
158
|
pixeltable/metadata/converters/convert_36.py,sha256=g1rhZhAYfZpAwUgE3D1aipIR4RNvikhbKcrnBJzm0wM,1215
|
|
157
159
|
pixeltable/metadata/converters/convert_37.py,sha256=IVZGtKFaaYMGBs39V_H_okWvpxxadTUWqxoln0cNeQI,392
|
|
158
160
|
pixeltable/metadata/converters/convert_38.py,sha256=YyNyocwzzdJRcI0YSCo_70Q4hSk63235iE4IxhwSEzs,1169
|
|
159
|
-
pixeltable/metadata/converters/
|
|
160
|
-
pixeltable/metadata/
|
|
161
|
-
pixeltable/metadata/
|
|
161
|
+
pixeltable/metadata/converters/convert_39.py,sha256=YaEfgStxtYGRbuRLFw8wTAZVJRzIU6zL6nPU2zuDcEU,4658
|
|
162
|
+
pixeltable/metadata/converters/util.py,sha256=QUBOj2F_6rCAdIo0lgD1IVgAM15Vmq7ikQspB4s0eQ8,7732
|
|
163
|
+
pixeltable/metadata/notes.py,sha256=3fdZDFpL1-b194Ejv0Y0YP-vbnV-XvVP9wOmZM9XARA,1545
|
|
164
|
+
pixeltable/metadata/schema.py,sha256=3x-ZBzjoTep7UScSqsVKU-dWSOCgsM8YYZYE0a9S5ZU,13446
|
|
162
165
|
pixeltable/metadata/utils.py,sha256=NJQXWhhK1hdOZ4H3hh9N0mqbl-I9JqMUqrfA6OWLflE,2682
|
|
163
|
-
pixeltable/plan.py,sha256=
|
|
166
|
+
pixeltable/plan.py,sha256=nnMiBiQNJ0fWBNetyypVggCBCDWekTvKiSCMeays7Os,49369
|
|
164
167
|
pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
168
|
pixeltable/share/__init__.py,sha256=AtR4nS6YkfkFRkXA-zZXFTK5pSQjHry8MnxdVLUk5SA,68
|
|
166
|
-
pixeltable/share/packager.py,sha256=
|
|
169
|
+
pixeltable/share/packager.py,sha256=WDid1dOogPbAkF7pPrLe17eYR0_FWubvExU26ooQl4c,30994
|
|
167
170
|
pixeltable/share/publish.py,sha256=U6PzOUYiZaPu-sVNjh2nN8qzY2-uMsYeTwQCCuGk7Jg,6537
|
|
168
|
-
pixeltable/store.py,sha256=
|
|
169
|
-
pixeltable/type_system.py,sha256=
|
|
171
|
+
pixeltable/store.py,sha256=cSTcgx_OtXnHH2pSM2Fv9D8gP9vFiLSGIDUSzht_QEs,23874
|
|
172
|
+
pixeltable/type_system.py,sha256=DuCWaHPeToQ22lDmcQRRHKTEz7ATAfFSYcRgQvdniQM,55321
|
|
170
173
|
pixeltable/utils/__init__.py,sha256=Pwgu-Sg1XkxzdCZ4ZhWP77UgLP3tnQsyCKaUJLF4ajo,1741
|
|
171
174
|
pixeltable/utils/arrow.py,sha256=74wIy58rDYZJBVQ1g85NqzFyiQBvEQhnJ0Gi82iZ0dw,6421
|
|
172
175
|
pixeltable/utils/coco.py,sha256=Y1DWVYguZD4VhKyf7JruYfHWvhkJLq39fzbiSm5cdyY,7304
|
|
173
176
|
pixeltable/utils/code.py,sha256=SbG5OUF_fQAbOgGZHDuENijmbzisVqa4VS9guaZ0KtU,1231
|
|
174
177
|
pixeltable/utils/console_output.py,sha256=x23iDnNwUbsr7Ec20BQ7BLATTsrQZflxc9NucAt_sVU,1150
|
|
175
|
-
pixeltable/utils/coroutine.py,sha256=
|
|
178
|
+
pixeltable/utils/coroutine.py,sha256=d87kLlkVIZq2u0kTE7kJ5Tc_yjEkdGi5sXAuxjLLxXY,896
|
|
176
179
|
pixeltable/utils/dbms.py,sha256=cuQqlzLF7WON_mkJZ4QWlfX6lCxA97V32lhtMcOlDLg,2018
|
|
177
180
|
pixeltable/utils/description_helper.py,sha256=acibNm36wkZG7h6k8gjcypTD_PVV2SL7YgX6cPYP1i8,3743
|
|
178
181
|
pixeltable/utils/documents.py,sha256=x3UHU7eykibyA3eVkSrCK1CQoaid228vp96WUEESssU,3105
|
|
@@ -181,13 +184,13 @@ pixeltable/utils/filecache.py,sha256=8RZZiEkD4awZpR-mn7OhoZPc6_JlPUNSBnMU8BcEAv4
|
|
|
181
184
|
pixeltable/utils/formatter.py,sha256=tbMxE9rBw6wdKUnJhNZ8h9uAF8dZKcihQ2KesqAag9A,10096
|
|
182
185
|
pixeltable/utils/http_server.py,sha256=B5iQ1s_VuwsVC7pUm1joGjLZqaluV8_RfFiU8V1FuG8,2453
|
|
183
186
|
pixeltable/utils/iceberg.py,sha256=L_s9G9NMIGMQdRHtNkks6ntTVW4DKKAw97R9gRmtw5s,553
|
|
184
|
-
pixeltable/utils/media_store.py,sha256=
|
|
187
|
+
pixeltable/utils/media_store.py,sha256=A93aYYhkq3Bz2Q9O7THwAew6z3peOssHK-Tg6YGWCNc,5466
|
|
185
188
|
pixeltable/utils/pytorch.py,sha256=564VHRdDHwD9h0v5lBHEDTJ8c6zx8wuzWYx8ZYjBxlI,3621
|
|
186
189
|
pixeltable/utils/s3.py,sha256=pxip2MlCqd2Qon2dzJXzfxvwtZyc-BAsjAnLL4J_OXY,587
|
|
187
190
|
pixeltable/utils/sql.py,sha256=Sa4Lh-VGe8GToU5W7DRiWf2lMl9B6saPqemiT0ZdHEc,806
|
|
188
191
|
pixeltable/utils/transactional_directory.py,sha256=OFKmu90oP7KwBAljwjnzP_w8euGdAXob3y4Nx9SCNHA,1357
|
|
189
|
-
pixeltable-0.4.
|
|
190
|
-
pixeltable-0.4.
|
|
191
|
-
pixeltable-0.4.
|
|
192
|
-
pixeltable-0.4.
|
|
193
|
-
pixeltable-0.4.
|
|
192
|
+
pixeltable-0.4.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
193
|
+
pixeltable-0.4.4.dist-info/METADATA,sha256=vZzbRSRb1dnaspIVYNFnD5Q6NsxIo-zNkY4qCCGBvSk,20577
|
|
194
|
+
pixeltable-0.4.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
195
|
+
pixeltable-0.4.4.dist-info/entry_points.txt,sha256=ToOd-pRgG7AitEBgYoBCRRB4-KVDQ0pj_9T4a1LgwA4,97
|
|
196
|
+
pixeltable-0.4.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|