pixeltable 0.3.14__py3-none-any.whl → 0.4.0rc1__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.

Files changed (50) hide show
  1. pixeltable/__version__.py +2 -2
  2. pixeltable/catalog/catalog.py +292 -105
  3. pixeltable/catalog/column.py +10 -8
  4. pixeltable/catalog/dir.py +1 -2
  5. pixeltable/catalog/insertable_table.py +25 -20
  6. pixeltable/catalog/schema_object.py +3 -6
  7. pixeltable/catalog/table.py +245 -189
  8. pixeltable/catalog/table_version.py +319 -201
  9. pixeltable/catalog/table_version_handle.py +15 -2
  10. pixeltable/catalog/table_version_path.py +60 -21
  11. pixeltable/catalog/view.py +14 -5
  12. pixeltable/dataframe.py +11 -9
  13. pixeltable/env.py +2 -4
  14. pixeltable/exec/in_memory_data_node.py +1 -1
  15. pixeltable/exec/sql_node.py +20 -11
  16. pixeltable/exprs/column_property_ref.py +15 -6
  17. pixeltable/exprs/column_ref.py +32 -11
  18. pixeltable/exprs/comparison.py +1 -1
  19. pixeltable/exprs/row_builder.py +4 -6
  20. pixeltable/exprs/rowid_ref.py +8 -0
  21. pixeltable/exprs/similarity_expr.py +1 -0
  22. pixeltable/func/query_template_function.py +1 -1
  23. pixeltable/functions/gemini.py +166 -33
  24. pixeltable/functions/math.py +63 -0
  25. pixeltable/functions/string.py +212 -58
  26. pixeltable/globals.py +7 -4
  27. pixeltable/index/base.py +5 -0
  28. pixeltable/index/btree.py +5 -0
  29. pixeltable/index/embedding_index.py +5 -0
  30. pixeltable/io/external_store.py +8 -29
  31. pixeltable/io/label_studio.py +1 -1
  32. pixeltable/io/parquet.py +4 -4
  33. pixeltable/io/table_data_conduit.py +0 -31
  34. pixeltable/metadata/__init__.py +1 -1
  35. pixeltable/metadata/converters/convert_13.py +2 -2
  36. pixeltable/metadata/converters/convert_30.py +6 -11
  37. pixeltable/metadata/converters/convert_35.py +9 -0
  38. pixeltable/metadata/converters/util.py +3 -9
  39. pixeltable/metadata/notes.py +1 -0
  40. pixeltable/metadata/schema.py +5 -1
  41. pixeltable/plan.py +4 -4
  42. pixeltable/share/packager.py +207 -15
  43. pixeltable/share/publish.py +2 -2
  44. pixeltable/store.py +31 -13
  45. pixeltable/utils/dbms.py +1 -1
  46. {pixeltable-0.3.14.dist-info → pixeltable-0.4.0rc1.dist-info}/METADATA +1 -1
  47. {pixeltable-0.3.14.dist-info → pixeltable-0.4.0rc1.dist-info}/RECORD +50 -49
  48. {pixeltable-0.3.14.dist-info → pixeltable-0.4.0rc1.dist-info}/LICENSE +0 -0
  49. {pixeltable-0.3.14.dist-info → pixeltable-0.4.0rc1.dist-info}/WHEEL +0 -0
  50. {pixeltable-0.3.14.dist-info → pixeltable-0.4.0rc1.dist-info}/entry_points.txt +0 -0
pixeltable/store.py CHANGED
@@ -52,7 +52,11 @@ class StoreBase:
52
52
  # We need to declare a `base` variable here, even though it's only defined for instances of `StoreView`,
53
53
  # since it's referenced by various methods of `StoreBase`
54
54
  self.base = tbl_version.base.get().store_tbl if tbl_version.base is not None else None
55
- self.create_sa_tbl()
55
+ # we're passing in tbl_version to avoid a circular call to TableVersionHandle.get()
56
+ self.create_sa_tbl(tbl_version)
57
+
58
+ def system_columns(self) -> list[sql.Column]:
59
+ return [*self._pk_cols, self.v_max_col]
56
60
 
57
61
  def pk_columns(self) -> list[sql.Column]:
58
62
  return self._pk_cols
@@ -74,11 +78,13 @@ class StoreBase:
74
78
  self._pk_cols = [*rowid_cols, self.v_min_col]
75
79
  return [*rowid_cols, self.v_min_col, self.v_max_col]
76
80
 
77
- def create_sa_tbl(self) -> None:
81
+ def create_sa_tbl(self, tbl_version: Optional[catalog.TableVersion] = None) -> None:
78
82
  """Create self.sa_tbl from self.tbl_version."""
83
+ if tbl_version is None:
84
+ tbl_version = self.tbl_version.get()
79
85
  system_cols = self._create_system_columns()
80
86
  all_cols = system_cols.copy()
