pixeltable 0.4.0rc2__tar.gz → 0.4.0rc3__tar.gz

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 (188) hide show
  1. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/PKG-INFO +1 -1
  2. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/__version__.py +2 -2
  3. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/anthropic.py +19 -45
  4. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/deepseek.py +19 -38
  5. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/fireworks.py +9 -18
  6. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/gemini.py +2 -2
  7. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/llama_cpp.py +6 -6
  8. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/mistralai.py +15 -41
  9. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/ollama.py +1 -1
  10. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/openai.py +82 -165
  11. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/together.py +22 -80
  12. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pyproject.toml +1 -1
  13. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/LICENSE +0 -0
  14. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/README.md +0 -0
  15. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/__init__.py +0 -0
  16. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/__init__.py +0 -0
  17. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/catalog.py +0 -0
  18. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/column.py +0 -0
  19. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/dir.py +0 -0
  20. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/globals.py +0 -0
  21. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/insertable_table.py +0 -0
  22. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/named_function.py +0 -0
  23. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/path.py +0 -0
  24. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/schema_object.py +0 -0
  25. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/table.py +0 -0
  26. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/table_version.py +0 -0
  27. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/table_version_handle.py +0 -0
  28. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/table_version_path.py +0 -0
  29. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/catalog/view.py +0 -0
  30. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/config.py +0 -0
  31. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/dataframe.py +0 -0
  32. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/env.py +0 -0
  33. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exceptions.py +0 -0
  34. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/__init__.py +0 -0
  35. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/aggregation_node.py +0 -0
  36. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/cache_prefetch_node.py +0 -0
  37. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/component_iteration_node.py +0 -0
  38. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/data_row_batch.py +0 -0
  39. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/exec_context.py +0 -0
  40. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/exec_node.py +0 -0
  41. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/expr_eval/__init__.py +0 -0
  42. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/expr_eval/evaluators.py +0 -0
  43. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/expr_eval/expr_eval_node.py +0 -0
  44. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/expr_eval/globals.py +0 -0
  45. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/expr_eval/row_buffer.py +0 -0
  46. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/expr_eval/schedulers.py +0 -0
  47. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/in_memory_data_node.py +0 -0
  48. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/row_update_node.py +0 -0
  49. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exec/sql_node.py +0 -0
  50. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/__init__.py +0 -0
  51. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/arithmetic_expr.py +0 -0
  52. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/array_slice.py +0 -0
  53. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/column_property_ref.py +0 -0
  54. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/column_ref.py +0 -0
  55. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/comparison.py +0 -0
  56. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/compound_predicate.py +0 -0
  57. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/data_row.py +0 -0
  58. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/expr.py +0 -0
  59. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/expr_dict.py +0 -0
  60. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/expr_set.py +0 -0
  61. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/function_call.py +0 -0
  62. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/globals.py +0 -0
  63. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/in_predicate.py +0 -0
  64. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/inline_expr.py +0 -0
  65. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/is_null.py +0 -0
  66. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/json_mapper.py +0 -0
  67. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/json_path.py +0 -0
  68. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/literal.py +0 -0
  69. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/method_ref.py +0 -0
  70. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/object_ref.py +0 -0
  71. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/row_builder.py +0 -0
  72. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/rowid_ref.py +0 -0
  73. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/similarity_expr.py +0 -0
  74. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/sql_element_cache.py +0 -0
  75. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/string_op.py +0 -0
  76. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/type_cast.py +0 -0
  77. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/exprs/variable.py +0 -0
  78. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/ext/__init__.py +0 -0
  79. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/ext/functions/__init__.py +0 -0
  80. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/ext/functions/whisperx.py +0 -0
  81. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/ext/functions/yolox.py +0 -0
  82. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/__init__.py +0 -0
  83. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/aggregate_function.py +0 -0
  84. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/callable_function.py +0 -0
  85. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/expr_template_function.py +0 -0
  86. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/function.py +0 -0
  87. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/function_registry.py +0 -0
  88. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/globals.py +0 -0
  89. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/query_template_function.py +0 -0
  90. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/signature.py +0 -0
  91. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/tools.py +0 -0
  92. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/func/udf.py +0 -0
  93. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/__init__.py +0 -0
  94. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/audio.py +0 -0
  95. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/bedrock.py +0 -0
  96. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/date.py +0 -0
  97. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/globals.py +0 -0
  98. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/huggingface.py +0 -0
  99. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/image.py +0 -0
  100. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/json.py +0 -0
  101. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/math.py +0 -0
  102. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/replicate.py +0 -0
  103. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/string.py +0 -0
  104. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/timestamp.py +0 -0
  105. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/util.py +0 -0
  106. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/video.py +0 -0
  107. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/vision.py +0 -0
  108. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/functions/whisper.py +0 -0
  109. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/globals.py +0 -0
  110. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/index/__init__.py +0 -0
  111. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/index/base.py +0 -0
  112. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/index/btree.py +0 -0
  113. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/index/embedding_index.py +0 -0
  114. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/__init__.py +0 -0
  115. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/datarows.py +0 -0
  116. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/external_store.py +0 -0
  117. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/fiftyone.py +0 -0
  118. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/globals.py +0 -0
  119. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/hf_datasets.py +0 -0
  120. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/label_studio.py +0 -0
  121. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/pandas.py +0 -0
  122. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/parquet.py +0 -0
  123. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/table_data_conduit.py +0 -0
  124. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/io/utils.py +0 -0
  125. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/iterators/__init__.py +0 -0
  126. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/iterators/audio.py +0 -0
  127. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/iterators/base.py +0 -0
  128. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/iterators/document.py +0 -0
  129. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/iterators/image.py +0 -0
  130. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/iterators/string.py +0 -0
  131. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/iterators/video.py +0 -0
  132. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/__init__.py +0 -0
  133. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_10.py +0 -0
  134. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_12.py +0 -0
  135. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_13.py +0 -0
  136. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_14.py +0 -0
  137. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_15.py +0 -0
  138. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_16.py +0 -0
  139. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_17.py +0 -0
  140. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_18.py +0 -0
  141. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_19.py +0 -0
  142. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_20.py +0 -0
  143. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_21.py +0 -0
  144. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_22.py +0 -0
  145. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_23.py +0 -0
  146. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_24.py +0 -0
  147. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_25.py +0 -0
  148. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_26.py +0 -0
  149. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_27.py +0 -0
  150. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_28.py +0 -0
  151. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_29.py +0 -0
  152. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_30.py +0 -0
  153. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_31.py +0 -0
  154. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_32.py +0 -0
  155. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_33.py +0 -0
  156. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_34.py +0 -0
  157. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_35.py +0 -0
  158. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/convert_36.py +0 -0
  159. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/converters/util.py +0 -0
  160. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/notes.py +0 -0
  161. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/metadata/schema.py +0 -0
  162. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/plan.py +0 -0
  163. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/py.typed +0 -0
  164. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/share/__init__.py +0 -0
  165. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/share/packager.py +0 -0
  166. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/share/publish.py +0 -0
  167. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/store.py +0 -0
  168. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/type_system.py +0 -0
  169. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/__init__.py +0 -0
  170. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/arrow.py +0 -0
  171. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/coco.py +0 -0
  172. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/code.py +0 -0
  173. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/console_output.py +0 -0
  174. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/coroutine.py +0 -0
  175. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/dbms.py +0 -0
  176. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/description_helper.py +0 -0
  177. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/documents.py +0 -0
  178. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/exception_handler.py +0 -0
  179. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/filecache.py +0 -0
  180. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/formatter.py +0 -0
  181. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/http_server.py +0 -0
  182. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/iceberg.py +0 -0
  183. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/media_store.py +0 -0
  184. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/pytorch.py +0 -0
  185. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/s3.py +0 -0
  186. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/sample.py +0 -0
  187. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/sql.py +0 -0
  188. {pixeltable-0.4.0rc2 → pixeltable-0.4.0rc3}/pixeltable/utils/transactional_directory.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pixeltable
