pixeltable 0.3.4__tar.gz → 0.3.5__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 (174) hide show
  1. {pixeltable-0.3.4 → pixeltable-0.3.5}/PKG-INFO +34 -49
  2. {pixeltable-0.3.4 → pixeltable-0.3.5}/README.md +17 -31
  3. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/__init__.py +1 -0
  4. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/__version__.py +2 -2
  5. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/catalog.py +9 -2
  6. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/column.py +1 -1
  7. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/dir.py +1 -1
  8. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/table.py +1 -1
  9. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/table_version.py +12 -2
  10. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/table_version_path.py +2 -2
  11. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/view.py +64 -20
  12. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/dataframe.py +10 -5
  13. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/env.py +12 -0
  14. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/evaluators.py +4 -2
  15. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/expr_eval_node.py +4 -1
  16. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/comparison.py +8 -4
  17. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/data_row.py +5 -3
  18. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/expr.py +2 -2
  19. pixeltable-0.3.5/pixeltable/exprs/function_call.py +455 -0
  20. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/aggregate_function.py +29 -15
  21. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/callable_function.py +11 -8
  22. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/expr_template_function.py +3 -9
  23. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/function.py +148 -74
  24. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/signature.py +65 -30
  25. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/udf.py +1 -1
  26. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/__init__.py +1 -0
  27. pixeltable-0.3.5/pixeltable/functions/deepseek.py +121 -0
  28. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/openai.py +23 -9
  29. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/video.py +14 -7
  30. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/globals.py +14 -3
  31. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/index/embedding_index.py +4 -13
  32. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/io/globals.py +88 -77
  33. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/io/hf_datasets.py +34 -34
  34. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/io/pandas.py +75 -76
  35. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/io/parquet.py +19 -27
  36. pixeltable-0.3.5/pixeltable/io/utils.py +115 -0
  37. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/iterators/audio.py +2 -1
  38. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/iterators/video.py +1 -1
  39. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/__init__.py +2 -1
  40. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_15.py +18 -8
  41. pixeltable-0.3.5/pixeltable/metadata/converters/convert_27.py +31 -0
  42. pixeltable-0.3.5/pixeltable/metadata/converters/convert_28.py +15 -0
  43. pixeltable-0.3.5/pixeltable/metadata/converters/convert_29.py +111 -0
  44. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/util.py +12 -1
  45. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/notes.py +3 -0
  46. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/schema.py +8 -0
  47. pixeltable-0.3.5/pixeltable/share/__init__.py +1 -0
  48. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/share/packager.py +41 -13
  49. pixeltable-0.3.5/pixeltable/share/publish.py +97 -0
  50. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/type_system.py +40 -14
  51. pixeltable-0.3.5/pixeltable/utils/__init__.py +58 -0
  52. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/arrow.py +40 -7
  53. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/formatter.py +1 -1
  54. {pixeltable-0.3.4 → pixeltable-0.3.5}/pyproject.toml +54 -51
  55. pixeltable-0.3.4/pixeltable/exprs/function_call.py +0 -613
  56. pixeltable-0.3.4/pixeltable/share/__init__.py +0 -0
  57. pixeltable-0.3.4/pixeltable/utils/__init__.py +0 -17
  58. {pixeltable-0.3.4 → pixeltable-0.3.5}/LICENSE +0 -0
  59. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/__init__.py +0 -0
  60. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/globals.py +0 -0
  61. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/insertable_table.py +0 -0
  62. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/named_function.py +0 -0
  63. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/path.py +0 -0
  64. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/path_dict.py +0 -0
  65. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/catalog/schema_object.py +0 -0
  66. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exceptions.py +0 -0
  67. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/__init__.py +0 -0
  68. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/aggregation_node.py +0 -0
  69. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/cache_prefetch_node.py +0 -0
  70. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/component_iteration_node.py +0 -0
  71. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/data_row_batch.py +0 -0
  72. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/exec_context.py +0 -0
  73. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/exec_node.py +0 -0
  74. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/__init__.py +0 -0
  75. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/globals.py +0 -0
  76. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/row_buffer.py +0 -0
  77. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/schedulers.py +0 -0
  78. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/in_memory_data_node.py +0 -0
  79. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/row_update_node.py +0 -0
  80. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exec/sql_node.py +0 -0
  81. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/__init__.py +0 -0
  82. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/arithmetic_expr.py +0 -0
  83. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/array_slice.py +0 -0
  84. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/column_property_ref.py +0 -0
  85. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/column_ref.py +0 -0
  86. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/compound_predicate.py +0 -0
  87. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/expr_dict.py +0 -0
  88. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/expr_set.py +0 -0
  89. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/globals.py +0 -0
  90. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/in_predicate.py +0 -0
  91. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/inline_expr.py +0 -0
  92. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/is_null.py +0 -0
  93. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/json_mapper.py +0 -0
  94. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/json_path.py +0 -0
  95. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/literal.py +0 -0
  96. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/method_ref.py +0 -0
  97. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/object_ref.py +0 -0
  98. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/row_builder.py +0 -0
  99. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/rowid_ref.py +0 -0
  100. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/similarity_expr.py +0 -0
  101. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/sql_element_cache.py +0 -0
  102. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/type_cast.py +0 -0
  103. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/exprs/variable.py +0 -0
  104. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/ext/__init__.py +0 -0
  105. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/ext/functions/__init__.py +0 -0
  106. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/ext/functions/whisperx.py +0 -0
  107. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/ext/functions/yolox.py +0 -0
  108. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/__init__.py +0 -0
  109. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/function_registry.py +0 -0
  110. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/globals.py +0 -0
  111. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/query_template_function.py +0 -0
  112. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/func/tools.py +0 -0
  113. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/anthropic.py +0 -0
  114. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/audio.py +0 -0
  115. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/fireworks.py +0 -0
  116. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/gemini.py +0 -0
  117. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/globals.py +0 -0
  118. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/huggingface.py +0 -0
  119. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/image.py +7 -7
  120. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/json.py +0 -0
  121. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/llama_cpp.py +0 -0
  122. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/math.py +0 -0
  123. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/mistralai.py +0 -0
  124. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/ollama.py +0 -0
  125. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/replicate.py +0 -0
  126. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/string.py +0 -0
  127. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/timestamp.py +0 -0
  128. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/together.py +0 -0
  129. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/util.py +0 -0
  130. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/vision.py +0 -0
  131. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/functions/whisper.py +0 -0
  132. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/index/__init__.py +0 -0
  133. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/index/base.py +0 -0
  134. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/index/btree.py +0 -0
  135. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/io/__init__.py +0 -0
  136. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/io/external_store.py +0 -0
  137. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/io/fiftyone.py +0 -0
  138. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/io/label_studio.py +0 -0
  139. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/iterators/__init__.py +0 -0
  140. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/iterators/base.py +0 -0
  141. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/iterators/document.py +0 -0
  142. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/iterators/image.py +0 -0
  143. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/iterators/string.py +0 -0
  144. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_10.py +0 -0
  145. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_12.py +0 -0
  146. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_13.py +0 -0
  147. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_14.py +0 -0
  148. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_16.py +0 -0
  149. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_17.py +0 -0
  150. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_18.py +0 -0
  151. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_19.py +0 -0
  152. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_20.py +0 -0
  153. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_21.py +0 -0
  154. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_22.py +0 -0
  155. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_23.py +0 -0
  156. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_24.py +0 -0
  157. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_25.py +0 -0
  158. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_26.py +0 -0
  159. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/plan.py +0 -0
  160. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/py.typed +0 -0
  161. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/store.py +0 -0
  162. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/coco.py +0 -0
  163. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/code.py +0 -0
  164. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/console_output.py +0 -0
  165. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/description_helper.py +0 -0
  166. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/documents.py +0 -0
  167. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/filecache.py +0 -0
  168. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/http_server.py +0 -0
  169. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/iceberg.py +0 -0
  170. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/media_store.py +0 -0
  171. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/pytorch.py +0 -0
  172. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/s3.py +0 -0
  173. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/sql.py +0 -0
  174. {pixeltable-0.3.4 → pixeltable-0.3.5}/pixeltable/utils/transactional_directory.py +0 -0