81
- for col in [c for c in self.tbl_version.get().cols if c.is_stored]:
87
+ for col in [c for c in tbl_version.cols if c.is_stored]:
82
88
  # re-create sql.Column for each column, regardless of whether it already has sa_col set: it was bound
83
89
  # to the last sql.Table version we created and cannot be reused
84
90
  col.create_sa_cols()
@@ -96,16 +102,17 @@ class StoreBase:
96
102
  # - base x view joins can be executed as merge joins
97
103
  # - speeds up ORDER BY rowid DESC
98
104
  # - allows filtering for a particular table version in index scan
99
- idx_name = f'sys_cols_idx_{self.tbl_version.id.hex}'
105
+ idx_name = f'sys_cols_idx_{tbl_version.id.hex}'
100
106
  idxs.append(sql.Index(idx_name, *system_cols))
101
107
 
102
108
  # v_min/v_max indices: speeds up base table scans needed to propagate a base table insert or delete
103
- idx_name = f'vmin_idx_{self.tbl_version.id.hex}'
109
+ idx_name = f'vmin_idx_{tbl_version.id.hex}'
104
110
  idxs.append(sql.Index(idx_name, self.v_min_col, postgresql_using=Env.get().dbms.version_index_type))
105
- idx_name = f'vmax_idx_{self.tbl_version.id.hex}'
111
+ idx_name = f'vmax_idx_{tbl_version.id.hex}'
106
112
  idxs.append(sql.Index(idx_name, self.v_max_col, postgresql_using=Env.get().dbms.version_index_type))
107
113
 
108
114
  self.sa_tbl = sql.Table(self._storage_name(), self.sa_md, *all_cols, *idxs)
115
+ # _logger.debug(f'created sa tbl for {tbl_version.id!s} (sa_tbl={id(self.sa_tbl):x}, tv={id(tbl_version):x})')
109
116
 
110
117
  @abc.abstractmethod
111
118
  def _rowid_join_predicate(self) -> sql.ColumnElement[bool]:
@@ -215,6 +222,15 @@ class StoreBase:
215
222
  log_stmt(_logger, stmt)
216
223
  Env.get().conn.execute(stmt)
217
224
 
225
+ def ensure_columns_exist(self, cols: Iterable[catalog.Column]) -> None:
226
+ conn = Env.get().conn
227
+ sql_text = f'SELECT column_name FROM information_schema.columns WHERE table_name = {self._storage_name()!r}'
228
+ result = conn.execute(sql.text(sql_text))
229
+ existing_cols = {row[0] for row in result}
230
+ for col in cols:
231
+ if col.store_name() not in existing_cols:
232
+ self.add_column(col)
233
+
218
234
  def load_column(
219
235
  self, col: catalog.Column, exec_plan: ExecNode, value_expr_slot_idx: int, on_error: Literal['abort', 'ignore']
220
236
  ) -> int:
@@ -273,7 +289,7 @@ class StoreBase:
273
289
  else:
274
290
  if col.col_type.is_image_type() and result_row.file_urls[value_expr_slot_idx] is None:
275
291
  # we have yet to store this image
276
- filepath = str(MediaStore.prepare_media_path(col.tbl.id, col.id, col.tbl.get().version))
292
+ filepath = str(MediaStore.prepare_media_path(col.tbl.id, col.id, col.tbl.version))
277
293
  result_row.flush_img(value_expr_slot_idx, filepath)
278
294
  val = result_row.get_stored_val(value_expr_slot_idx, col.sa_col.type)
279
295
  if col.col_type.is_media_type():
@@ -403,9 +419,7 @@ class StoreBase:
403
419
  number of deleted rows
404
420
  """
405
421
  where_clause = sql.true() if where_clause is None else where_clause
406
- where_clause = sql.and_(
407
- self.v_min_col < current_version, self.v_max_col == schema.Table.MAX_VERSION, where_clause
408
- )
422
+ version_clause = sql.and_(self.v_min_col < current_version, self.v_max_col == schema.Table.MAX_VERSION)
409
423
  rowid_join_clause = self._rowid_join_predicate()
410
424
  base_versions_clause = (
411
425
  sql.true() if len(base_versions) == 0 else self.base._versions_clause(base_versions, match_on_vmin)
@@ -416,10 +430,12 @@ class StoreBase:
416
430
  set_clause[index_info.undo_col.sa_col] = index_info.val_col.sa_col
417
431
  # set value column to NULL
418
432
  set_clause[index_info.val_col.sa_col] = None
433
+
419
434
  stmt = (
420
435
  sql.update(self.sa_tbl)
421
436
  .values(set_clause)
422
437
  .where(where_clause)
438
+ .where(version_clause)
423
439
  .where(rowid_join_clause)
424
440
  .where(base_versions_clause)
425
441
  )
@@ -516,10 +532,12 @@ class StoreComponentView(StoreView):
516
532
  self.rowid_cols.append(self.pos_col)
517
533
  return self.rowid_cols
518
534
 
519
- def create_sa_tbl(self) -> None:
520
- super().create_sa_tbl()
535
+ def create_sa_tbl(self, tbl_version: Optional[catalog.TableVersion] = None) -> None:
536
+ if tbl_version is None:
537
+ tbl_version = self.tbl_version.get()
538
+ super().create_sa_tbl(tbl_version)
521
539
  # we need to fix up the 'pos' column in TableVersion
522
- self.tbl_version.get().cols_by_name['pos'].sa_col = self.pos_col
540
+ tbl_version.cols_by_name['pos'].sa_col = self.pos_col
523
541
 
524
542
  def _rowid_join_predicate(self) -> sql.ColumnElement[bool]:
525
543
  return sql.and_(
pixeltable/utils/dbms.py CHANGED
@@ -35,7 +35,7 @@ class PostgresqlDbms(Dbms):
35
35
  """
