pixeltable 0.4.15__py3-none-any.whl → 0.4.16__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 (57) hide show
  1. pixeltable/__init__.py +4 -0
  2. pixeltable/catalog/catalog.py +105 -51
  3. pixeltable/catalog/column.py +7 -2
  4. pixeltable/catalog/table.py +1 -0
  5. pixeltable/catalog/table_metadata.py +4 -0
  6. pixeltable/catalog/table_version.py +99 -78
  7. pixeltable/catalog/table_version_handle.py +4 -1
  8. pixeltable/config.py +6 -0
  9. pixeltable/dataframe.py +10 -5
  10. pixeltable/env.py +48 -19
  11. pixeltable/exec/__init__.py +2 -0
  12. pixeltable/exec/cell_materialization_node.py +231 -0
  13. pixeltable/exec/cell_reconstruction_node.py +135 -0
  14. pixeltable/exec/exec_node.py +1 -1
  15. pixeltable/exec/expr_eval/evaluators.py +1 -0
  16. pixeltable/exec/expr_eval/expr_eval_node.py +3 -0
  17. pixeltable/exec/expr_eval/globals.py +2 -0
  18. pixeltable/exec/globals.py +32 -0
  19. pixeltable/exec/object_store_save_node.py +1 -4
  20. pixeltable/exec/row_update_node.py +16 -9
  21. pixeltable/exec/sql_node.py +107 -14
  22. pixeltable/exprs/__init__.py +1 -1
  23. pixeltable/exprs/arithmetic_expr.py +10 -11
  24. pixeltable/exprs/column_property_ref.py +10 -10
  25. pixeltable/exprs/column_ref.py +2 -2
  26. pixeltable/exprs/data_row.py +106 -37
  27. pixeltable/exprs/expr.py +9 -0
  28. pixeltable/exprs/expr_set.py +14 -7
  29. pixeltable/exprs/inline_expr.py +2 -19
  30. pixeltable/exprs/json_path.py +45 -12
  31. pixeltable/exprs/row_builder.py +54 -22
  32. pixeltable/functions/__init__.py +1 -0
  33. pixeltable/functions/bedrock.py +7 -0
  34. pixeltable/functions/deepseek.py +11 -4
  35. pixeltable/functions/llama_cpp.py +7 -0
  36. pixeltable/functions/math.py +1 -1
  37. pixeltable/functions/ollama.py +7 -0
  38. pixeltable/functions/openai.py +4 -4
  39. pixeltable/functions/openrouter.py +143 -0
  40. pixeltable/globals.py +10 -4
  41. pixeltable/io/globals.py +16 -15
  42. pixeltable/io/table_data_conduit.py +46 -21
  43. pixeltable/metadata/__init__.py +1 -1
  44. pixeltable/metadata/converters/convert_40.py +73 -0
  45. pixeltable/metadata/notes.py +1 -0
  46. pixeltable/plan.py +175 -46
  47. pixeltable/store.py +1 -1
  48. pixeltable/type_system.py +5 -3
  49. pixeltable/utils/console_output.py +4 -1
  50. pixeltable/utils/exception_handler.py +5 -28
  51. pixeltable/utils/image.py +7 -0
  52. pixeltable/utils/misc.py +5 -0
  53. {pixeltable-0.4.15.dist-info → pixeltable-0.4.16.dist-info}/METADATA +2 -1
  54. {pixeltable-0.4.15.dist-info → pixeltable-0.4.16.dist-info}/RECORD +57 -50
  55. {pixeltable-0.4.15.dist-info → pixeltable-0.4.16.dist-info}/WHEEL +0 -0
  56. {pixeltable-0.4.15.dist-info → pixeltable-0.4.16.dist-info}/entry_points.txt +0 -0
  57. {pixeltable-0.4.15.dist-info → pixeltable-0.4.16.dist-info}/licenses/LICENSE +0 -0
pixeltable/type_system.py CHANGED
@@ -25,6 +25,7 @@ import sqlalchemy as sql
25
25
  from typing_extensions import _AnnotatedAlias
26
26
 
27
27
  import pixeltable.exceptions as excs
28
+ from pixeltable.env import Env
28
29
  from pixeltable.utils import parse_local_file_path
29
30
 
30
31
 
@@ -673,8 +674,9 @@ class TimestampType(ColumnType):
673
674
  def _create_literal(self, val: Any) -> Any:
674
675
  if isinstance(val, str):
675
676
  return datetime.datetime.fromisoformat(val)
676
- if isinstance(val, datetime.datetime):
677
- return val
677
+ # Place naive timestamps in the default time zone
678
+ if isinstance(val, datetime.datetime) and val.tzinfo is None:
679
+ return val.replace(tzinfo=Env.get().default_time_zone)
678
680
  return val
679
681
 
680
682
 
@@ -760,7 +762,7 @@ class JsonType(ColumnType):
760
762
 
761
763
  @classmethod
762
764
  def __is_valid_json(cls, val: Any) -> bool:
763
- if val is None or isinstance(val, (str, int, float, bool)):
765
+ if val is None or isinstance(val, (str, int, float, bool, np.ndarray, PIL.Image.Image)):
764
766
  return True
765
767
  if isinstance(val, (list, tuple)):
766
768
  return all(cls.__is_valid_json(v) for v in val)
@@ -1,6 +1,8 @@
1
1
  import logging
2
2
  from typing import TextIO
3
3
 
4
+ from pixeltable import exceptions as excs
5
+
4
6
 
5
7
  def map_level(verbosity: int) -> int:
