pixeltable 0.3.13__py3-none-any.whl → 0.3.14__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.
Files changed (51) hide show
  1. pixeltable/__init__.py +2 -2
  2. pixeltable/__version__.py +2 -2
  3. pixeltable/catalog/catalog.py +9 -7
  4. pixeltable/catalog/column.py +6 -2
  5. pixeltable/catalog/dir.py +2 -1
  6. pixeltable/catalog/insertable_table.py +1 -1
  7. pixeltable/catalog/schema_object.py +2 -1
  8. pixeltable/catalog/table.py +12 -8
  9. pixeltable/catalog/table_version.py +19 -0
  10. pixeltable/catalog/table_version_path.py +7 -0
  11. pixeltable/catalog/view.py +3 -3
  12. pixeltable/dataframe.py +48 -5
  13. pixeltable/env.py +1 -1
  14. pixeltable/exec/aggregation_node.py +14 -0
  15. pixeltable/exec/cache_prefetch_node.py +1 -1
  16. pixeltable/exec/expr_eval/expr_eval_node.py +1 -1
  17. pixeltable/exprs/column_ref.py +42 -17
  18. pixeltable/exprs/data_row.py +3 -0
  19. pixeltable/exprs/globals.py +1 -1
  20. pixeltable/exprs/literal.py +11 -1
  21. pixeltable/exprs/rowid_ref.py +4 -1
  22. pixeltable/exprs/similarity_expr.py +1 -1
  23. pixeltable/func/function.py +1 -1
  24. pixeltable/functions/__init__.py +1 -0
  25. pixeltable/functions/date.py +185 -0
  26. pixeltable/functions/gemini.py +22 -20
  27. pixeltable/functions/globals.py +1 -16
  28. pixeltable/functions/json.py +2 -1
  29. pixeltable/functions/math.py +40 -0
  30. pixeltable/functions/string.py +1 -2
  31. pixeltable/functions/video.py +2 -2
  32. pixeltable/globals.py +26 -9
  33. pixeltable/io/hf_datasets.py +2 -2
  34. pixeltable/io/pandas.py +16 -4
  35. pixeltable/io/parquet.py +2 -0
  36. pixeltable/metadata/__init__.py +1 -1
  37. pixeltable/metadata/converters/convert_34.py +21 -0
  38. pixeltable/metadata/notes.py +1 -0
  39. pixeltable/plan.py +12 -5
  40. pixeltable/share/__init__.py +1 -1
  41. pixeltable/share/packager.py +219 -119
  42. pixeltable/share/publish.py +61 -16
  43. pixeltable/store.py +45 -20
  44. pixeltable/type_system.py +46 -2
  45. pixeltable/utils/arrow.py +8 -2
  46. pixeltable/utils/pytorch.py +4 -0
  47. {pixeltable-0.3.13.dist-info → pixeltable-0.3.14.dist-info}/METADATA +2 -4
  48. {pixeltable-0.3.13.dist-info → pixeltable-0.3.14.dist-info}/RECORD +51 -49
  49. {pixeltable-0.3.13.dist-info → pixeltable-0.3.14.dist-info}/LICENSE +0 -0
  50. {pixeltable-0.3.13.dist-info → pixeltable-0.3.14.dist-info}/WHEEL +0 -0
  51. {pixeltable-0.3.13.dist-info → pixeltable-0.3.14.dist-info}/entry_points.txt +0 -0
pixeltable/store.py CHANGED
@@ -7,8 +7,9 @@ import sys
7
7
  import urllib.parse
8
8
  import urllib.request
9
9
  import warnings
10
- from typing import Any, Iterator, Literal, Optional, Union
10
+ from typing import Any, Iterable, Iterator, Literal, Optional, Union
11
11
 
12
+ import more_itertools
12
13
  import sqlalchemy as sql
13
14
  from tqdm import TqdmWarning, tqdm
14
15
 
@@ -190,34 +191,29 @@ class StoreBase:
190
191
  assert col.is_stored
191
192
  conn = Env.get().conn
192
193
  col_type_str = col.get_sa_col_type().compile(dialect=conn.dialect)
193
- stmt = sql.text(f'ALTER TABLE {self._storage_name()} ADD COLUMN {col.store_name()} {col_type_str} NULL')
194
- log_stmt(_logger, stmt)
195
- conn.execute(stmt)
194
+ s_txt = f'ALTER TABLE {self._storage_name()} ADD COLUMN {col.store_name()} {col_type_str} NULL'
196
195
  added_storage_cols = [col.store_name()]
197
196
  if col.records_errors:
198
197
  # we also need to create the errormsg and errortype storage cols
199
- stmt = sql.text(
200
- f'ALTER TABLE {self._storage_name()} ADD COLUMN {col.errormsg_store_name()} VARCHAR DEFAULT NULL'
201
- )
202
- conn.execute(stmt)
203
- stmt = sql.text(
204
- f'ALTER TABLE {self._storage_name()} ADD COLUMN {col.errortype_store_name()} VARCHAR DEFAULT NULL'
205
- )
206
- conn.execute(stmt)
198
+ s_txt += f' , ADD COLUMN {col.errormsg_store_name()} VARCHAR DEFAULT NULL'
199
+ s_txt += f' , ADD COLUMN {col.errortype_store_name()} VARCHAR DEFAULT NULL'
207
200
  added_storage_cols.extend([col.errormsg_store_name(), col.errortype_store_name()])
201
+
202
+ stmt = sql.text(s_txt)
203
+ log_stmt(_logger, stmt)
204
+ conn.execute(stmt)
208
205
  self.create_sa_tbl()
209
206
  _logger.info(f'Added columns {added_storage_cols} to storage table {self._storage_name()}')
210
207
 
211
208
  def drop_column(self, col: catalog.Column) -> None:
212
209
  """Execute Alter Table Drop Column statement"""
213
- conn = Env.get().conn
214
- stmt = f'ALTER TABLE {self._storage_name()} DROP COLUMN {col.store_name()}'
215
- conn.execute(sql.text(stmt))
210
+ s_txt = f'ALTER TABLE {self._storage_name()} DROP COLUMN {col.store_name()}'
216
211
  if col.records_errors:
217
- stmt = f'ALTER TABLE {self._storage_name()} DROP COLUMN {col.errormsg_store_name()}'
218
- conn.execute(sql.text(stmt))
219
- stmt = f'ALTER TABLE {self._storage_name()} DROP COLUMN {col.errortype_store_name()}'
220
- conn.execute(sql.text(stmt))
212
+ s_txt += f' , DROP COLUMN {col.errormsg_store_name()}'
213
+ s_txt += f' , DROP COLUMN {col.errortype_store_name()}'
214
+ stmt = sql.text(s_txt)
215
+ log_stmt(_logger, stmt)
216
+ Env.get().conn.execute(stmt)
221
217
 