36
36
 
37
37
  def __init__(self, db_url: URL):
38
- super().__init__('postgresql', 'REPEATABLE READ', 'brin', db_url)
38
+ super().__init__('postgresql', 'SERIALIZABLE', 'brin', db_url)
39
39
 
40
40
  def drop_db_stmt(self, database: str) -> str:
41
41
  return f'DROP DATABASE {database}'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pixeltable
3
- Version: 0.3.14
3
+ Version: 0.4.0rc1
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,22 +1,22 @@
1
1
  pixeltable/__init__.py,sha256=-uXHuiXH98kAlCupUTPbkBh4ToZgxcYUOk7-c9hqCC8,1439
2
- pixeltable/__version__.py,sha256=XhiJRUjdjrwJPbZIKiObIa0uwoOqWB_MxrLdbtgVGS8,114
2
+ pixeltable/__version__.py,sha256=8n05k74lzCnT5buUnz2d9g9yaA6gdHgtEi-A_Z20pO4,120
3
3
  pixeltable/catalog/__init__.py,sha256=rQmjveID4bk6NI4Ql09lGsZ0K0HVE2l1yqKAveipHzc,558
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
4
+ pixeltable/catalog/catalog.py,sha256=mMivgHA6ru3HGZAiEfiQyP2yJEI7-LFhkGg_PlFSewc,59246
5
+ pixeltable/catalog/column.py,sha256=v3SE6CQs_ZXTDkBeiJ7gu9sxBJD-6EbkjsB1TZvLSJI,11280
6
+ pixeltable/catalog/dir.py,sha256=HFemOf67Nfw13EOpQsR_UgzP2L1w4LDfw2009DrSK0Y,2063
7
7
  pixeltable/catalog/globals.py,sha256=7fNUs67D18PZ1ZajcGz7KQOV6tuXEcYLSrePzgmDkRw,4036
8
- pixeltable/catalog/insertable_table.py,sha256=6kXMHAZtqoTGqYgMDMJwCbxoLaPz1VG4trh-rAepvF0,8841
8
+ pixeltable/catalog/insertable_table.py,sha256=tl3tvMVPzi9A_SRARV6660NQnt8w09hNbOYZwMsSJw8,9195
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=J96iXsKMvqTNN0jbcMOPZDSZDNq8688Vkybs5bFcqNk,1818
12
- pixeltable/catalog/table.py,sha256=mlMbV6cWafm6OC9AHmMfpHuTYTyhGf5rhMHV2537tF8,65129
13
- pixeltable/catalog/table_version.py,sha256=1Yff0GylzRpsZZS0I8sEGkSxJUMdGqpGoB1QsYjtjGs,62249
14
- pixeltable/catalog/table_version_handle.py,sha256=LYJFTdRssPu4uOBPbP93wKqXygJXr3Gwdc9wHzzZRag,1654
15
- pixeltable/catalog/table_version_path.py,sha256=r4WHtP2dkF05UafiQe47RWkszPiy8ZsdcTMA5mEzRp4,6847
16
- pixeltable/catalog/view.py,sha256=u9c9YL9dHw21qGYf-QYST7nULhut-ECK-DWR1_MH3ik,13027
11
+ pixeltable/catalog/schema_object.py,sha256=B9Am6W1bWnAMFZ4qFTfYw6g8F0-q_2aezBB1bUHL_RY,1812
12
+ pixeltable/catalog/table.py,sha256=iE4PAulsxnlCjmSOMxVFD2mXNEch7owty4tbS-IfOHk,68084
13
+ pixeltable/catalog/table_version.py,sha256=FqVuZdAbp7Bo0dt7zQGHtwTOUmS2qAiEtHrMQSOxqek,66289
14
+ pixeltable/catalog/table_version_handle.py,sha256=E0iPIp2PUbE7r3WZzerBJ7fgKX3vaTWPnn6cOwKLF-A,2581
15
+ pixeltable/catalog/table_version_path.py,sha256=2JEprCdDzCfr9dPxlMhsQ80jYqJ0-8uBNgNXt3D-bao,9042
16
+ pixeltable/catalog/view.py,sha256=jlLyu71LMmz33WnfnXX3jANRJOtGM6SDifppApI0yJI,13585
17
17
  pixeltable/config.py,sha256=gnRI4G9GE7mQJDcMcn8JsEzYk8oKVfHB-BwoLRWnRDo,3971