6
8
  """
@@ -19,7 +21,8 @@ def map_level(verbosity: int) -> int:
19
21
  return logging.INFO
20
22
  if verbosity == 2:
21
23
  return logging.DEBUG
22
- return logging.INFO
24
+
25
+ raise excs.Error(f'Invalid verbosity level: {verbosity}')
23
26
 
24
27
 
25
28
  class ConsoleOutputHandler(logging.StreamHandler):
@@ -1,32 +1,9 @@
1
1
  import logging
2
- import sys
3
2
  from typing import Any, Callable, Optional, TypeVar
4
3
 
5
4
  R = TypeVar('R')
6
5
 
7
-
8
- def _is_in_exception() -> bool:
9
- """
10
- Check if code is currently executing within an exception context.
11
- """
12
- current_exception = sys.exc_info()[1]
13
- return current_exception is not None
14
-
15
-
16
- def run_cleanup_on_exception(cleanup_func: Callable[..., R], *args: Any, **kwargs: Any) -> Optional[R]:
17
- """
18
- Runs cleanup only when running in exception context.
19
-
20
- The function `run_cleanup_on_exception()` should be used to clean up resources when an operation fails.
21
- This is typically done using a try, except, and finally block, with the resource cleanup logic placed within
22
- the except block. However, this pattern may not handle KeyboardInterrupt exceptions.
23
- To ensure that resources are always cleaned up at least once when an exception or KeyboardInterrupt occurs,
24
- create an idempotent function for cleaning up resources and pass it to the `run_cleanup_on_exception()` function
25
- from the finally block.
26
- """
27
- if _is_in_exception():
28
- return run_cleanup(cleanup_func, *args, raise_error=False, **kwargs)
29
- return None
6
+ logger = logging.getLogger('pixeltable')
30
7
 
31
8
 
32
9
  def run_cleanup(cleanup_func: Callable[..., R], *args: Any, raise_error: bool = True, **kwargs: Any) -> Optional[R]:
@@ -40,20 +17,20 @@ def run_cleanup(cleanup_func: Callable[..., R], *args: Any, raise_error: bool =
40
17
  raise_error: raise an exception if an error occurs during cleanup.
41
18
  """
42
19
  try:
43
- logging.debug(f'Running cleanup function: {cleanup_func.__name__!r}')
20
+ logger.debug(f'Running cleanup function: {cleanup_func.__name__!r}')
44
21
  return cleanup_func(*args, **kwargs)
45
22
  except KeyboardInterrupt as interrupt:
46
23
  # Save original exception and re-attempt cleanup
47
24
  original_exception = interrupt
48
- logging.debug(f'Cleanup {cleanup_func.__name__!r} interrupted, retrying')
25
+ logger.debug(f'Cleanup {cleanup_func.__name__!r} interrupted, retrying')
49
26
  try:
50
27
  return cleanup_func(*args, **kwargs)
51
28
  except Exception as e:
52
29
  # Suppress this exception
53
- logging.error(f'Cleanup {cleanup_func.__name__!r} failed with exception {e}')
30
+ logger.error(f'Cleanup {cleanup_func.__name__!r} failed with exception {e.__class__}: {e}')
54
31
  raise KeyboardInterrupt from original_exception
55
32
  except Exception as e:
56
- logging.error(f'Cleanup {cleanup_func.__name__!r} failed with exception {e}')
33
+ logger.error(f'Cleanup {cleanup_func.__name__!r} failed with exception {e.__class__}: {e}')
57
34
  if raise_error:
58
35
  raise e
59
36
  return None
@@ -0,0 +1,7 @@
1
+ import PIL.Image
2
+
3
+
4
+ def default_format(img: PIL.Image.Image) -> str:
5
+ # Default to JPEG unless the image has a transparency layer (which isn't supported by JPEG).
6
+ # In that case, use WebP instead.
7
+ return 'webp' if img.has_transparency_data else 'jpeg'
@@ -0,0 +1,5 @@
1
+ from typing import Any
2
+
3
+
4
+ def non_none_dict_factory(d: list[tuple[str, Any]]) -> dict:
5
+ return {k: v for (k, v) in d if v is not None}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pixeltable
3
- Version: 0.4.15
3
+ Version: 0.4.16
4
4
  Summary: AI Data Infrastructure: Declarative, Multimodal, and Incremental
5
5
  Project-URL: homepage, https://pixeltable.com/
6
6
  Project-URL: repository, https://github.com/pixeltable/pixeltable
@@ -53,6 +53,7 @@ Requires-Dist: sqlalchemy>=2.0.23
53
53
  Requires-Dist: tenacity>=8.2
54
54
  Requires-Dist: toml>=0.10
55
55
  Requires-Dist: tqdm>=4.64
56
+ Requires-Dist: tzlocal>=5.0
56
57
  Description-Content-Type: text/markdown
57
58
 
58
59
  <picture class="github-only">
@@ -1,70 +1,73 @@
1
- pixeltable/__init__.py,sha256=NJIh6nHictV4OeKGRFJ8QQ-FU5doqPT7PFGD7qFkTuM,1628
1
+ pixeltable/__init__.py,sha256=-EBEVxlngasTuD1qkJVHebSfUmYlZQH26qWLmXPRZX8,1716
2
2
  pixeltable/__version__.py,sha256=LnMIuAxx6nAQDMev_jnZyUdgsaiE3F8lulfXQBRl9qQ,112
3
- pixeltable/config.py,sha256=GEHneFtLb47thJZ6nTuJpzcpDG39lNzKPGFdKKfOvkQ,8540
4
- pixeltable/dataframe.py,sha256=Qu1nCwbif9QEtBGyETnGXlGgnznMa_nQjmDnc6DcqOc,64356
5
- pixeltable/env.py,sha256=_v0Ny62RMwJkMgiXoflnXmWbvLRx0eJ4I8CRuZVcT4M,45598
3
+ pixeltable/config.py,sha256=ailFL_XWBqPUFQScYCCEKKN5-rjRf_SgGvsJBVUs1qA,8841
4
+ pixeltable/dataframe.py,sha256=GpIDZEUF72qcpUGk5OxhcnoSFWYqVOTQiWMPJPUtj-A,64868
5
+ pixeltable/env.py,sha256=SHbSW9Z0bvKeN3EpMGncg2KY7yptE5MqoeydLQNR3gE,46599
6
6
  pixeltable/exceptions.py,sha256=Gm8d3TL2iiv6Pj2DLd29wp_j41qNBhxXL9iTQnL4Nk4,1116