3
- Version: 0.4.0rc2
3
+ Version: 0.4.0rc3
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,3 +1,3 @@
1
1
  # These version placeholders will be replaced during build.
2
- __version__ = '0.4.0rc2'
3
- __version_tuple__ = (0, 4, "0rc2")
2
+ __version__ = '0.4.0rc3'
3
+ __version_tuple__ = (0, 4, "0rc3")
@@ -8,7 +8,7 @@ the [Working with Anthropic](https://pixeltable.readme.io/docs/working-with-anth
8
8
  import datetime
9
9
  import json
10
10
  import logging
11
- from typing import TYPE_CHECKING, Any, Iterable, Optional, TypeVar, Union, cast
11
+ from typing import TYPE_CHECKING, Any, Iterable, Optional, cast
12
12
 
13
13
  import httpx
14
14
 
@@ -73,16 +73,10 @@ async def messages(
73
73
  messages: list[dict[str, str]],
74
74
  *,
75
75
  model: str,
76
- max_tokens: int = 1024,
77
- metadata: Optional[dict[str, Any]] = None,
78
- stop_sequences: Optional[list[str]] = None,
79
- system: Optional[str] = None,
80
- temperature: Optional[float] = None,
81
- tool_choice: Optional[dict] = None,
82
- tools: Optional[list[dict]] = None,
83
- top_k: Optional[int] = None,
84
- top_p: Optional[float] = None,
85
- timeout: Optional[float] = None,
76
+ max_tokens: int,
77
+ model_kwargs: Optional[dict[str, Any]] = None,
78
+ tools: Optional[list[dict[str, Any]]] = None,
79
+ tool_choice: Optional[dict[str, Any]] = None,
86
80
  ) -> dict:
87
81
  """
88
82
  Create a Message.
@@ -101,25 +95,27 @@ async def messages(
101
95
  Args:
102
96
  messages: Input messages.
103
97
  model: The model that will complete your prompt.
104
-
105
- For details on the other parameters, see: <https://docs.anthropic.com/en/api/messages>
98
+ model_kwargs: Additional keyword args for the Anthropic `messages` API.
99
+ For details on the available parameters, see: <https://docs.anthropic.com/en/api/messages>
100
+ tools: An optional list of Pixeltable tools to use for the request.
101
+ tool_choice: An optional tool choice configuration.
106
102
 
107
103
  Returns:
108
104
  A dictionary containing the response and other metadata.
109
105
 
110
106
  Examples:
111
- Add a computed column that applies the model `claude-3-haiku-20240307`
107
+ Add a computed column that applies the model `claude-3-5-sonnet-20241022`
112
108
  to an existing Pixeltable column `tbl.prompt` of the table `tbl`:
113
109
 
114
110
  >>> msgs = [{'role': 'user', 'content': tbl.prompt}]
115
- ... tbl.add_computed_column(response=messages(msgs, model='claude-3-haiku-20240307'))
111
+ ... tbl.add_computed_column(response=messages(msgs, model='claude-3-5-sonnet-20241022'))
116
112
  """
117
-
118
- # it doesn't look like count_tokens() actually exists in the current version of the library
113
+ if model_kwargs is None:
114
+ model_kwargs = {}
119
115
 
120
116
  if tools is not None:
121
117
  # Reformat `tools` into Anthropic format
122
- tools = [
118
+ model_kwargs['tools'] = [
123
119
  {
124
120
  'name': tool['name'],
125
121
  'description': tool['description'],
@@ -132,17 +128,16 @@ async def messages(
132
128
  for tool in tools
133
129
  ]
134
130
 
135
- tool_choice_: Optional[dict] = None
136
131
  if tool_choice is not None:
137
132
  if tool_choice['auto']:
138
- tool_choice_ = {'type': 'auto'}
133
+ model_kwargs['tool_choice'] = {'type': 'auto'}
139
134
  elif tool_choice['required']:
140
- tool_choice_ = {'type': 'any'}
135
+ model_kwargs['tool_choice'] = {'type': 'any'}
141
136
  else:
142
137
  assert tool_choice['tool'] is not None
143
- tool_choice_ = {'type': 'tool', 'name': tool_choice['tool']}
138
+ model_kwargs['tool_choice'] = {'type': 'tool', 'name': tool_choice['tool']}
144
139
  if not tool_choice['parallel_tool_calls']:
145
- tool_choice_['disable_parallel_tool_use'] = True
140
+ model_kwargs['tool_choice']['disable_parallel_tool_use'] = True
146
141
 
147
142
  # make sure the pool info exists prior to making the request
148
143
  resource_pool_id = f'rate-limits:anthropic:{model}'
@@ -152,20 +147,8 @@ async def messages(
152
147
  # TODO: timeouts should be set system-wide and be user-configurable
153
148
  from anthropic.types import MessageParam
154
149
 
155
- # cast(Any, ...): avoid mypy errors
156
150
  result = await _anthropic_client().messages.with_raw_response.create(
157
- messages=cast(Iterable[MessageParam], messages),
158
- model=model,
159
- max_tokens=max_tokens,
160
- metadata=_opt(cast(Any, metadata)),
161
- stop_sequences=_opt(stop_sequences),
162
- system=_opt(system),
163
- temperature=_opt(cast(Any, temperature)),
164
- tools=_opt(cast(Any, tools)),
165
- tool_choice=_opt(cast(Any, tool_choice_)),
166
- top_k=_opt(top_k),
167
- top_p=_opt(top_p),
168
- timeout=_opt(timeout),
151
+ messages=cast(Iterable[MessageParam], messages), model=model, max_tokens=max_tokens, **model_kwargs
169
152
  )
170
153
 
171
154
  requests_limit_str = result.headers.get('anthropic-ratelimit-requests-limit')
@@ -224,15 +207,6 @@ def _anthropic_response_to_pxt_tool_calls(response: dict) -> Optional[dict]:
224
207
  return pxt_tool_calls
225
208
 
226
209
 
227
- _T = TypeVar('_T')
228
-
229
-
230
- def _opt(arg: _T) -> Union[_T, 'anthropic.NotGiven']:
231
- import anthropic
232
-
233
- return arg if arg is not None else anthropic.NOT_GIVEN
234
-
235
-
236
210
  __all__ = local_public_names(__name__)
237
211
 
238
212
 
@@ -1,5 +1,5 @@
1
1
  import json
2
- from typing import TYPE_CHECKING, Any, Optional, Union, cast
2
+ from typing import TYPE_CHECKING, Any, Optional
3
3
 
4
4
  import httpx
5
5
 
@@ -7,8 +7,6 @@ import pixeltable as pxt
7
7
  from pixeltable import env
8
8
  from pixeltable.utils.code import local_public_names
9
9
 
10
- from .openai import _opt
11
-
12
10
  if TYPE_CHECKING:
13
11
  import openai
14
12
 
@@ -33,17 +31,9 @@ async def chat_completions(
33
31
  messages: list,
34
32
  *,
35
33
  model: str,
36
- frequency_penalty: Optional[float] = None,
37
- logprobs: Optional[bool] = None,
38
- top_logprobs: Optional[int] = None,
39
- max_tokens: Optional[int] = None,
40
- presence_penalty: Optional[float] = None,
41
- response_format: Optional[dict] = None,
42
- stop: Optional[list[str]] = None,
43
- temperature: Optional[float] = None,
44
- tools: Optional[list[dict]] = None,
45
- tool_choice: Optional[dict] = None,
46
- top_p: Optional[float] = None,
34
+ model_kwargs: Optional[dict[str, Any]] = None,
35
+ tools: Optional[list[dict[str, Any]]] = None,
36
+ tool_choice: Optional[dict[str, Any]] = None,
47
37
  ) -> dict:
48
38
  """
49
39
  Creates a model response for the given chat conversation.
@@ -60,8 +50,10 @@ async def chat_completions(
60
50
  Args:
61
51
  messages: A list of messages to use for chat completion, as described in the Deepseek API documentation.
62
52
  model: The model to use for chat completion.
63
-
64
- For details on the other parameters, see: <https://api-docs.deepseek.com/api/create-chat-completion>
53
+ model_kwargs: Additional keyword args for the Deepseek `chat/completions` API.
54
+ For details on the available parameters, see: <https://api-docs.deepseek.com/api/create-chat-completion>
55
+ tools: An optional list of Pixeltable tools to use for the request.
56
+ tool_choice: An optional tool choice configuration.
65
57
 
66
58
  Returns:
67
59
  A dictionary containing the response and other metadata.
@@ -76,39 +68,28 @@ async def chat_completions(
76
68
  ]
77
69
  tbl.add_computed_column(response=chat_completions(messages, model='deepseek-chat'))
78
70
  """
71
+ if model_kwargs is None:
72
+ model_kwargs = {}
73
+
79
74
  if tools is not None:
80
- tools = [{'type': 'function', 'function': tool} for tool in tools]
75
+ model_kwargs['tools'] = [{'type': 'function', 'function': tool} for tool in tools]
81
76
 
82
- tool_choice_: Union[str, dict, None] = None
83
77
  if tool_choice is not None:
84
78
  if tool_choice['auto']:
85
- tool_choice_ = 'auto'
79
+ model_kwargs['tool_choice'] = 'auto'
86
80
  elif tool_choice['required']:
87
- tool_choice_ = 'required'
81
+ model_kwargs['tool_choice'] = 'required'
88
82
  else:
89
83
  assert tool_choice['tool'] is not None
90
- tool_choice_ = {'type': 'function', 'function': {'name': tool_choice['tool']}}
84
+ model_kwargs['tool_choice'] = {'type': 'function', 'function': {'name': tool_choice['tool']}}
91
85
 
92
- extra_body: Optional[dict[str, Any]] = None
93
86
  if tool_choice is not None and not tool_choice['parallel_tool_calls']:
94
- extra_body = {'parallel_tool_calls': False}
87
+ if 'extra_body' not in model_kwargs:
88
+ model_kwargs['extra_body'] = {}
89
+ model_kwargs['extra_body']['parallel_tool_calls'] = False
95
90
 
96
- # cast(Any, ...): avoid mypy errors
97
91
  result = await _deepseek_client().chat.completions.with_raw_response.create(
98
- messages=messages,
99
- model=model,
100
- frequency_penalty=_opt(frequency_penalty),
101
- logprobs=_opt(logprobs),
102
- top_logprobs=_opt(top_logprobs),
103
- max_tokens=_opt(max_tokens),
104
- presence_penalty=_opt(presence_penalty),
105
- response_format=_opt(cast(Any, response_format)),
106
- stop=_opt(stop),
107
- temperature=_opt(temperature),
108
- tools=_opt(cast(Any, tools)),
109
- tool_choice=_opt(cast(Any, tool_choice_)),
110
- top_p=_opt(top_p),
111
- extra_body=extra_body,
92
+ messages=messages, model=model, **model_kwargs
112
93
  )
113
94
 
114
95
  return json.loads(result.text)
@@ -5,7 +5,7 @@ first `pip install fireworks-ai` and configure your Fireworks AI credentials, as
5
5
  the [Working with Fireworks](https://pixeltable.readme.io/docs/working-with-fireworks) tutorial.
6
6
  """
7
7
 
8
- from typing import TYPE_CHECKING, Optional
8
+ from typing import TYPE_CHECKING, Any, Optional
9
9
 
10
10
  import pixeltable as pxt
11
11
  from pixeltable import env
@@ -29,14 +29,7 @@ def _fireworks_client() -> 'fireworks.client.Fireworks':
29
29
 
30
30
  @pxt.udf(resource_pool='request-rate:fireworks')
31
31
  async def chat_completions(
32
- messages: list[dict[str, str]],
33
- *,
34
- model: str,
35
- max_tokens: Optional[int] = None,
36
- top_k: Optional[int] = None,
37
- top_p: Optional[float] = None,
38
- temperature: Optional[float] = None,
39
- request_timeout: Optional[int] = None,
32
+ messages: list[dict[str, str]], *, model: str, model_kwargs: Optional[dict[str, Any]] = None
40
33
  ) -> dict:
41
34
  """
42
35
  Creates a model response for the given chat conversation.
@@ -55,8 +48,8 @@ async def chat_completions(
55
48
  Args:
56
49
  messages: A list of messages comprising the conversation so far.
57
50
  model: The name of the model to use.
58
-
59
- For details on the other parameters, see: <https://docs.fireworks.ai/api-reference/post-chatcompletions>
51
+ model_kwargs: Additional keyword args for the Fireworks `chat_completions` API. For details on the available
52
+ parameters, see: <https://docs.fireworks.ai/api-reference/post-chatcompletions>
60
53
 
61
54
  Returns:
62
55
  A dictionary containing the response and other metadata.
@@ -70,20 +63,18 @@ async def chat_completions(
70
63
  ... response=chat_completions(messages, model='accounts/fireworks/models/mixtral-8x22b-instruct')
71
64
  ... )
72
65
  """
73
- kwargs = {'max_tokens': max_tokens, 'top_k': top_k, 'top_p': top_p, 'temperature': temperature}
74
- kwargs_not_none = {k: v for k, v in kwargs.items() if v is not None}
66
+ if model_kwargs is None:
67
+ model_kwargs = {}
75
68
 
76
69
  # for debugging purposes:
77
70
  # res_sync = _fireworks_client().chat.completions.create(model=model, messages=messages, **kwargs_not_none)
78
71
  # res_sync_dict = res_sync.dict()
79
72
 
80
- if request_timeout is None:
81
- request_timeout = Config.get().get_int_value('timeout', section='fireworks') or 600
73
+ if 'request_timeout' not in model_kwargs:
74
+ model_kwargs['request_timeout'] = Config.get().get_int_value('timeout', section='fireworks') or 600
82
75
  # TODO: this timeout doesn't really work, I think it only applies to returning the stream, but not to the timing
83
76
  # of the chunks; addressing this would require a timeout for the task running this udf
84
- stream = _fireworks_client().chat.completions.acreate(
85
- model=model, messages=messages, request_timeout=request_timeout, **kwargs_not_none
86
- )
77
+ stream = _fireworks_client().chat.completions.acreate(model=model, messages=messages, **model_kwargs)
87
78
  chunks = []
88
79
  async for chunk in stream:
89
80
  chunks.append(chunk)
@@ -53,8 +53,8 @@ async def generate_content(
53
53
  config: Configuration for generation, corresponding to keyword arguments of
54
54
  `genai.types.GenerateContentConfig`. For details on the parameters, see:
55
55
  <https://googleapis.github.io/python-genai/genai.html#module-genai.types>
56
- tools: Optional list of Pixeltable tools to use. It is also possible to specify tools manually via the
57
- `config.tools` parameter, but at most one of `config.tools` or `tools` may be used.
56
+ tools: An optional list of Pixeltable tools to use. It is also possible to specify tools manually via the
57
+ `config['tools']` parameter, but at most one of `config['tools']` or `tools` may be used.
58
58
 
59
59
  Returns:
60
60
  A dictionary containing the response and other metadata.
@@ -17,7 +17,7 @@ def create_chat_completion(
17
17
  model_path: Optional[str] = None,
18
18
  repo_id: Optional[str] = None,
19
19
  repo_filename: Optional[str] = None,
20
- args: Optional[dict[str, Any]] = None,
20
+ model_kwargs: Optional[dict[str, Any]] = None,
21
21
  ) -> dict:
22
22
  """
23
23
  Generate a chat completion from a list of messages.
@@ -35,14 +35,14 @@ def create_chat_completion(
35
35
  repo_id: The Hugging Face model repo id (if using a pretrained model).
36
36
  repo_filename: A filename or glob pattern to match the model file in the repo (optional, if using a
37
37
  pretrained model).
38
- args: Additional arguments to pass to the `create_chat_completions` call, such as `max_tokens`, `temperature`,
39
- `top_p`, and `top_k`. For details, see the
38
+ model_kwargs: Additional keyword args for the llama_cpp `create_chat_completions` API, such as `max_tokens`,
39
+ `temperature`, `top_p`, and `top_k`. For details, see the
40
40
  [llama_cpp create_chat_completions documentation](https://llama-cpp-python.readthedocs.io/en/latest/api-reference/#llama_cpp.Llama.create_chat_completion).
41
41
  """
42
42
  Env.get().require_package('llama_cpp', min_version=[0, 3, 1])
43
43
 
44
- if args is None:
45
- args = {}
44
+ if model_kwargs is None:
45
+ model_kwargs = {}
46
46
 
47
47
  if (model_path is None) == (repo_id is None):
48
48
  raise excs.Error('Exactly one of `model_path` or `repo_id` must be provided.')
@@ -56,7 +56,7 @@ def create_chat_completion(
56
56
  else:
57
57
  Env.get().require_package('huggingface_hub')
58
58
  llm = _lookup_pretrained_model(repo_id, repo_filename, n_gpu_layers)
59
- return llm.create_chat_completion(messages, **args) # type: ignore
59
+ return llm.create_chat_completion(messages, **model_kwargs) # type: ignore
60
60
 
61
61
 
62
62
  def _is_gpu_available() -> bool:
@@ -5,7 +5,7 @@ first `pip install mistralai` and configure your Mistral AI credentials, as desc
5
5
  the [Working with Mistral AI](https://pixeltable.readme.io/docs/working-with-mistralai) tutorial.
6
6
  """
7
7
 
8
- from typing import TYPE_CHECKING, Optional, TypeVar, Union
8
+ from typing import TYPE_CHECKING, Any, Optional, TypeVar, Union
9
9
 
10
10
  import numpy as np
11
11
 
@@ -32,16 +32,7 @@ def _mistralai_client() -> 'mistralai.Mistral':
32
32
 
33
33
  @pxt.udf(resource_pool='request-rate:mistral')
34
34
  async def chat_completions(
35
- messages: list[dict[str, str]],
36
- *,
37
- model: str,
38
- temperature: Optional[float] = 0.7,
39
- top_p: Optional[float] = 1.0,
40
- max_tokens: Optional[int] = None,
41
- stop: Optional[list[str]] = None,
42
- random_seed: Optional[int] = None,
43
- response_format: Optional[dict] = None,
44
- safe_prompt: Optional[bool] = False,
35
+ messages: list[dict[str, str]], *, model: str, model_kwargs: Optional[dict[str, Any]] = None
45
36
  ) -> dict:
46
37
  """
47
38
  Chat Completion API.
@@ -60,6 +51,8 @@ async def chat_completions(
60
51
  Args:
61
52
  messages: The prompt(s) to generate completions for.
62
53
  model: ID of the model to use. (See overview here: <https://docs.mistral.ai/getting-started/models/>)
54
+ model_kwargs: Additional keyword args for the Mistral `chat/completions` API.
55
+ For details on the available parameters, see: <https://docs.mistral.ai/api/#tag/chat>
63
56
 
64
57
  For details on the other parameters, see: <https://docs.mistral.ai/api/#tag/chat>
65
58
 
@@ -73,34 +66,20 @@ async def chat_completions(
73
66
  >>> messages = [{'role': 'user', 'content': tbl.prompt}]
74
67
  ... tbl.add_computed_column(response=completions(messages, model='mistral-latest-small'))
75
68
  """
69
+ if model_kwargs is None:
70
+ model_kwargs = {}
71
+
76
72
  Env.get().require_package('mistralai')
77
73
  result = await _mistralai_client().chat.complete_async(
78
74
  messages=messages, # type: ignore[arg-type]
79
75
  model=model,
80
- temperature=temperature,
81
- top_p=top_p,
82
- max_tokens=_opt(max_tokens),
83
- stop=stop,
84
- random_seed=_opt(random_seed),
85
- response_format=response_format, # type: ignore[arg-type]
86
- safe_prompt=safe_prompt,
76
+ **model_kwargs,
87
77
  )
88
78
  return result.dict()
89
79
 
90
80
 
91
81
  @pxt.udf(resource_pool='request-rate:mistral')
92
- async def fim_completions(
93
- prompt: str,
94
- *,
95
- model: str,
96
- temperature: Optional[float] = 0.7,
97
- top_p: Optional[float] = 1.0,
98
- max_tokens: Optional[int] = None,
99
- min_tokens: Optional[int] = None,
100
- stop: Optional[list[str]] = None,
101
- random_seed: Optional[int] = None,
102
- suffix: Optional[str] = None,
103
- ) -> dict:
82
+ async def fim_completions(prompt: str, *, model: str, model_kwargs: Optional[dict[str, Any]] = None) -> dict:
104
83
  """
105
84
  Fill-in-the-middle Completion API.
106
85
 
@@ -118,6 +97,8 @@ async def fim_completions(
118
97
  Args:
119
98
  prompt: The text/code to complete.
120
99
  model: ID of the model to use. (See overview here: <https://docs.mistral.ai/getting-started/models/>)
100
+ model_kwargs: Additional keyword args for the Mistral `fim/completions` API.
101
+ For details on the available parameters, see: <https://docs.mistral.ai/api/#tag/fim>
121
102
 
122
103
  For details on the other parameters, see: <https://docs.mistral.ai/api/#tag/fim>
123
104
 
@@ -130,18 +111,11 @@ async def fim_completions(
130
111
 
131
112
  >>> tbl.add_computed_column(response=completions(tbl.prompt, model='codestral-latest'))
132
113
  """
114
+ if model_kwargs is None:
115
+ model_kwargs = {}
116
+
133
117
  Env.get().require_package('mistralai')
134
- result = await _mistralai_client().fim.complete_async(
135
- prompt=prompt,
136
- model=model,
137
- temperature=temperature,
138
- top_p=top_p,
139
- max_tokens=_opt(max_tokens),
140
- min_tokens=_opt(min_tokens),
141
- stop=stop,
142
- random_seed=_opt(random_seed),
143
- suffix=_opt(suffix),
144
- )
118
+ result = await _mistralai_client().fim.complete_async(prompt=prompt, model=model, **model_kwargs)
145
119
  return result.dict()
146
120
 
147
121
 
@@ -50,7 +50,7 @@ def generate(
50
50
  template: Prompt template to use.
51
51
  context: The context parameter returned from a previous call to `generate()`.
52
52
  raw: If `True`, no formatting will be applied to the prompt.
53
- options: Additional options to pass to the `chat` call, such as `max_tokens`, `temperature`, `top_p`, and
53
+ options: Additional options for the Ollama `chat` call, such as `max_tokens`, `temperature`, `top_p`, and
54
54
  `top_k`. For details, see the
55
55
  [Valid Parameters and Values](https://github.com/ollama/ollama/blob/main/docs/modelfile.md#valid-parameters-and-values)
56
56
  section of the Ollama documentation.