18
- pixeltable/dataframe.py,sha256=n_ZF_JdCq-DkpOzLhlnCspjDS2I8_7M0nlkTcDQVqyA,51593
19
- pixeltable/env.py,sha256=46ri1zrun9eJGBiBMnvA9PkBoVVzI3b1aLG9a1RdLuA,36236
18
+ pixeltable/dataframe.py,sha256=U8QRC74phOtSnVMI9uxTZR_GB_GKUQLe0_Md7e3Rf80,51851
19
+ pixeltable/env.py,sha256=1t5ZBrLCLSPaz0nD_sCQvvfB6tjBppVI9Io4iJtdmNE,36024
20
20
  pixeltable/exceptions.py,sha256=eI2f4oXqv678_fDOxeYOTPE_EF1CMX3pwCqtJvN8i7s,926
21
21
  pixeltable/exec/__init__.py,sha256=m4AF2kzFtsTRUevupgWs8er0oJQisCR9ROW7ZJlL3dw,509
22
22
  pixeltable/exec/aggregation_node.py,sha256=HqzISO1nv7_DFyqjZLRkjtbDJl9fIEto1i6Kh5ru8vA,4498
@@ -31,15 +31,15 @@ pixeltable/exec/expr_eval/expr_eval_node.py,sha256=ABkC2yAcMSCtQ7AvNAn6rfj3AMscV
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
34
- pixeltable/exec/in_memory_data_node.py,sha256=csw_4qyOKsvqgIiqX6IMDw6wi2pqnHwLgoE_77j7Pck,3594
34
+ pixeltable/exec/in_memory_data_node.py,sha256=vmxD2Jwn15Wjkf_3wufr35SPjb60H_I4zpUKaO1Zo_s,3592
35
35
  pixeltable/exec/row_update_node.py,sha256=zU0eSyn81-vRrjAMOadRqU8luTshnPUtIbS7npyLBKY,2798
36
- pixeltable/exec/sql_node.py,sha256=HxCJlzkJSYbmMVskZJihoaP2GYIZsiFUvFXxNm6MZLs,19826
36
+ pixeltable/exec/sql_node.py,sha256=SBnmFvt1Iit5Sx1-iUqvtwyHNBdZPHlikhlrUtFnncs,20098
37
37
  pixeltable/exprs/__init__.py,sha256=AxSMjKNavCT9F6vBaNR-nwX2iupAI5hbMb5hEj65Tfk,1096
38
38
  pixeltable/exprs/arithmetic_expr.py,sha256=sZPao0qdFWbrDx0eiAVxw1wGHJXZ5ZoCpQaScysBldE,7333
39
39
  pixeltable/exprs/array_slice.py,sha256=8Zv0E2RghdJi1Mbk0kKtOz2ccGQuXwLLb6R9v1jk7hA,2180
40
- pixeltable/exprs/column_property_ref.py,sha256=nwvPxyVveOCSCGgUDTnILFKAolZ2VwMVToDLCAQsH0c,3786
41
- pixeltable/exprs/column_ref.py,sha256=hMkxeJQMbTVDhzCi9Sc4CzFagVmQXu42GU66Frx-gNI,13980
42
- pixeltable/exprs/comparison.py,sha256=fJ840HORCi4x5ovkkdM_PXqlzttS0K9W0oikWWp1oa8,5139
40
+ pixeltable/exprs/column_property_ref.py,sha256=28UcsrMIoXmMy6DAgJ0GP6Vw4sYwXcspVySmKSvejaE,4178
41
+ pixeltable/exprs/column_ref.py,sha256=LljuQiNYh6dQa_EV57ylPfNkQD-lfHBFTGDY8WlnnfY,14942
42
+ pixeltable/exprs/comparison.py,sha256=lgaRx000ZaNH10A4hrtsi5XoZKE-CNEONGMi7jxJfcM,5133
43
43
  pixeltable/exprs/compound_predicate.py,sha256=vJVRVueAmaKnjiHCLWyh8wHgktzzK0DVqbOIQJgTjF8,3801
44
44
  pixeltable/exprs/data_row.py,sha256=y16wVbp_ISNmMUP18PtX5vFrc4zxCiV3f9jCoReKl6I,11396
45
45
  pixeltable/exprs/expr.py,sha256=JABPT8dGISMq_ciG67GPdX00nKTrJwQ1DQhxSRqkC4A,35602