7
- pixeltable/globals.py,sha256=mLQk77dsj4QfjGL0jC-aTHAVO327hG1mjmHeOBfiuvw,39950
8
- pixeltable/plan.py,sha256=lG_H9mkixP_Dqcy14DqDNpGBs-JXAJa9kVy6rTUsuc4,49258
7
+ pixeltable/globals.py,sha256=OxH62N_tOV_UH0sKCprdpj2_NfNP5sn9YKs20ixY-bE,40366
8
+ pixeltable/plan.py,sha256=qRHs1fn6my72w_sV40dNpKNBtWh573Nzam3W8zGj6fw,54070
9
9
  pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pixeltable/store.py,sha256=zgzn-28gvRxRm29hc7pFX50Ls_ca-pJOHSDdzFZzeug,22886
11
- pixeltable/type_system.py,sha256=4xnPN684UKC3lhzOoOqVAgR1lOPlHeEHt5Njpc6cGQQ,56131
10
+ pixeltable/store.py,sha256=BZGt6bYi5eH5SaZNXIoEUv8OuZxdHLT8MbIV4k-ThXA,22915
11
+ pixeltable/type_system.py,sha256=dbV4HKuRzWu5X0LscjWzdxbgcuy8mX34pMCg0725y0g,56316
12
12
  pixeltable/catalog/__init__.py,sha256=GL0MLxqCBHlhKWqhC3e9B4kwTazagTOiqBHHRjyWbTg,726
13
- pixeltable/catalog/catalog.py,sha256=x_stqOC6CFdklpefFuVflrptGmOqxH4Myo4XzYB3xmU,100345
14
- pixeltable/catalog/column.py,sha256=qEO1eyyJMaWvC_YXnyjs8f2dz_D52jxVYDN1_iVzEPE,13737
13
+ pixeltable/catalog/catalog.py,sha256=MSJKh1LTXZ2i4zOZCb1I4tblVb_O9x2tKggusuuRgmE,102523
14
+ pixeltable/catalog/column.py,sha256=lZ24WsVJRcGtfrd8YuSPMWgad3gJPUGtp_YFjEcdX7U,13870
15
15
  pixeltable/catalog/dir.py,sha256=VYTscPlKR6XhupPTXlJ8txAHxS5GSpPJ3LIleDJagVQ,2047
16
16
  pixeltable/catalog/globals.py,sha256=uMIDsbeDzFxZbcgKDTOiT5plC1gAKgz1oxxdh1odIPw,2648
17
17
  pixeltable/catalog/insertable_table.py,sha256=VUuJ8z7OtMqgy_LMzkn1KzeLXdR-9poTttClscQ_uaU,13899
18
18
  pixeltable/catalog/named_function.py,sha256=vZ-j7P4HugWh9OmUzBMwyRYvO3tQn9jWyJz_1stPavU,1210
19
19
  pixeltable/catalog/path.py,sha256=O3FfxrvyX2crijBhp_2k4-3mG3BFxwba-tlPB74QtJQ,3780
20
20
  pixeltable/catalog/schema_object.py,sha256=rQ6-3rzqnOHyEEHi97kai2S7BO3D9AkH7rirnfbGc14,1785
21
- pixeltable/catalog/table.py,sha256=bPG9u-UnktClTQmqQ6cB0MSzp2uxfNkpzDUngJhG2ew,81010
22
- pixeltable/catalog/table_metadata.py,sha256=cLqEgpRKmJOaJnKdJWMz3NLzZ59n41UIzfa_EloDZNU,3567
23
- pixeltable/catalog/table_version.py,sha256=Wqm_10XivTJAT5MGVF76fNGrCEW1jiUD182RnexWuRQ,64176
24
- pixeltable/catalog/table_version_handle.py,sha256=FTPRqcGY-h-POcWyZbd9b8P2D5zIw5OSUvwF_dbyCGo,3608
21
+ pixeltable/catalog/table.py,sha256=P3NDlzDfAd2fHAcZ0fJb6ZA3ROpzfcVsyRCfVDaaf7U,81051
22
+ pixeltable/catalog/table_metadata.py,sha256=dDUGss6wTv_e1FHIRO9wWC5QhuIaCXTe9Xhd_lUW3Fg,3762
23
+ pixeltable/catalog/table_version.py,sha256=QaTSyAdKd5QwfSvCy_-GxWvalcW6VsRgUY0nd-1NwNE,65720
24
+ pixeltable/catalog/table_version_handle.py,sha256=oCQGKdy13TaHDQVLGOMxLtFkYPWs-GdDqlFhfR3WvrU,3732
25
25
  pixeltable/catalog/table_version_path.py,sha256=IaFVDH06_6ZMuBv5eLNCRTlWizpvz95jgAzqp4OVx_o,9713
26
26
  pixeltable/catalog/tbl_ops.py,sha256=Vdcz4Nzvdw09zcQaCEaOr9Uufk2rQHgG0vBvMbQp9R8,1145
27
27
  pixeltable/catalog/update_status.py,sha256=jeRy7WUZ80l4gPY1c5vYcxT1F82nL5KphNrSKKfOdk8,7667
