pixeltable 0.2.21__tar.gz → 0.2.23__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 (157) hide show
  1. {pixeltable-0.2.21 → pixeltable-0.2.23}/PKG-INFO +158 -49
  2. {pixeltable-0.2.21 → pixeltable-0.2.23}/README.md +156 -47
  3. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/__init__.py +2 -2
  4. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/__version__.py +2 -2
  5. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/__init__.py +1 -1
  6. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/column.py +41 -29
  7. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/globals.py +18 -0
  8. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/insertable_table.py +30 -10
  9. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/table.py +198 -86
  10. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/table_version.py +47 -53
  11. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/table_version_path.py +2 -2
  12. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/view.py +17 -18
  13. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/dataframe.py +27 -36
  14. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/env.py +7 -0
  15. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/__init__.py +0 -1
  16. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/aggregation_node.py +6 -3
  17. pixeltable-0.2.23/pixeltable/exec/cache_prefetch_node.py +262 -0
  18. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/data_row_batch.py +5 -22
  19. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/exec_context.py +2 -2
  20. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/exec_node.py +3 -2
  21. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/expr_eval_node.py +23 -16
  22. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/in_memory_data_node.py +6 -3
  23. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/sql_node.py +24 -25
  24. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/arithmetic_expr.py +12 -5
  25. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/array_slice.py +7 -7
  26. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/column_property_ref.py +37 -10
  27. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/column_ref.py +97 -14
  28. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/comparison.py +10 -5
  29. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/compound_predicate.py +8 -7
  30. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/data_row.py +27 -18
  31. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/expr.py +53 -52
  32. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/expr_set.py +5 -0
  33. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/function_call.py +32 -16
  34. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/globals.py +4 -1
  35. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/in_predicate.py +8 -7
  36. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/inline_expr.py +4 -4
  37. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/is_null.py +4 -4
  38. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/json_mapper.py +11 -12
  39. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/json_path.py +6 -11
  40. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/literal.py +5 -5
  41. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/method_ref.py +5 -4
  42. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/object_ref.py +2 -1
  43. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/row_builder.py +88 -36
  44. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/rowid_ref.py +12 -11
  45. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/similarity_expr.py +12 -7
  46. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/sql_element_cache.py +7 -5
  47. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/type_cast.py +8 -6
  48. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/variable.py +5 -4
  49. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/aggregate_function.py +9 -9
  50. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/expr_template_function.py +6 -5
  51. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/function.py +11 -10
  52. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/udf.py +6 -11
  53. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/__init__.py +2 -2
  54. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/globals.py +5 -7
  55. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/huggingface.py +155 -45
  56. pixeltable-0.2.23/pixeltable/functions/llama_cpp.py +107 -0
  57. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/mistralai.py +1 -1
  58. pixeltable-0.2.23/pixeltable/functions/ollama.py +147 -0
  59. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/openai.py +1 -1
  60. pixeltable-0.2.23/pixeltable/functions/replicate.py +72 -0
  61. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/string.py +9 -0
  62. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/together.py +1 -1
  63. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/util.py +5 -2
  64. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/globals.py +67 -26
  65. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/index/btree.py +16 -3
  66. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/index/embedding_index.py +4 -4
  67. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/io/__init__.py +1 -2
  68. pixeltable-0.2.23/pixeltable/io/fiftyone.py +178 -0
  69. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/io/globals.py +96 -2
  70. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/iterators/base.py +3 -2
  71. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/iterators/document.py +1 -1
  72. pixeltable-0.2.23/pixeltable/iterators/video.py +194 -0
  73. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/__init__.py +1 -1
  74. pixeltable-0.2.23/pixeltable/metadata/converters/convert_21.py +34 -0
  75. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/util.py +45 -4
  76. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/notes.py +1 -0
  77. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/schema.py +8 -0
  78. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/plan.py +17 -15
  79. pixeltable-0.2.23/pixeltable/py.typed +0 -0
  80. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/store.py +7 -2
  81. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/tool/create_test_db_dump.py +1 -1
  82. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/tool/create_test_video.py +1 -1
  83. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/tool/embed_udf.py +1 -1
  84. pixeltable-0.2.23/pixeltable/tool/mypy_plugin.py +55 -0
  85. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/type_system.py +100 -36
  86. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/coco.py +5 -5
  87. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/documents.py +15 -1
  88. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/formatter.py +12 -13
  89. pixeltable-0.2.23/pixeltable/utils/s3.py +16 -0
  90. {pixeltable-0.2.21 → pixeltable-0.2.23}/pyproject.toml +15 -8
  91. pixeltable-0.2.21/pixeltable/exec/cache_prefetch_node.py +0 -116
  92. pixeltable-0.2.21/pixeltable/exec/media_validation_node.py +0 -43
  93. pixeltable-0.2.21/pixeltable/iterators/video.py +0 -137
  94. pixeltable-0.2.21/pixeltable/tool/mypy_plugin.py +0 -32
  95. pixeltable-0.2.21/pixeltable/utils/s3.py +0 -13
  96. {pixeltable-0.2.21 → pixeltable-0.2.23}/LICENSE +0 -0
  97. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/catalog.py +0 -0
  98. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/dir.py +0 -0
  99. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/named_function.py +0 -0
  100. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/path.py +0 -0
  101. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/path_dict.py +0 -0
  102. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/catalog/schema_object.py +0 -0
  103. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exceptions.py +0 -0
  104. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/component_iteration_node.py +0 -0
  105. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exec/row_update_node.py +0 -0
  106. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/__init__.py +0 -0
  107. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/exprs/expr_dict.py +0 -0
  108. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/ext/__init__.py +0 -0
  109. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/ext/functions/__init__.py +0 -0
  110. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/ext/functions/whisperx.py +0 -0
  111. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/ext/functions/yolox.py +0 -0
  112. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/__init__.py +0 -0
  113. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/callable_function.py +0 -0
  114. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/function_registry.py +0 -0
  115. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/globals.py +0 -0
  116. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/query_template_function.py +0 -0
  117. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/func/signature.py +0 -0
  118. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/anthropic.py +0 -0
  119. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/audio.py +0 -0
  120. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/fireworks.py +0 -0
  121. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/image.py +0 -0
  122. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/json.py +0 -0
  123. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/timestamp.py +0 -0
  124. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/video.py +0 -0
  125. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/vision.py +0 -0
  126. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/functions/whisper.py +0 -0
  127. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/index/__init__.py +0 -0
  128. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/index/base.py +0 -0
  129. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/io/external_store.py +0 -0
  130. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/io/hf_datasets.py +0 -0
  131. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/io/label_studio.py +0 -0
  132. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/io/pandas.py +0 -0
  133. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/io/parquet.py +0 -0
  134. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/iterators/__init__.py +0 -0
  135. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/iterators/string.py +0 -0
  136. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_10.py +0 -0
  137. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_12.py +0 -0
  138. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_13.py +0 -0
  139. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_14.py +0 -0
  140. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_15.py +0 -0
  141. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_16.py +0 -0
  142. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_17.py +0 -0
  143. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_18.py +0 -0
  144. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_19.py +0 -0
  145. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/metadata/converters/convert_20.py +0 -0
  146. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/tool/doc_plugins/griffe.py +0 -0
  147. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/tool/doc_plugins/mkdocstrings.py +0 -0
  148. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/tool/doc_plugins/templates/material/udf.html.jinja +0 -0
  149. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/__init__.py +0 -0
  150. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/arrow.py +0 -0
  151. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/code.py +0 -0
  152. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/filecache.py +0 -0
  153. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/http_server.py +0 -0
  154. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/media_store.py +0 -0
  155. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/pytorch.py +0 -0
  156. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/sql.py +0 -0
  157. {pixeltable-0.2.21 → pixeltable-0.2.23}/pixeltable/utils/transactional_directory.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pixeltable
