pixeltable 0.3.3__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 (173) hide show
  1. {pixeltable-0.3.3 → pixeltable-0.3.5}/PKG-INFO +37 -50
  2. {pixeltable-0.3.3 → pixeltable-0.3.5}/README.md +17 -31
  3. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/__init__.py +1 -0
  4. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/__version__.py +2 -2
  5. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/catalog.py +9 -2
  6. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/column.py +1 -1
  7. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/dir.py +1 -1
  8. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/table.py +1 -1
  9. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/table_version.py +12 -2
  10. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/table_version_path.py +2 -2
  11. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/view.py +64 -20
  12. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/dataframe.py +14 -14
  13. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/env.py +20 -3
  14. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/component_iteration_node.py +1 -2
  15. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/evaluators.py +4 -2
  16. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/expr_eval_node.py +4 -1
  17. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/comparison.py +8 -4
  18. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/data_row.py +5 -3
  19. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/expr.py +9 -2
  20. pixeltable-0.3.5/pixeltable/exprs/function_call.py +455 -0
  21. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/aggregate_function.py +29 -15
  22. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/callable_function.py +11 -8
  23. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/expr_template_function.py +3 -9
  24. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/function.py +148 -74
  25. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/signature.py +65 -30
  26. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/udf.py +1 -1
  27. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/__init__.py +1 -0
  28. pixeltable-0.3.5/pixeltable/functions/deepseek.py +121 -0
  29. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/openai.py +49 -10
  30. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/video.py +14 -7
  31. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/globals.py +14 -3
  32. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/index/embedding_index.py +4 -13
  33. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/io/globals.py +88 -77
  34. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/io/hf_datasets.py +34 -34
  35. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/io/pandas.py +75 -87
  36. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/io/parquet.py +19 -27
  37. pixeltable-0.3.5/pixeltable/io/utils.py +115 -0
  38. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/iterators/audio.py +2 -1
  39. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/iterators/video.py +1 -1
  40. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/__init__.py +2 -1
  41. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_15.py +18 -8
  42. pixeltable-0.3.5/pixeltable/metadata/converters/convert_27.py +31 -0
  43. pixeltable-0.3.5/pixeltable/metadata/converters/convert_28.py +15 -0
  44. pixeltable-0.3.5/pixeltable/metadata/converters/convert_29.py +111 -0
  45. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/util.py +12 -1
  46. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/notes.py +3 -0
  47. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/schema.py +8 -0
  48. pixeltable-0.3.5/pixeltable/share/__init__.py +1 -0
  49. pixeltable-0.3.5/pixeltable/share/packager.py +246 -0
  50. pixeltable-0.3.5/pixeltable/share/publish.py +97 -0
  51. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/type_system.py +87 -42
  52. pixeltable-0.3.5/pixeltable/utils/__init__.py +58 -0
  53. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/arrow.py +45 -12
  54. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/formatter.py +1 -1
  55. pixeltable-0.3.5/pixeltable/utils/iceberg.py +14 -0
  56. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/media_store.py +1 -1
  57. {pixeltable-0.3.3 → pixeltable-0.3.5}/pyproject.toml +55 -51
  58. pixeltable-0.3.3/pixeltable/exprs/function_call.py +0 -613
  59. pixeltable-0.3.3/pixeltable/utils/__init__.py +0 -17
  60. {pixeltable-0.3.3 → pixeltable-0.3.5}/LICENSE +0 -0
  61. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/__init__.py +0 -0
  62. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/globals.py +0 -0
  63. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/insertable_table.py +0 -0
  64. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/named_function.py +0 -0
  65. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/path.py +0 -0
  66. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/path_dict.py +0 -0
  67. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/catalog/schema_object.py +0 -0
  68. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exceptions.py +0 -0
  69. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/__init__.py +0 -0
  70. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/aggregation_node.py +0 -0
  71. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/cache_prefetch_node.py +0 -0
  72. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/data_row_batch.py +0 -0
  73. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/exec_context.py +0 -0
  74. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/exec_node.py +0 -0
  75. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/__init__.py +0 -0
  76. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/globals.py +0 -0
  77. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/row_buffer.py +0 -0
  78. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/expr_eval/schedulers.py +0 -0
  79. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/in_memory_data_node.py +0 -0
  80. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/row_update_node.py +0 -0
  81. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exec/sql_node.py +0 -0
  82. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/__init__.py +0 -0
  83. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/arithmetic_expr.py +0 -0
  84. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/array_slice.py +0 -0
  85. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/column_property_ref.py +0 -0
  86. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/column_ref.py +0 -0
  87. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/compound_predicate.py +0 -0
  88. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/expr_dict.py +0 -0
  89. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/expr_set.py +0 -0
  90. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/globals.py +0 -0
  91. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/in_predicate.py +0 -0
  92. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/inline_expr.py +0 -0
  93. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/is_null.py +0 -0
  94. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/json_mapper.py +0 -0
  95. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/json_path.py +0 -0
  96. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/literal.py +0 -0
  97. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/method_ref.py +0 -0
  98. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/object_ref.py +0 -0
  99. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/row_builder.py +0 -0
  100. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/rowid_ref.py +0 -0
  101. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/similarity_expr.py +0 -0
  102. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/sql_element_cache.py +0 -0
  103. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/type_cast.py +0 -0
  104. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/exprs/variable.py +0 -0
  105. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/ext/__init__.py +0 -0
  106. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/ext/functions/__init__.py +0 -0
  107. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/ext/functions/whisperx.py +0 -0
  108. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/ext/functions/yolox.py +0 -0
  109. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/__init__.py +0 -0
  110. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/function_registry.py +0 -0
  111. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/globals.py +0 -0
  112. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/query_template_function.py +0 -0
  113. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/func/tools.py +0 -0
  114. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/anthropic.py +0 -0
  115. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/audio.py +0 -0
  116. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/fireworks.py +0 -0
  117. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/gemini.py +0 -0
  118. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/globals.py +0 -0
  119. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/huggingface.py +0 -0
  120. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/image.py +7 -7
  121. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/json.py +0 -0
  122. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/llama_cpp.py +0 -0
  123. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/math.py +0 -0
  124. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/mistralai.py +0 -0
  125. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/ollama.py +0 -0
  126. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/replicate.py +0 -0
  127. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/string.py +0 -0
  128. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/timestamp.py +0 -0
  129. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/together.py +0 -0
  130. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/util.py +0 -0
  131. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/vision.py +0 -0
  132. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/functions/whisper.py +0 -0
  133. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/index/__init__.py +0 -0
  134. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/index/base.py +0 -0
  135. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/index/btree.py +0 -0
  136. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/io/__init__.py +0 -0
  137. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/io/external_store.py +0 -0
  138. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/io/fiftyone.py +0 -0
  139. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/io/label_studio.py +0 -0
  140. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/iterators/__init__.py +0 -0
  141. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/iterators/base.py +0 -0
  142. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/iterators/document.py +0 -0
  143. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/iterators/image.py +0 -0
  144. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/iterators/string.py +0 -0
  145. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_10.py +0 -0
  146. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_12.py +0 -0
  147. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_13.py +0 -0
  148. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_14.py +0 -0
  149. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_16.py +0 -0
  150. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_17.py +0 -0
  151. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_18.py +0 -0
  152. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_19.py +0 -0
  153. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_20.py +0 -0
  154. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_21.py +0 -0
  155. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_22.py +0 -0
  156. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_23.py +0 -0
  157. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_24.py +0 -0
  158. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_25.py +0 -0
  159. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/metadata/converters/convert_26.py +0 -0
  160. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/plan.py +0 -0
  161. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/py.typed +0 -0
  162. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/store.py +0 -0
  163. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/coco.py +0 -0
  164. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/code.py +0 -0
  165. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/console_output.py +0 -0
  166. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/description_helper.py +0 -0
  167. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/documents.py +0 -0
  168. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/filecache.py +0 -0
  169. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/http_server.py +0 -0
  170. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/pytorch.py +0 -0
  171. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/s3.py +0 -0
  172. {pixeltable-0.3.3 → pixeltable-0.3.5}/pixeltable/utils/sql.py +0 -0
  173. {pixeltable-0.3.3 → 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.3
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,34 +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
- Requires-Dist: pixeltable-pgserver (==0.2.9)
43
- Requires-Dist: psutil (>=5.9.5,<6.0.0)
40
+ Requires-Dist: pixeltable-pgserver (==0.3.1)
41
+ Requires-Dist: psutil (>=5.9.5)
44
42
  Requires-Dist: psycopg[binary] (>=3.1.18)
45
43
  Requires-Dist: puremagic (>=1.20)
44
+ Requires-Dist: pyarrow (>=13.0.0)
46
45
  Requires-Dist: pydantic (>=2.7.4)
47
- Requires-Dist: pymupdf (>=1.24.1,<2.0.0)
48
- Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
49
- Requires-Dist: requests (>=2.31.0,<3.0.0)
50
- Requires-Dist: sqlalchemy (>=2.0.23,<3.0.0)
51
- Requires-Dist: tenacity (>=8.2,<9.0)
46
+ Requires-Dist: pyiceberg (>=0.6.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)
52
52
  Requires-Dist: toml (>=0.10)
53
53
  Requires-Dist: tqdm (>=4.64)
54
54
  Project-URL: Documentation, https://docs.pixeltable.com/
55
+ Project-URL: Homepage, https://pixeltable.com/
55
56
  Project-URL: Repository, https://github.com/pixeltable/pixeltable
56
57
  Description-Content-Type: text/markdown
57
58
 
@@ -75,31 +76,22 @@ Description-Content-Type: text/markdown
75
76
  </a>
76
77
 
77
78
  [Installation](https://docs.pixeltable.com/docs/installation) |
78
- [Documentation](https://pixeltable.readme.io/) |
79
+ [Documentation](https://docs.pixeltable.com/docs/overview/quick-start) |
79
80
  [API Reference](https://pixeltable.github.io/pixeltable/) |
80
81
  [Code Samples](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#-code-samples) |
81
82
  [Computer Vision](https://docs.pixeltable.com/docs/object-detection-in-videos) |
82
83
  [LLM](https://docs.pixeltable.com/docs/document-indexing-and-rag)
83
84
  </div>
84
85
 
86
+ ## 🔍 What is Pixeltable?
85
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...)
86
93
 
87
- 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:
88
-
89
- - **Work with all your data**: Interact with
90
- [video data](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#import-media-data-into-pixeltable-videos-images-audio)
91
- at the [frame level](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#text-and-image-similarity-search-on-video-frames-with-embedding-indexes)
92
- 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)
93
- - **Incremental updates**: Maintain an
94
- [embedding index](https://docs.pixeltable.com/docs/embedding-vector-indexes) colocated with your data
95
- - **Lazy evaluation and cache management**: Eliminates the need for
96
- [manual frame extraction](https://docs.pixeltable.com/docs/object-detection-in-videos)
97
- - **Integrates with any Python libraries**: Use
98
- [built-in and custom functions (UDFs)](https://docs.pixeltable.com/docs/user-defined-functions-udfs)
99
- without complex pipelines
100
- - **Data format agnostic and extensibility**: Access tables as Parquet files,
101
- [PyTorch datasets](https://pixeltable.github.io/pixeltable/api/data-frame/#pixeltable.DataFrame.to_pytorch_dataset),
102
- 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.
103
95
 
104
96
  ## 💾 Installation
105
97
 
@@ -118,7 +110,7 @@ Learn how to create tables, populate them with data, and enhance them with built
118
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> |
119
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> |
120
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> |
121
- | 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"/> |
122
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"/> |
123
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"/> |
124
116
 
@@ -140,7 +132,7 @@ paths = [
140
132
  v.insert({'video': prefix + p} for p in paths)
141
133
  ```
142
134
 
143
- 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).
144
136
 
145
137
  ### Object detection in images using DETR model
146
138
 
@@ -173,7 +165,7 @@ t.select(animal = t.image,
173
165
  ```
174
166
 
175
167
  Learn about computed columns and object detection:
176
- [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).
177
169
 
178
170
  ### Extend Pixeltable's capabilities with user-defined functions
179
171
 
@@ -188,7 +180,7 @@ def draw_boxes(img: PIL.Image.Image, boxes: list[list[float]]) -> PIL.Image.Imag
188
180
  ```
189
181
 
190
182
  Learn more about user-defined functions:
191
- [UDFs in Pixeltable](https://pixeltable.readme.io/docs/user-defined-functions-udfs).
183
+ [UDFs in Pixeltable](https://docs.pixeltable.com/docs/datastore/custom-functions).
192
184
 
193
185
  ### Automate data operations with views, e.g., split documents into chunks
194
186
 
@@ -204,7 +196,7 @@ chunks_table = pxt.create_view(
204
196
  ```
205
197
 
206
198
  Learn how to leverage views to build your
207
- [RAG workflow](https://pixeltable.readme.io/docs/document-indexing-and-rag).
199
+ [RAG workflow](https://docs.pixeltable.com/docs/cookbooks/chat/memory).
208
200
 
209
201
  ### Evaluate model performance
210
202
 
@@ -213,7 +205,7 @@ Learn how to leverage views to build your
213
205
  frames_view.select(mean_ap(frames_view.eval_yolox_tiny), mean_ap(frames_view.eval_yolox_m)).show()
214
206
  ```
215
207
 
216
- 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).
217
209
 
218
210
  ### Working with inference services
219
211
 
@@ -250,7 +242,7 @@ chat_table.insert([
250
242
  chat_table.select(chat_table.input, chat_table.response).head()
251
243
  ```
252
244
 
253
- 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.
254
246
 
255
247
  ### Text and image similarity search on video frames with embedding indexes
256
248
 
@@ -281,7 +273,7 @@ sim = frames_view.frame.similarity(sample_text)
281
273
  frames_view.order_by(sim, asc=False).limit(5).select(frames_view.frame, sim=sim).collect()
282
274
  ```
283
275
 
284
- 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).
285
277
 
286
278
  ## 🔄 AI Stack Comparison
287
279
 
@@ -317,11 +309,6 @@ Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.co
317
309
 
318
310
  ## ❓ FAQ
319
311
 
320
- ### What is Pixeltable?
321
-
322
- Pixeltable unifies data storage, versioning, and indexing with orchestration and model versioning under a declarative
323
- table interface, with transformations, model inference, and custom logic represented as computed columns.
324
-
325
312
  ### What problems does Pixeltable solve?
326
313
 
327
314
  Today's solutions for AI app development require extensive custom coding and infrastructure plumbing.
@@ -359,7 +346,7 @@ dealing with the customary data plumbing.
359
346
  infrastructure and orchestration.
360
347
 
361
348
  > [!TIP]
362
- > 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
363
350
  > a request for additional ones.
364
351
 
365
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.3'
3
- __version_tuple__ = (0, 3, 3)
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)