pixeltable 0.4.3__py3-none-any.whl → 0.4.5__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/__version__.py +2 -2
- pixeltable/catalog/__init__.py +1 -1
- pixeltable/catalog/catalog.py +619 -255
- pixeltable/catalog/dir.py +1 -2
- pixeltable/catalog/insertable_table.py +9 -9
- pixeltable/catalog/path.py +59 -20
- pixeltable/catalog/schema_object.py +10 -4
- pixeltable/catalog/table.py +51 -53
- pixeltable/catalog/table_version.py +216 -156
- pixeltable/catalog/table_version_path.py +1 -1
- pixeltable/catalog/tbl_ops.py +44 -0
- pixeltable/catalog/view.py +63 -65
- pixeltable/config.py +12 -4
- pixeltable/dataframe.py +75 -6
- pixeltable/env.py +46 -17
- pixeltable/exec/aggregation_node.py +1 -1
- pixeltable/exec/cache_prefetch_node.py +2 -6
- pixeltable/exec/component_iteration_node.py +4 -3
- pixeltable/exec/data_row_batch.py +10 -51
- pixeltable/exec/expr_eval/expr_eval_node.py +2 -2
- pixeltable/exec/in_memory_data_node.py +17 -16
- pixeltable/exec/sql_node.py +6 -7
- pixeltable/exprs/column_ref.py +2 -1
- pixeltable/exprs/data_row.py +13 -13
- pixeltable/exprs/row_builder.py +16 -4
- pixeltable/exprs/string_op.py +1 -1
- pixeltable/func/expr_template_function.py +1 -4
- pixeltable/functions/date.py +1 -1
- pixeltable/functions/gemini.py +4 -4
- pixeltable/functions/math.py +1 -1
- pixeltable/functions/openai.py +9 -6
- pixeltable/functions/timestamp.py +6 -6
- pixeltable/functions/video.py +2 -6
- pixeltable/globals.py +62 -33
- pixeltable/io/datarows.py +2 -1
- 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/schema.py +39 -2
- pixeltable/plan.py +5 -14
- pixeltable/share/packager.py +13 -13
- pixeltable/store.py +31 -7
- pixeltable/type_system.py +2 -1
- pixeltable/utils/filecache.py +1 -1
- pixeltable/utils/http_server.py +2 -3
- pixeltable/utils/media_store.py +90 -34
- {pixeltable-0.4.3.dist-info → pixeltable-0.4.5.dist-info}/METADATA +1 -1
- {pixeltable-0.4.3.dist-info → pixeltable-0.4.5.dist-info}/RECORD +52 -51
- {pixeltable-0.4.3.dist-info → pixeltable-0.4.5.dist-info}/LICENSE +0 -0
- {pixeltable-0.4.3.dist-info → pixeltable-0.4.5.dist-info}/WHEEL +0 -0
- {pixeltable-0.4.3.dist-info → pixeltable-0.4.5.dist-info}/entry_points.txt +0 -0
pixeltable/store.py
CHANGED
|
@@ -7,6 +7,7 @@ import warnings
|
|
|
7
7
|
from typing import Any, Iterable, Iterator, Optional, Union
|
|
8
8
|
|
|
9
9
|
import more_itertools
|
|
10
|
+
import psycopg
|
|
10
11
|
import sqlalchemy as sql
|
|
11
12
|
from tqdm import TqdmWarning, tqdm
|
|
12
13
|
|
|
@@ -122,15 +123,20 @@ class StoreBase:
|
|
|
122
123
|
def _storage_name(self) -> str:
|
|
123
124
|
"""Return the name of the data store table"""
|
|
124
125
|
|
|
125
|
-
def _move_tmp_media_file(self, file_url: Optional[str], col: catalog.Column
|
|
126
|
-
|
|
126
|
+
def _move_tmp_media_file(self, file_url: Optional[str], col: catalog.Column) -> str:
|
|
127
|
+
src_path = MediaStore.resolve_tmp_url(file_url)
|
|
128
|
+
if src_path is None:
|
|
129
|
+
return file_url
|
|
130
|
+
assert col.tbl.id == self.tbl_version.id # Ensure the column belongs to the same table as this store
|
|
131
|
+
new_file_url = MediaStore.relocate_local_media_file(src_path, col)
|
|
132
|
+
return new_file_url
|
|
127
133
|
|
|
128
134
|
def _move_tmp_media_files(
|
|
129
135
|
self, table_row: list[Any], media_cols_by_sql_idx: dict[int, catalog.Column], v_min: int
|
|
130
136
|
) -> None:
|
|
131
137
|
"""Move tmp media files that we generated to a permanent location"""
|
|
132
138
|
for n, col in media_cols_by_sql_idx.items():
|
|
133
|
-
table_row[n] = self._move_tmp_media_file(table_row[n], col
|
|
139
|
+
table_row[n] = self._move_tmp_media_file(table_row[n], col)
|
|
134
140
|
|
|
135
141
|
def count(self) -> int:
|
|
136
142
|
"""Return the number of rows visible in self.tbl_version"""
|
|
@@ -146,8 +152,28 @@ class StoreBase:
|
|
|
146
152
|
return result
|
|
147
153
|
|
|
148
154
|
def create(self) -> None:
|
|
155
|
+
"""Create If Not Exists for this table"""
|
|
149
156
|
conn = Env.get().conn
|
|
150
|
-
self.
|
|
157
|
+
stmt = sql.schema.CreateTable(self.sa_tbl).compile(conn)
|
|
158
|
+
create_stmt = str(stmt)
|
|
159
|
+
if_not_exists_stmt = create_stmt.replace('CREATE TABLE', 'CREATE TABLE IF NOT EXISTS')
|
|
160
|
+
|
|
161
|
+
# Postgres seems not to handle concurrent Create Table If Not Exists correctly, we need to ignore the various
|
|
162
|
+
# errors that can occur when two connections run the same Create Table statement.
|
|
163
|
+
try:
|
|
164
|
+
conn.execute(sql.text(if_not_exists_stmt))
|
|
165
|
+
except (sql.exc.IntegrityError, sql.exc.ProgrammingError) as e:
|
|
166
|
+
Env.get().console_logger.info(f'StoreBase.create() failed with: {e}')
|
|
167
|
+
if (
|
|
168
|
+
isinstance(e.orig, psycopg.errors.UniqueViolation)
|
|
169
|
+
and 'duplicate key value violates unique constraint "pg_type_typname_nsp_index"' in str(e.orig)
|
|
170
|
+
) or (
|
|
171
|
+
isinstance(e.orig, (psycopg.errors.DuplicateObject, psycopg.errors.DuplicateTable))
|
|
172
|
+
and 'already exists' in str(e.orig)
|
|
173
|
+
):
|
|
174
|
+
pass
|
|
175
|
+
else:
|
|
176
|
+
raise
|
|
151
177
|
|
|
152
178
|
def drop(self) -> None:
|
|
153
179
|
"""Drop store table"""
|
|
@@ -238,9 +264,7 @@ class StoreBase:
|
|
|
238
264
|
raise excs.Error(f'Error while evaluating computed column {col.name!r}:\n{exc}') from exc
|
|
239
265
|
table_row, num_row_exc = row_builder.create_table_row(row, None, row.pk)
|
|
240
266
|
if col.col_type.is_media_type():
|
|
241
|
-
table_row[tmp_val_col_sql_idx] = self._move_tmp_media_file(
|
|
242
|
-
table_row[tmp_val_col_sql_idx], col, row.pk[-1]
|
|
243
|
-
)
|
|
267
|
+
table_row[tmp_val_col_sql_idx] = self._move_tmp_media_file(table_row[tmp_val_col_sql_idx], col)
|
|
244
268
|
num_excs += num_row_exc
|
|
245
269
|
batch_table_rows.append(tuple(table_row))
|
|
246
270
|
|
pixeltable/type_system.py
CHANGED
|
@@ -5,6 +5,7 @@ import datetime
|
|
|
5
5
|
import enum
|
|
6
6
|
import io
|
|
7
7
|
import json
|
|
8
|
+
import types
|
|
8
9
|
import typing
|
|
9
10
|
import urllib.parse
|
|
10
11
|
import urllib.request
|
|
@@ -307,7 +308,7 @@ class ColumnType:
|
|
|
307
308
|
"""
|
|
308
309
|
origin = typing.get_origin(t)
|
|
309
310
|
type_args = typing.get_args(t)
|
|
310
|
-
if origin
|
|
311
|
+
if origin in (typing.Union, types.UnionType):
|
|
311
312
|
# Check if `t` has the form Optional[T].
|
|
312
313
|
if len(type_args) == 2 and type(None) in type_args:
|
|
313
314
|
# `t` is a type of the form Optional[T] (equivalently, Union[T, None] or Union[None, T]).
|
pixeltable/utils/filecache.py
CHANGED
|
@@ -214,7 +214,7 @@ class FileCache:
|
|
|
214
214
|
new_path = entry.path
|
|
215
215
|
os.rename(str(path), str(new_path))
|
|
216
216
|
new_path.touch(exist_ok=True)
|
|
217
|
-
_logger.debug(f'
|
|
217
|
+
_logger.debug(f'FileCache: cached url {url} with file name {new_path}')
|
|
218
218
|
return new_path
|
|
219
219
|
|
|
220
220
|
def ensure_capacity(self, size: int) -> None:
|
pixeltable/utils/http_server.py
CHANGED
|
@@ -2,7 +2,7 @@ import http
|
|
|
2
2
|
import http.server
|
|
3
3
|
import logging
|
|
4
4
|
import pathlib
|
|
5
|
-
import urllib
|
|
5
|
+
import urllib.request
|
|
6
6
|
from typing import Any
|
|
7
7
|
|
|
8
8
|
_logger = logging.getLogger('pixeltable.http.server')
|
|
@@ -36,8 +36,7 @@ class AbsolutePathHandler(http.server.SimpleHTTPRequestHandler):
|
|
|
36
36
|
path = path.split('?', 1)[0]
|
|
37
37
|
path = path.split('#', 1)[0]
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
return str(path)
|
|
39
|
+
return str(pathlib.Path(urllib.request.url2pathname(path)))
|
|
41
40
|
|
|
42
41
|
def log_message(self, format: str, *args: Any) -> None:
|
|
43
42
|
"""override logging to stderr in http.server.BaseHTTPRequestHandler"""
|
pixeltable/utils/media_store.py
CHANGED
|
@@ -1,91 +1,147 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import glob
|
|
2
4
|
import os
|
|
3
5
|
import re
|
|
4
6
|
import shutil
|
|
5
|
-
import urllib
|
|
7
|
+
import urllib.parse
|
|
8
|
+
import urllib.request
|
|
6
9
|
import uuid
|
|
7
10
|
from collections import defaultdict
|
|
8
11
|
from pathlib import Path
|
|
9
|
-
from typing import Optional
|
|
12
|
+
from typing import TYPE_CHECKING, Optional
|
|
10
13
|
from uuid import UUID
|
|
11
14
|
|
|
12
|
-
|
|
15
|
+
import PIL.Image
|
|
16
|
+
|
|
17
|
+
from pixeltable import env
|
|
18
|
+
|
|
19
|
+
if TYPE_CHECKING:
|
|
20
|
+
from pixeltable.catalog import Column
|
|
13
21
|
|
|
14
22
|
|
|
15
23
|
class MediaStore:
|
|
16
24
|
"""
|
|
17
25
|
Utilities to manage media files stored in Env.media_dir
|
|
18
26
|
|
|
19
|
-
Media file names are a composite of: table id, column id,
|
|
20
|
-
the table id/column id/
|
|
27
|
+
Media file names are a composite of: table id, column id, tbl_version, new uuid:
|
|
28
|
+
the table id/column id/tbl_version are redundant but useful for identifying all files for a table
|
|
21
29
|
or all files created for a particular version of a table
|
|
22
30
|
"""
|
|
23
31
|
|
|
24
32
|
pattern = re.compile(r'([0-9a-fA-F]+)_(\d+)_(\d+)_([0-9a-fA-F]+)') # tbl_id, col_id, version, uuid
|
|
25
33
|
|
|
26
34
|
@classmethod
|
|
27
|
-
def
|
|
35
|
+
def _media_dir(cls) -> Path:
|
|
36
|
+
"""Returns the media directory path."""
|
|
37
|
+
return env.Env.get().media_dir
|
|
38
|
+
|
|
39
|
+
@classmethod
|
|
40
|
+
def _tmp_dir(cls) -> Path:
|
|
41
|
+
"""Returns the temporary directory path."""
|
|
42
|
+
return env.Env.get().tmp_dir
|
|
43
|
+
|
|
44
|
+
@classmethod
|
|
45
|
+
def _prepare_media_path(cls, col: Column, ext: Optional[str] = None) -> Path:
|
|
28
46
|
"""
|
|
29
47
|
Construct a new, unique Path name for a persisted media file, and create the parent directory
|
|
30
48
|
for the new Path if it does not already exist. The Path will reside in
|
|
31
49
|
the environment's media_dir.
|
|
32
50
|
"""
|
|
33
51
|
id_hex = uuid.uuid4().hex
|
|
34
|
-
parent =
|
|
52
|
+
parent = cls._media_dir() / col.tbl.id.hex / id_hex[:2] / id_hex[:4]
|
|
35
53
|
parent.mkdir(parents=True, exist_ok=True)
|
|
36
|
-
return parent / f'{
|
|
54
|
+
return parent / f'{col.tbl.id.hex}_{col.id}_{col.tbl.version}_{id_hex}{ext or ""}'
|
|
37
55
|
|
|
38
56
|
@classmethod
|
|
39
|
-
def
|
|
40
|
-
"""
|
|
41
|
-
If it is not a tmp file in the tmp_dir, return the original url.
|
|
57
|
+
def resolve_tmp_url(cls, file_url: Optional[str]) -> Optional[Path]:
|
|
58
|
+
"""Return path if the given url is a tmp file.
|
|
42
59
|
|
|
43
60
|
Args:
|
|
44
|
-
file_url: URL of the tmp media file to
|
|
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
|
|
61
|
+
file_url: URL of the tmp media file to check
|
|
48
62
|
|
|
49
63
|
Returns:
|
|
50
|
-
|
|
64
|
+
If the file_url is a tmp file, return a Path() to the tmp file, None, otherwise
|
|
51
65
|
"""
|
|
52
66
|
if file_url is None:
|
|
53
67
|
return None
|
|
54
68
|
assert isinstance(file_url, str), type(file_url)
|
|
55
|
-
pxt_tmp_dir = str(Env.get().tmp_dir)
|
|
56
69
|
parsed = urllib.parse.urlparse(file_url)
|
|
57
70
|
# We should never be passed a local file path here. The "len > 1" ensures that Windows
|
|
58
71
|
# file paths aren't mistaken for URLs with a single-character scheme.
|
|
59
72
|
assert len(parsed.scheme) > 1, file_url
|
|
60
73
|
if parsed.scheme != 'file':
|
|
61
74
|
# remote url
|
|
62
|
-
return
|
|
63
|
-
|
|
64
|
-
|
|
75
|
+
return None
|
|
76
|
+
src_path = urllib.parse.unquote(urllib.request.url2pathname(parsed.path))
|
|
77
|
+
pxt_tmp_dir = str(cls._tmp_dir())
|
|
78
|
+
if not src_path.startswith(pxt_tmp_dir):
|
|
65
79
|
# not a tmp file
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
return new_file_url
|
|
80
|
+
return None
|
|
81
|
+
return Path(src_path)
|
|
69
82
|
|
|
70
83
|
@classmethod
|
|
71
|
-
def relocate_local_media_file(cls, src_path: Path,
|
|
72
|
-
|
|
84
|
+
def relocate_local_media_file(cls, src_path: Path, col: Column) -> str:
|
|
85
|
+
"""Relocate a local file to the MediaStore, and return its new URL"""
|
|
86
|
+
dest_path = cls._prepare_media_path(col, ext=src_path.suffix)
|
|
73
87
|
src_path.rename(dest_path)
|
|
74
88
|
return urllib.parse.urljoin('file:', urllib.request.pathname2url(str(dest_path)))
|
|
75
89
|
|
|
76
90
|
@classmethod
|
|
77
|
-
def
|
|
78
|
-
"""
|
|
79
|
-
|
|
91
|
+
def save_media_object(cls, data: bytes | PIL.Image.Image, col: Column, format: Optional[str]) -> tuple[Path, str]:
|
|
92
|
+
"""Save a media data to a file in the MediaStore
|
|
93
|
+
Returns:
|
|
94
|
+
dest_path: Path to the saved media file
|
|
95
|
+
url: URL of the saved media file
|
|
96
|
+
"""
|
|
97
|
+
assert col.col_type.is_media_type(), f'MediaStore: request to store non media_type Column {col.name}'
|
|
98
|
+
dest_path = cls._prepare_media_path(col)
|
|
99
|
+
if isinstance(data, bytes):
|
|
100
|
+
dest_path = cls._save_binary_media_file(data, dest_path, format)
|
|
101
|
+
elif isinstance(data, PIL.Image.Image):
|
|
102
|
+
dest_path = cls._save_pil_image_file(data, dest_path, format)
|
|
103
|
+
else:
|
|
104
|
+
raise ValueError(f'Unsupported media object type: {type(data)}')
|
|
105
|
+
url = urllib.parse.urljoin('file:', urllib.request.pathname2url(str(dest_path)))
|
|
106
|
+
return dest_path, url
|
|
107
|
+
|
|
108
|
+
@classmethod
|
|
109
|
+
def _save_binary_media_file(cls, file_data: bytes, dest_path: Path, format: Optional[str]) -> Path:
|
|
110
|
+
"""Save a media binary data to a file in the MediaStore. format is ignored for binary data."""
|
|
111
|
+
assert isinstance(file_data, bytes)
|
|
112
|
+
with open(dest_path, 'wb') as f:
|
|
113
|
+
f.write(file_data)
|
|
114
|
+
f.flush() # Ensures Python buffers are written to OS
|
|
115
|
+
os.fsync(f.fileno()) # Forces OS to write to physical storage
|
|
116
|
+
return dest_path
|
|
117
|
+
|
|
118
|
+
@classmethod
|
|
119
|
+
def _save_pil_image_file(cls, image: PIL.Image.Image, dest_path: Path, format: Optional[str]) -> Path:
|
|
120
|
+
"""Save a PIL Image to a file in the MediaStore with the specified format."""
|
|
121
|
+
if dest_path.suffix != f'.{format}':
|
|
122
|
+
dest_path = dest_path.with_name(f'{dest_path.name}.{format}')
|
|
123
|
+
|
|
124
|
+
with open(dest_path, 'wb') as f:
|
|
125
|
+
image.save(f, format=format)
|
|
126
|
+
f.flush() # Ensures Python buffers are written to OS
|
|
127
|
+
os.fsync(f.fileno()) # Forces OS to write to physical storage
|
|
128
|
+
return dest_path
|
|
129
|
+
|
|
130
|
+
@classmethod
|
|
131
|
+
def delete(cls, tbl_id: UUID, tbl_version: Optional[int] = None) -> None:
|
|
132
|
+
"""Delete all files belonging to tbl_id. If tbl_version is not None, delete
|
|
133
|
+
only those files belonging to the specified tbl_version."""
|
|
80
134
|
assert tbl_id is not None
|
|
81
|
-
if
|
|
135
|
+
if tbl_version is None:
|
|
82
136
|
# Remove the entire folder for this table id.
|
|
83
|
-
path =
|
|
137
|
+
path = cls._media_dir() / tbl_id.hex
|
|
84
138
|
if path.exists():
|
|
85
139
|
shutil.rmtree(path)
|
|
86
140
|
else:
|
|
87
|
-
# Remove only the elements for the specified
|
|
88
|
-
paths = glob.glob(
|
|
141
|
+
# Remove only the elements for the specified tbl_version.
|
|
142
|
+
paths = glob.glob(
|
|
143
|
+
str(cls._media_dir() / tbl_id.hex) + f'/**/{tbl_id.hex}_*_{tbl_version}_*', recursive=True
|
|
144
|
+
)
|
|
89
145
|
for p in paths:
|
|
90
146
|
os.remove(p)
|
|
91
147
|
|
|
@@ -94,12 +150,12 @@ class MediaStore:
|
|
|
94
150
|
"""
|
|
95
151
|
Return number of files for given tbl_id.
|
|
96
152
|
"""
|
|
97
|
-
paths = glob.glob(str(
|
|
153
|
+
paths = glob.glob(str(cls._media_dir() / tbl_id.hex) + f'/**/{tbl_id.hex}_*', recursive=True)
|
|
98
154
|
return len(paths)
|
|
99
155
|
|
|
100
156
|
@classmethod
|
|
101
157
|
def stats(cls) -> list[tuple[UUID, int, int, int]]:
|
|
102
|
-
paths = glob.glob(str(
|
|
158
|
+
paths = glob.glob(str(cls._media_dir()) + '/**', recursive=True)
|
|
103
159
|
# key: (tbl_id, col_id), value: (num_files, size)
|
|
104
160
|
d: dict[tuple[UUID, int], list[int]] = defaultdict(lambda: [0, 0])
|
|
105
161
|
for p in paths:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pixeltable
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.5
|
|
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,48 +1,49 @@
|
|
|
1
1
|
pixeltable/__init__.py,sha256=-bu8Al-s2PyGpPYZgj016gMl9s6NMQfjxVRwvhfd8IY,1457
|
|
2
|
-
pixeltable/__version__.py,sha256=
|
|
3
|
-
pixeltable/catalog/__init__.py,sha256=
|
|
4
|
-
pixeltable/catalog/catalog.py,sha256=
|
|
2
|
+
pixeltable/__version__.py,sha256=Rp6F2grEwgqmKV0IXDP2NQb_ynOCuLS_E2fEnAzoerI,112
|
|
3
|
+
pixeltable/catalog/__init__.py,sha256=oiiga_fe4iQsBh8lfLjLBTbvzaZfD4QM7hmMZDpAGGU,636
|
|
4
|
+
pixeltable/catalog/catalog.py,sha256=k5F-v0NIImRHAM8zT0v2X6Ri56fjdJfnfHcnXYz39i0,93883
|
|
5
5
|
pixeltable/catalog/column.py,sha256=HZfujfvdkJeyOWfgmVutJLWOy19R8ZFczaEjYTZ5NQo,11495
|
|
6
|
-
pixeltable/catalog/dir.py,sha256=
|
|
6
|
+
pixeltable/catalog/dir.py,sha256=VYTscPlKR6XhupPTXlJ8txAHxS5GSpPJ3LIleDJagVQ,2047
|
|
7
7
|
pixeltable/catalog/globals.py,sha256=uMIDsbeDzFxZbcgKDTOiT5plC1gAKgz1oxxdh1odIPw,2648
|
|
8
|
-
pixeltable/catalog/insertable_table.py,sha256=
|
|
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=O3FfxrvyX2crijBhp_2k4-3mG3BFxwba-tlPB74QtJQ,3780
|
|
11
|
+
pixeltable/catalog/schema_object.py,sha256=_7m3i-5IX-_yNkWXeq97ZbfDwAfrYPFhnc5ifghADcE,2195
|
|
12
|
+
pixeltable/catalog/table.py,sha256=OF2FZ95ipQgXLa8WvDZfz4AHCawpHMe4A73j694aXPI,76111
|
|
13
|
+
pixeltable/catalog/table_version.py,sha256=sJhIbrDcgDFCV22acOedG10jWsYAsWBEqLEnWeyfWFA,68583
|
|
14
14
|
pixeltable/catalog/table_version_handle.py,sha256=FTPRqcGY-h-POcWyZbd9b8P2D5zIw5OSUvwF_dbyCGo,3608
|
|
15
|
-
pixeltable/catalog/table_version_path.py,sha256=
|
|
15
|
+
pixeltable/catalog/table_version_path.py,sha256=TcMG-R5b0O72HCvk0Qn8kGpZnfIsYhawOP7RjP1Sjb4,9815
|
|
16
|
+
pixeltable/catalog/tbl_ops.py,sha256=Vdcz4Nzvdw09zcQaCEaOr9Uufk2rQHgG0vBvMbQp9R8,1145
|
|
16
17
|
pixeltable/catalog/update_status.py,sha256=tF3KkDc6kvEQ7Tg3VMj-n774uKi1iLla61wLyeuwDRs,6888
|
|
17
|
-
pixeltable/catalog/view.py,sha256=
|
|
18
|
-
pixeltable/config.py,sha256=
|
|
19
|
-
pixeltable/dataframe.py,sha256=
|
|
20
|
-
pixeltable/env.py,sha256=
|
|
18
|
+
pixeltable/catalog/view.py,sha256=vIU8kOwjnuvrZTj6cJ-ZC6czdx1DBWJnD4R3bb-pwIw,15123
|
|
19
|
+
pixeltable/config.py,sha256=NbiB6qoE8ujjEHpRbzlNDUMTi6EFvJ0sGHGxdwkWkgc,7472
|
|
20
|
+
pixeltable/dataframe.py,sha256=CtgHlozd6coPGcnMd1XF_Gsh0q0hy3A7co2SZJosFA0,63072
|
|
21
|
+
pixeltable/env.py,sha256=zd2E7ZKuAdIZjAoDfdVesfwTSCOUdF9lq0-Y_l3bLmc,38290
|
|
21
22
|
pixeltable/exceptions.py,sha256=Gm8d3TL2iiv6Pj2DLd29wp_j41qNBhxXL9iTQnL4Nk4,1116
|
|
22
23
|
pixeltable/exec/__init__.py,sha256=hQvj4ra4ubxu94qyuCBTHKsuYGzundkTTluOTIb5Bx8,524
|
|
23
|
-
pixeltable/exec/aggregation_node.py,sha256=
|
|
24
|
-
pixeltable/exec/cache_prefetch_node.py,sha256=
|
|
25
|
-
pixeltable/exec/component_iteration_node.py,sha256=
|
|
26
|
-
pixeltable/exec/data_row_batch.py,sha256=
|
|
24
|
+
pixeltable/exec/aggregation_node.py,sha256=2GGg0WraYYUZxUK4CURYKyCeAg-ojRHkZEAAo1Z-0vE,4490
|
|
25
|
+
pixeltable/exec/cache_prefetch_node.py,sha256=rAGCSR8nJ_LkdYhyEUqVZen85xO_ikOFu_SqYOpR2Rw,11865
|
|
26
|
+
pixeltable/exec/component_iteration_node.py,sha256=7k8Wfzjc15SO0V8rc-zYTiB3DQ-euMtNQIOsve_FY7I,4797
|
|
27
|
+
pixeltable/exec/data_row_batch.py,sha256=kqSM33A3w8nEzUsBJ-sz3DFVfQYibz57djdm_ZYvBnk,1737
|
|
27
28
|
pixeltable/exec/exec_context.py,sha256=jKeLStfkjwCKKAooC-7a7qZUnZU5O0_JQhanhVerV9c,984
|
|
28
29
|
pixeltable/exec/exec_node.py,sha256=dEPVuXFU4niYONCk9ThKx8cZUBNkv0gbmKMDERgdDks,3671
|
|
29
30
|
pixeltable/exec/expr_eval/__init__.py,sha256=sQThSEByK_DLfB-_-18RFhpARx49cSXYEkpCDyi0vQI,61
|
|
30
31
|
pixeltable/exec/expr_eval/evaluators.py,sha256=-6s_y29Wh8p35SVKkXtnA0NkzcHVw1Z8PgHGiFrMsqs,17135
|
|
31
|
-
pixeltable/exec/expr_eval/expr_eval_node.py,sha256=
|
|
32
|
+
pixeltable/exec/expr_eval/expr_eval_node.py,sha256=s7rb58bwBZsZyK7UXm9PEZa1JQpidCfewK_gin3MXP0,18933
|
|
32
33
|
pixeltable/exec/expr_eval/globals.py,sha256=fFrj2O53TgHDfVF8dgnyn1fPLi4ZHQuylewf5aHMwYk,7752
|
|
33
34
|
pixeltable/exec/expr_eval/row_buffer.py,sha256=YY0thdlMNNReEOTyPp36xKPeMeXSZ0VrI9bJsXgo7sU,2744
|
|
34
35
|
pixeltable/exec/expr_eval/schedulers.py,sha256=DuebLy_3Bu3MTUG3AQNk7JcVv69OeeRFu5bcZGT5T2c,22233
|
|
35
|
-
pixeltable/exec/in_memory_data_node.py,sha256=
|
|
36
|
+
pixeltable/exec/in_memory_data_node.py,sha256=xg7dyX0EMs35AgAMW98SGt7X48F9teQgQR4Awb8BhVI,3568
|
|
36
37
|
pixeltable/exec/row_update_node.py,sha256=zU0eSyn81-vRrjAMOadRqU8luTshnPUtIbS7npyLBKY,2798
|
|
37
|
-
pixeltable/exec/sql_node.py,sha256=
|
|
38
|
+
pixeltable/exec/sql_node.py,sha256=EHZNvbkzECJUgCQtqFjC1yGr6PkSYZXM3wPlAGcGuAI,27436
|
|
38
39
|
pixeltable/exprs/__init__.py,sha256=AxSMjKNavCT9F6vBaNR-nwX2iupAI5hbMb5hEj65Tfk,1096
|
|
39
40
|
pixeltable/exprs/arithmetic_expr.py,sha256=sZPao0qdFWbrDx0eiAVxw1wGHJXZ5ZoCpQaScysBldE,7333
|
|
40
41
|
pixeltable/exprs/array_slice.py,sha256=8Zv0E2RghdJi1Mbk0kKtOz2ccGQuXwLLb6R9v1jk7hA,2180
|
|
41
42
|
pixeltable/exprs/column_property_ref.py,sha256=rq8VD34fZwAZuN9wIqQEwVay7LTPBKvXXdZPknOJM6M,4422
|
|
42
|
-
pixeltable/exprs/column_ref.py,sha256=
|
|
43
|
+
pixeltable/exprs/column_ref.py,sha256=MH83bYsef5UC4vWU71PE-lPiVd8hVw4tT6sjdCCvWNw,15473
|
|
43
44
|
pixeltable/exprs/comparison.py,sha256=lgaRx000ZaNH10A4hrtsi5XoZKE-CNEONGMi7jxJfcM,5133
|
|
44
45
|
pixeltable/exprs/compound_predicate.py,sha256=vJVRVueAmaKnjiHCLWyh8wHgktzzK0DVqbOIQJgTjF8,3801
|
|
45
|
-
pixeltable/exprs/data_row.py,sha256=
|
|
46
|
+
pixeltable/exprs/data_row.py,sha256=ZUwx_YtQJTmY4iXHGlfM-m2N-2IJrbP3f8EDIalAQnI,11766
|
|
46
47
|
pixeltable/exprs/expr.py,sha256=uLEMuJzHwPW3hBIcsASnhjcPyGBkY8_8sFCqgRetKP0,36013
|
|
47
48
|
pixeltable/exprs/expr_dict.py,sha256=2ZeZ0eACx3VrRNEOjipuT5WxOIzjXQ_DSip8NTH0KRo,1584
|
|
48
49
|
pixeltable/exprs/expr_set.py,sha256=OlRTbHAAYH2fOEs1HE-8DIu7Z247xVfoT_9Y58GZoOQ,2559
|
|
@@ -56,11 +57,11 @@ pixeltable/exprs/json_path.py,sha256=sFuDjfz8_rlea4TKd68CS4pQTUiLDi68YwsgcQRHffI
|
|
|
56
57
|
pixeltable/exprs/literal.py,sha256=OCJL_pw_WKqx3bXMEwL6yNaKVAKDtGRzSZUFwucRxZI,4860
|
|
57
58
|
pixeltable/exprs/method_ref.py,sha256=NNhJTGo7luZLh8EJdFIZAax9LiiqqDCEK1AwPmHip0w,2642
|
|
58
59
|
pixeltable/exprs/object_ref.py,sha256=idYFcT27jv0BjtJT3paL37xDrZZc35_3eCJyQOIqdZU,1999
|
|
59
|
-
pixeltable/exprs/row_builder.py,sha256=
|
|
60
|
+
pixeltable/exprs/row_builder.py,sha256=6-DU36EJBpfHdW8mm6o66LFUf9cg4jJsbQwpx1U4ZCk,23020
|
|
60
61
|
pixeltable/exprs/rowid_ref.py,sha256=8MvQs3Uu01Gz__WXw9BCJv0CHrSaFDuQtU7rUr1AWEk,5008
|
|
61
62
|
pixeltable/exprs/similarity_expr.py,sha256=i0UUnMSKKGXd3Uksu6FU2NvkfG0qzfzfi-GPy-LdutM,3688
|
|
62
63
|
pixeltable/exprs/sql_element_cache.py,sha256=c7Q6vFK4xnf9vmcRYnXiAcwPBBwmw0dolftM4BwDO8c,1359
|
|
63
|
-
pixeltable/exprs/string_op.py,sha256=
|
|
64
|
+
pixeltable/exprs/string_op.py,sha256=J3Cm0hrctLma1YU3CszE965fRhsP0gcsi9PM0UVlQ7Q,4161
|
|
64
65
|
pixeltable/exprs/type_cast.py,sha256=_nDzTxg5kXVGLewI0FrH2zmwJzgptdxYd5Jvuyig0UI,2322
|
|
65
66
|
pixeltable/exprs/variable.py,sha256=UwWwaNECbtwyC8v0g8iqCa3a6mO8z9lK7ta5NrlCwvs,1493
|
|
66
67
|
pixeltable/ext/__init__.py,sha256=UgDXWzGWiQIrwOuEvWTePLBcR2kecllPAE7gp-42Awg,457
|
|
@@ -70,7 +71,7 @@ pixeltable/ext/functions/yolox.py,sha256=dX22nMb-0n2hZi7WhZ1Y4LIpFk5loyeXXuSUcc2
|
|
|
70
71
|
pixeltable/func/__init__.py,sha256=SQPtGr_9dZNyXzxaZQcP3oVLKnbbs4UqV6sg8XUQHxQ,535
|
|
71
72
|
pixeltable/func/aggregate_function.py,sha256=5_MgqHAlMaacX2sPIHv_auTvYXtqR5MIZy_WqYQSdho,13264
|
|
72
73
|
pixeltable/func/callable_function.py,sha256=g_pA-g631YcFGLix9PpHYfgjOeS2qF0Csm1VxX8fah0,9278
|
|
73
|
-
pixeltable/func/expr_template_function.py,sha256=
|
|
74
|
+
pixeltable/func/expr_template_function.py,sha256=plKj8k51q4c4eyy7mWrix6M0x48XmKIUSzCq_UnlwhA,5828
|
|
74
75
|
pixeltable/func/function.py,sha256=3nSXRdGFGi471x7_TMVdSgXs1SQuLv4HaUJA7NLhv_M,23140
|
|
75
76
|
pixeltable/func/function_registry.py,sha256=7AQ1bdF2DJbTRn9xx6s5cC_VHtCBXGt_GyJJEjJHcMw,12308
|
|
76
77
|
pixeltable/func/globals.py,sha256=5Wo4GPxYgHRRk5nvV0h_lAthKSalxKvj5n1p-uMPR0U,1501
|
|
@@ -83,49 +84,49 @@ pixeltable/functions/__init__.py,sha256=Akk6Nk-rpz2D_V4kJTfyP56xnNbCz3EtxVAuwLoi
|
|
|
83
84
|
pixeltable/functions/anthropic.py,sha256=G2E0sH5vP933eZZxhz1tOByy5cg6N2XPvhSqIBzqufo,8782
|
|
84
85
|
pixeltable/functions/audio.py,sha256=6_tUhSZgxhOQQJemvZYNEoKNjWdr3SgJsvLkKCSmtfw,1633
|
|
85
86
|
pixeltable/functions/bedrock.py,sha256=lTCFHjYunF3minBGWcjXR90yJ8resFjXr4niyKhfxms,4217
|
|
86
|
-
pixeltable/functions/date.py,sha256=
|
|
87
|
+
pixeltable/functions/date.py,sha256=qs1svJ9FVod3OTa5hQNKIuashb6tVhW_2EAEXYGQX74,5308
|
|
87
88
|
pixeltable/functions/deepseek.py,sha256=IAo2e_DhkM0A5NrskxuPQUGYzIYAl4do_mdO1Qc3PeY,3338
|
|
88
89
|
pixeltable/functions/fireworks.py,sha256=q7eWlYfiWbA0d9r3CB_NAe1fw3q-Z7qsw2gyGJNgWLQ,4786
|
|
89
|
-
pixeltable/functions/gemini.py,sha256=
|
|
90
|
+
pixeltable/functions/gemini.py,sha256=Yede8DzWEa4eboW7SNTOooBabriUlsnQMUdG5jCWRQo,8320
|
|
90
91
|
pixeltable/functions/globals.py,sha256=ZXBV2LPXT2-yQYHHE7q8N1WdAr0WxiIO1ax0qwxhmK8,5118
|
|
91
92
|
pixeltable/functions/groq.py,sha256=FpR_LJpfZfzyhEvoBMMbQpQ-VQSRzBsS9U21qaINwww,3593
|
|
92
93
|
pixeltable/functions/huggingface.py,sha256=cJyf86qMcvivkGGNduNHAvh_idI-e4wJm0Zje1KJ2vQ,20611
|
|
93
94
|
pixeltable/functions/image.py,sha256=IKXljMma-uU88efptC3F4aywau7DYcD-Nqd3YpmRNRw,13971
|
|
94
95
|
pixeltable/functions/json.py,sha256=d7-AvwytUQtQYF_JnWJkptT_Yq0NgMpWfVk-m3U6qTY,807
|
|
95
96
|
pixeltable/functions/llama_cpp.py,sha256=1QB4vQ7J4Za1mL93bRIBXgokNtpzzYr_QU6KF27i9xo,3919
|
|
96
|
-
pixeltable/functions/math.py,sha256=
|
|
97
|
+
pixeltable/functions/math.py,sha256=jhlD7v4eY-6KdmsFEBqb-W_vspGahOosUvFahWFzxrU,4969
|
|
97
98
|
pixeltable/functions/mistralai.py,sha256=Fk52mfWUfxVy-yCxhH6wrGS7nLLSiOOrWxbTkkiQ-O8,5542
|
|
98
99
|
pixeltable/functions/ollama.py,sha256=4-6h9Foq_7Ut7JtEHGkeg1KbuKaFywSuMrKiw0xAyCA,4231
|
|
99
|
-
pixeltable/functions/openai.py,sha256=
|
|
100
|
+
pixeltable/functions/openai.py,sha256=NM6ta09KBCyK60fJiM8cQJNqeGzIeF7OlC3k9AeSQV8,27985
|
|
100
101
|
pixeltable/functions/replicate.py,sha256=sPvRGr0j0kCDc6Vz3mPUioFflApijukvZWJJUO2bqIQ,2429
|
|
101
102
|
pixeltable/functions/string.py,sha256=LdBNOna5PUSPmM5VlJ_qhmwzyFhumW0k6Dvx2rXSZtc,25356
|
|
102
|
-
pixeltable/functions/timestamp.py,sha256=
|
|
103
|
+
pixeltable/functions/timestamp.py,sha256=3GVCVIWdry96Qk5XXuvbJ58Tp30iY5snBibzl2CHjQc,9143
|
|
103
104
|
pixeltable/functions/together.py,sha256=A8J19BXywyWQ6a2_n05-8uIG5jquOBGqPmW3mb-NrIc,8842
|
|
104
105
|
pixeltable/functions/util.py,sha256=uQNkyBSkTVMe1wbUI2Q0nz-mM3qPVTF86yK8c9OFIcE,954
|
|
105
|
-
pixeltable/functions/video.py,sha256=
|
|
106
|
+
pixeltable/functions/video.py,sha256=zrh8De3w3zHe3QQ6T8d3IKGRNbin6wAcIQa6lRi5jL0,8511
|
|
106
107
|
pixeltable/functions/vision.py,sha256=_a0wY3akkVhWnnxlq__1VzSLylytlNadpNOOPOwSfLk,15393
|
|
107
108
|
pixeltable/functions/whisper.py,sha256=c9E6trhc2UcShVaGaEBCUEpArke1ql3MV5We0qSgmuU,2960
|
|
108
|
-
pixeltable/globals.py,sha256=
|
|
109
|
+
pixeltable/globals.py,sha256=MYoqSgpDJxnaDfxlZfoq2sBBB-uld8xjzN0BymM-Rh8,36472
|
|
109
110
|
pixeltable/index/__init__.py,sha256=97aFuxiP_oz1ldn5iq8IWApkOV8XG6ZIBW5-9rkS0vM,122
|
|
110
111
|
pixeltable/index/base.py,sha256=200s7v3Zy810bRlbSAYzxxaEjVssl6r8esTHiSvWRwQ,1704
|
|
111
112
|
pixeltable/index/btree.py,sha256=8B06D67ay0DFUtEBC5q4bLjxMq7ILpKyyoLAiSaamzA,2503
|
|
112
113
|
pixeltable/index/embedding_index.py,sha256=B_k_3UJmSv7t2ljUg8GC_D4t1jc03PVsTAvxqiTmHBA,11754
|
|
113
114
|
pixeltable/io/__init__.py,sha256=chVGh3ygtZwSY6g_skIyCsjxwzo2847jDq9YGObAY98,608
|
|
114
|
-
pixeltable/io/datarows.py,sha256=
|
|
115
|
+
pixeltable/io/datarows.py,sha256=UibRI3TH6E8WTaUSxVC4g0FfLcbM57OjbUIk3IQpU2k,6179
|
|
115
116
|
pixeltable/io/external_store.py,sha256=rOYBwTqcZZVU2toWxJ_9Iy2w2YO0DhuABrM2xGmqHSo,14787
|
|
116
117
|
pixeltable/io/fiftyone.py,sha256=v0r28bIk2I0TRP5DfVHtBIUa4DpIJDK5sgExxOmHZ_w,6882
|
|
117
118
|
pixeltable/io/globals.py,sha256=so-skHogbXocuzI_IweH2cEX_SW_tDvFqBZyxeMyMzc,11375
|
|
118
119
|
pixeltable/io/hf_datasets.py,sha256=USCWp0nqs2D9FFfxlGhFy6pn2kDUwGfDHgUiv0-osc8,5634
|
|
119
120
|
pixeltable/io/label_studio.py,sha256=XpPkOLktm37Jnhh5ce1PQpUYzeuPJjoCZDaSGedagF4,31426
|
|
120
|
-
pixeltable/io/pandas.py,sha256=
|
|
121
|
+
pixeltable/io/pandas.py,sha256=wzxBggItahT0yjGoV0G_csVAcYlcMXArlF6lfePXqUc,9053
|
|
121
122
|
pixeltable/io/parquet.py,sha256=-cxyy9wMRzGFDJWhUIjACfQMyAmajyoFcTXSkB8qESE,7818
|
|
122
|
-
pixeltable/io/table_data_conduit.py,sha256=
|
|
123
|
+
pixeltable/io/table_data_conduit.py,sha256=8pTWXr9fCWUbGPcNX7Fm3WXhipBiv3pdbTMok02vbQs,22078
|
|
123
124
|
pixeltable/io/utils.py,sha256=YMfhpqMitWz1PhXJGkCNOgNtEM1AZ55S0zXVhljC5kY,4260
|
|
124
125
|
pixeltable/iterators/__init__.py,sha256=bU4EmbX85J1URmRw6G71f2I77b1ctqngEOwDmRB3T0w,455
|
|
125
|
-
pixeltable/iterators/audio.py,sha256=
|
|
126
|
+
pixeltable/iterators/audio.py,sha256=Xuv6sOuhhMbof87JrlO218Fm_j6MoMxEr88otmoXME4,9623
|
|
126
127
|
pixeltable/iterators/base.py,sha256=ZC0ZvXL4iw6AmT8cu-Mdx-T2UG9nmJYV1C6LK4efAfw,1669
|
|
127
128
|
pixeltable/iterators/document.py,sha256=wJYSnzusJFaxipv5y0uQw-surN9fFz0Aq-s7w_l_Yk8,20306
|
|
128
|
-
pixeltable/iterators/image.py,sha256=
|
|
129
|
+
pixeltable/iterators/image.py,sha256=RrFdf5cnFIQzWKJk4uYi1m1p2qAiz909THYhRQ27DbY,3603
|
|
129
130
|
pixeltable/iterators/string.py,sha256=URj5edWp-CsorjN_8nnfWGvtIFs_Zh4VPm6htlJbFkU,1257
|
|
130
131
|
pixeltable/iterators/video.py,sha256=L5S1YPmT_zM11vW9fK6d5nQpUvHVewQWmfDmy4BD45E,9134
|
|
131
132
|
pixeltable/metadata/__init__.py,sha256=iJxMsd3s5yNZ5ciIBzQCa0frXZKgvFj2_-H0Sf4N1mk,3154
|
|
@@ -160,15 +161,15 @@ pixeltable/metadata/converters/convert_38.py,sha256=YyNyocwzzdJRcI0YSCo_70Q4hSk6
|
|
|
160
161
|
pixeltable/metadata/converters/convert_39.py,sha256=YaEfgStxtYGRbuRLFw8wTAZVJRzIU6zL6nPU2zuDcEU,4658
|
|
161
162
|
pixeltable/metadata/converters/util.py,sha256=QUBOj2F_6rCAdIo0lgD1IVgAM15Vmq7ikQspB4s0eQ8,7732
|
|
162
163
|
pixeltable/metadata/notes.py,sha256=3fdZDFpL1-b194Ejv0Y0YP-vbnV-XvVP9wOmZM9XARA,1545
|
|
163
|
-
pixeltable/metadata/schema.py,sha256=
|
|
164
|
+
pixeltable/metadata/schema.py,sha256=fs9W2SLh32Ehxc9AChVH7YCtlSSnQkgGMbEyOh0B4W0,13416
|
|
164
165
|
pixeltable/metadata/utils.py,sha256=NJQXWhhK1hdOZ4H3hh9N0mqbl-I9JqMUqrfA6OWLflE,2682
|
|
165
|
-
pixeltable/plan.py,sha256=
|
|
166
|
+
pixeltable/plan.py,sha256=PXqq7aLQ5wRC-4RkRlAF6KEZFArA6g5RVLYamxNu6FY,48984
|
|
166
167
|
pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
168
|
pixeltable/share/__init__.py,sha256=AtR4nS6YkfkFRkXA-zZXFTK5pSQjHry8MnxdVLUk5SA,68
|
|
168
|
-
pixeltable/share/packager.py,sha256=
|
|
169
|
+
pixeltable/share/packager.py,sha256=F26RmcwmeE7wsWJybZzVz0iIy1meOP-JeaJvmFwjgkA,30938
|
|
169
170
|
pixeltable/share/publish.py,sha256=U6PzOUYiZaPu-sVNjh2nN8qzY2-uMsYeTwQCCuGk7Jg,6537
|
|
170
|
-
pixeltable/store.py,sha256=
|
|
171
|
-
pixeltable/type_system.py,sha256=
|
|
171
|
+
pixeltable/store.py,sha256=bZLazxAdLhR566VR9Dl6lk5ZZkZRZgW6s6_QE2HeEHQ,24023
|
|
172
|
+
pixeltable/type_system.py,sha256=SaTgmoUugcx1PuanD21X_R52yfQFHWfHIZZgNvUorN0,55353
|
|
172
173
|
pixeltable/utils/__init__.py,sha256=Pwgu-Sg1XkxzdCZ4ZhWP77UgLP3tnQsyCKaUJLF4ajo,1741
|
|
173
174
|
pixeltable/utils/arrow.py,sha256=74wIy58rDYZJBVQ1g85NqzFyiQBvEQhnJ0Gi82iZ0dw,6421
|
|
174
175
|
pixeltable/utils/coco.py,sha256=Y1DWVYguZD4VhKyf7JruYfHWvhkJLq39fzbiSm5cdyY,7304
|
|
@@ -179,17 +180,17 @@ pixeltable/utils/dbms.py,sha256=cuQqlzLF7WON_mkJZ4QWlfX6lCxA97V32lhtMcOlDLg,2018
|
|
|
179
180
|
pixeltable/utils/description_helper.py,sha256=acibNm36wkZG7h6k8gjcypTD_PVV2SL7YgX6cPYP1i8,3743
|
|
180
181
|
pixeltable/utils/documents.py,sha256=x3UHU7eykibyA3eVkSrCK1CQoaid228vp96WUEESssU,3105
|
|
181
182
|
pixeltable/utils/exception_handler.py,sha256=yrTAtUJEOhldps_k6aRLEf5yQ8gYGhl9c6ewYNC4Qfc,2476
|
|
182
|
-
pixeltable/utils/filecache.py,sha256=
|
|
183
|
+
pixeltable/utils/filecache.py,sha256=3TTEqhGg0pEAP_l0GKn34uspC4dha1jPab1Ka9_oTBM,10877
|
|
183
184
|
pixeltable/utils/formatter.py,sha256=tbMxE9rBw6wdKUnJhNZ8h9uAF8dZKcihQ2KesqAag9A,10096
|
|
184
|
-
pixeltable/utils/http_server.py,sha256=
|
|
185
|
+
pixeltable/utils/http_server.py,sha256=6khOAtpVj1lDIm9Dx8VIECLm87cFEp4IFbAg8T92A2o,2441
|
|
185
186
|
pixeltable/utils/iceberg.py,sha256=L_s9G9NMIGMQdRHtNkks6ntTVW4DKKAw97R9gRmtw5s,553
|
|
186
|
-
pixeltable/utils/media_store.py,sha256=
|
|
187
|
+
pixeltable/utils/media_store.py,sha256=O3pByWHRd79Z5vcy1Dc1crIUADaLL93pPz19Y60e2wY,7011
|
|
187
188
|
pixeltable/utils/pytorch.py,sha256=564VHRdDHwD9h0v5lBHEDTJ8c6zx8wuzWYx8ZYjBxlI,3621
|
|
188
189
|
pixeltable/utils/s3.py,sha256=pxip2MlCqd2Qon2dzJXzfxvwtZyc-BAsjAnLL4J_OXY,587
|
|
189
190
|
pixeltable/utils/sql.py,sha256=Sa4Lh-VGe8GToU5W7DRiWf2lMl9B6saPqemiT0ZdHEc,806
|
|
190
191
|
pixeltable/utils/transactional_directory.py,sha256=OFKmu90oP7KwBAljwjnzP_w8euGdAXob3y4Nx9SCNHA,1357
|
|
191
|
-
pixeltable-0.4.
|
|
192
|
-
pixeltable-0.4.
|
|
193
|
-
pixeltable-0.4.
|
|
194
|
-
pixeltable-0.4.
|
|
195
|
-
pixeltable-0.4.
|
|
192
|
+
pixeltable-0.4.5.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
193
|
+
pixeltable-0.4.5.dist-info/METADATA,sha256=xCDcQuJu2JImAGSkvKH-b_h4emPtjOpeN8wNVxJxbag,20577
|
|
194
|
+
pixeltable-0.4.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
195
|
+
pixeltable-0.4.5.dist-info/entry_points.txt,sha256=ToOd-pRgG7AitEBgYoBCRRB4-KVDQ0pj_9T4a1LgwA4,97
|
|
196
|
+
pixeltable-0.4.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|