28
28
  pixeltable/catalog/view.py,sha256=Snki7QNlKThba9MSeEYCaBIwaqfiR0v_FMdIO9SJkFE,15420
29
- pixeltable/exec/__init__.py,sha256=9B31dWrTJ9sdQiVd1OFtHgxa8A2YmAPBDPd6gnFjEqQ,580
29
+ pixeltable/exec/__init__.py,sha256=UQ32v0MbLF3vFx6MZLuZKfrqNVoihJFhsYzWOChX1go,704
30
30
  pixeltable/exec/aggregation_node.py,sha256=54YO1tddnIGOlWUwVff9xcghrZr60UNAgBekF7OuxWA,4401
31
31
  pixeltable/exec/cache_prefetch_node.py,sha256=Xq6Ty_0LLipDOQ91keUNVo5DZPn5Ogz39X2ThKQz5WA,10891
32
+ pixeltable/exec/cell_materialization_node.py,sha256=TfkGUQdCmTkkLU_lHEXNvd6SzORPL9cYRxKyssqTz8k,10106
33
+ pixeltable/exec/cell_reconstruction_node.py,sha256=ygB-BOK1I1KW_yFOMFX-E-w2l_-LUbYKXY6mfQXf6Fg,5322
32
34
  pixeltable/exec/component_iteration_node.py,sha256=7k8Wfzjc15SO0V8rc-zYTiB3DQ-euMtNQIOsve_FY7I,4797
33
35
  pixeltable/exec/data_row_batch.py,sha256=ryrhfXczQVrtxrTEyDTyK9ItNZ9wNt15FdM_Mpuuumw,1109
34
36
  pixeltable/exec/exec_context.py,sha256=jKeLStfkjwCKKAooC-7a7qZUnZU5O0_JQhanhVerV9c,984
35
- pixeltable/exec/exec_node.py,sha256=auRbL43-NR2G0rnjs8aK4Q2qAV3IeKDNqduVnoO-2AY,3315
37
+ pixeltable/exec/exec_node.py,sha256=gvXU1nFQqwXNfjUSGAcrB9_2V8Stur6A_dETBkpxqXY,3305
38
+ pixeltable/exec/globals.py,sha256=fAKOvszbntIh4J1nAmvVA9BGGk98NKZ_G9mVEaZ28pk,904
36
39
  pixeltable/exec/in_memory_data_node.py,sha256=XrR3ggNILrJ77n3l4qOiKWfwUVakdRIdRsVasKP17jw,3513
37
- pixeltable/exec/object_store_save_node.py,sha256=JCgx2fYqLK_Vjj1lK5vHebgS1oSqEq52w0Uxg3hJSIU,13322
38
- pixeltable/exec/row_update_node.py,sha256=zU0eSyn81-vRrjAMOadRqU8luTshnPUtIbS7npyLBKY,2798
39
- pixeltable/exec/sql_node.py,sha256=99GW3729YzYT0vYxhACte8XQ-NxIBn1cgfRXzPbz7O4,27233
40
+ pixeltable/exec/object_store_save_node.py,sha256=r78ySsSlpmw0ZsfG2Rp0kR2xfbs_RgrWjZ__gU_oL1Y,13272
41
+ pixeltable/exec/row_update_node.py,sha256=KS68FYUxtUv2JSP5RjJmKBAr_hT26zXmWmdpQrYfvKI,3127
42
+ pixeltable/exec/sql_node.py,sha256=wPk-LbMqDKIVB_lkjIqh2MqBUSIUZIwLEOGPkNeCwhk,31701
40
43
  pixeltable/exec/expr_eval/__init__.py,sha256=sQThSEByK_DLfB-_-18RFhpARx49cSXYEkpCDyi0vQI,61
41
- pixeltable/exec/expr_eval/evaluators.py,sha256=-6s_y29Wh8p35SVKkXtnA0NkzcHVw1Z8PgHGiFrMsqs,17135
42
- pixeltable/exec/expr_eval/expr_eval_node.py,sha256=xi0H3vlhf00gcPI_Zojt7nhpVsKqV5GaWip8TfIz_4k,19781
43
- pixeltable/exec/expr_eval/globals.py,sha256=FL9DwFub1fc8ppzzTdrQytBwylyDkH4mIwciWnIGBcc,7816
44
+ pixeltable/exec/expr_eval/evaluators.py,sha256=t-pJbDW3jjbJLjU53hZtl2uESIX82PSKjMgOzfFi_os,17174
45
+ pixeltable/exec/expr_eval/expr_eval_node.py,sha256=aYupmD1Trc9O11JgrA5g1yvk2QtdNhjB4jymvQzjsTo,19870
46
+ pixeltable/exec/expr_eval/globals.py,sha256=NQp4f7adjkR1zaFS8oBJWlLszEn8d1ionUNlXpoObbc,7933
44
47
  pixeltable/exec/expr_eval/row_buffer.py,sha256=YY0thdlMNNReEOTyPp36xKPeMeXSZ0VrI9bJsXgo7sU,2744
45
48
  pixeltable/exec/expr_eval/schedulers.py,sha256=pNTHiwL8omHa_kodv61gynBHFbJnSg5CktvezrO_yc8,24337
46
- pixeltable/exprs/__init__.py,sha256=AxSMjKNavCT9F6vBaNR-nwX2iupAI5hbMb5hEj65Tfk,1096
47
- pixeltable/exprs/arithmetic_expr.py,sha256=sZPao0qdFWbrDx0eiAVxw1wGHJXZ5ZoCpQaScysBldE,7333
49
+ pixeltable/exprs/__init__.py,sha256=u8z3gv-uHt2Bz0F7heRPOVNa1r2OD1qqUDXnwEdSmlM,1113
50
+ pixeltable/exprs/arithmetic_expr.py,sha256=4kH4HKBWH75WW8iXTpWU3aHTDz7RYWM9FrtHCiUyyT4,7420
48
51
  pixeltable/exprs/array_slice.py,sha256=C8O0cmGHdc-iVe2FFdW_2jRVR4Gwurzeot6ESEk6RTA,2167