@@ -1,12 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: pixeltable
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: AI Data Infrastructure: Declarative, Multimodal, and Incremental
5
- Home-page: https://pixeltable.com/
6
5
  License: Apache-2.0
7
6
  Keywords: data-science,machine-learning,database,ai,computer-vision,chatbot,ml,artificial-intelligence,feature-engineering,multimodal,mlops,feature-store,vector-database,llm,genai
8
7
  Author: Pixeltable, Inc.
9
- Author-email: contact@pixeltable.com
8
+ Author-email: contact@pixeltable.com>
10
9
  Requires-Python: >=3.9,<4.0
11
10
  Classifier: Intended Audience :: Developers
12
11
  Classifier: Intended Audience :: Science/Research
@@ -14,7 +13,6 @@ Classifier: License :: OSI Approved :: Apache Software License
14
13
  Classifier: Operating System :: MacOS
15
14
  Classifier: Operating System :: Microsoft :: Windows
16
15
  Classifier: Operating System :: POSIX :: Linux
17
- Classifier: Programming Language :: Python :: 3
18
16
  Classifier: Programming Language :: Python :: 3.9
19
17
  Classifier: Programming Language :: Python :: 3.10
20
18
  Classifier: Programming Language :: Python :: 3.11
@@ -24,36 +22,37 @@ Classifier: Topic :: Database
24
22
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
25
23
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
24
  Requires-Dist: av (>=10.0.0)
27
- Requires-Dist: beautifulsoup4 (>=4.0.0,<5.0.0)
28
- Requires-Dist: cloudpickle (>=2.2.1,<3.0.0)
29
- Requires-Dist: ftfy (>=6.2.0,<7.0.0)
25
+ Requires-Dist: beautifulsoup4 (>=4.0.0)
26
+ Requires-Dist: cloudpickle (>=2.2.1)
27
+ Requires-Dist: ftfy (>=6.2.0)
30
28
  Requires-Dist: httpcore (>=1.0.3)
31
29
  Requires-Dist: httpx (>=0.27)
32
- Requires-Dist: jinja2 (>=3.1.3,<4.0.0)
33
- Requires-Dist: jmespath (>=1.0.1,<2.0.0)
30
+ Requires-Dist: jinja2 (>=3.1.3)
31
+ Requires-Dist: jmespath (>=1.0.1)
34
32
  Requires-Dist: jsonschema (>=4.1.0)
35
33
  Requires-Dist: lxml (>=5.0)
36
- Requires-Dist: more-itertools (>=10.2,<11.0)
34
+ Requires-Dist: more-itertools (>=10.2)
37
35
  Requires-Dist: nest_asyncio (>=1.5)