@@ -55,9 +55,9 @@ pixeltable/exprs/json_path.py,sha256=sFuDjfz8_rlea4TKd68CS4pQTUiLDi68YwsgcQRHffI
55
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
- pixeltable/exprs/row_builder.py,sha256=vZbSEctWYn79zC1CCBqFHZeD3-2oryyQeJKVi2-enH0,21200
59
- pixeltable/exprs/rowid_ref.py,sha256=DbkdnXIxNExrLOOjwyL5n1amKJnaw3QVSkUonTcJErs,4918
60
- pixeltable/exprs/similarity_expr.py,sha256=ssls1A3gxzY0qJbaqN_1pKkuLriLTCnMqlPG0sp_M6Y,3635
58
+ pixeltable/exprs/row_builder.py,sha256=LL8q_8AthTqH8duWqKwdaS8DlvUsC8chclzQRR4MJAE,21150
59
+ pixeltable/exprs/rowid_ref.py,sha256=SCPsDx3R55wtK-ND2xQQdV823RdeTF5HTcQ76e40NOE,5186
60
+ pixeltable/exprs/similarity_expr.py,sha256=i0UUnMSKKGXd3Uksu6FU2NvkfG0qzfzfi-GPy-LdutM,3688
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
@@ -73,7 +73,7 @@ pixeltable/func/expr_template_function.py,sha256=wEidKrOBTZkA3U1PAtG6-6RlDFiiRJs
73
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
- pixeltable/func/query_template_function.py,sha256=QN_HGyBErDwdwpsI63caohsjo9usoN6WTEERG6NDtP4,7913
76
+ pixeltable/func/query_template_function.py,sha256=25nvgadWgk16BU7X5uI7PvKfkoluJSuOqsAcY5AN-Yw,7915
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
@@ -84,39 +84,39 @@ pixeltable/functions/bedrock.py,sha256=lTCFHjYunF3minBGWcjXR90yJ8resFjXr4niyKhfx
84
84
  pixeltable/functions/date.py,sha256=WUwqyrOWB8A00cTNEd6Vd7anQZo40_-7EWhpfpI-P6c,5323
85
85
  pixeltable/functions/deepseek.py,sha256=KYIa-UJJUTOt9cCfmP6k6nM4MpKm1MBU8F-jWk3CycY,3827
86
86
  pixeltable/functions/fireworks.py,sha256=k0vUXxeeNYWfL_tdLgF9c-vOilr0g2tTeLkAL9SJ6ws,4972
87
- pixeltable/functions/gemini.py,sha256=GTtYBCNQG0DXBrBCdd92A2KVfP6JLuBESdCJ2XRrlBU,2969
87
+ pixeltable/functions/gemini.py,sha256=zWPsvtq0mPFBC_-4N7NDuhTYZfAzRMmZa9S4GFjIpLg,8328
88
88
  pixeltable/functions/globals.py,sha256=ZXBV2LPXT2-yQYHHE7q8N1WdAr0WxiIO1ax0qwxhmK8,5118
89
89
  pixeltable/functions/huggingface.py,sha256=KM1OH0Jt6XWF2jfpHb6rGhi1mV-AQNYAsHAyQfzW4qw,20560
90
90
  pixeltable/functions/image.py,sha256=IKXljMma-uU88efptC3F4aywau7DYcD-Nqd3YpmRNRw,13971
91
91
  pixeltable/functions/json.py,sha256=d7-AvwytUQtQYF_JnWJkptT_Yq0NgMpWfVk-m3U6qTY,807
92
92
  pixeltable/functions/llama_cpp.py,sha256=uf7WSZIhKDa492snnQv5ojGVLNdBWvuw0Ou3Mch1c_I,3874
93
- pixeltable/functions/math.py,sha256=gmkeAWm_FbWqiekVOK8fyRs7A87kKE9rCdYE0ETfGj4,3357
93
+ pixeltable/functions/math.py,sha256=eZEFjXxNHDHjcCsOMhzfNbJthTsmtNxtSFV8AEeRIfM,4979
94
94
  pixeltable/functions/mistralai.py,sha256=yZge5T385RoiFGXEZ6OhwWHj0JnsZ8tN8Jb3VkfDmXc,6274
95
95
  pixeltable/functions/ollama.py,sha256=AmkP532HwWeTyWkTnHm_hIk0CFjzV5MwCCPnM9Kb7KM,4231
96
96
  pixeltable/functions/openai.py,sha256=aDh1L2mBbSlrM8c1Rbh2QsCnmBESItLqzZ-frdgb05k,29259
97
97
  pixeltable/functions/replicate.py,sha256=SLMPNi44QMa16TVTImZRkNMXXyRZ0mmpnK6P5uXQE0k,2467
98
- pixeltable/functions/string.py,sha256=PjOtpRfQijcL930euR53FmYeQEOjfd5htTGxr_5bRe0,20143
98
+ pixeltable/functions/string.py,sha256=LdBNOna5PUSPmM5VlJ_qhmwzyFhumW0k6Dvx2rXSZtc,25356
99
99
  pixeltable/functions/timestamp.py,sha256=0zp4urJagCcNLfJE0ltTCft-J9qs2C716TmRngKYaa0,9171