49
- pixeltable/exprs/column_property_ref.py,sha256=rq8VD34fZwAZuN9wIqQEwVay7LTPBKvXXdZPknOJM6M,4422
50
- pixeltable/exprs/column_ref.py,sha256=MH83bYsef5UC4vWU71PE-lPiVd8hVw4tT6sjdCCvWNw,15473
52
+ pixeltable/exprs/column_property_ref.py,sha256=GeDi0FQddyypOKkmlv1yJno8hy4xDDuhnF93gg5GL8E,4412
53
+ pixeltable/exprs/column_ref.py,sha256=zcoQAflGGvzF4N7p9RMoAY7ZdGVwaU4GoemHGuGCmEk,15511
51
54
  pixeltable/exprs/comparison.py,sha256=lgaRx000ZaNH10A4hrtsi5XoZKE-CNEONGMi7jxJfcM,5133
52
55
  pixeltable/exprs/compound_predicate.py,sha256=8nGsBlKaMBe1TT1VrZQ-Khe8rVgB8vukZQSspiHDB7Y,3863
53
- pixeltable/exprs/data_row.py,sha256=bFgaDSaS5rbk_ELWZd3IUmLdBd3addSOqKLa3I1MYCk,12344
54
- pixeltable/exprs/expr.py,sha256=T558PJBeVaHCGgv_TBDUIn-fOZJtSMkz26jGUTpvCVY,35961
56
+ pixeltable/exprs/data_row.py,sha256=2WyAlsxmlBNZplYzvwMtDSE5VU1utPuB91nLSgmd7j4,14397
57
+ pixeltable/exprs/expr.py,sha256=vyRB_ZtJOhRP_ZPagY3G-Hr7BWCy_WA4z9IRycAyOXc,36236
55
58
  pixeltable/exprs/expr_dict.py,sha256=2ZeZ0eACx3VrRNEOjipuT5WxOIzjXQ_DSip8NTH0KRo,1584
56
- pixeltable/exprs/expr_set.py,sha256=OlRTbHAAYH2fOEs1HE-8DIu7Z247xVfoT_9Y58GZoOQ,2559
59
+ pixeltable/exprs/expr_set.py,sha256=OSD2vkcYJnLMJ21stjjomjauOtBcXwr4wqQB5qa1OJ8,2891
57
60
  pixeltable/exprs/function_call.py,sha256=aVDLIggWU-9_zt8-lM2hAzgWkkuu-zVRbVpZinZTEWg,24311
58
61
  pixeltable/exprs/globals.py,sha256=33fq5Ec15z_SkIqz9ILICx18wuGAazpFDUkc_Ppl03c,2288
59
62
  pixeltable/exprs/in_predicate.py,sha256=u98JmBX9XsglKe5uCy1NUMnyi3wioBri_tue2vI9_sk,3799
60
- pixeltable/exprs/inline_expr.py,sha256=XYVKKXZN9BtHN5qlvZna-mgdOlot6WcmPu5usRBYei0,7972
63
+ pixeltable/exprs/inline_expr.py,sha256=Mo7BHEeKYVakg7fb26eBcfUrCMENluXOeilSYobCF4M,7269
61
64
  pixeltable/exprs/is_null.py,sha256=NfA_485hfT69pWyY6u8BhykDUkz5k91AH93azGu6lCg,1087
62
65
  pixeltable/exprs/json_mapper.py,sha256=bJSB39sZgpN9KS0RReDnUhTCwg-4Y4cgXXaFNy3o3wU,7035
63
- pixeltable/exprs/json_path.py,sha256=nct3ZEgJuBbN_50wdnX7kNqwt5CzxnpgpKRcL2ST-IA,7126
66
+ pixeltable/exprs/json_path.py,sha256=SRhuKwtzj6Fde4tcG8ADTeabOq_daFbXAtjndF_ep24,8494
64
67
  pixeltable/exprs/literal.py,sha256=OCJL_pw_WKqx3bXMEwL6yNaKVAKDtGRzSZUFwucRxZI,4860
65
68
  pixeltable/exprs/method_ref.py,sha256=NNhJTGo7luZLh8EJdFIZAax9LiiqqDCEK1AwPmHip0w,2642
66
69
  pixeltable/exprs/object_ref.py,sha256=idYFcT27jv0BjtJT3paL37xDrZZc35_3eCJyQOIqdZU,1999
67
- pixeltable/exprs/row_builder.py,sha256=WyyuMRnuEUP42IMB6K3rPm-mxwIO8U9MPpw6WWMDAIM,22875
70
+ pixeltable/exprs/row_builder.py,sha256=XYHI0_459YxLT4ssAdq-8N4wVYI3MtJ7DAc9wz877_s,24529
68
71
  pixeltable/exprs/rowid_ref.py,sha256=8MvQs3Uu01Gz__WXw9BCJv0CHrSaFDuQtU7rUr1AWEk,5008
69
72
  pixeltable/exprs/similarity_expr.py,sha256=i0UUnMSKKGXd3Uksu6FU2NvkfG0qzfzfi-GPy-LdutM,3688
70
73
  pixeltable/exprs/sql_element_cache.py,sha256=c7Q6vFK4xnf9vmcRYnXiAcwPBBwmw0dolftM4BwDO8c,1359
@@ -83,12 +86,12 @@ pixeltable/func/query_template_function.py,sha256=aX6GgANSdDTQwrObEV-B_la_oVRVky
83
86
  pixeltable/func/signature.py,sha256=LdHbdim14Zu7Xt1pMhOCzl6Xn2fq5CQQpwSXmu28umw,14988