3
- Version: 0.2.21
3
+ Version: 0.2.23
4
4
  Summary: Pixeltable: The Multimodal AI Data Plane
5
5
  Author: Pixeltable, Inc.
6
6
  Author-email: contact@pixeltable.com
@@ -16,9 +16,9 @@ Requires-Dist: cloudpickle (>=2.2.1,<3.0.0)
16
16
  Requires-Dist: ftfy (>=6.2.0,<7.0.0)
17
17
  Requires-Dist: jinja2 (>=3.1.3,<4.0.0)
18
18
  Requires-Dist: jmespath (>=1.0.1,<2.0.0)
19
+ Requires-Dist: lxml (>=5.0)
19
20
  Requires-Dist: more-itertools (>=10.2,<11.0)
20
21
  Requires-Dist: numpy (>=1.25,<2.0)
21
- Requires-Dist: opencv-python-headless (>=4.7.0.68,<5.0.0.0)
22
22
  Requires-Dist: pandas (>=2.0,<3.0)
23
23
  Requires-Dist: pgvector (>=0.2.1,<0.3.0)
24
24
  Requires-Dist: pillow (>=9.3.0)
@@ -36,54 +36,81 @@ Requires-Dist: tqdm (>=4.64)
36
36
  Description-Content-Type: text/markdown