100
100
  pixeltable/functions/together.py,sha256=ufg0RehEoQEqBy9EHSKY4N3ZNT5O__cwDS0Ll467eLk,10014
101
101
  pixeltable/functions/util.py,sha256=lVya13gcao8T34OGX7zy1cglQPNwaBbSBw57bVPyHNs,745
102
102
  pixeltable/functions/video.py,sha256=jS4YhMofD448YhGtI6ZXBAkeGw_AYYQTN0AbgHh_hok,6933
103
103
  pixeltable/functions/vision.py,sha256=_a0wY3akkVhWnnxlq__1VzSLylytlNadpNOOPOwSfLk,15393
104
104
  pixeltable/functions/whisper.py,sha256=c9E6trhc2UcShVaGaEBCUEpArke1ql3MV5We0qSgmuU,2960
105
- pixeltable/globals.py,sha256=sbbuDMnZK6stceHZqe6ndBtN4WNopeYE_CtCim2qIn4,31882
105
+ pixeltable/globals.py,sha256=IBeT0bJ4VxfNcmPkjyplZMYyM3bZ9PPFOPIq25GiZE4,32062
106
106
  pixeltable/index/__init__.py,sha256=97aFuxiP_oz1ldn5iq8IWApkOV8XG6ZIBW5-9rkS0vM,122
107
- pixeltable/index/base.py,sha256=jrE2Sack14_o_oFWkQf_qdDCSQ85SCZLcJX4GhU_JaY,1527
108
- pixeltable/index/btree.py,sha256=m4eUk8jVG5h2VW_IcsmWG4GN-FFk0uFHyDF6FSw_gbM,2299
109
- pixeltable/index/embedding_index.py,sha256=W-PO-ytmh1UTSZHDIGMJiVInwQUR5WGouEvFwVF39e4,11552
107
+ pixeltable/index/base.py,sha256=200s7v3Zy810bRlbSAYzxxaEjVssl6r8esTHiSvWRwQ,1704
108
+ pixeltable/index/btree.py,sha256=8B06D67ay0DFUtEBC5q4bLjxMq7ILpKyyoLAiSaamzA,2503
109
+ pixeltable/index/embedding_index.py,sha256=B_k_3UJmSv7t2ljUg8GC_D4t1jc03PVsTAvxqiTmHBA,11754
110
110
  pixeltable/io/__init__.py,sha256=Yjq13pBCBoaZv-OkIY2XSusVOC5b6cB5C6NbgJq5H1g,620
111
111
  pixeltable/io/datarows.py,sha256=p1UGxQOTjqI6kgQNAa3aj8TkylcNDtaGBTorOg_Pk84,6088
112
- pixeltable/io/external_store.py,sha256=5gHSHLi-pPWHJ4OtVtY2vxrcbLG899hNMEcLvBfvYqI,16719
112
+ pixeltable/io/external_store.py,sha256=0ayZybxKRc600n-W7-3kEo0n_6LjAkIz-B4kLoPyukc,15554
113
113
  pixeltable/io/fiftyone.py,sha256=v0r28bIk2I0TRP5DfVHtBIUa4DpIJDK5sgExxOmHZ_w,6882
114
114
  pixeltable/io/globals.py,sha256=Z8ww-Pcm59ql1tvame8z0Mu1thIy5BPbW-TswGRXt4s,11368
115
115
  pixeltable/io/hf_datasets.py,sha256=gWyBH_0iFvxcrrxMY9_W399ZRcNDCmWFOAMmb1apnY0,5246
116
- pixeltable/io/label_studio.py,sha256=uB-LReXf1l2OMuzJEENxJP-0C14r14VEmsIulK8Yr3s,31261
116
+ pixeltable/io/label_studio.py,sha256=rEJCN4hmONRMXVGkj1Cq_E-wowcvg6d7KToXxheOh2w,31242
117
117
  pixeltable/io/pandas.py,sha256=AbOeRDlA4MvUvianSKixsU-x-64nasPWw4HCHD6emz4,8981
118
- pixeltable/io/parquet.py,sha256=MC2n1ybf0l9O2h873SuNEJHv1bTGA2cV0ei_wQCgbwo,7757
119
- pixeltable/io/table_data_conduit.py,sha256=gdjr82HxJpDfH55xmbIUCX5V-Hkaj6Kmo25NESKChtk,23205
118
+ pixeltable/io/parquet.py,sha256=-cxyy9wMRzGFDJWhUIjACfQMyAmajyoFcTXSkB8qESE,7818
119
+ pixeltable/io/table_data_conduit.py,sha256=oag9BDAjz6CZCCvZWuk3FnBNWb_m01bUzvbM0BW8tPI,21997
120
120
  pixeltable/io/utils.py,sha256=YMfhpqMitWz1PhXJGkCNOgNtEM1AZ55S0zXVhljC5kY,4260
121
121
  pixeltable/iterators/__init__.py,sha256=bU4EmbX85J1URmRw6G71f2I77b1ctqngEOwDmRB3T0w,455