84
87
  pixeltable/func/tools.py,sha256=2_M_u0Jiy5-uToZziB4O54aTuJeaytPmh71q3I2ydNw,6062
85
88
  pixeltable/func/udf.py,sha256=6tKpMt37t3BmXwRyA5fFAd6OM4D5EPEd2KuAr7DQhr0,13231
86
- pixeltable/functions/__init__.py,sha256=ZeRB7ksbzjdrvePXtd_mNxyP2RhjvN0ayl5nv7TdWcQ,613
89
+ pixeltable/functions/__init__.py,sha256=PU2SiM4HE4zA9U85OLI5i3sC_--rqrqtAFpp8CsQsRk,629
87
90
  pixeltable/functions/anthropic.py,sha256=q1rXr9MWCmnncfZXe8HlU1MVQZdAl4Ft8vdIpR-jgOg,10810
88
91
  pixeltable/functions/audio.py,sha256=S9xSg45Fx5kmB4NxOTSG99_5Kxc8kFfxuawV7qjMeS8,1660
89
- pixeltable/functions/bedrock.py,sha256=lTCFHjYunF3minBGWcjXR90yJ8resFjXr4niyKhfxms,4217
92
+ pixeltable/functions/bedrock.py,sha256=pdoncO6kmL1kt2oN9q91d8vcEeTSKOobJJl4hnW_KA4,4411
90
93
  pixeltable/functions/date.py,sha256=qs1svJ9FVod3OTa5hQNKIuashb6tVhW_2EAEXYGQX74,5308
91
- pixeltable/functions/deepseek.py,sha256=iw59TKKcw3VqbHMHB2ugtcTPeTVKuHp_3pfkjF6DYmE,3550
94
+ pixeltable/functions/deepseek.py,sha256=gbNBVDlHes1zWoYQTrixX3Vp1xRyATIGoFqdAKJtv-E,3701
92
95
  pixeltable/functions/fireworks.py,sha256=q7eWlYfiWbA0d9r3CB_NAe1fw3q-Z7qsw2gyGJNgWLQ,4786
93
96
  pixeltable/functions/gemini.py,sha256=Stpchxr7FfxbwCp3WsPR8zfd_GFdLMCWW1G7vt0DpNk,8924
94
97
  pixeltable/functions/globals.py,sha256=OyPJUJ4S6VWyzxstxIzk3xzYBGIEMwgk1RmSTWTZzdI,5106
@@ -96,11 +99,12 @@ pixeltable/functions/groq.py,sha256=61XbgY4ItASomMw9t-q8HBuv8II_ssclthjA7sL6jik,
96
99
  pixeltable/functions/huggingface.py,sha256=Y-io3EungSs5ibr43vLEXs4dz_Ej20F1nglD0fyLrXA,20371
97
100
  pixeltable/functions/image.py,sha256=IKXljMma-uU88efptC3F4aywau7DYcD-Nqd3YpmRNRw,13971
98
101
  pixeltable/functions/json.py,sha256=d7-AvwytUQtQYF_JnWJkptT_Yq0NgMpWfVk-m3U6qTY,807
99
- pixeltable/functions/llama_cpp.py,sha256=uop0K6oNxCnQXbdiL-_6PVsusc1xqCtwTipAyIbQ-Uc,4119
100
- pixeltable/functions/math.py,sha256=jhlD7v4eY-6KdmsFEBqb-W_vspGahOosUvFahWFzxrU,4969
102
+ pixeltable/functions/llama_cpp.py,sha256=7m0g_g3YxmyALDXfvqcbm-eCYWgDZhZfCFfj5PjkJVU,4318
103
+ pixeltable/functions/math.py,sha256=MNJGf_MAyZP3O5a7zf6Ii1xritfqBwFeNYLDv_ZjQ4A,5000
101
104
  pixeltable/functions/mistralai.py,sha256=Fk52mfWUfxVy-yCxhH6wrGS7nLLSiOOrWxbTkkiQ-O8,5542
102
- pixeltable/functions/ollama.py,sha256=4-6h9Foq_7Ut7JtEHGkeg1KbuKaFywSuMrKiw0xAyCA,4231
103
- pixeltable/functions/openai.py,sha256=bxHzuJybDrjaYaLnKiI84U2NvtpIBU_iidrJq3a1Hzg,28999
105
+ pixeltable/functions/ollama.py,sha256=fKq4XVe7HQggDpW0S5bXbQ4A9CDPM7GCNERGVX0mwLk,4401
106
+ pixeltable/functions/openai.py,sha256=rKTbLOr7N5_VMyM9gp4X70b2p1CtAbCKqNVAKaK5Ypc,28999
107
+ pixeltable/functions/openrouter.py,sha256=W6nBNS-H8zmuKqoqRy2f7mTWucufzPTWlrFX2TYTsnw,4685
104
108
  pixeltable/functions/replicate.py,sha256=sPvRGr0j0kCDc6Vz3mPUioFflApijukvZWJJUO2bqIQ,2429
105
109
  pixeltable/functions/string.py,sha256=LdBNOna5PUSPmM5VlJ_qhmwzyFhumW0k6Dvx2rXSZtc,25356
106
110
  pixeltable/functions/timestamp.py,sha256=3GVCVIWdry96Qk5XXuvbJ58Tp30iY5snBibzl2CHjQc,9143
@@ -119,13 +123,13 @@ pixeltable/io/__init__.py,sha256=k8jlxi2IB_yA8yYTk9lf7qyuayxUbvs9xDuZcO77sFY,716
119
123
  pixeltable/io/datarows.py,sha256=s2fDQTttGxq7cS5JwKFEJRSKn6WsXTaGdmm9VJSl_2M,6154