222
218
  def load_column(
223
219
  self, col: catalog.Column, exec_plan: ExecNode, value_expr_slot_idx: int, on_error: Literal['abort', 'ignore']
@@ -313,7 +309,7 @@ class StoreBase:
313
309
  def insert_rows(
314
310
  self,
315
311
  exec_plan: ExecNode,
316
- v_min: Optional[int] = None,
312
+ v_min: int,
317
313
  show_progress: bool = True,
318
314
  rowids: Optional[Iterator[int]] = None,
319
315
  abort_on_exc: bool = False,
@@ -432,6 +428,35 @@ class StoreBase:
432
428
  status = conn.execute(stmt)
433
429
  return status.rowcount
434
430
 
431
+ def dump_rows(self, version: int, filter_view: StoreBase, filter_view_version: int) -> Iterator[dict[str, Any]]:
432
+ filter_predicate = sql.and_(
433
+ filter_view.v_min_col <= filter_view_version,
434
+ filter_view.v_max_col > filter_view_version,
435
+ *[c1 == c2 for c1, c2 in zip(self.rowid_columns(), filter_view.rowid_columns())],
436
+ )
437
+ stmt = (
438
+ sql.select('*') # TODO: Use a more specific list of columns?
439
+ .select_from(self.sa_tbl)
440
+ .where(self.v_min_col <= version)
441
+ .where(self.v_max_col > version)
442
+ .where(sql.exists().where(filter_predicate))
443
+ )
444
+ conn = Env.get().conn
445
+ _logger.debug(stmt)
446
+ log_explain(_logger, stmt, conn)
447
+ result = conn.execute(stmt)
448
+ for row in result:
449
+ yield dict(zip(result.keys(), row))
450
+
451
+ def load_rows(self, rows: Iterable[dict[str, Any]], batch_size: int = 10_000) -> None:
452
+ """
453
+ When instantiating a replica, we can't rely on the usual insertion code path, which contains error handling
454
+ and other logic that doesn't apply.
455
+ """
456
+ conn = Env.get().conn
457
+ for batch in more_itertools.batched(rows, batch_size):
458
+ conn.execute(sql.insert(self.sa_tbl), batch)
459
+
435
460
 
436
461
  class StoreTable(StoreBase):
437
462
  def __init__(self, tbl_version: catalog.TableVersion):
pixeltable/type_system.py CHANGED
@@ -40,6 +40,7 @@ class ColumnType:
40
40
  VIDEO = 8
41
41
  AUDIO = 9
42
42
  DOCUMENT = 10
43
+ DATE = 11
43
44
 
44
45
  # exprs that don't evaluate to a computable value in Pixeltable, such as an Image member function
45
46
  INVALID = 255
@@ -81,7 +82,7 @@ class ColumnType:
81
82
  FLOAT32 = (10,)
82
83
  FLOAT64 = 11
83
84
 
84
- scalar_types: ClassVar[set[Type]] = {Type.STRING, Type.INT, Type.FLOAT, Type.BOOL, Type.TIMESTAMP}
85
+ scalar_types: ClassVar[set[Type]] = {Type.STRING, Type.INT, Type.FLOAT, Type.BOOL, Type.TIMESTAMP, Type.DATE}
85
86
  numeric_types: ClassVar[set[Type]] = {Type.INT, Type.FLOAT}
86
87
  common_supertypes: ClassVar[dict[tuple[Type, Type], Type]] = {
87
88
  (Type.BOOL, Type.INT): Type.INT,
@@ -173,6 +174,8 @@ class ColumnType:
173
174
  return AudioType()
174
175
  if t == cls.Type.DOCUMENT:
175
176
  return DocumentType()
177
+ if t == cls.Type.DATE:
178
+ return DateType()
176
179
 
177
180
  def __repr__(self) -> str:
178
181
  return self._to_str(as_schema=False)
@@ -243,8 +246,12 @@ class ColumnType:
243
246
  return IntType(nullable=nullable)
244
247
  if isinstance(val, float):
245
248
  return FloatType(nullable=nullable)
249
+ # When checking types of dates / timestamps, be aware that a datetime is also a date,
250
+ # but a date is not a datetime. So check for datetime first.
246
251
  if isinstance(val, datetime.datetime):
247
252
  return TimestampType(nullable=nullable)
253
+ if isinstance(val, datetime.date):
254
+ return DateType(nullable=nullable)
248
255
  if isinstance(val, PIL.Image.Image):
249
256
  return ImageType(width=val.width, height=val.height, mode=val.mode, nullable=nullable)
250
257
  if isinstance(val, np.ndarray):
@@ -343,6 +350,8 @@ class ColumnType:
343
350
  return BoolType(nullable=nullable_default)
344
351
  if t is datetime.datetime:
345
352
  return TimestampType(nullable=nullable_default)
353
+ if t is datetime.date:
354
+ return DateType(nullable=nullable_default)
346
355
  if t is PIL.Image.Image:
347
356
  return ImageType(nullable=nullable_default)
348
357
  if isinstance(t, type) and issubclass(t, (Sequence, Mapping, pydantic.BaseModel)):
@@ -372,6 +381,7 @@ class ColumnType:
372
381
  (int, 'pxt.Int'),
373
382
  (float, 'pxt.Float'),
374
383
  (datetime.datetime, 'pxt.Timestamp'),
384
+ (datetime.date, 'pxt.Date'),
375
385
  (PIL.Image.Image, 'pxt.Image'),
376
386
  (Sequence, 'pxt.Json'),
377
387
  (Mapping, 'pxt.Json'),
@@ -454,6 +464,9 @@ class ColumnType:
454
464
  def is_timestamp_type(self) -> bool:
455
465
  return self._type == self.Type.TIMESTAMP
456
466
 
467
+ def is_date_type(self) -> bool:
468
+ return self._type == self.Type.DATE
469
+
457
470
  def is_json_type(self) -> bool:
458
471
  return self._type == self.Type.JSON
459
472
 
@@ -621,6 +634,29 @@ class TimestampType(ColumnType):
621
634
  return val
622
635
 
623
636
 
637
+ class DateType(ColumnType):
638
+ def __init__(self, nullable: bool = False):
639
+ super().__init__(self.Type.DATE, nullable=nullable)
640
+
641
+ def has_supertype(self) -> bool:
642
+ return not self.nullable
643
+
644
+ @classmethod
645
+ def to_sa_type(cls) -> sql.types.TypeEngine:
646
+ return sql.Date()
647
+
648
+ def _validate_literal(self, val: Any) -> None:
649
+ if not isinstance(val, datetime.date):
650
+ raise TypeError(f'Expected datetime.date, got {val.__class__.__name__}')
651
+
652
+ def _create_literal(self, val: Any) -> Any:
653
+ if isinstance(val, str):
654
+ return datetime.datetime.fromisoformat(val).date()
655
+ if isinstance(val, datetime.date):
656
+ return val
657
+ return val
658
+
659
+
624
660
  class JsonType(ColumnType):
625
661
  json_schema: Optional[dict[str, Any]]
626
662
  __validator: Optional[jsonschema.protocols.Validator]
@@ -903,7 +939,11 @@ class ArrayType(ColumnType):
903
939
  return StringType(nullable=nullable)
904
940
 
905
941
  if np.issubdtype(dtype, np.datetime64):
906
- return TimestampType(nullable=nullable)
942
+ unit, _ = np.datetime_data(dtype)
943
+ if unit in ['D', 'M', 'Y']:
944
+ return DateType(nullable=nullable)
945
+ else:
946
+ return TimestampType(nullable=nullable)
907
947
 
908
948
  return None
909
949
 
@@ -1237,6 +1277,7 @@ Int = typing.Annotated[int, IntType(nullable=False)]
1237
1277
  Float = typing.Annotated[float, FloatType(nullable=False)]
1238
1278
  Bool = typing.Annotated[bool, BoolType(nullable=False)]
1239
1279
  Timestamp = typing.Annotated[datetime.datetime, TimestampType(nullable=False)]
1280
+ Date = typing.Annotated[datetime.date, DateType(nullable=False)]
1240
1281
 
1241
1282
 
1242
1283
  class _PxtType:
@@ -1370,3 +1411,6 @@ class Document(str, _PxtType):
1370
1411
  @classmethod
1371
1412
  def as_col_type(cls, nullable: bool) -> ColumnType:
1372
1413
  return DocumentType(nullable=nullable)
1414
+
1415
+
1416
+ ALL_PIXELTABLE_TYPES = (String, Bool, Int, Float, Timestamp, Json, Array, Image, Video, Audio, Document)
pixeltable/utils/arrow.py CHANGED
@@ -21,14 +21,15 @@ PA_TO_PXT_TYPES: dict[pa.DataType, ts.ColumnType] = {
21
21
  pa.uint64(): ts.IntType(nullable=True),
22
22
  pa.float32(): ts.FloatType(nullable=True),
23
23
  pa.float64(): ts.FloatType(nullable=True),
24
- pa.date32(): ts.StringType(nullable=True), # date32 is not supported in pixeltable, use string
25
- pa.date64(): ts.StringType(nullable=True), # date64 is not supported in pixeltable, use string
24
+ pa.date32(): ts.DateType(nullable=True),
25
+ pa.date64(): ts.DateType(nullable=True),
26
26
  pa.binary(): None, # cannot import binary (inline image)
27
27
  }
28
28
 
29
29
  PXT_TO_PA_TYPES: dict[type[ts.ColumnType], pa.DataType] = {
30
30
  ts.StringType: pa.string(),
31
31
  ts.TimestampType: pa.timestamp('us', tz=datetime.timezone.utc), # postgres timestamp is microseconds
32
+ ts.DateType: pa.date32(), # This could be date64
32
33
  ts.BoolType: pa.bool_(),
33
34
  ts.IntType: pa.int64(),
34
35
  ts.FloatType: pa.float32(),
@@ -128,6 +129,11 @@ def _ar_val_to_pxt_val(val: Any, pxt_type: ts.ColumnType) -> Any:
128
129
  return bool(val)
129
130
  elif pxt_type.is_string_type():
130
131
  return str(val)
132
+ elif pxt_type.is_date_type():
133
+ if isinstance(val, str):
134
+ return datetime.date.fromisoformat(val)
135
+ if isinstance(val, datetime.date):
136
+ return val
131
137
  elif pxt_type.is_timestamp_type():
132
138
  if isinstance(val, str):
133
139
  return datetime.datetime.fromisoformat(val)
@@ -65,6 +65,10 @@ class PixeltablePytorchDataset(torch.utils.data.IterableDataset):
65
65
  v = v.copy()
66
66
  assert v.flags['WRITEABLE']
67
67
  return v
68
+ elif self.column_types[k].is_date_type():
69
+ # pytorch default collation only supports numeric types
70
+ assert isinstance(v, datetime.date)
71
+ return v.toordinal()
68
72
  elif self.column_types[k].is_timestamp_type():
69
73
  # pytorch default collation only supports numeric types
70
74
  assert isinstance(v, datetime.datetime)
@@ -1,19 +1,18 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pixeltable
3
- Version: 0.3.13
3
+ Version: 0.3.14
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
7
7
  Author: Pixeltable, Inc.
8
8
  Author-email: contact@pixeltable.com>
9
- Requires-Python: >=3.9,<4.0
9
+ Requires-Python: >=3.10
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Intended Audience :: Science/Research
12
12
  Classifier: License :: OSI Approved :: Apache Software License
13
13
  Classifier: Operating System :: MacOS
14
14
  Classifier: Operating System :: Microsoft :: Windows
15
15
  Classifier: Operating System :: POSIX :: Linux
16
- Classifier: Programming Language :: Python :: 3.9
17
16
  Classifier: Programming Language :: Python :: 3.10
18
17
  Classifier: Programming Language :: Python :: 3.11
19
18
  Classifier: Programming Language :: Python :: 3.12
@@ -43,7 +42,6 @@ Requires-Dist: psycopg[binary] (>=3.1.18)
43
42
  Requires-Dist: puremagic (>=1.20)
44
43
  Requires-Dist: pyarrow (>=13.0.0)
45
44
  Requires-Dist: pydantic (>=2.7.4)
46
- Requires-Dist: pyiceberg (>=0.6.0)
47
45
  Requires-Dist: pymupdf (>=1.24.1)
48
46
  Requires-Dist: pyyaml (>=6.0.1)
49
47
  Requires-Dist: requests (>=2.31.0)
@@ -1,33 +1,33 @@
1
- pixeltable/__init__.py,sha256=TYbL_db8k7i-xQ3G6BhywWJujwl0SyZ_i3rtO_ETtgU,1435
2
- pixeltable/__version__.py,sha256=PktX7ox0r5NrPEx5hjV3DTlFGMm-MthCIgxmYxRRvTQ,114
1
+ pixeltable/__init__.py,sha256=-uXHuiXH98kAlCupUTPbkBh4ToZgxcYUOk7-c9hqCC8,1439
2
+ pixeltable/__version__.py,sha256=XhiJRUjdjrwJPbZIKiObIa0uwoOqWB_MxrLdbtgVGS8,114
3
3
  pixeltable/catalog/__init__.py,sha256=rQmjveID4bk6NI4Ql09lGsZ0K0HVE2l1yqKAveipHzc,558
4
- pixeltable/catalog/catalog.py,sha256=7aS-p3Y1ArYqi2gvD57bF-VC0eGvOkeZ4HCKFUNQK7Y,48756
5
- pixeltable/catalog/column.py,sha256=i_KJVRvjR9Dh4tPrdf9Fg7IBGcKLYiOJKngSVBLgMCA,10800
6
- pixeltable/catalog/dir.py,sha256=HFemOf67Nfw13EOpQsR_UgzP2L1w4LDfw2009DrSK0Y,2063
4
+ pixeltable/catalog/catalog.py,sha256=E-Fqf3xDsFWLuau41trwqFRQbmNjy-LlT_votgYRM8k,48780
5
+ pixeltable/catalog/column.py,sha256=f_jSvdV7DIe3MYXc4n4tSSJmAKIiNfPyT6i97rt2ewA,11133
6
+ pixeltable/catalog/dir.py,sha256=g7k9ebx20-NDMKkPGQxOVMRNGOgLmPvekuPIjSlo3WU,2075
7
7
  pixeltable/catalog/globals.py,sha256=7fNUs67D18PZ1ZajcGz7KQOV6tuXEcYLSrePzgmDkRw,4036
8
- pixeltable/catalog/insertable_table.py,sha256=JVDeUWH9HsqAUYjweennhfrfgS5iBnEniCX_Ft7b8Is,8843
8
+ pixeltable/catalog/insertable_table.py,sha256=6kXMHAZtqoTGqYgMDMJwCbxoLaPz1VG4trh-rAepvF0,8841
9
9
  pixeltable/catalog/named_function.py,sha256=vZ-j7P4HugWh9OmUzBMwyRYvO3tQn9jWyJz_1stPavU,1210
10
10
  pixeltable/catalog/path.py,sha256=gk8TIlO_7Jpji5mAN0dUNvHmvU0uneTHeB_qCTWnszQ,2529
11
- pixeltable/catalog/schema_object.py,sha256=6OxJTfT1NOivL1sbg8opf4DTGvGCLqqkuuS4Xo8ESJU,1806
12
- pixeltable/catalog/table.py,sha256=CsNPB13gpLD2ap4leM-Jc0NZLJWB7yjFHs_AY0_zJ7A,64920
13
- pixeltable/catalog/table_version.py,sha256=iVZnJ0CfNk4i2oiGppb2ZqShStG509_nFkyrR3jOLwo,61490
11
+ pixeltable/catalog/schema_object.py,sha256=J96iXsKMvqTNN0jbcMOPZDSZDNq8688Vkybs5bFcqNk,1818
12
+ pixeltable/catalog/table.py,sha256=mlMbV6cWafm6OC9AHmMfpHuTYTyhGf5rhMHV2537tF8,65129
13
+ pixeltable/catalog/table_version.py,sha256=1Yff0GylzRpsZZS0I8sEGkSxJUMdGqpGoB1QsYjtjGs,62249
14
14
  pixeltable/catalog/table_version_handle.py,sha256=LYJFTdRssPu4uOBPbP93wKqXygJXr3Gwdc9wHzzZRag,1654
15
- pixeltable/catalog/table_version_path.py,sha256=_g9knGenpMOlhaK8DZa8iLz5CorsMcbnFqTLnvaUkYM,6653
16
- pixeltable/catalog/view.py,sha256=ZtfNoAMeqcKB7MoPfzPPRQJvniCIrYxQjqs5KI3xXog,13033
15
+ pixeltable/catalog/table_version_path.py,sha256=r4WHtP2dkF05UafiQe47RWkszPiy8ZsdcTMA5mEzRp4,6847
16
+ pixeltable/catalog/view.py,sha256=u9c9YL9dHw21qGYf-QYST7nULhut-ECK-DWR1_MH3ik,13027
17
17
  pixeltable/config.py,sha256=gnRI4G9GE7mQJDcMcn8JsEzYk8oKVfHB-BwoLRWnRDo,3971
18
- pixeltable/dataframe.py,sha256=dAR4-iLkcu8AllvP85_17u5PankzBOdm2Zanp6JR0iY,49605
19
- pixeltable/env.py,sha256=uQ8LZG-KU96Jhgs0wAUOn0rrj1ouAeliavnJPgvDx_Q,36250
18
+ pixeltable/dataframe.py,sha256=n_ZF_JdCq-DkpOzLhlnCspjDS2I8_7M0nlkTcDQVqyA,51593
19
+ pixeltable/env.py,sha256=46ri1zrun9eJGBiBMnvA9PkBoVVzI3b1aLG9a1RdLuA,36236
20
20
  pixeltable/exceptions.py,sha256=eI2f4oXqv678_fDOxeYOTPE_EF1CMX3pwCqtJvN8i7s,926
21
21
  pixeltable/exec/__init__.py,sha256=m4AF2kzFtsTRUevupgWs8er0oJQisCR9ROW7ZJlL3dw,509
22
- pixeltable/exec/aggregation_node.py,sha256=C6gdQqCwg2Cio0bFbtGBhvjMMc4ADBjljnLwMVwdrLQ,4090
23
- pixeltable/exec/cache_prefetch_node.py,sha256=j8ThRGNAeP47A02MgMF0ViZdD6ZYJgTY8dbNubxQbW0,12135
22
+ pixeltable/exec/aggregation_node.py,sha256=HqzISO1nv7_DFyqjZLRkjtbDJl9fIEto1i6Kh5ru8vA,4498
23
+ pixeltable/exec/cache_prefetch_node.py,sha256=GOa70eJDFY3FQV3VvJOrUVI8LFvro-r-V6sh3w-eJAc,12130
24
24
  pixeltable/exec/component_iteration_node.py,sha256=FZszWHrzsjHxCbUTwXtJIlgQqgYtvKZB6QWiDGkfIbs,4757
25
25
  pixeltable/exec/data_row_batch.py,sha256=EAB15JRhXbWIe91x1J5N5lFiMXzjB8NGTFjZsBDSbf8,3393
26
26
  pixeltable/exec/exec_context.py,sha256=jKeLStfkjwCKKAooC-7a7qZUnZU5O0_JQhanhVerV9c,984
27
27
  pixeltable/exec/exec_node.py,sha256=WIN1sBEBNS7TlBk5QpHsDUCZUUdcvs6Os_Bxq2HoWdo,4077
28
28
  pixeltable/exec/expr_eval/__init__.py,sha256=sQThSEByK_DLfB-_-18RFhpARx49cSXYEkpCDyi0vQI,61
29
29
  pixeltable/exec/expr_eval/evaluators.py,sha256=AJkuleKhEz_8W6F3dcjTbWyKfv4IzpTh3cvQ3--OkRg,16865
30
- pixeltable/exec/expr_eval/expr_eval_node.py,sha256=bPPrOQhCbjuWsZCEEKvi-tehF2rz54os6TfXcjj8W1Q,18977
30
+ pixeltable/exec/expr_eval/expr_eval_node.py,sha256=ABkC2yAcMSCtQ7AvNAn6rfj3AMscVzezttKSs1ExNhw,18972
31
31
  pixeltable/exec/expr_eval/globals.py,sha256=fFrj2O53TgHDfVF8dgnyn1fPLi4ZHQuylewf5aHMwYk,7752
32
32
  pixeltable/exec/expr_eval/row_buffer.py,sha256=YY0thdlMNNReEOTyPp36xKPeMeXSZ0VrI9bJsXgo7sU,2744
33
33
  pixeltable/exec/expr_eval/schedulers.py,sha256=tAvCQKa1q0x7y7cdnGcTGbeku8QcoKH1GkgSm8ktOnM,17000
@@ -38,26 +38,26 @@ pixeltable/exprs/__init__.py,sha256=AxSMjKNavCT9F6vBaNR-nwX2iupAI5hbMb5hEj65Tfk,
38
38
  pixeltable/exprs/arithmetic_expr.py,sha256=sZPao0qdFWbrDx0eiAVxw1wGHJXZ5ZoCpQaScysBldE,7333
39
39
  pixeltable/exprs/array_slice.py,sha256=8Zv0E2RghdJi1Mbk0kKtOz2ccGQuXwLLb6R9v1jk7hA,2180
40
40
  pixeltable/exprs/column_property_ref.py,sha256=nwvPxyVveOCSCGgUDTnILFKAolZ2VwMVToDLCAQsH0c,3786
41
- pixeltable/exprs/column_ref.py,sha256=BO68xBLAIbXZcL_Oa8qjx0hJSPTbQgbOV_VCF1jv_fU,12620
41
+ pixeltable/exprs/column_ref.py,sha256=hMkxeJQMbTVDhzCi9Sc4CzFagVmQXu42GU66Frx-gNI,13980
42
42
  pixeltable/exprs/comparison.py,sha256=fJ840HORCi4x5ovkkdM_PXqlzttS0K9W0oikWWp1oa8,5139
43
43
  pixeltable/exprs/compound_predicate.py,sha256=vJVRVueAmaKnjiHCLWyh8wHgktzzK0DVqbOIQJgTjF8,3801
44
- pixeltable/exprs/data_row.py,sha256=drPgjvTK9u-KeGRuolfqzzzJOGAiwayjs4PBbt8ZGUY,11251
44
+ pixeltable/exprs/data_row.py,sha256=y16wVbp_ISNmMUP18PtX5vFrc4zxCiV3f9jCoReKl6I,11396
45
45
  pixeltable/exprs/expr.py,sha256=JABPT8dGISMq_ciG67GPdX00nKTrJwQ1DQhxSRqkC4A,35602
46
46
  pixeltable/exprs/expr_dict.py,sha256=2ZeZ0eACx3VrRNEOjipuT5WxOIzjXQ_DSip8NTH0KRo,1584
47
47
  pixeltable/exprs/expr_set.py,sha256=OlRTbHAAYH2fOEs1HE-8DIu7Z247xVfoT_9Y58GZoOQ,2559
48
48
  pixeltable/exprs/function_call.py,sha256=_PxrEACVyiihdQdmTiiSv5WkZfOXSQFcGO18wPueM_Y,21989
49
- pixeltable/exprs/globals.py,sha256=budmqzTCyajkelpzcNxPKP-ZE3WDiIWT7IYWWqQmB78,2300
49
+ pixeltable/exprs/globals.py,sha256=NIi16GCPYNFNrhDC0_IemHjFZEtbILJNmdxdguSdy00,2315
50
50
  pixeltable/exprs/in_predicate.py,sha256=u98JmBX9XsglKe5uCy1NUMnyi3wioBri_tue2vI9_sk,3799
51
51
  pixeltable/exprs/inline_expr.py,sha256=XYVKKXZN9BtHN5qlvZna-mgdOlot6WcmPu5usRBYei0,7972
52
52
  pixeltable/exprs/is_null.py,sha256=NfA_485hfT69pWyY6u8BhykDUkz5k91AH93azGu6lCg,1087
53
53
  pixeltable/exprs/json_mapper.py,sha256=bJSB39sZgpN9KS0RReDnUhTCwg-4Y4cgXXaFNy3o3wU,7035
54
54
  pixeltable/exprs/json_path.py,sha256=sFuDjfz8_rlea4TKd68CS4pQTUiLDi68YwsgcQRHffI,7162
55
- pixeltable/exprs/literal.py,sha256=j4Rq5dGPbf7E3E4fqFgHtq0roiRtiy-9J03FaamEEVw,4315
55
+ pixeltable/exprs/literal.py,sha256=kLAqc05uRHTN1IGAmRUNRkglo9CYualF7zW_U7c2pwU,4846
56
56
  pixeltable/exprs/method_ref.py,sha256=NNhJTGo7luZLh8EJdFIZAax9LiiqqDCEK1AwPmHip0w,2642
57
57
  pixeltable/exprs/object_ref.py,sha256=idYFcT27jv0BjtJT3paL37xDrZZc35_3eCJyQOIqdZU,1999
58
58
  pixeltable/exprs/row_builder.py,sha256=vZbSEctWYn79zC1CCBqFHZeD3-2oryyQeJKVi2-enH0,21200
59
- pixeltable/exprs/rowid_ref.py,sha256=nDY2swlEN9hzpg2t9c2eFByJEIB4Mtnu0R0qIpMhm5c,4761
60
- pixeltable/exprs/similarity_expr.py,sha256=f4Qt6HKSYvQsjLCX1nHHXpB5cFilJr4qYL_dwI6Iwl8,3650
59
+ pixeltable/exprs/rowid_ref.py,sha256=DbkdnXIxNExrLOOjwyL5n1amKJnaw3QVSkUonTcJErs,4918
60
+ pixeltable/exprs/similarity_expr.py,sha256=ssls1A3gxzY0qJbaqN_1pKkuLriLTCnMqlPG0sp_M6Y,3635
61
61
  pixeltable/exprs/sql_element_cache.py,sha256=c7Q6vFK4xnf9vmcRYnXiAcwPBBwmw0dolftM4BwDO8c,1359
62
62
  pixeltable/exprs/string_op.py,sha256=8GkqYpZrSJjHX1ghsUMI9Op2NJyBbvmLWJwDYf_vad0,4171
63
63
  pixeltable/exprs/type_cast.py,sha256=_nDzTxg5kXVGLewI0FrH2zmwJzgptdxYd5Jvuyig0UI,2322
@@ -70,38 +70,39 @@ pixeltable/func/__init__.py,sha256=2BtyvXvFrLF0S5Qnmtg9S7dDSEVoBh5GDX6XFC25d7o,5
70
70
  pixeltable/func/aggregate_function.py,sha256=5_MgqHAlMaacX2sPIHv_auTvYXtqR5MIZy_WqYQSdho,13264
71
71
  pixeltable/func/callable_function.py,sha256=g_pA-g631YcFGLix9PpHYfgjOeS2qF0Csm1VxX8fah0,9278
72
72
  pixeltable/func/expr_template_function.py,sha256=wEidKrOBTZkA3U1PAtG6-6RlDFiiRJszIG4zNOuPcNY,5940
73
- pixeltable/func/function.py,sha256=1xyvSJ_OC4nYlQmh3Og9h2EK68OVFR2ZQEKChmslTcg,23137
73
+ pixeltable/func/function.py,sha256=w1U3j8XNeE4ZZ-rKuG13aTa8YGFkWAXjalh4j29_-e4,23136
74
74
  pixeltable/func/function_registry.py,sha256=7AQ1bdF2DJbTRn9xx6s5cC_VHtCBXGt_GyJJEjJHcMw,12308
75
75
  pixeltable/func/globals.py,sha256=5Wo4GPxYgHRRk5nvV0h_lAthKSalxKvj5n1p-uMPR0U,1501
76
76
  pixeltable/func/query_template_function.py,sha256=QN_HGyBErDwdwpsI63caohsjo9usoN6WTEERG6NDtP4,7913
77
77
  pixeltable/func/signature.py,sha256=0PI6xdhLgwy9-GMkzkm7GlsBnsNMiS9aoNI9LWXwvN0,13700
78
78
  pixeltable/func/tools.py,sha256=DIfkOEj9Bp797Ew014_4YJePoUW40fQ6mvbCeg0FBR0,5721
79
79
  pixeltable/func/udf.py,sha256=qQfaX1O3ZhUvSgiNnitW7nRKnZFJ5yu_Fj9ioqQgjqg,13219
80
- pixeltable/functions/__init__.py,sha256=3RZbfHlaOx6NkSMZU6wTZ3dsqErxmUJUFF0X4EbxQvY,568
80
+ pixeltable/functions/__init__.py,sha256=x_ZodeEtayD2XDjlDZE4L_QTzajF6riftIc5P4ZjEiY,578
81
81
  pixeltable/functions/anthropic.py,sha256=oTiXMfy3MupBInGRFEVkp-pHu06gF1ezJjEM2ypyvXw,9323
82
82
  pixeltable/functions/audio.py,sha256=7bsm4igQEW7RYSrSevwqaUOqyEnvBbPbJ8c-VknDl1E,657
83
83
  pixeltable/functions/bedrock.py,sha256=lTCFHjYunF3minBGWcjXR90yJ8resFjXr4niyKhfxms,4217
84
+ pixeltable/functions/date.py,sha256=WUwqyrOWB8A00cTNEd6Vd7anQZo40_-7EWhpfpI-P6c,5323
84
85
  pixeltable/functions/deepseek.py,sha256=KYIa-UJJUTOt9cCfmP6k6nM4MpKm1MBU8F-jWk3CycY,3827
85
86
  pixeltable/functions/fireworks.py,sha256=k0vUXxeeNYWfL_tdLgF9c-vOilr0g2tTeLkAL9SJ6ws,4972
86
- pixeltable/functions/gemini.py,sha256=vr1mBZDcDI1GNLp8pKVcQmUEbV9P0L0HRInE78rA4Ok,2952
87
- pixeltable/functions/globals.py,sha256=_u4A2aOWJGEzlA2Q2qr5p-ubA9paiCnkmC_oP908Qt0,5374
87
+ pixeltable/functions/gemini.py,sha256=GTtYBCNQG0DXBrBCdd92A2KVfP6JLuBESdCJ2XRrlBU,2969
88
+ pixeltable/functions/globals.py,sha256=ZXBV2LPXT2-yQYHHE7q8N1WdAr0WxiIO1ax0qwxhmK8,5118
88
89
  pixeltable/functions/huggingface.py,sha256=KM1OH0Jt6XWF2jfpHb6rGhi1mV-AQNYAsHAyQfzW4qw,20560
89
90
  pixeltable/functions/image.py,sha256=IKXljMma-uU88efptC3F4aywau7DYcD-Nqd3YpmRNRw,13971
90
- pixeltable/functions/json.py,sha256=Pkqkhf_1ot6RL2JB9Kw6NQAj0-nVn1eSfeHpdq5vr1M,770
91
+ pixeltable/functions/json.py,sha256=d7-AvwytUQtQYF_JnWJkptT_Yq0NgMpWfVk-m3U6qTY,807
91
92
  pixeltable/functions/llama_cpp.py,sha256=uf7WSZIhKDa492snnQv5ojGVLNdBWvuw0Ou3Mch1c_I,3874
92
- pixeltable/functions/math.py,sha256=SnAdjL7FIyEju2k3gEpk2ywn5zMmk7yGzD48JtTCX_0,1554
93
+ pixeltable/functions/math.py,sha256=gmkeAWm_FbWqiekVOK8fyRs7A87kKE9rCdYE0ETfGj4,3357
93
94
  pixeltable/functions/mistralai.py,sha256=yZge5T385RoiFGXEZ6OhwWHj0JnsZ8tN8Jb3VkfDmXc,6274
94
95
  pixeltable/functions/ollama.py,sha256=AmkP532HwWeTyWkTnHm_hIk0CFjzV5MwCCPnM9Kb7KM,4231
95
96
  pixeltable/functions/openai.py,sha256=aDh1L2mBbSlrM8c1Rbh2QsCnmBESItLqzZ-frdgb05k,29259
96
97
  pixeltable/functions/replicate.py,sha256=SLMPNi44QMa16TVTImZRkNMXXyRZ0mmpnK6P5uXQE0k,2467
97
- pixeltable/functions/string.py,sha256=ToLodCr1MRVaLhzaUe5NbGNYHR9ENNpmKztSstkz5O4,20201
98
+ pixeltable/functions/string.py,sha256=PjOtpRfQijcL930euR53FmYeQEOjfd5htTGxr_5bRe0,20143
98
99
  pixeltable/functions/timestamp.py,sha256=0zp4urJagCcNLfJE0ltTCft-J9qs2C716TmRngKYaa0,9171
99
100
  pixeltable/functions/together.py,sha256=ufg0RehEoQEqBy9EHSKY4N3ZNT5O__cwDS0Ll467eLk,10014
100
101
  pixeltable/functions/util.py,sha256=lVya13gcao8T34OGX7zy1cglQPNwaBbSBw57bVPyHNs,745
101
- pixeltable/functions/video.py,sha256=rrKYGCEm-oJVQnjiNbEjDykusAtaQDLrYFNqv8Twwcw,6948
102
+ pixeltable/functions/video.py,sha256=jS4YhMofD448YhGtI6ZXBAkeGw_AYYQTN0AbgHh_hok,6933
102
103
  pixeltable/functions/vision.py,sha256=_a0wY3akkVhWnnxlq__1VzSLylytlNadpNOOPOwSfLk,15393
103
104
  pixeltable/functions/whisper.py,sha256=c9E6trhc2UcShVaGaEBCUEpArke1ql3MV5We0qSgmuU,2960
104
- pixeltable/globals.py,sha256=56Mxnrw9Jt4yq8ZzYT8Wyvki-MtOqK-st1FTfEfH7qE,31023
105
+ pixeltable/globals.py,sha256=sbbuDMnZK6stceHZqe6ndBtN4WNopeYE_CtCim2qIn4,31882
105
106
  pixeltable/index/__init__.py,sha256=97aFuxiP_oz1ldn5iq8IWApkOV8XG6ZIBW5-9rkS0vM,122
106
107
  pixeltable/index/base.py,sha256=jrE2Sack14_o_oFWkQf_qdDCSQ85SCZLcJX4GhU_JaY,1527
107
108
  pixeltable/index/btree.py,sha256=m4eUk8jVG5h2VW_IcsmWG4GN-FFk0uFHyDF6FSw_gbM,2299
@@ -111,10 +112,10 @@ pixeltable/io/datarows.py,sha256=p1UGxQOTjqI6kgQNAa3aj8TkylcNDtaGBTorOg_Pk84,608
111
112
  pixeltable/io/external_store.py,sha256=5gHSHLi-pPWHJ4OtVtY2vxrcbLG899hNMEcLvBfvYqI,16719
112
113
  pixeltable/io/fiftyone.py,sha256=v0r28bIk2I0TRP5DfVHtBIUa4DpIJDK5sgExxOmHZ_w,6882
113
114
  pixeltable/io/globals.py,sha256=Z8ww-Pcm59ql1tvame8z0Mu1thIy5BPbW-TswGRXt4s,11368
114
- pixeltable/io/hf_datasets.py,sha256=VbQvRaUqmiKiIUeek_yf3-uAXlPRxpB62bUUQRQ_A_c,5356
115
+ pixeltable/io/hf_datasets.py,sha256=gWyBH_0iFvxcrrxMY9_W399ZRcNDCmWFOAMmb1apnY0,5246
115
116
  pixeltable/io/label_studio.py,sha256=uB-LReXf1l2OMuzJEENxJP-0C14r14VEmsIulK8Yr3s,31261
116
- pixeltable/io/pandas.py,sha256=IoY73ohdW3wMyxx8PpWYa9YJML6RqFpXCAR1-ceI64E,8477
117
- pixeltable/io/parquet.py,sha256=ezWHy5XnErEt4EmYDYQHrmIQLXrYChA26qVwiPoBfRQ,7672
117
+ pixeltable/io/pandas.py,sha256=AbOeRDlA4MvUvianSKixsU-x-64nasPWw4HCHD6emz4,8981
118
+ pixeltable/io/parquet.py,sha256=MC2n1ybf0l9O2h873SuNEJHv1bTGA2cV0ei_wQCgbwo,7757
118
119
  pixeltable/io/table_data_conduit.py,sha256=gdjr82HxJpDfH55xmbIUCX5V-Hkaj6Kmo25NESKChtk,23205
119
120
  pixeltable/io/utils.py,sha256=YMfhpqMitWz1PhXJGkCNOgNtEM1AZ55S0zXVhljC5kY,4260
120
121
  pixeltable/iterators/__init__.py,sha256=bU4EmbX85J1URmRw6G71f2I77b1ctqngEOwDmRB3T0w,455
@@ -124,7 +125,7 @@ pixeltable/iterators/document.py,sha256=wJYSnzusJFaxipv5y0uQw-surN9fFz0Aq-s7w_l_
124
125
  pixeltable/iterators/image.py,sha256=nWm-03CxNvHRdTr8U6PvWEnEiquqIQNG5rB-3Y44Mm4,3440
125
126
  pixeltable/iterators/string.py,sha256=URj5edWp-CsorjN_8nnfWGvtIFs_Zh4VPm6htlJbFkU,1257
126
127
  pixeltable/iterators/video.py,sha256=L5S1YPmT_zM11vW9fK6d5nQpUvHVewQWmfDmy4BD45E,9134
127
- pixeltable/metadata/__init__.py,sha256=5l_hdB3w43VQAS6AibUBHeUsn3IdCyIcsMENEPS1AuY,2607
128
+ pixeltable/metadata/__init__.py,sha256=Rui2M8f8BcnJGRbYtCYxu-eqkp-3IovQINU8Hs45PHw,2607
128
129
  pixeltable/metadata/converters/convert_10.py,sha256=myYIo1DyccnsQUxDKG6mafnU5ge_EhZpHg_pesKBoK4,708
129
130
  pixeltable/metadata/converters/convert_12.py,sha256=Ci-qyZW1gqci-8wnjeOB5afdq7KTuN-hVSV9OqSPx8g,162
130
131
  pixeltable/metadata/converters/convert_13.py,sha256=yFR6lD3pOrZ46ZQBFKYvxiIYa7rRxh46Bsq7yiCBNak,1356
@@ -148,18 +149,19 @@ pixeltable/metadata/converters/convert_30.py,sha256=DKCD6ZMgRU2Cu7eonB1kYEnYCKI4
148
149
  pixeltable/metadata/converters/convert_31.py,sha256=pFjZGpuFlGRPxKYYidiSCIMNaEEXVuLTnELi3y_pSQo,424
149
150
  pixeltable/metadata/converters/convert_32.py,sha256=YENfuQ_mqhnZWrvHJffaGEqd1IwS2RjTGPkEvOs5sUs,406
150
151
  pixeltable/metadata/converters/convert_33.py,sha256=ZZV3FTyyouBM1eNymXxfHV-Oqmgu2s0KNP6AG3zc5eM,574
152
+ pixeltable/metadata/converters/convert_34.py,sha256=1hi7m49CMzHRD25rrePS-SMCsZ-4opzDhY0JqU8Jzw4,690
151
153
  pixeltable/metadata/converters/util.py,sha256=qnhrwUS7nSczCdrMjKG7v3lRxRKh9o19epCtP8HTpsY,7729
152
- pixeltable/metadata/notes.py,sha256=6S6QEBH15QQwR7DcE0y27LrxYe_GI_tC-h7gk5RnrcE,1269
154
+ pixeltable/metadata/notes.py,sha256=9WMdfKT_mE96oTgRB92i7wZVw4qbwj-iA7hCYN49VhQ,1313
153
155
  pixeltable/metadata/schema.py,sha256=EKmx29vfQo3eGD2uCJW_lPalPialSb2oUSBGTyewduE,11261
154
- pixeltable/plan.py,sha256=s2wS4DIBzr19QlGCJNdPVZ_Od1FVJpTGEb7opNbHtHM,43260
156
+ pixeltable/plan.py,sha256=VfXTvEYYiiLPBdw0hoTmdXHE5IeQKZc1ej8l9a3XAns,43632
155
157
  pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
- pixeltable/share/__init__.py,sha256=zTJtLn0F7-5DgSIpxUvFQPO2LP7AOw9xjEaD30RH62U,58
157
- pixeltable/share/packager.py,sha256=OZzrsnzfTUqkF4t1-ZMIsXmutqCCMFRlG4MDwRcP9Ik,11116
158
- pixeltable/share/publish.py,sha256=pnldL8_k71Ta9Mn_KDothhizB83Nm8Q3IsESmr9gg3k,4643
159
- pixeltable/store.py,sha256=G1kCi4rEFg__driaB0fGRQ8dip2YPO83bZtwXqhwoOg,22668
160
- pixeltable/type_system.py,sha256=xGRgz6tQzmBDZ3Lvzq7vTfD1WDJg-pa7UUMw1vv0PeE,52378
158
+ pixeltable/share/__init__.py,sha256=AtR4nS6YkfkFRkXA-zZXFTK5pSQjHry8MnxdVLUk5SA,68
159
+ pixeltable/share/packager.py,sha256=hF1_jFgEFq-94zF-PykwcgXbl4h40dgemBwMeSj8e9M,15590
160
+ pixeltable/share/publish.py,sha256=MZ_tsCSM9nUnrz8P1gbwatlpbS6EJYjYAd7S06lHw9M,6533
161
+ pixeltable/store.py,sha256=j9rieIVD2fD7aIEcJ2xPf0vGCi0OirYk-A_JKEB9HVo,23693
162
+ pixeltable/type_system.py,sha256=DSrof2NgKhBzvt7pbDNrGlZ3rkkDJ7MQsQ9rqk9N9pA,53988
161
163
  pixeltable/utils/__init__.py,sha256=Pwgu-Sg1XkxzdCZ4ZhWP77UgLP3tnQsyCKaUJLF4ajo,1741
162
- pixeltable/utils/arrow.py,sha256=2R0rhin1-dN0O5aL_s8LZYE7Or4mdf5LCRbe2OOsz2A,6292
164
+ pixeltable/utils/arrow.py,sha256=74wIy58rDYZJBVQ1g85NqzFyiQBvEQhnJ0Gi82iZ0dw,6421
163
165
  pixeltable/utils/coco.py,sha256=Y1DWVYguZD4VhKyf7JruYfHWvhkJLq39fzbiSm5cdyY,7304
164
166
  pixeltable/utils/code.py,sha256=SbG5OUF_fQAbOgGZHDuENijmbzisVqa4VS9guaZ0KtU,1231
165
167
  pixeltable/utils/console_output.py,sha256=x23iDnNwUbsr7Ec20BQ7BLATTsrQZflxc9NucAt_sVU,1150
@@ -173,12 +175,12 @@ pixeltable/utils/formatter.py,sha256=_pYQOhBh2dZBeCTUKuWaIzm7JRWeMepMZwSd5KTv-tw
173
175
  pixeltable/utils/http_server.py,sha256=B5iQ1s_VuwsVC7pUm1joGjLZqaluV8_RfFiU8V1FuG8,2453
174
176
  pixeltable/utils/iceberg.py,sha256=L_s9G9NMIGMQdRHtNkks6ntTVW4DKKAw97R9gRmtw5s,553
175
177
  pixeltable/utils/media_store.py,sha256=Dhsnj1ZPRSX0iyGOu4JU4pC3fvSBd7sQpruVHqzKm7A,3089
176
- pixeltable/utils/pytorch.py,sha256=rrqXn6KVXmABEPGLjjq3qYINfCCv9SbpfPFmSx9KyGQ,3422
178
+ pixeltable/utils/pytorch.py,sha256=564VHRdDHwD9h0v5lBHEDTJ8c6zx8wuzWYx8ZYjBxlI,3621
177
179
  pixeltable/utils/s3.py,sha256=pxip2MlCqd2Qon2dzJXzfxvwtZyc-BAsjAnLL4J_OXY,587
178
180
  pixeltable/utils/sql.py,sha256=Sa4Lh-VGe8GToU5W7DRiWf2lMl9B6saPqemiT0ZdHEc,806
179
181
  pixeltable/utils/transactional_directory.py,sha256=OFKmu90oP7KwBAljwjnzP_w8euGdAXob3y4Nx9SCNHA,1357
180
- pixeltable-0.3.13.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
181
- pixeltable-0.3.13.dist-info/METADATA,sha256=B0_JugfJxEKMaDJk0vcOEvczsCkEkQWWib78X11zazE,20629
182
- pixeltable-0.3.13.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
183
- pixeltable-0.3.13.dist-info/entry_points.txt,sha256=ToOd-pRgG7AitEBgYoBCRRB4-KVDQ0pj_9T4a1LgwA4,97
184
- pixeltable-0.3.13.dist-info/RECORD,,
182
+ pixeltable-0.3.14.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
183
+ pixeltable-0.3.14.dist-info/METADATA,sha256=Z7hUCAAUayqhytbLmw1_uIW_IS2lUBq-rRd9sSOoHx8,20540
184
+ pixeltable-0.3.14.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
185
+ pixeltable-0.3.14.dist-info/entry_points.txt,sha256=ToOd-pRgG7AitEBgYoBCRRB4-KVDQ0pj_9T4a1LgwA4,97
186
+ pixeltable-0.3.14.dist-info/RECORD,,