122
122
  pixeltable/iterators/audio.py,sha256=wSVGdL5GeO3uY_lU-pNlY49E5dExIaJWY6oaXm-MnSU,9150
@@ -125,10 +125,10 @@ pixeltable/iterators/document.py,sha256=wJYSnzusJFaxipv5y0uQw-surN9fFz0Aq-s7w_l_
125
125
  pixeltable/iterators/image.py,sha256=nWm-03CxNvHRdTr8U6PvWEnEiquqIQNG5rB-3Y44Mm4,3440
126
126
  pixeltable/iterators/string.py,sha256=URj5edWp-CsorjN_8nnfWGvtIFs_Zh4VPm6htlJbFkU,1257
127
127
  pixeltable/iterators/video.py,sha256=L5S1YPmT_zM11vW9fK6d5nQpUvHVewQWmfDmy4BD45E,9134
128
- pixeltable/metadata/__init__.py,sha256=Rui2M8f8BcnJGRbYtCYxu-eqkp-3IovQINU8Hs45PHw,2607
128
+ pixeltable/metadata/__init__.py,sha256=gr9PE_iZ1Cze8h2Pj03c1ItShqUq7IxCwVnkV18DZbE,2607
129
129
  pixeltable/metadata/converters/convert_10.py,sha256=myYIo1DyccnsQUxDKG6mafnU5ge_EhZpHg_pesKBoK4,708
130
130
  pixeltable/metadata/converters/convert_12.py,sha256=Ci-qyZW1gqci-8wnjeOB5afdq7KTuN-hVSV9OqSPx8g,162
131
- pixeltable/metadata/converters/convert_13.py,sha256=yFR6lD3pOrZ46ZQBFKYvxiIYa7rRxh46Bsq7yiCBNak,1356
131
+ pixeltable/metadata/converters/convert_13.py,sha256=B-_EkL0pSl1mAiv6DymeUAyBQUcYcV1qDdNz3Q359kc,1369
132
132
  pixeltable/metadata/converters/convert_14.py,sha256=9e_JNm3a35Gs4dvFFaV-_jtCqp3ud6OEOqMIhTQmasE,428
133
133
  pixeltable/metadata/converters/convert_15.py,sha256=wKTdBt8p9GlUM3yBZFX-37J0c0_xc5SK0SXooxtDQJY,1722
134
134
  pixeltable/metadata/converters/convert_16.py,sha256=9sRigN4h3UHEurV1zAwO8AwE_ERkvxNVTUPFiV9h4MU,493
@@ -145,20 +145,21 @@ pixeltable/metadata/converters/convert_26.py,sha256=XaVYFFtlpuUD3bN_UAr9ONgaSkJg
145
145
  pixeltable/metadata/converters/convert_27.py,sha256=1P7DSAXPwHqkXvNxFqjIOcdI8dlsL8ikfaaveBvQHyM,904
146
146
  pixeltable/metadata/converters/convert_28.py,sha256=v2CqpXAbCTQ-3gbn_ZtSl0fXueK1Q7VDECbIc7Ci1VQ,694
147
147
  pixeltable/metadata/converters/convert_29.py,sha256=aBqZeXiYbtcAX3MiuEgqPkfzd8Hu8oNYjO-lJafmfOg,4912
148
- pixeltable/metadata/converters/convert_30.py,sha256=DKCD6ZMgRU2Cu7eonB1kYEnYCKI40m2XIjTiOyFsCyA,1450
148
+ pixeltable/metadata/converters/convert_30.py,sha256=HZsGfXNl0KCPNMu1lnEtIMp0sZhwWtWpYuJQKUoNx3k,1314
149
149
  pixeltable/metadata/converters/convert_31.py,sha256=pFjZGpuFlGRPxKYYidiSCIMNaEEXVuLTnELi3y_pSQo,424
150
150
  pixeltable/metadata/converters/convert_32.py,sha256=YENfuQ_mqhnZWrvHJffaGEqd1IwS2RjTGPkEvOs5sUs,406
151
151
  pixeltable/metadata/converters/convert_33.py,sha256=ZZV3FTyyouBM1eNymXxfHV-Oqmgu2s0KNP6AG3zc5eM,574
152
152
  pixeltable/metadata/converters/convert_34.py,sha256=1hi7m49CMzHRD25rrePS-SMCsZ-4opzDhY0JqU8Jzw4,690