120
124
  pixeltable/io/external_store.py,sha256=rOYBwTqcZZVU2toWxJ_9Iy2w2YO0DhuABrM2xGmqHSo,14787
121
125
  pixeltable/io/fiftyone.py,sha256=6KyOqJbRXJzF96Ob4B3yZzyU0yveLbvuf6thjfrZZwE,6891
122
- pixeltable/io/globals.py,sha256=B9ubI9Z0m2wGPZXWmZm10vlaP0UCuUsVyrMWvyudZSc,11360
126
+ pixeltable/io/globals.py,sha256=mLFFPA91EjyX_ttvzFCLcaYQbG81DuRIyy6C2AcIZDY,11382
123
127
  pixeltable/io/hf_datasets.py,sha256=5WfWfXoQppG1Bx_pS5n44KO1Vo_mEb_S82PLB8cLfAU,5606
124
128
  pixeltable/io/label_studio.py,sha256=PsKZbcko7OzxkNiay2rgpt8VoTK705k4M8AJ7AjCaew,31438
125
129
  pixeltable/io/lancedb.py,sha256=kNcYXptieMlJ6yxEIZHVFklEMOEB2mrSyp7XZmOw4qs,82
126
130
  pixeltable/io/pandas.py,sha256=xQmkwbqE9_fjbbPUgeG5yNICrbVVK73UHxDL-cgrQw0,9007
127
131
  pixeltable/io/parquet.py,sha256=qVvg9nixJnK9gXYxZocD8HE13SznyLrgW9IsehtT4j4,4101
128
- pixeltable/io/table_data_conduit.py,sha256=8jwQ3IOoOBS-8j2TEfgiqsFUD85kEP5IjoC0dg2uPEk,22058
132
+ pixeltable/io/table_data_conduit.py,sha256=PBTj54jP64PK5CAZvnX0_dkCRw6mG74tl65wC8Ey4AI,22939
129
133
  pixeltable/io/utils.py,sha256=qzBTmqdIawXMt2bfXQOraYnEstL69eC2Z33nl8RrwJk,4244
130
134
  pixeltable/iterators/__init__.py,sha256=hbQhrz0LShLGOPcT1SnWl1s1nBUzAjWino64CfFT_UA,537
131
135
  pixeltable/iterators/audio.py,sha256=khW4M4P_J5twz1Eu3nuDP_73C9iWeCYZ5K_zQysvYxI,9671
@@ -134,8 +138,8 @@ pixeltable/iterators/document.py,sha256=UMmLeLQxyNfbhI8p3rBrE-sYrnJhpEUVaMLM50Iq
134
138
  pixeltable/iterators/image.py,sha256=RrFdf5cnFIQzWKJk4uYi1m1p2qAiz909THYhRQ27DbY,3603
135
139
  pixeltable/iterators/string.py,sha256=URj5edWp-CsorjN_8nnfWGvtIFs_Zh4VPm6htlJbFkU,1257
136
140
  pixeltable/iterators/video.py,sha256=8xjoelWoSsP0YDr9YGdugseXviGmqoytkgz4ESXC3iw,16105
137
- pixeltable/metadata/__init__.py,sha256=oTO9kN6h4xJ2lsk4a2bq6ejAD-4wToy7b5_i3Pq1Qnc,3289
138
- pixeltable/metadata/notes.py,sha256=3fdZDFpL1-b194Ejv0Y0YP-vbnV-XvVP9wOmZM9XARA,1545
141
+ pixeltable/metadata/__init__.py,sha256=8ytwPwl2GkaS8JaBLneqT8jxxRDbsKaO52bRip8SpcI,3289
142
+ pixeltable/metadata/notes.py,sha256=heoQFFkn_vo-vPO6K2_6gcE2LpL8Ca_2wjsUNcN7_0E,1598
139
143
  pixeltable/metadata/schema.py,sha256=CL877NmO5ZOusqhURKkMjCoh00alW199p4onXab3iVg,13824
140
144
  pixeltable/metadata/utils.py,sha256=NJQXWhhK1hdOZ4H3hh9N0mqbl-I9JqMUqrfA6OWLflE,2682
141
145
  pixeltable/metadata/converters/convert_10.py,sha256=myYIo1DyccnsQUxDKG6mafnU5ge_EhZpHg_pesKBoK4,708
@@ -167,6 +171,7 @@ pixeltable/metadata/converters/convert_36.py,sha256=g1rhZhAYfZpAwUgE3D1aipIR4RNv
167
171
  pixeltable/metadata/converters/convert_37.py,sha256=IVZGtKFaaYMGBs39V_H_okWvpxxadTUWqxoln0cNeQI,392
168
172
  pixeltable/metadata/converters/convert_38.py,sha256=YyNyocwzzdJRcI0YSCo_70Q4hSk63235iE4IxhwSEzs,1169
169
173
  pixeltable/metadata/converters/convert_39.py,sha256=YaEfgStxtYGRbuRLFw8wTAZVJRzIU6zL6nPU2zuDcEU,4658
174
+ pixeltable/metadata/converters/convert_40.py,sha256=qtsbIGv_YcMKswsSam2PBsspIl0mDsCOSiaRW8yN1wM,2892
170
175
  pixeltable/metadata/converters/util.py,sha256=QUBOj2F_6rCAdIo0lgD1IVgAM15Vmq7ikQspB4s0eQ8,7732
171
176
  pixeltable/mypy/__init__.py,sha256=cD_oHXClR_bDM8qVNIfaOAgRhQjPfcWvLcinz79ua6o,54
172
177
  pixeltable/mypy/mypy_plugin.py,sha256=KCjzKOeKW5CBqJOq9Ch7ZJ25ICPc4nlTB49DxtC6oDM,5460