38
36
  Requires-Dist: numpy (>=1.25,<2.0)
39
37
  Requires-Dist: pandas (>=2.0,<3.0)
40
- Requires-Dist: pgvector (>=0.2.1,<0.3.0)
38
+ Requires-Dist: pgvector (>=0.2.1)
41
39
  Requires-Dist: pillow (>=9.3.0)
42
40
  Requires-Dist: pixeltable-pgserver (==0.3.1)
43
- Requires-Dist: psutil (>=5.9.5,<6.0.0)
41
+ Requires-Dist: psutil (>=5.9.5)
44
42
  Requires-Dist: psycopg[binary] (>=3.1.18)
45
43
  Requires-Dist: puremagic (>=1.20)
46
44
  Requires-Dist: pyarrow (>=13.0.0)
47
45
  Requires-Dist: pydantic (>=2.7.4)
48
46
  Requires-Dist: pyiceberg (>=0.6.0)
49
- Requires-Dist: pymupdf (>=1.24.1,<2.0.0)
50
- Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
51
- Requires-Dist: requests (>=2.31.0,<3.0.0)
52
- Requires-Dist: sqlalchemy (>=2.0.23,<3.0.0)
53
- Requires-Dist: tenacity (>=8.2,<9.0)
47
+ Requires-Dist: pymupdf (>=1.24.1)
48
+ Requires-Dist: pyyaml (>=6.0.1)
49
+ Requires-Dist: requests (>=2.31.0)
50
+ Requires-Dist: sqlalchemy (>=2.0.23)
51
+ Requires-Dist: tenacity (>=8.2)
54
52
  Requires-Dist: toml (>=0.10)
55
53
  Requires-Dist: tqdm (>=4.64)
56
54
  Project-URL: Documentation, https://docs.pixeltable.com/
55
+ Project-URL: Homepage, https://pixeltable.com/
57
56
  Project-URL: Repository, https://github.com/pixeltable/pixeltable
58
57
  Description-Content-Type: text/markdown
59
58
 
@@ -77,31 +76,22 @@ Description-Content-Type: text/markdown
77
76
  </a>
78
77
 