153
- pixeltable/metadata/converters/util.py,sha256=qnhrwUS7nSczCdrMjKG7v3lRxRKh9o19epCtP8HTpsY,7729
154
- pixeltable/metadata/notes.py,sha256=9WMdfKT_mE96oTgRB92i7wZVw4qbwj-iA7hCYN49VhQ,1313
155
- pixeltable/metadata/schema.py,sha256=EKmx29vfQo3eGD2uCJW_lPalPialSb2oUSBGTyewduE,11261
156
- pixeltable/plan.py,sha256=VfXTvEYYiiLPBdw0hoTmdXHE5IeQKZc1ej8l9a3XAns,43632
153
+ pixeltable/metadata/converters/convert_35.py,sha256=c88qft0RFQbdFIE_PZRHMjeku1r5HCLN7wrvndQSXdI,266
154
+ pixeltable/metadata/converters/util.py,sha256=95pfg9amEOmhho32PIbNYnqagVIN9adIcLXxB6zSYDY,7527
155
+ pixeltable/metadata/notes.py,sha256=mCRyBvHNMsQ1fmORGcVIuiPwy7ya7vqbF8jmiSaCMNg,1347
156
+ pixeltable/metadata/schema.py,sha256=JSbZEwEzFFAV8__i5VtrkfhxgedlFI76rxk3_esNMF8,11382
157
+ pixeltable/plan.py,sha256=0xEHwqIUsgmSlLbYfmkyHuQNiD6lOumvx4UiNIk-KUw,43639
157
158
  pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
159
  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
160
+ pixeltable/share/packager.py,sha256=SyM-mzKoHLhgahFmJPkPSbBd1553nqs5FZnVTn4WNsg,27689
161
+ pixeltable/share/publish.py,sha256=U6PzOUYiZaPu-sVNjh2nN8qzY2-uMsYeTwQCCuGk7Jg,6537
162
+ pixeltable/store.py,sha256=2tfMgJNVVbGShgAKghGAIFMZ-ViJHE7N9kWd2ugbi2A,24691
162
163
  pixeltable/type_system.py,sha256=DSrof2NgKhBzvt7pbDNrGlZ3rkkDJ7MQsQ9rqk9N9pA,53988
163
164
  pixeltable/utils/__init__.py,sha256=Pwgu-Sg1XkxzdCZ4ZhWP77UgLP3tnQsyCKaUJLF4ajo,1741
164
165
  pixeltable/utils/arrow.py,sha256=74wIy58rDYZJBVQ1g85NqzFyiQBvEQhnJ0Gi82iZ0dw,6421
@@ -166,7 +167,7 @@ pixeltable/utils/coco.py,sha256=Y1DWVYguZD4VhKyf7JruYfHWvhkJLq39fzbiSm5cdyY,7304
166
167
  pixeltable/utils/code.py,sha256=SbG5OUF_fQAbOgGZHDuENijmbzisVqa4VS9guaZ0KtU,1231
167
168
  pixeltable/utils/console_output.py,sha256=x23iDnNwUbsr7Ec20BQ7BLATTsrQZflxc9NucAt_sVU,1150
168
169
  pixeltable/utils/coroutine.py,sha256=IPUqBpwHkDNaioMde7Km3LU8s54SGXVOtRJpYPkm1gE,1425
169
- pixeltable/utils/dbms.py,sha256=qm6O6leJJT0c5323cZnJTW5W_4rvQVfD4YFMbuw1mpM,2021
170
+ pixeltable/utils/dbms.py,sha256=cuQqlzLF7WON_mkJZ4QWlfX6lCxA97V32lhtMcOlDLg,2018
170
171
  pixeltable/utils/description_helper.py,sha256=acibNm36wkZG7h6k8gjcypTD_PVV2SL7YgX6cPYP1i8,3743
171
172
  pixeltable/utils/documents.py,sha256=x3UHU7eykibyA3eVkSrCK1CQoaid228vp96WUEESssU,3105
172
173
  pixeltable/utils/exception_handler.py,sha256=yrTAtUJEOhldps_k6aRLEf5yQ8gYGhl9c6ewYNC4Qfc,2476
@@ -179,8 +180,8 @@ pixeltable/utils/pytorch.py,sha256=564VHRdDHwD9h0v5lBHEDTJ8c6zx8wuzWYx8ZYjBxlI,3
179
180
  pixeltable/utils/s3.py,sha256=pxip2MlCqd2Qon2dzJXzfxvwtZyc-BAsjAnLL4J_OXY,587
180
181
  pixeltable/utils/sql.py,sha256=Sa4Lh-VGe8GToU5W7DRiWf2lMl9B6saPqemiT0ZdHEc,806
181
182
  pixeltable/utils/transactional_directory.py,sha256=OFKmu90oP7KwBAljwjnzP_w8euGdAXob3y4Nx9SCNHA,1357
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,,
183
+ pixeltable-0.4.0rc1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
184
+ pixeltable-0.4.0rc1.dist-info/METADATA,sha256=uD_AiJ5nJXk4YoVxcjAulmt9qsJGRruGMZfjdX_264Y,20542
185
+ pixeltable-0.4.0rc1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
186
+ pixeltable-0.4.0rc1.dist-info/entry_points.txt,sha256=ToOd-pRgG7AitEBgYoBCRRB4-KVDQ0pj_9T4a1LgwA4,97
187
+ pixeltable-0.4.0rc1.dist-info/RECORD,,