37
37
 
38
38
  <div align="center">
39
- <img src="https://raw.githubusercontent.com/pixeltable/pixeltable/main/docs/source/data/pixeltable-logo-large.png" alt="Pixeltable" width="50%" />
39
+ <img src="https://raw.githubusercontent.com/pixeltable/pixeltable/main/docs/source/data/pixeltable-logo-large.png"
40
+ alt="Pixeltable" width="50%" />
40
41
  <br></br>
41
42
 
43
+ <h2>AI Data Insfrastructure — Declarative, Multimodal, and Incremental</h2>
44
+
42
45
  [![License](https://img.shields.io/badge/License-Apache%202.0-0530AD.svg)](https://opensource.org/licenses/Apache-2.0)
43
46
  ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pixeltable?logo=python&logoColor=white&)
44
47
  ![Platform Support](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-E5DDD4)
45
48
  <br>
46
49
  [![tests status](https://github.com/pixeltable/pixeltable/actions/workflows/pytest.yml/badge.svg)](https://github.com/pixeltable/pixeltable/actions/workflows/pytest.yml)
47
50
  [![tests status](https://github.com/pixeltable/pixeltable/actions/workflows/nightly.yml/badge.svg)](https://github.com/pixeltable/pixeltable/actions/workflows/nightly.yml)
51
+ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fpixeltable%2Fpixeltable.svg?type=shield&issueType=security)](https://app.fossa.com/projects/git%2Bgithub.com%2Fpixeltable%2Fpixeltable?ref=badge_shield&issueType=security)
48
52
  [![PyPI Package](https://img.shields.io/pypi/v/pixeltable?color=4D148C)](https://pypi.org/project/pixeltable/)
49
- <a target="_blank" href="https://huggingface.co/Pixeltable"> <img src="https://img.shields.io/badge/🤗-HF Space-F25022" alt="Visit our Hugging Face space"/></a>
50
-
51
- [Installation](https://pixeltable.github.io/pixeltable/getting-started/) | [Documentation](https://pixeltable.readme.io/) | [API Reference](https://pixeltable.github.io/pixeltable/) | [Code Samples](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#-code-samples) | [Computer Vision](https://docs.pixeltable.com/docs/object-detection-in-videos) | [LLM](https://docs.pixeltable.com/docs/document-indexing-and-rag)
53
+ <a target="_blank" href="https://huggingface.co/Pixeltable">
54
+ <img src="https://img.shields.io/badge/🤗-HF Space-FF7D04" alt="Visit our Hugging Face space"/>
55
+ </a>
56
+
57
+ [Installation](https://docs.pixeltable.com/docs/installation) |
58
+ [Documentation](https://pixeltable.readme.io/) |
59
+ [API Reference](https://pixeltable.github.io/pixeltable/) |
60
+ [Code Samples](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#-code-samples) |
61
+ [Computer Vision](https://docs.pixeltable.com/docs/object-detection-in-videos) |
62
+ [LLM](https://docs.pixeltable.com/docs/document-indexing-and-rag)
52
63
  </div>
53
64
 
54
- Pixeltable is a Python library providing a declarative interface for multimodal data (text, images, audio, video). It features built-in versioning, lineage tracking, and incremental updates, enabling users to **store**, **transform**, **index**, and **iterate** on data for their ML workflows.
65
+ Pixeltable is a Python library providing a declarative interface for multimodal data (text, images, audio, video).
66
+ It features built-in versioning, lineage tracking, and incremental updates, enabling users to **store**, **transform**,
67
+ **index**, and **iterate** on data for their ML workflows.
55
68
 
56
69
  Data transformations, model inference, and custom logic are embedded as **computed columns**.
57
- - **Load/Query all data types**: Interact with [video data](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#import-media-data-into-pixeltable-videos-images-audio) at the [frame level](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#text-and-image-similarity-search-on-video-frames-with-embedding-indexes) 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)
58
- - **Incremental updates for data transformation**: Maintain an [embedding index](https://docs.pixeltable.com/docs/embedding-vector-indexes) colocated with your data
59
- - **Lazy evaluation and cache management**: Eliminates the need for [manual frame extraction](https://docs.pixeltable.com/docs/object-detection-in-videos)
60
- - **Integrates with any Python libraries**: Use [built-in and custom functions (UDFs)](https://docs.pixeltable.com/docs/user-defined-functions-udfs) without complex pipelines
61
- - **Data format agnostic and extensibility**: Access tables as Parquet files, [PyTorch datasets](https://pixeltable.github.io/pixeltable/api/data-frame/#pixeltable.DataFrame.to_pytorch_dataset), or [COCO annotations](https://pixeltable.github.io/pixeltable/api/table/#pixeltable.Table.to_coco_dataset)
70
+
71
+ - **Load/Query all data types**: Interact with
72
+ [video data](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#import-media-data-into-pixeltable-videos-images-audio)
73
+ at the [frame level](https://github.com/pixeltable/pixeltable?tab=readme-ov-file#text-and-image-similarity-search-on-video-frames-with-embedding-indexes)
74
+ 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)
75
+ - **Incremental updates for data transformation**: Maintain an
76
+ [embedding index](https://docs.pixeltable.com/docs/embedding-vector-indexes) colocated with your data
77
+ - **Lazy evaluation and cache management**: Eliminates the need for
78
+ [manual frame extraction](https://docs.pixeltable.com/docs/object-detection-in-videos)
79
+ - **Integrates with any Python libraries**: Use
80
+ [built-in and custom functions (UDFs)](https://docs.pixeltable.com/docs/user-defined-functions-udfs)
81
+ without complex pipelines
82
+ - **Data format agnostic and extensibility**: Access tables as Parquet files,
83
+ [PyTorch datasets](https://pixeltable.github.io/pixeltable/api/data-frame/#pixeltable.DataFrame.to_pytorch_dataset),
84
+ or [COCO annotations](https://pixeltable.github.io/pixeltable/api/table/#pixeltable.Table.to_coco_dataset)
62
85
 
63
86
  ## 💾 Installation
64
87
 
65
88
  ```python
66
89
  pip install pixeltable
67
90
  ```
91
+
68
92
  **Pixeltable is persistent. Unlike in-memory Python libraries such as Pandas, Pixeltable is a database.**
69
93
 
70
94
  ## 💡 Getting Started
95
+
71
96
  Learn how to create tables, populate them with data, and enhance them with built-in or user-defined transformations.
72
97
 
73
98
  | Topic | Notebook | Topic | Notebook |
74
99
  |:----------|:-----------------|:-------------------------|:---------------------------------:|
75
- | 10-Minute Tour of Pixeltable | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/tutorials/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/release/fundamentals/tables-and-data-operations.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a>
76
- | User-Defined Functions (UDFs) | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/howto/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/release/tutorials/object-detection-in-videos.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a>
77
- | Experimenting with Chunking (RAG) | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/tutorials/rag-operations.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> | Working with External Files | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/howto/working-with-external-files.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a>
78
- | Integrating with Label Studio | <a target="_blank" href="https://pixeltable.readme.io/docs/label-studio"> <img src="https://img.shields.io/badge/Docs-Label Studio-blue" alt="Visit our documentation"/></a> | Audio/Video Transcript Indexing | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/tutorials/audio-transcriptions.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a>
100
+ | 10-Minute Tour of Pixeltable | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/tutorials/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/release/fundamentals/tables-and-data-operations.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
101
+ | User-Defined Functions (UDFs) | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/howto/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/release/tutorials/object-detection-in-videos.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
102
+ | 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/release/howto/working-with-external-files.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
103
+ | 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/release/tutorials/audio-transcriptions.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
104
+ | Multimodal Application | <a target="_blank" href="https://huggingface.co/spaces/Pixeltable/Multimodal-Powerhouse"> <img src="https://img.shields.io/badge/Hugging Face-FF7D04" alt="Visit our documentation"/></a> | Document Indexing and RAG | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/tutorials/rag-demo.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> |
79
105
 
80
106
  ## 🧱 Code Samples
81
107
 
82
108
  ### Import media data into Pixeltable (videos, images, audio...)
109
+
83
110
  ```python
84
111
  import pixeltable as pxt
85
112
 
86
- v = pxt.create_table('external_data.videos', {'video': pxt.VideoType()})
113
+ v = pxt.create_table('external_data.videos', {'video': pxt.Video})
87
114
 
88
115
  prefix = 's3://multimedia-commons/'
89
116
  paths = [
@@ -93,15 +120,17 @@ paths = [
93
120
  ]
94
121
  v.insert({'video': prefix + p} for p in paths)
95
122
  ```
123
+
96
124
  Learn how to [work with data in Pixeltable](https://pixeltable.readme.io/docs/working-with-external-files).
97
125
 
98
126
  ### Object detection in images using DETR model
127
+
99
128
  ```python
100
129
  import pixeltable as pxt
101
130
  from pixeltable.functions import huggingface
102
131
 
103
132
  # Create a table to store data persistently
104
- t = pxt.create_table('image', {'image': pxt.ImageType()})
133
+ t = pxt.create_table('image', {'image': pxt.Image})
105
134
 
106
135
  # Insert some images
107
136
  prefix = 'https://upload.wikimedia.org/wikipedia/commons'
@@ -113,18 +142,22 @@ paths = [
113
142
  t.insert({'image': prefix + p} for p in paths)
114
143
 
115
144
  # Add a computed column for image classification
116
- t['classification'] = huggingface.detr_for_object_detection(
117
- (t.image), model_id='facebook/detr-resnet-50'
118
- )
145
+ t.add_computed_column(classification=huggingface.detr_for_object_detection(
146
+ t.image,
147
+ model_id='facebook/detr-resnet-50'
148
+ ))
119
149
 
120
150
  # Retrieve the rows where cats have been identified
121
151
  t.select(animal = t.image,
122
152
  classification = t.classification.label_text[0]) \
123
153
  .where(t.classification.label_text[0]=='cat').head()
124
154
  ```
125
- Learn about computed columns and object detection: [Comparing object detection models](https://pixeltable.readme.io/docs/object-detection-in-videos).
155
+
156
+ Learn about computed columns and object detection:
157
+ [Comparing object detection models](https://pixeltable.readme.io/docs/object-detection-in-videos).
126
158
 
127
159
  ### Extend Pixeltable's capabilities with user-defined functions
160
+
128
161
  ```python
129
162
  @pxt.udf
130
163
  def draw_boxes(img: PIL.Image.Image, boxes: list[list[float]]) -> PIL.Image.Image:
@@ -134,9 +167,12 @@ def draw_boxes(img: PIL.Image.Image, boxes: list[list[float]]) -> PIL.Image.Imag
134
167
  d.rectangle(box, width=3) # Draw bounding box rectangles on the copied image
135
168
  return result
136
169
  ```
137
- Learn more about user-defined functions: [UDFs in Pixeltable](https://pixeltable.readme.io/docs/user-defined-functions-udfs).
170
+
171
+ Learn more about user-defined functions:
172
+ [UDFs in Pixeltable](https://pixeltable.readme.io/docs/user-defined-functions-udfs).
138
173
 
139
174
  ### Automate data operations with views, e.g., split documents into chunks
175
+
140
176
  ```python
141
177
  # In this example, the view is defined by iteration over the chunks of a DocumentSplitter
142
178
  chunks_table = pxt.create_view(
@@ -147,36 +183,45 @@ chunks_table = pxt.create_view(
147
183
  separators='token_limit', limit=300)
148
184
  )
149
185
  ```
150
- Learn how to leverage views to build your [RAG workflow](https://pixeltable.readme.io/docs/document-indexing-and-rag).
186
+
187
+ Learn how to leverage views to build your
188
+ [RAG workflow](https://pixeltable.readme.io/docs/document-indexing-and-rag).
151
189
 
152
190
  ### Evaluate model performance
191
+
153
192
  ```python
154
193
  # The computation of the mAP metric can become a query over the evaluation output
155
194
  frames_view.select(mean_ap(frames_view.eval_yolox_tiny), mean_ap(frames_view.eval_yolox_m)).show()
156
195
  ```
196
+
157
197
  Learn how to leverage Pixeltable for [Model analytics](https://pixeltable.readme.io/docs/object-detection-in-videos).
158
198
 
159
199
  ### Working with inference services
200
+
160
201
  ```python
161
- chat_table = pxt.create_table('together_demo.chat', {'input': pxt.StringType()})
202
+ chat_table = pxt.create_table('together_demo.chat', {'input': pxt.String})
162
203
 
163
204
  # The chat-completions API expects JSON-formatted input:
164
205
  messages = [{'role': 'user', 'content': chat_table.input}]
165
206
 
166
207
  # This example shows how additional parameters from the Together API can be used in Pixeltable
167
- chat_table['output'] = chat_completions(
168
- messages=messages,
169
- model='mistralai/Mixtral-8x7B-Instruct-v0.1',
170
- max_tokens=300,
171
- stop=['\n'],
172
- temperature=0.7,
173
- top_p=0.9,
174
- top_k=40,
175
- repetition_penalty=1.1,
176
- logprobs=1,
177
- echo=True
208
+ chat_table.add_computed_column(
209
+ output=chat_completions(
210
+ messages=messages,
211
+ model='mistralai/Mixtral-8x7B-Instruct-v0.1',
212
+ max_tokens=300,
213
+ stop=['\n'],
214
+ temperature=0.7,
215
+ top_p=0.9,
216
+ top_k=40,
217
+ repetition_penalty=1.1,
218
+ logprobs=1,
219
+ echo=True
220
+ )
221
+ )
222
+ chat_table.add_computed_column(
223
+ response=chat_table.output.choices[0].message.content
178
224
  )
179
- chat_table['response'] = chat_table.output.choices[0].message.content
180
225
 
181
226
  # Start a conversation
182
227
  chat_table.insert([
@@ -185,16 +230,18 @@ chat_table.insert([
185
230
  ])
186
231
  chat_table.select(chat_table.input, chat_table.response).head()
187
232
  ```
233
+
188
234
  Learn how to interact with inference services such as [Together AI](https://pixeltable.readme.io/docs/together-ai) in Pixeltable.
189
235
 
190
236
  ### Text and image similarity search on video frames with embedding indexes
237
+
191
238
  ```python
192
239
  import pixeltable as pxt
193
240
  from pixeltable.functions.huggingface import clip_image, clip_text
194
241
  from pixeltable.iterators import FrameIterator
195
242
  import PIL.Image
196
243
 
197
- video_table = pxt.create_table('videos', {'video': pxt.VideoType()})
244
+ video_table = pxt.create_table('videos', {'video': pxt.Video})
198
245
 
199
246
  video_table.insert([{'video': '/video.mp4'}])
200
247
 
@@ -221,19 +268,55 @@ frames_view.order_by(sim, asc=False).limit(5).select(frames_view.frame, sim=sim)
221
268
  sample_text = 'red truck'
222
269
  sim = frames_view.frame.similarity(sample_text)
223
270
  frames_view.order_by(sim, asc=False).limit(5).select(frames_view.frame, sim=sim).collect()
224
-
225
271
  ```
272
+
226
273
  Learn how to work with [Embedding and Vector Indexes](https://docs.pixeltable.com/docs/embedding-vector-indexes).
227
274
 
275
+ ## 🔄 AI Stack Comparison
276
+
277
+ ### 🎯 Computer Vision Workflows
278
+
279
+ | Requirement | Traditional | Pixeltable |
280
+ |-------------|---------------------|------------|
281
+ | Frame Extraction | ffmpeg + custom code | Automatic via FrameIterator |
282
+ | Object Detection | Multiple scripts + caching | Single computed column |
283
+ | Video Indexing | Custom pipelines + Vector DB | Native similarity search |
284
+ | Annotation Management | Separate tools + custom code | Label Studio integration |
285
+ | Model Evaluation | Custom metrics pipeline | Built-in mAP computation |
286
+
287
+ ### 🤖 LLM Workflows
288
+
289
+ | Requirement | Traditional | Pixeltable |
290
+ |-------------|---------------------|------------|
291
+ | Document Chunking | Tool + custom code | Native DocumentSplitter |
292
+ | Embedding Generation | Separate pipeline + caching | Computed columns |
293
+ | Vector Search | External vector DB | Built-in vector indexing |
294
+ | Prompt Management | Custom tracking solution | Version-controlled columns |
295
+ | Chain Management | Tool + custom code | Computed column DAGs |
296
+
297
+ ### 🎨 Multimodal Workflows
298
+
299
+ | Requirement | Traditional | Pixeltable |
300
+ |-------------|---------------------|------------|
301
+ | Data Types | Multiple storage systems | Unified table interface |
302
+ | Cross-Modal Search | Complex integration | Native similarity support |
303
+ | Pipeline Orchestration | Multiple tools (Airflow, etc.) | Single declarative interface |
304
+ | Asset Management | Custom tracking system | Automatic lineage |
305
+ | Quality Control | Multiple validation tools | Computed validation columns |
306
+
228
307
  ## ❓ FAQ
229
308
 
230
309
  ### What is Pixeltable?
231
310
 
232
- Pixeltable unifies data storage, versioning, and indexing with orchestration and model versioning under a declarative table interface, with transformations, model inference, and custom logic represented as computed columns.
311
+ Pixeltable unifies data storage, versioning, and indexing with orchestration and model versioning under a declarative
312
+ table interface, with transformations, model inference, and custom logic represented as computed columns.
233
313
 
234
314
  ### What problems does Pixeltable solve?
235
315
 
236
- Today's solutions for AI app development require extensive custom coding and infrastructure plumbing. Tracking lineage and versions between and across data transformations, models, and deployments is cumbersome. Pixeltable lets ML Engineers and Data Scientists focus on exploration, modeling, and app development without dealing with the customary data plumbing.
316
+ Today's solutions for AI app development require extensive custom coding and infrastructure plumbing.
317
+ Tracking lineage and versions between and across data transformations, models, and deployments is cumbersome.
318
+ Pixeltable lets ML Engineers and Data Scientists focus on exploration, modeling, and app development without
319
+ dealing with the customary data plumbing.
237
320
 
238
321
  ### What does Pixeltable provide me with? Pixeltable provides:
239
322
 
@@ -254,22 +337,48 @@ Today's solutions for AI app development require extensive custom coding and inf
254
337
  - You never need to re-run pipelines from scratch because you’re adding data
255
338
  - **It integrates with any existing Python code or libraries**
256
339
  - Bring your ever-changing code and workloads
257
- - You choose the models, tools, and AI practices (e.g., your embedding model for a vector index); Pixeltable orchestrates the data
340
+ - You choose the models, tools, and AI practices (e.g., your embedding model for a vector index);
341
+ Pixeltable orchestrates the data
258
342
 
259
343
  ### What is Pixeltable not providing?
260
344
 
261
- - Pixeltable is not a low-code, prescriptive AI solution. We empower you to use the best frameworks and techniques for your specific needs.
262
- - We do not aim to replace your existing AI toolkit, but rather enhance it by streamlining the underlying data infrastructure and orchestration.
345
+ - Pixeltable is not a low-code, prescriptive AI solution. We empower you to use the best frameworks and techniques for
346
+ your specific needs.
347
+ - We do not aim to replace your existing AI toolkit, but rather enhance it by streamlining the underlying data
348
+ infrastructure and orchestration.
263
349
 
264
350
  > [!TIP]
265
- > Check out the [Integrations](https://pixeltable.readme.io/docs/working-with-openai) section, and feel free to submit a request for additional ones.
351
+ > Check out the [Integrations](https://pixeltable.readme.io/docs/working-with-openai) section, and feel free to submit
352
+ > a request for additional ones.
353
+
354
+ ## 🤝 Contributing to Pixeltable
355
+
356
+ We're excited to welcome contributions from the community! Here's how you can get involved:
357
+
358
+ ### 🐛 Report Issues
359
+
360
+ - Found a bug? [Open an issue](https://github.com/pixeltable/pixeltable/issues)
361
+ - Include steps to reproduce and environment details
362
+
363
+ ### 💡 Submit Changes
364
+
365
+ - Fork the repository
366
+ - Create a feature branch
367
+ - Submit a [pull request](https://github.com/pixeltable/pixeltable/pulls)
368
+ - See our [Contributing Guide](CONTRIBUTING.md) for detailed instructions
369
+
370
+ ### 💬 Join the Discussion
371
+
372
+ - Have questions? Start a [Discussion](https://github.com/pixeltable/pixeltable/discussions)
373
+ - Share your Pixeltable projects and use cases
374
+ - Help others in the community
266
375
 
267
- ## 🐛 Contributions & Feedback
376
+ ### 📝 Improve Documentation
268
377
 
269
- Are you experiencing issues or bugs with Pixeltable? File an [Issue](https://github.com/pixeltable/pixeltable/issues).
270
- </br>Do you want to contribute? Feel free to open a [PR](https://github.com/pixeltable/pixeltable/pulls).
378
+ - Suggest examples and tutorials
379
+ - Propose improvements
271
380
 
272
- ## :classical_building: License
381
+ ## 🏢 License
273
382
 
274
383
  This library is licensed under the Apache 2.0 License.
275
384