79
78
  [Installation](https://docs.pixeltable.com/docs/installation) |
80
- [Documentation](https://pixeltable.readme.io/) |
79
+ [Documentation](https://docs.pixeltable.com/docs/overview/quick-start) |
81
80
  [API Reference](https://pixeltable.github.io/pixeltable/) |
82
81
  [Code Samples](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#-code-samples) |
83
82
  [Computer Vision](https://docs.pixeltable.com/docs/object-detection-in-videos) |
84
83
  [LLM](https://docs.pixeltable.com/docs/document-indexing-and-rag)
85
84
  </div>
86
85
 
86
+ ## 🔍 What is Pixeltable?
87
87
  Pixeltable is a declarative data infrastructure for building multimodal AI applications, enabling incremental storage, transformation, indexing, and orchestration of your data.
88
+ - **Data Ingestion**: Unified interface for all [data types](https://docs.pixeltable.com/docs/datastore/bringing-data) (images, videos, audio, documents, URLs, blob storage, structured data)
89
+ - **Data Transformation**: [Chunking](https://docs.pixeltable.com/docs/datastore/views), [embedding](https://docs.pixeltable.com/docs/datastore/embedding-index), and processing with declarative [computed columns](https://docs.pixeltable.com/docs/datastore/computed-columns)
90
+ - **Indexing & Storage**: Type-safe tables with [built-in vector indexing](https://docs.pixeltable.com/docs/cookbooks/search/website)
91
+ - **Query & Retrieval**: [Queries](https://docs.pixeltable.com/docs/datastore/filtering-and-selecting) combining filtering, sorting, and similarity search
92
+ - **Inference & Generation**: [Integration](https://docs.pixeltable.com/docs/integrations/frameworks#cloud-llm-providers) with AI models (OpenAI, Anthropic, PyTorch, YOLOX, DETR, Together, Hugging Face and more...)
88
93
 
89
- Consider it your unified foundation for computer vision, LLMs, and multimodal AI development - where complex data operations become simple tables and computed columns, including but not limited to:
90
-
91
- - **Work with all your data**: Interact with
92
- [video data](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#import-media-data-into-pixeltable-videos-images-audio)
93
- at the [frame level](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#text-and-image-similarity-search-on-video-frames-with-embedding-indexes)
94
- and documents at the [chunk level](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#automate-data-operations-with-views-eg-split-documents-into-chunks)
95
- - **Incremental updates**: Maintain an
96
- [embedding index](https://docs.pixeltable.com/docs/embedding-vector-indexes) colocated with your data
97
- - **Lazy evaluation and cache management**: Eliminates the need for
98
- [manual frame extraction](https://docs.pixeltable.com/docs/object-detection-in-videos)
99
- - **Integrates with any Python libraries**: Use
100
- [built-in and custom functions (UDFs)](https://docs.pixeltable.com/docs/user-defined-functions-udfs)
101
- without complex pipelines
102
- - **Data format agnostic and extensibility**: Access tables as Parquet files,
103
- [PyTorch datasets](https://pixeltable.github.io/pixeltable/api/data-frame/#pixeltable.DataFrame.to_pytorch_dataset),
104
- or [COCO annotations](https://pixeltable.github.io/pixeltable/api/table/#pixeltable.Table.to_coco_dataset)
94
+ All with your [custom functions (UDFs)](https://docs.pixeltable.com/docs/datastore/custom-functions), and built-in caching, versioning, lineage tracking, and incremental computation.
105
95
 
106
96
  ## 💾 Installation
107
97
 
@@ -120,7 +110,7 @@ Learn how to create tables, populate them with data, and enhance them with built
120
110
  | 10-Minute Tour of Pixeltable | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/pixeltable-basics.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> | Tables and Data Operations | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/fundamentals/tables-and-data-operations.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
121
111
  | User-Defined Functions (UDFs) | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/feature-guides/udfs-in-pixeltable.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> | Object Detection Models | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/use-cases/object-detection-in-videos.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
122
112
  | Incremental Prompt Engineering | <a target="_blank" href="https://colab.research.google.com/github/mistralai/cookbook/blob/main/third_party/Pixeltable/incremental_prompt_engineering_and_model_comparison.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Github"/> | Working with External Files | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/feature-guides/working-with-external-files.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
123
- | Integrating with Label Studio | <a target="_blank" href="https://pixeltable.readme.io/docs/label-studio"> <img src="https://img.shields.io/badge/📚 Documentation-013056" alt="Visit our documentation"/></a> | Audio/Video Transcript Indexing | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/use-cases/audio-transcriptions.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
113
+ | Integrating with Label Studio | <a target="_blank" href="https://docs.pixeltable.com/docs/cookbooks/vision/label-studio"> <img src="https://img.shields.io/badge/📚 Documentation-013056" alt="Visit our documentation"/></a> | Audio/Video Transcript Indexing | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/use-cases/audio-transcriptions.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
124
114
  | Multimodal Application | <a target="_blank" href="https://huggingface.co/spaces/Pixeltable/Multimodal-Powerhouse"> <img src="https://img.shields.io/badge/🤗-Gradio App-FF7D04" alt="Visit our Hugging Face Space"/></a> | Document Indexing and RAG | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/use-cases/rag-demo.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
125
115
  | Context-Aware Discord Bot | <a target="_blank" href="https://github.com/pixeltable/pixeltable/blob/main/docs/sample-apps/context-aware-discord-bot"> <img src="https://img.shields.io/badge/%F0%9F%92%AC-Discord Bot-%235865F2.svg" alt="Visit our documentation"/></a> | Image/Text Similarity Search | <a target="_blank" href="https://github.com/pixeltable/pixeltable/tree/main/docs/sample-apps/text-and-image-similarity-search-nextjs-fastapi"> <img src="https://img.shields.io/badge/🖥️-Next.js + FastAPI-black.svg" alt="Open In Colab"/> |
126
116
 
@@ -142,7 +132,7 @@ paths = [
142
132
  v.insert({'video': prefix + p} for p in paths)
143
133
  ```
144
134
 
145
- Learn how to [work with data in Pixeltable](https://pixeltable.readme.io/docs/working-with-external-files).
135
+ Learn how to [work with data in Pixeltable](https://docs.pixeltable.com/docs/datastore/tables-and-operations).
146
136
 
147
137
  ### Object detection in images using DETR model
148
138
 
@@ -175,7 +165,7 @@ t.select(animal = t.image,
175
165
  ```
176
166
 
177
167
  Learn about computed columns and object detection:
178
- [Comparing object detection models](https://pixeltable.readme.io/docs/object-detection-in-videos).
168
+ [Comparing object detection models](https://docs.pixeltable.com/docs/examples/use-cases#multimodal-processing).
179
169
 
180
170
  ### Extend Pixeltable's capabilities with user-defined functions
181
171
 
@@ -190,7 +180,7 @@ def draw_boxes(img: PIL.Image.Image, boxes: list[list[float]]) -> PIL.Image.Imag
190
180
  ```
191
181
 
192
182
  Learn more about user-defined functions:
193
- [UDFs in Pixeltable](https://pixeltable.readme.io/docs/user-defined-functions-udfs).
183
+ [UDFs in Pixeltable](https://docs.pixeltable.com/docs/datastore/custom-functions).
194
184
 
195
185
  ### Automate data operations with views, e.g., split documents into chunks
196
186
 
@@ -206,7 +196,7 @@ chunks_table = pxt.create_view(
206
196
  ```
207
197
 
208
198
  Learn how to leverage views to build your
209
- [RAG workflow](https://pixeltable.readme.io/docs/document-indexing-and-rag).
199
+ [RAG workflow](https://docs.pixeltable.com/docs/cookbooks/chat/memory).
210
200
 
211
201
  ### Evaluate model performance
212
202
 
@@ -215,7 +205,7 @@ Learn how to leverage views to build your
215
205
  frames_view.select(mean_ap(frames_view.eval_yolox_tiny), mean_ap(frames_view.eval_yolox_m)).show()
216
206
  ```
217
207
 
218
- Learn how to leverage Pixeltable for [Model analytics](https://pixeltable.readme.io/docs/object-detection-in-videos).
208
+ Learn how to leverage Pixeltable for [Model analytics](https://github.com/pixeltable/pixeltable/blob/main/docs/notebooks/use-cases/object-detection-in-videos.ipynb).
219
209
 
220
210
  ### Working with inference services
221
211
 
@@ -252,7 +242,7 @@ chat_table.insert([
252
242
  chat_table.select(chat_table.input, chat_table.response).head()
253
243
  ```
254
244
 
255
- Learn how to interact with inference services such as [Together AI](https://pixeltable.readme.io/docs/together-ai) in Pixeltable.
245
+ Learn how to interact with inference services such as [Together AI](https://github.com/pixeltable/pixeltable/blob/main/docs/notebooks/integrations/working-with-together.ipynb) in Pixeltable.
256
246
 
257
247
  ### Text and image similarity search on video frames with embedding indexes
258
248
 
@@ -283,7 +273,7 @@ sim = frames_view.frame.similarity(sample_text)
283
273
  frames_view.order_by(sim, asc=False).limit(5).select(frames_view.frame, sim=sim).collect()
284
274
  ```
285
275
 
286
- Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.com/docs/embedding-vector-indexes).
276
+ Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.com/docs/datastore/embedding-index).
287
277
 
288
278
  ## 🔄 AI Stack Comparison
289
279
 
@@ -319,11 +309,6 @@ Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.co
319
309
 
320
310
  ## ❓ FAQ
321
311
 
322
- ### What is Pixeltable?
323
-
324
- Pixeltable unifies data storage, versioning, and indexing with orchestration and model versioning under a declarative
325
- table interface, with transformations, model inference, and custom logic represented as computed columns.
326
-
327
312
  ### What problems does Pixeltable solve?
328
313
 
329
314
  Today's solutions for AI app development require extensive custom coding and infrastructure plumbing.
@@ -361,7 +346,7 @@ dealing with the customary data plumbing.
361
346
  infrastructure and orchestration.
362
347
 
363
348
  > [!TIP]
364
- > Check out the [Integrations](https://pixeltable.readme.io/docs/working-with-openai) section, and feel free to submit
349
+ > Check out the [Integrations](https://docs.pixeltable.com/docs/integrations/frameworks) section, and feel free to submit
365
350
  > a request for additional ones.
366
351
 
367
352
  ## 🤝 Contributing to Pixeltable
@@ -18,31 +18,22 @@
18
18
  </a>
19
19
 
20
20
  [Installation](https://docs.pixeltable.com/docs/installation) |
21
- [Documentation](https://pixeltable.readme.io/) |
21
+ [Documentation](https://docs.pixeltable.com/docs/overview/quick-start) |
22
22
  [API Reference](https://pixeltable.github.io/pixeltable/) |
23
23
  [Code Samples](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#-code-samples) |
24
24
  [Computer Vision](https://docs.pixeltable.com/docs/object-detection-in-videos) |
25
25
  [LLM](https://docs.pixeltable.com/docs/document-indexing-and-rag)
26
26
  </div>
27
27
 
28
+ ## 🔍 What is Pixeltable?
28
29
  Pixeltable is a declarative data infrastructure for building multimodal AI applications, enabling incremental storage, transformation, indexing, and orchestration of your data.
30
+ - **Data Ingestion**: Unified interface for all [data types](https://docs.pixeltable.com/docs/datastore/bringing-data) (images, videos, audio, documents, URLs, blob storage, structured data)
31
+ - **Data Transformation**: [Chunking](https://docs.pixeltable.com/docs/datastore/views), [embedding](https://docs.pixeltable.com/docs/datastore/embedding-index), and processing with declarative [computed columns](https://docs.pixeltable.com/docs/datastore/computed-columns)
32
+ - **Indexing & Storage**: Type-safe tables with [built-in vector indexing](https://docs.pixeltable.com/docs/cookbooks/search/website)
33
+ - **Query & Retrieval**: [Queries](https://docs.pixeltable.com/docs/datastore/filtering-and-selecting) combining filtering, sorting, and similarity search
34
+ - **Inference & Generation**: [Integration](https://docs.pixeltable.com/docs/integrations/frameworks#cloud-llm-providers) with AI models (OpenAI, Anthropic, PyTorch, YOLOX, DETR, Together, Hugging Face and more...)
29
35
 
30
- Consider it your unified foundation for computer vision, LLMs, and multimodal AI development - where complex data operations become simple tables and computed columns, including but not limited to:
31
-
32
- - **Work with all your data**: Interact with
33
- [video data](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#import-media-data-into-pixeltable-videos-images-audio)
34
- at the [frame level](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#text-and-image-similarity-search-on-video-frames-with-embedding-indexes)
35
- and documents at the [chunk level](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#automate-data-operations-with-views-eg-split-documents-into-chunks)
36
- - **Incremental updates**: Maintain an
37
- [embedding index](https://docs.pixeltable.com/docs/embedding-vector-indexes) colocated with your data
38
- - **Lazy evaluation and cache management**: Eliminates the need for
39
- [manual frame extraction](https://docs.pixeltable.com/docs/object-detection-in-videos)
40
- - **Integrates with any Python libraries**: Use
41
- [built-in and custom functions (UDFs)](https://docs.pixeltable.com/docs/user-defined-functions-udfs)
42
- without complex pipelines
43
- - **Data format agnostic and extensibility**: Access tables as Parquet files,
44
- [PyTorch datasets](https://pixeltable.github.io/pixeltable/api/data-frame/#pixeltable.DataFrame.to_pytorch_dataset),
45
- or [COCO annotations](https://pixeltable.github.io/pixeltable/api/table/#pixeltable.Table.to_coco_dataset)
36
+ All with your [custom functions (UDFs)](https://docs.pixeltable.com/docs/datastore/custom-functions), and built-in caching, versioning, lineage tracking, and incremental computation.
46
37
 
47
38
  ## 💾 Installation
48
39
 
@@ -61,7 +52,7 @@ Learn how to create tables, populate them with data, and enhance them with built
61
52
  | 10-Minute Tour of Pixeltable | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/pixeltable-basics.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> | Tables and Data Operations | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/fundamentals/tables-and-data-operations.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
62
53
  | User-Defined Functions (UDFs) | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/feature-guides/udfs-in-pixeltable.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> | Object Detection Models | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/use-cases/object-detection-in-videos.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
63
54
  | Incremental Prompt Engineering | <a target="_blank" href="https://colab.research.google.com/github/mistralai/cookbook/blob/main/third_party/Pixeltable/incremental_prompt_engineering_and_model_comparison.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Github"/> | Working with External Files | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/feature-guides/working-with-external-files.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
64
- | Integrating with Label Studio | <a target="_blank" href="https://pixeltable.readme.io/docs/label-studio"> <img src="https://img.shields.io/badge/📚 Documentation-013056" alt="Visit our documentation"/></a> | Audio/Video Transcript Indexing | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/use-cases/audio-transcriptions.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
55
+ | Integrating with Label Studio | <a target="_blank" href="https://docs.pixeltable.com/docs/cookbooks/vision/label-studio"> <img src="https://img.shields.io/badge/📚 Documentation-013056" alt="Visit our documentation"/></a> | Audio/Video Transcript Indexing | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/use-cases/audio-transcriptions.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
65
56
  | Multimodal Application | <a target="_blank" href="https://huggingface.co/spaces/Pixeltable/Multimodal-Powerhouse"> <img src="https://img.shields.io/badge/🤗-Gradio App-FF7D04" alt="Visit our Hugging Face Space"/></a> | Document Indexing and RAG | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/use-cases/rag-demo.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
66
57
  | Context-Aware Discord Bot | <a target="_blank" href="https://github.com/pixeltable/pixeltable/blob/main/docs/sample-apps/context-aware-discord-bot"> <img src="https://img.shields.io/badge/%F0%9F%92%AC-Discord Bot-%235865F2.svg" alt="Visit our documentation"/></a> | Image/Text Similarity Search | <a target="_blank" href="https://github.com/pixeltable/pixeltable/tree/main/docs/sample-apps/text-and-image-similarity-search-nextjs-fastapi"> <img src="https://img.shields.io/badge/🖥️-Next.js + FastAPI-black.svg" alt="Open In Colab"/> |
67
58
 
@@ -83,7 +74,7 @@ paths = [
83
74
  v.insert({'video': prefix + p} for p in paths)
84
75
  ```
85
76
 
86
- Learn how to [work with data in Pixeltable](https://pixeltable.readme.io/docs/working-with-external-files).
77
+ Learn how to [work with data in Pixeltable](https://docs.pixeltable.com/docs/datastore/tables-and-operations).
87
78
 
88
79
  ### Object detection in images using DETR model
89
80
 
@@ -116,7 +107,7 @@ t.select(animal = t.image,
116
107
  ```
117
108
 
118
109
  Learn about computed columns and object detection:
119
- [Comparing object detection models](https://pixeltable.readme.io/docs/object-detection-in-videos).
110
+ [Comparing object detection models](https://docs.pixeltable.com/docs/examples/use-cases#multimodal-processing).
120
111
 
121
112
  ### Extend Pixeltable's capabilities with user-defined functions
122
113
 
@@ -131,7 +122,7 @@ def draw_boxes(img: PIL.Image.Image, boxes: list[list[float]]) -> PIL.Image.Imag
131
122
  ```
132
123
 
133
124
  Learn more about user-defined functions:
134
- [UDFs in Pixeltable](https://pixeltable.readme.io/docs/user-defined-functions-udfs).
125
+ [UDFs in Pixeltable](https://docs.pixeltable.com/docs/datastore/custom-functions).
135
126
 
136
127
  ### Automate data operations with views, e.g., split documents into chunks
137
128
 
@@ -147,7 +138,7 @@ chunks_table = pxt.create_view(
147
138
  ```
148
139
 
149
140
  Learn how to leverage views to build your
150
- [RAG workflow](https://pixeltable.readme.io/docs/document-indexing-and-rag).
141
+ [RAG workflow](https://docs.pixeltable.com/docs/cookbooks/chat/memory).
151
142
 
152
143
  ### Evaluate model performance
153
144
 
@@ -156,7 +147,7 @@ Learn how to leverage views to build your
156
147
  frames_view.select(mean_ap(frames_view.eval_yolox_tiny), mean_ap(frames_view.eval_yolox_m)).show()
157
148
  ```
158
149
 
159
- Learn how to leverage Pixeltable for [Model analytics](https://pixeltable.readme.io/docs/object-detection-in-videos).
150
+ Learn how to leverage Pixeltable for [Model analytics](https://github.com/pixeltable/pixeltable/blob/main/docs/notebooks/use-cases/object-detection-in-videos.ipynb).
160
151
 
161
152
  ### Working with inference services
162
153
 
@@ -193,7 +184,7 @@ chat_table.insert([
193
184
  chat_table.select(chat_table.input, chat_table.response).head()
194
185
  ```
195
186
 
196
- Learn how to interact with inference services such as [Together AI](https://pixeltable.readme.io/docs/together-ai) in Pixeltable.
187
+ Learn how to interact with inference services such as [Together AI](https://github.com/pixeltable/pixeltable/blob/main/docs/notebooks/integrations/working-with-together.ipynb) in Pixeltable.
197
188
 
198
189
  ### Text and image similarity search on video frames with embedding indexes
199
190
 
@@ -224,7 +215,7 @@ sim = frames_view.frame.similarity(sample_text)
224
215
  frames_view.order_by(sim, asc=False).limit(5).select(frames_view.frame, sim=sim).collect()
225
216
  ```
226
217
 
227
- Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.com/docs/embedding-vector-indexes).
218
+ Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.com/docs/datastore/embedding-index).
228
219
 
229
220
  ## 🔄 AI Stack Comparison
230
221
 
@@ -260,11 +251,6 @@ Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.co
260
251
 
261
252
  ## ❓ FAQ
262
253
 
263
- ### What is Pixeltable?
264
-
265
- Pixeltable unifies data storage, versioning, and indexing with orchestration and model versioning under a declarative
266
- table interface, with transformations, model inference, and custom logic represented as computed columns.
267
-
268
254
  ### What problems does Pixeltable solve?
269
255
 
270
256
  Today's solutions for AI app development require extensive custom coding and infrastructure plumbing.
@@ -302,7 +288,7 @@ dealing with the customary data plumbing.
302
288
  infrastructure and orchestration.
303
289
 
304
290
  > [!TIP]
305
- > Check out the [Integrations](https://pixeltable.readme.io/docs/working-with-openai) section, and feel free to submit
291
+ > Check out the [Integrations](https://docs.pixeltable.com/docs/integrations/frameworks) section, and feel free to submit
306
292
  > a request for additional ones.
307
293
 
308
294
  ## 🤝 Contributing to Pixeltable
@@ -19,6 +19,7 @@ from .globals import (
19
19
  list_functions,
20
20
  list_tables,
21
21
  move,
22
+ publish_snapshot,
22
23
  tool,
23
24
  tools,
24
25
  )
@@ -1,3 +1,3 @@
1
1
  # These version placeholders will be replaced during build.
2
- __version__ = '0.3.4'
3
- __version_tuple__ = (0, 3, 4)
2
+ __version__ = '0.3.5'
3
+ __version_tuple__ = (0, 3, 5)
@@ -58,7 +58,7 @@ class Catalog:
58
58
  if session.query(sql.func.count(schema.Dir.id)).scalar() > 0:
59
59
  return
60
60
  # create a top-level directory, so that every schema object has a directory
61
- dir_md = schema.DirMd(name='')
61
+ dir_md = schema.DirMd(name='', user=None, additional_md={})
62
62
  dir_record = schema.Dir(parent_id=None, md=dataclasses.asdict(dir_md))
63
63
  session.add(dir_record)
64
64
  session.flush()
@@ -142,6 +142,7 @@ class Catalog:
142
142
  base_tbl_id = base_path.tbl_id()
143
143
  is_snapshot = view_md is not None and view_md.is_snapshot
144
144
  snapshot_only = is_snapshot and view_md.predicate is None and len(schema_version_md.columns) == 0
145
+ include_base_columns = view_md is None or view_md.include_base_columns
145
146
  if snapshot_only:
146
147
  # this is a pure snapshot, without a physical table backing it
147
148
  view_path = base_path
@@ -158,7 +159,13 @@ class Catalog:
158
159
  view_path = TableVersionPath(tbl_version, base=base_path)
159
160
 
160
161
  tbl: Table = View(
161
- tbl_record.id, tbl_record.dir_id, tbl_md.name, view_path, base_tbl_id, snapshot_only=snapshot_only
162
+ tbl_record.id,
163
+ tbl_record.dir_id,
164
+ tbl_md.name,
165
+ view_path,
166
+ base_tbl_id,
167
+ snapshot_only=snapshot_only,
168
+ include_base_columns=include_base_columns,
162
169
  )
163
170
  self.tbl_dependents[base_tbl_id].append(tbl)
164
171
 
@@ -72,7 +72,7 @@ class Column:
72
72
  col_type is None
73
73
  - when loaded from md store: ``computed_with`` is set and col_type is set
74
74
 
75
- ``stored`` (only valid for computed image columns):
75
+ ``stored`` (only valid for computed columns):
76
76
  - if True: the column is present in the stored table
77
77
  - if False: the column is not present in the stored table and recomputed during a query
78
78
  - if None: the system chooses for you (at present, this is always False, but this may change in the future)
@@ -32,7 +32,7 @@ class Dir(SchemaObject):
32
32
  def _move(self, new_name: str, new_dir_id: UUID) -> None:
33
33
  super()._move(new_name, new_dir_id)
34
34
  with Env.get().engine.begin() as conn:
35
- dir_md = schema.DirMd(name=new_name)
35
+ dir_md = schema.DirMd(name=new_name, user=None, additional_md={})
36
36
  conn.execute(
37
37
  sql.update(schema.Dir.__table__)
38
38
  .values({schema.Dir.parent_id: self._dir_id, schema.Dir.md: dataclasses.asdict(dir_md)})
@@ -569,7 +569,7 @@ class Table(SchemaObject):
569
569
 
570
570
  Args:
571
571
  kwargs: Exactly one keyword argument of the form `col_name=expression`.
572
- stored: Whether the column is materialized and stored or computed on demand. Only valid for image columns.
572
+ stored: Whether the column is materialized and stored or computed on demand.
573
573
  print_stats: If `True`, print execution metrics during evaluation.
574
574
  on_error: Determines the behavior if an error occurs while evaluating the column expression for at least one
575
575
  row.
@@ -59,6 +59,7 @@ class TableVersion:
59
59
  schema_version: int
60
60
  view_md: Optional[schema.ViewMd]
61
61
  is_snapshot: bool
62
+ include_base_columns: bool
62
63
  effective_version: Optional[int]
63
64
  path: Optional[pxt.catalog.TableVersionPath]
64
65
  base: Optional[TableVersion]
@@ -115,6 +116,7 @@ class TableVersion:
115
116
  self.view_md = tbl_md.view_md # save this as-is, it's needed for _create_md()
116
117
  is_view = tbl_md.view_md is not None
117
118
  self.is_snapshot = (is_view and tbl_md.view_md.is_snapshot) or bool(is_snapshot)
119
+ self.include_base_columns = not is_view or tbl_md.view_md.include_base_columns
118
120
  self.media_validation = MediaValidation[schema_version_md.media_validation.upper()]
119
121
  # a mutable TableVersion doesn't have a static version
120
122
  self.effective_version = self.version if self.is_snapshot else None
@@ -228,6 +230,7 @@ class TableVersion:
228
230
  column_md = cls._create_column_md(cols)
229
231
  table_md = schema.TableMd(
230
232
  name=name,
233
+ user=None,
231
234
  current_version=0,
232
235
  current_schema_version=0,
233
236
  next_col_id=len(cols),
@@ -237,6 +240,7 @@ class TableVersion:
237
240
  index_md={},
238
241
  external_stores=[],
239
242
  view_md=view_md,
243
+ additional_md={},
240
244
  )
241
245
  # create a schema.Table here, we need it to call our c'tor;
242
246
  # don't add it to the session yet, we might add index metadata
@@ -244,7 +248,7 @@ class TableVersion:
244
248
  tbl_record = schema.Table(id=tbl_id, dir_id=dir_id, md=dataclasses.asdict(table_md))
245
249
 
246
250
  # create schema.TableVersion
247
- table_version_md = schema.TableVersionMd(created_at=timestamp, version=0, schema_version=0)
251
+ table_version_md = schema.TableVersionMd(created_at=timestamp, version=0, schema_version=0, additional_md={})
248
252
  tbl_version_record = schema.TableVersion(
249
253
  tbl_id=tbl_record.id, version=0, md=dataclasses.asdict(table_version_md)
250
254
  )
@@ -266,6 +270,7 @@ class TableVersion:
266
270
  num_retained_versions=num_retained_versions,
267
271
  comment=comment,
268
272
  media_validation=media_validation.name.lower(),
273
+ additional_md={},
269
274
  )
270
275
  schema_version_record = schema.TableSchemaVersion(
271
276
  tbl_id=tbl_record.id, schema_version=0, md=dataclasses.asdict(schema_version_md)
@@ -1342,6 +1347,7 @@ class TableVersion:
1342
1347
  def _create_tbl_md(self) -> schema.TableMd:
1343
1348
  return schema.TableMd(
1344
1349
  name=self.name,
1350
+ user=None,
1345
1351
  current_version=self.version,
1346
1352
  current_schema_version=self.schema_version,
1347
1353
  next_col_id=self.next_col_id,
@@ -1351,10 +1357,13 @@ class TableVersion:
1351
1357
  index_md=self.idx_md,
1352
1358
  external_stores=self._create_stores_md(self.external_stores.values()),
1353
1359
  view_md=self.view_md,
1360
+ additional_md={},
1354
1361
  )
1355
1362
 
1356
1363
  def _create_version_md(self, timestamp: float) -> schema.TableVersionMd:
1357
- return schema.TableVersionMd(created_at=timestamp, version=self.version, schema_version=self.schema_version)
1364
+ return schema.TableVersionMd(
1365
+ created_at=timestamp, version=self.version, schema_version=self.schema_version, additional_md={}
1366
+ )
1358
1367
 
1359
1368
  def _create_schema_version_md(self, preceding_schema_version: int) -> schema.TableSchemaVersionMd:
1360
1369
  column_md: dict[int, schema.SchemaColumn] = {}
@@ -1372,6 +1381,7 @@ class TableVersion:
1372
1381
  num_retained_versions=self.num_retained_versions,
1373
1382
  comment=self.comment,
1374
1383
  media_validation=self.media_validation.name.lower(),
1384
+ additional_md={},
1375
1385
  )
1376
1386
 
1377
1387
  def as_dict(self) -> dict:
@@ -86,7 +86,7 @@ class TableVersionPath:
86
86
  from pixeltable.exprs import ColumnRef
87
87
 
88
88
  if col_name not in self.tbl_version.cols_by_name:
89
- if self.base is None:
89
+ if self.base is None or not self.tbl_version.include_base_columns:
90
90
  raise AttributeError(f'Column {col_name} unknown')
91
91
  return self.base.get_column_ref(col_name)
92
92
  col = self.tbl_version.cols_by_name[col_name]
@@ -95,7 +95,7 @@ class TableVersionPath:
95
95
  def columns(self) -> list[Column]:
96
96
  """Return all user columns visible in this tbl version path, including columns from bases"""
97
97
  result = list(self.tbl_version.cols_by_name.values())
98
- if self.base is not None:
98
+ if self.base is not None and self.tbl_version.include_base_columns:
99
99
  base_cols = self.base.columns()
100
100
  # we only include base columns that don't conflict with one of our column names
101
101
  result.extend(c for c in base_cols if c.name not in self.tbl_version.cols_by_name)