@@ -178,27 +183,29 @@ pixeltable/utils/arrow.py,sha256=U7vb_ffPCR7zv-phyBMPMDosPdKN6LK4IVMpfm2mRy8,104
178
183
  pixeltable/utils/av.py,sha256=omJufz62dzaTTwlR7quKfcT7apf8KkBLJ9cQ9240dt0,4016
179
184
  pixeltable/utils/coco.py,sha256=Y1DWVYguZD4VhKyf7JruYfHWvhkJLq39fzbiSm5cdyY,7304
180
185
  pixeltable/utils/code.py,sha256=3CZMVJm69JIG5sxmd56mjB4Fo4L-s0_Y8YvQeJIj0F0,1280
181
- pixeltable/utils/console_output.py,sha256=x23iDnNwUbsr7Ec20BQ7BLATTsrQZflxc9NucAt_sVU,1150
186
+ pixeltable/utils/console_output.py,sha256=Xodh5K3bI_2WsL6ySTVHXM7S3FZKi7RLwIqFIxip-mg,1232
182
187
  pixeltable/utils/coroutine.py,sha256=d87kLlkVIZq2u0kTE7kJ5Tc_yjEkdGi5sXAuxjLLxXY,896
183
188
  pixeltable/utils/dbms.py,sha256=qigvBIVzEfii9rcxrkEvwNpNi7gvmf0uwr2CMjenJYc,3012
184
189
  pixeltable/utils/description_helper.py,sha256=lwAduHT1yofH6loyNBwuCnMh-sY2e2FqHKDTVhrZDbg,3724
185
190
  pixeltable/utils/documents.py,sha256=x3UHU7eykibyA3eVkSrCK1CQoaid228vp96WUEESssU,3105
186
- pixeltable/utils/exception_handler.py,sha256=yrTAtUJEOhldps_k6aRLEf5yQ8gYGhl9c6ewYNC4Qfc,2476
191
+ pixeltable/utils/exception_handler.py,sha256=lPpNLzXOGNcP7SbsNL0q1mBbWAGZQ4opgNDZZPgbR3g,1463
187
192
  pixeltable/utils/filecache.py,sha256=3TTEqhGg0pEAP_l0GKn34uspC4dha1jPab1Ka9_oTBM,10877
188
193
  pixeltable/utils/formatter.py,sha256=tbMxE9rBw6wdKUnJhNZ8h9uAF8dZKcihQ2KesqAag9A,10096
189
194
  pixeltable/utils/gcs_store.py,sha256=sk2TYZZv4QMJi_hyGvKAzORuABBblEGt4tgnq4eXdho,11361
190
195
  pixeltable/utils/http_server.py,sha256=6khOAtpVj1lDIm9Dx8VIECLm87cFEp4IFbAg8T92A2o,2441
191
196
  pixeltable/utils/iceberg.py,sha256=COeNqqy5RRMkDGLS8CTnaUeAccG10x2fwP3e1veuqIA,522
197
+ pixeltable/utils/image.py,sha256=3KwtA106LT0pxtPV8EiCvpkfeNBVpjfvzkoC5PBOD74,262
192
198
  pixeltable/utils/lancedb.py,sha256=Otr-t47YACRo0Cq9-FyelcUuan1Kgs4gxCOpLOckj3s,2988
193
199
  pixeltable/utils/local_store.py,sha256=HwxgkjW0r4Uc50XqLjMFpLecWnFeUIU0GPcIp_V5cig,13529
200
+ pixeltable/utils/misc.py,sha256=HxTAxPVrZGtPPDGefXzzprYlT8TGiZa4mZkfHNsfdWs,137
194
201
  pixeltable/utils/object_stores.py,sha256=KUWYYm8g5HIPnwL4h1VgGQnGcDESX9ZQ65PaCxmfum4,21407
195
202
  pixeltable/utils/pydantic.py,sha256=-ztUsuRXA7B6bywb5Yy1h5pNQ2DnsT1d0oHMxqtK3WY,2011
196
203
  pixeltable/utils/pytorch.py,sha256=77x2g4N6dkfYvqbxjYi_rBRiNnMMZAb2cNtBw0hOCHg,3582
197
204
  pixeltable/utils/s3_store.py,sha256=l6X6vakjxtryUBJMsFYk7PUJLsMdmrVcUkF7LwZXdk0,14714
198
205
  pixeltable/utils/sql.py,sha256=Sa4Lh-VGe8GToU5W7DRiWf2lMl9B6saPqemiT0ZdHEc,806
199
206
  pixeltable/utils/transactional_directory.py,sha256=OFKmu90oP7KwBAljwjnzP_w8euGdAXob3y4Nx9SCNHA,1357
200
- pixeltable-0.4.15.dist-info/METADATA,sha256=yaHrz0jidyCrfvXfZ1ANwI5nGvTAGkaroXZRrpMUZpU,25631
201
- pixeltable-0.4.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
202
- pixeltable-0.4.15.dist-info/entry_points.txt,sha256=rrKugZmxDtGnXCnEQ5UJMaaSYY7-g1cLjUZ4W1moIhM,98
203
- pixeltable-0.4.15.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
204
- pixeltable-0.4.15.dist-info/RECORD,,
207
+ pixeltable-0.4.16.dist-info/METADATA,sha256=AnEEb0cErbH6MWtihutW63f3Cg9GUJiDiv1XjMXGysM,25659
208
+ pixeltable-0.4.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
209
+ pixeltable-0.4.16.dist-info/entry_points.txt,sha256=rrKugZmxDtGnXCnEQ5UJMaaSYY7-g1cLjUZ4W1moIhM,98
210
+ pixeltable-0.4.16.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
211
+ pixeltable-0.4.16.dist-info/RECORD,,