pixeltable 0.3.10__py3-none-any.whl → 0.3.11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pixeltable might be problematic. Click here for more details.

Files changed (106) hide show
  1. pixeltable/__init__.py +1 -1
  2. pixeltable/__version__.py +2 -2
  3. pixeltable/catalog/__init__.py +2 -1
  4. pixeltable/catalog/catalog.py +63 -36
  5. pixeltable/catalog/column.py +6 -4
  6. pixeltable/catalog/dir.py +5 -5
  7. pixeltable/catalog/globals.py +12 -14
  8. pixeltable/catalog/insertable_table.py +4 -7
  9. pixeltable/catalog/path.py +2 -2
  10. pixeltable/catalog/table.py +64 -56
  11. pixeltable/catalog/table_version.py +42 -40
  12. pixeltable/catalog/table_version_handle.py +3 -0
  13. pixeltable/catalog/table_version_path.py +1 -1
  14. pixeltable/catalog/view.py +8 -7
  15. pixeltable/dataframe.py +5 -3
  16. pixeltable/env.py +108 -42
  17. pixeltable/exec/__init__.py +2 -0
  18. pixeltable/exec/aggregation_node.py +6 -8
  19. pixeltable/exec/cache_prefetch_node.py +4 -7
  20. pixeltable/exec/component_iteration_node.py +1 -3
  21. pixeltable/exec/data_row_batch.py +1 -2
  22. pixeltable/exec/exec_context.py +1 -1
  23. pixeltable/exec/exec_node.py +1 -2
  24. pixeltable/exec/expr_eval/__init__.py +2 -0
  25. pixeltable/exec/expr_eval/evaluators.py +137 -20
  26. pixeltable/exec/expr_eval/expr_eval_node.py +43 -64
  27. pixeltable/exec/expr_eval/globals.py +68 -7
  28. pixeltable/exec/expr_eval/schedulers.py +25 -23
  29. pixeltable/exec/in_memory_data_node.py +8 -6
  30. pixeltable/exec/row_update_node.py +3 -4
  31. pixeltable/exec/sql_node.py +16 -17
  32. pixeltable/exprs/__init__.py +1 -1
  33. pixeltable/exprs/column_property_ref.py +1 -1
  34. pixeltable/exprs/column_ref.py +3 -3
  35. pixeltable/exprs/compound_predicate.py +1 -1
  36. pixeltable/exprs/data_row.py +17 -1
  37. pixeltable/exprs/expr.py +12 -12
  38. pixeltable/exprs/function_call.py +34 -2
  39. pixeltable/exprs/json_mapper.py +95 -48
  40. pixeltable/exprs/json_path.py +3 -4
  41. pixeltable/exprs/method_ref.py +2 -2
  42. pixeltable/exprs/object_ref.py +2 -2
  43. pixeltable/exprs/row_builder.py +33 -6
  44. pixeltable/exprs/similarity_expr.py +1 -1
  45. pixeltable/exprs/sql_element_cache.py +1 -1
  46. pixeltable/exprs/string_op.py +2 -2
  47. pixeltable/ext/__init__.py +1 -1
  48. pixeltable/ext/functions/__init__.py +1 -1
  49. pixeltable/ext/functions/whisperx.py +1 -1
  50. pixeltable/ext/functions/yolox.py +1 -1
  51. pixeltable/func/aggregate_function.py +1 -1
  52. pixeltable/func/callable_function.py +2 -5
  53. pixeltable/func/expr_template_function.py +22 -2
  54. pixeltable/func/function.py +4 -5
  55. pixeltable/func/function_registry.py +1 -1
  56. pixeltable/func/signature.py +1 -1
  57. pixeltable/func/udf.py +2 -2
  58. pixeltable/functions/__init__.py +1 -1
  59. pixeltable/functions/anthropic.py +2 -2
  60. pixeltable/functions/audio.py +1 -1
  61. pixeltable/functions/deepseek.py +1 -1
  62. pixeltable/functions/fireworks.py +1 -1
  63. pixeltable/functions/globals.py +6 -6
  64. pixeltable/functions/huggingface.py +1 -1
  65. pixeltable/functions/image.py +1 -1
  66. pixeltable/functions/json.py +1 -1
  67. pixeltable/functions/llama_cpp.py +1 -1
  68. pixeltable/functions/math.py +1 -1
  69. pixeltable/functions/mistralai.py +1 -1
  70. pixeltable/functions/ollama.py +1 -1
  71. pixeltable/functions/openai.py +2 -2
  72. pixeltable/functions/replicate.py +1 -1
  73. pixeltable/functions/string.py +1 -1
  74. pixeltable/functions/timestamp.py +1 -1
  75. pixeltable/functions/together.py +1 -1
  76. pixeltable/functions/util.py +1 -1
  77. pixeltable/functions/video.py +2 -2
  78. pixeltable/functions/vision.py +2 -2
  79. pixeltable/index/embedding_index.py +12 -1
  80. pixeltable/io/__init__.py +5 -3
  81. pixeltable/io/fiftyone.py +6 -7
  82. pixeltable/io/label_studio.py +21 -20
  83. pixeltable/io/pandas.py +6 -5
  84. pixeltable/iterators/__init__.py +1 -1
  85. pixeltable/metadata/__init__.py +5 -3
  86. pixeltable/metadata/converters/convert_24.py +3 -3
  87. pixeltable/metadata/converters/convert_25.py +1 -1
  88. pixeltable/metadata/converters/convert_29.py +1 -1
  89. pixeltable/store.py +2 -2
  90. pixeltable/type_system.py +19 -7
  91. pixeltable/utils/console_output.py +3 -2
  92. pixeltable/utils/coroutine.py +3 -3
  93. pixeltable/utils/dbms.py +66 -0
  94. pixeltable/utils/documents.py +61 -67
  95. pixeltable/utils/filecache.py +1 -1
  96. pixeltable/utils/http_server.py +3 -2
  97. pixeltable/utils/pytorch.py +1 -1
  98. pixeltable/utils/sql.py +1 -1
  99. pixeltable-0.3.11.dist-info/METADATA +436 -0
  100. pixeltable-0.3.11.dist-info/RECORD +179 -0
  101. pixeltable/catalog/path_dict.py +0 -169
  102. pixeltable-0.3.10.dist-info/METADATA +0 -382
  103. pixeltable-0.3.10.dist-info/RECORD +0 -179
  104. {pixeltable-0.3.10.dist-info → pixeltable-0.3.11.dist-info}/LICENSE +0 -0
  105. {pixeltable-0.3.10.dist-info → pixeltable-0.3.11.dist-info}/WHEEL +0 -0
  106. {pixeltable-0.3.10.dist-info → pixeltable-0.3.11.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,436 @@
1
+ Metadata-Version: 2.3
2
+ Name: pixeltable
3
+ Version: 0.3.11
4
+ Summary: AI Data Infrastructure: Declarative, Multimodal, and Incremental
5
+ License: Apache-2.0
6
+ Keywords: data-science,machine-learning,database,ai,computer-vision,chatbot,ml,artificial-intelligence,feature-engineering,multimodal,mlops,feature-store,vector-database,llm,genai
7
+ Author: Pixeltable, Inc.
8
+ Author-email: contact@pixeltable.com>
9
+ Requires-Python: >=3.9,<4.0
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: Intended Audience :: Science/Research
12
+ Classifier: License :: OSI Approved :: Apache Software License
13
+ Classifier: Operating System :: MacOS
14
+ Classifier: Operating System :: Microsoft :: Windows
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Database
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Requires-Dist: av (>=10.0.0)
25
+ Requires-Dist: beautifulsoup4 (>=4.0.0)
26
+ Requires-Dist: cloudpickle (>=2.2.1)
27
+ Requires-Dist: ftfy (>=6.2.0)
28
+ Requires-Dist: httpcore (>=1.0.3)
29
+ Requires-Dist: httpx (>=0.27)
30
+ Requires-Dist: jinja2 (>=3.1.3)
31
+ Requires-Dist: jmespath (>=1.0.1)
32
+ Requires-Dist: jsonschema (>=4.1.0)
33
+ Requires-Dist: lxml (>=5.0)
34
+ Requires-Dist: more-itertools (>=10.2)
35
+ Requires-Dist: nest_asyncio (>=1.5)
36
+ Requires-Dist: numpy (>=1.25)
37
+ Requires-Dist: pandas (>=2.0,<3.0)
38
+ Requires-Dist: pgvector (>=0.2.1)
39
+ Requires-Dist: pillow (>=9.3.0)
40
+ Requires-Dist: pixeltable-pgserver (==0.3.1)
41
+ Requires-Dist: psutil (>=5.9.5)
42
+ Requires-Dist: psycopg[binary] (>=3.1.18)
43
+ Requires-Dist: puremagic (>=1.20)
44
+ Requires-Dist: pyarrow (>=13.0.0)
45
+ Requires-Dist: pydantic (>=2.7.4)
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
+ Requires-Dist: toml (>=0.10)
53
+ Requires-Dist: tqdm (>=4.64)
54
+ Project-URL: Documentation, https://docs.pixeltable.com/
55
+ Project-URL: Homepage, https://pixeltable.com/
56
+ Project-URL: Repository, https://github.com/pixeltable/pixeltable
57
+ Description-Content-Type: text/markdown
58
+
59
+ <div align="center">
60
+ <img src="https://raw.githubusercontent.com/pixeltable/pixeltable/main/docs/resources/pixeltable-logo-large.png"
61
+ alt="Pixeltable Logo" width="50%" />
62
+ <br></br>
63
+
64
+ <h2>Declarative Data Infrastructure for Multimodal AI Apps</h2>
65
+
66
+ [![License](https://img.shields.io/badge/License-Apache%202.0-0530AD.svg)](https://opensource.org/licenses/Apache-2.0)
67
+ ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pixeltable?logo=python&logoColor=white&)
68
+ ![Platform Support](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-E5DDD4)
69
+ <br>
70
+ [![tests status](https://github.com/pixeltable/pixeltable/actions/workflows/pytest.yml/badge.svg)](https://github.com/pixeltable/pixeltable/actions/workflows/pytest.yml)
71
+ [![tests status](https://github.com/pixeltable/pixeltable/actions/workflows/nightly.yml/badge.svg)](https://github.com/pixeltable/pixeltable/actions/workflows/nightly.yml)
72
+ [![PyPI Package](https://img.shields.io/pypi/v/pixeltable?color=4D148C)](https://pypi.org/project/pixeltable/)
73
+ [![My Discord (1306431018890166272)](https://img.shields.io/badge/💬-Discord-%235865F2.svg)](https://discord.gg/QPyqFYx2UN)
74
+
75
+ [**Installation**](https://docs.pixeltable.com/docs/overview/installation) |
76
+ [**Quick Start**](https://docs.pixeltable.com/docs/overview/quick-start) |
77
+ [**Documentation**](https://docs.pixeltable.com/) |
78
+ [**API Reference**](https://pixeltable.github.io/pixeltable/) |
79
+ [**Examples**](https://docs.pixeltable.com/docs/examples/use-cases) |
80
+ [**Discord Community**](https://discord.gg/QPyqFYx2UN)
81
+
82
+ </div>
83
+
84
+ ---
85
+
86
+ Pixeltable is the only Python framework that provides incremental storage, transformation, indexing, and orchestration of your multimodal data.
87
+
88
+ ## 😩 Maintaining Production-Ready Multimodal AI Apps is Still Too Hard
89
+
90
+ Building robust AI applications, especially [multimodal](https://docs.pixeltable.com/docs/datastore/bringing-data) ones, requires stitching together numerous tools:
91
+ * ETL pipelines for data loading and transformation.
92
+ * Vector databases for semantic search.
93
+ * Feature stores for ML models.
94
+ * Orchestrators for scheduling.
95
+ * Model serving infrastructure for inference.
96
+ * Separate systems for parallelization, caching, versioning, and lineage tracking.
97
+
98
+ This complex "data plumbing" slows down development, increases costs, and makes applications brittle and hard to reproduce.
99
+
100
+ ## 💾 Installation
101
+
102
+ ```python
103
+ pip install pixeltable
104
+ ```
105
+
106
+ **Pixeltable is a database.** It stores metadata and computed results persistently, typically in a `.pixeltable` directory in your workspace. See [configuration](https://docs.pixeltable.com/docs/overview/configuration) options for your setup.
107
+
108
+ ## ✨ What is Pixeltable?
109
+
110
+ With Pixeltable, you define your *entire* data processing and AI workflow declaratively using **[computed columns](https://docs.pixeltable.com/docs/datastore/computed-columns)** on **[tables](https://docs.pixeltable.com/docs/datastore/tables-and-operations)**. Pixeltable's engine then automatically handles:
111
+
112
+ * **Data Ingestion & Storage:** References [files](https://docs.pixeltable.com/docs/datastore/bringing-data) (images, videos, audio, docs) in place, handles structured data.
113
+ * **Transformation & Processing:** Applies *any* Python function ([UDFs](https://docs.pixeltable.com/docs/datastore/custom-functions)) or built-in operations ([chunking, frame extraction](https://docs.pixeltable.com/docs/datastore/iterators)) automatically.
114
+ * **AI Model Integration:** Runs inference ([embeddings](https://docs.pixeltable.com/docs/datastore/embedding-index), [object detection](https://docs.pixeltable.com/docs/examples/vision/yolox), [LLMs](https://docs.pixeltable.com/docs/integrations/frameworks#cloud-llm-providers)) as part of the data pipeline.
115
+ * **Indexing & Retrieval:** Creates and manages vector indexes for fast [semantic search](https://docs.pixeltable.com/docs/datastore/embedding-index#phase-3%3A-query) alongside traditional filtering.
116
+ * **Incremental Computation:** Only [recomputes](https://docs.pixeltable.com/docs/overview/quick-start) what's necessary when data or code changes, saving time and cost.
117
+ * **Versioning & Lineage:** Automatically tracks data and schema changes for reproducibility.
118
+
119
+ **Focus on your application logic, not the infrastructure.**
120
+
121
+
122
+ ## 🚀 Key Features
123
+
124
+ * **[Unified Multimodal Interface:](https://docs.pixeltable.com/docs/datastore/tables-and-operations)** `pxt.Image`, `pxt.Video`, `pxt.Audio`, `pxt.Document`, etc. – manage diverse data consistently.
125
+ ```python
126
+ t = pxt.create_table(
127
+ 'media',
128
+ {
129
+ 'img': pxt.Image,
130
+ 'video': pxt.Video
131
+ }
132
+ )
133
+ ```
134
+
135
+ * **[Declarative Computed Columns:](https://docs.pixeltable.com/docs/datastore/computed-columns)** Define processing steps once; they run automatically on new/updated data.
136
+ ```python
137
+ t.add_computed_column(
138
+ classification=huggingface.vit_for_image_classification(
139
+ t.image
140
+ )
141
+ )
142
+ ```
143
+
144
+ * **[Built-in Vector Search:](https://docs.pixeltable.com/docs/datastore/embedding-index)** Add embedding indexes and perform similarity searches directly on tables/views.
145
+ ```python
146
+ t.add_embedding_index(
147
+ 'img',
148
+ embedding=clip.using(
149
+ model_id='openai/clip-vit-base-patch32'
150
+ )
151
+ )
152
+
153
+ sim = t.img.similarity("cat playing with yarn")
154
+ ```
155
+
156
+ * **[On-the-Fly Data Views:](https://docs.pixeltable.com/docs/datastore/views)** Create virtual tables using iterators for efficient processing without data duplication.
157
+ ```python
158
+ frames = pxt.create_view(
159
+ 'frames',
160
+ videos,
161
+ iterator=FrameIterator.create(
162
+ video=videos.video,
163
+ fps=1
164
+ )
165
+ )
166
+ ```
167
+
168
+ * **[Seamless AI Integration:](https://docs.pixeltable.com/docs/integrations/frameworks)** Built-in functions for OpenAI, Anthropic, Hugging Face, CLIP, YOLOX, and more.
169
+ ```python
170
+ t.add_computed_column(
171
+ response=openai.chat_completions(
172
+ messages=[{"role": "user", "content": t.prompt}]
173
+ )
174
+ )
175
+ ```
176
+
177
+ * **[Bring Your Own Code:](https://docs.pixeltable.com/docs/datastore/custom-functions)** Extend Pixeltable with simple Python User-Defined Functions.
178
+ ```python
179
+ @pxt.udf
180
+ def format_prompt(context: list, question: str) -> str:
181
+ return f"Context: {context}\nQuestion: {question}"
182
+ ```
183
+
184
+ * **[Agentic Workflows / Tool Calling:](https://docs.pixeltable.com/docs/examples/chat/tools)** Register `@pxt.udf` or `@pxt.query` functions as tools and orchestrate LLM-based tool use (incl. multimodal).
185
+ ```python
186
+ # Example tools: a UDF and a Query function for RAG
187
+ tools = pxt.tools(get_weather_udf, search_context_query)
188
+
189
+ # LLM decides which tool to call; Pixeltable executes it
190
+ t.add_computed_column(
191
+ tool_output=invoke_tools(tools, t.llm_tool_choice)
192
+ )
193
+ ```
194
+
195
+ * **[Persistent & Versioned:](https://docs.pixeltable.com/docs/datastore/tables-and-operations#data-operations)** All data, metadata, and computed results are automatically stored.
196
+ ```python
197
+ t.revert() # Revert to a previous version
198
+ stored_table = pxt.get_table('my_existing_table') # Retrieve persisted table
199
+ ```
200
+
201
+ * **[SQL-like Python Querying:](https://docs.pixeltable.com/docs/datastore/filtering-and-selecting)** Familiar syntax combined with powerful AI capabilities.
202
+ ```python
203
+ results = (
204
+ t.where(t.score > 0.8)
205
+ .order_by(t.timestamp)
206
+ .select(t.image, score=t.score)
207
+ .limit(10)
208
+ .collect()
209
+ )
210
+ ```
211
+
212
+ ## 💡 Key Examples
213
+
214
+ *(See the [Full Quick Start](https://docs.pixeltable.com/docs/overview/quick-start) or [Notebook Gallery](#-notebook-gallery) for more details)*
215
+
216
+ **1. Multimodal Data Store and Data Transformation (Computed Column):**
217
+ ```bash
218
+ pip install pixeltable
219
+ ```
220
+
221
+ ```python
222
+ import pixeltable as pxt
223
+
224
+ # Create a table
225
+ t = pxt.create_table(
226
+ 'films',
227
+ {'name': pxt.String, 'revenue': pxt.Float, 'budget': pxt.Float},
228
+ if_exists="replace"
229
+ )
230
+
231
+ t.insert([
232
+ {'name': 'Inside Out', 'revenue': 800.5, 'budget': 200.0},
233
+ {'name': 'Toy Story', 'revenue': 1073.4, 'budget': 200.0}
234
+ ])
235
+
236
+ # Add a computed column for profit - runs automatically!
237
+ t.add_computed_column(profit=(t.revenue - t.budget), if_exists="replace")
238
+
239
+ # Query the results
240
+ print(t.select(t.name, t.profit).collect())
241
+ # Output includes the automatically computed 'profit' column
242
+ ```
243
+
244
+ **2. Object Detection with [YOLOX](https://github.com/pixeltable/pixeltable-yolox):**
245
+
246
+ ```bash
247
+ pip install pixeltable pixeltable-yolox
248
+ ```
249
+
250
+ ```python
251
+ import PIL
252
+ import pixeltable as pxt
253
+ from yolox.models import Yolox
254
+ from yolox.data.datasets import COCO_CLASSES
255
+
256
+ t = pxt.create_table('image', {'image': pxt.Image}, if_exists='replace')
257
+
258
+ # Insert some images
259
+ prefix = 'https://upload.wikimedia.org/wikipedia/commons'
260
+ paths = [
261
+ '/1/15/Cat_August_2010-4.jpg',
262
+ '/e/e1/Example_of_a_Dog.jpg',
263
+ '/thumb/b/bf/Bird_Diversity_2013.png/300px-Bird_Diversity_2013.png'
264
+ ]
265
+ t.insert({'image': prefix + p} for p in paths)
266
+
267
+ @pxt.udf
268
+ def detect(image: PIL.Image.Image) -> list[str]:
269
+ model = Yolox.from_pretrained("yolox_s")
270
+ result = model([image])
271
+ coco_labels = [COCO_CLASSES[label] for label in result[0]["labels"]]
272
+ return coco_labels
273
+
274
+ t.add_computed_column(classification=detect(t.image))
275
+
276
+ print(t.select().collect())
277
+ ```
278
+
279
+ **3. Image Similarity Search (CLIP Embedding Index):**
280
+
281
+ ```bash
282
+ pip install pixeltable sentence-transformers
283
+ ```
284
+
285
+ ```python
286
+ import pixeltable as pxt
287
+ from pixeltable.functions.huggingface import clip
288
+
289
+ # Create image table and add sample images
290
+ images = pxt.create_table('my_images', {'img': pxt.Image}, if_exists='replace')
291
+ images.insert([
292
+ {'img': 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/68/Orange_tabby_cat_sitting_on_fallen_leaves-Hisashi-01A.jpg/1920px-Orange_tabby_cat_sitting_on_fallen_leaves-Hisashi-01A.jpg'},
293
+ {'img': 'https://upload.wikimedia.org/wikipedia/commons/d/d5/Retriever_in_water.jpg'}
294
+ ])
295
+
296
+ # Add CLIP embedding index for similarity search
297
+ images.add_embedding_index(
298
+ 'img',
299
+ embedding=clip.using(model_id='openai/clip-vit-base-patch32')
300
+ )
301
+
302
+ # Text-based image search
303
+ query_text = "a dog playing fetch"
304
+ sim_text = images.img.similarity(query_text)
305
+ results_text = images.order_by(sim_text, asc=False).limit(3).select(
306
+ image=images.img, similarity=sim_text
307
+ ).collect()
308
+ print("--- Text Query Results ---")
309
+ print(results_text)
310
+
311
+ # Image-based image search
312
+ query_image_url = 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Huskiesatrest.jpg/2880px-Huskiesatrest.jpg'
313
+ sim_image = images.img.similarity(query_image_url)
314
+ results_image = images.order_by(sim_image, asc=False).limit(3).select(
315
+ image=images.img, similarity=sim_image
316
+ ).collect()
317
+ print("--- Image URL Query Results ---")
318
+ print(results_image)
319
+ ```
320
+
321
+ **4. Multimodal/Incremental RAG Workflow (Document Chunking & LLM Call):**
322
+
323
+ ```bash
324
+ pip install pixeltable openai spacy sentence-transformers
325
+ ```
326
+
327
+ ```bash
328
+ python -m spacy download en_core_web_sm
329
+ ```
330
+
331
+ ```python
332
+ import pixeltable as pxt
333
+ import pixeltable.functions as pxtf
334
+ from pixeltable.functions import openai, huggingface
335
+ from pixeltable.iterators import DocumentSplitter
336
+
337
+ # Manage your tables by directories
338
+ directory = "my_docs"
339
+ pxt.drop_dir(directory, if_not_exists="ignore", force=True)
340
+ pxt.create_dir("my_docs")
341
+
342
+ # Create a document table and add a PDF
343
+ docs = pxt.create_table(f'{directory}.docs', {'doc': pxt.Document})
344
+ docs.insert([{'doc': 'https://github.com/pixeltable/pixeltable/raw/release/docs/resources/rag-demo/Jefferson-Amazon.pdf'}])
345
+
346
+ # Create chunks view with sentence-based splitting
347
+ chunks = pxt.create_view(
348
+ 'doc_chunks',
349
+ docs,
350
+ iterator=DocumentSplitter.create(document=docs.doc, separators='sentence')
351
+ )
352
+
353
+ # Explicitly create the embedding function object
354
+ embed_model = huggingface.sentence_transformer.using(model_id='all-MiniLM-L6-v2')
355
+ # Add embedding index using the function object
356
+ chunks.add_embedding_index('text', string_embed=embed_model)
357
+
358
+ # Define query function for retrieval - Returns a DataFrame expression
359
+ @pxt.query
360
+ def get_relevant_context(query_text: str, limit: int = 3):
361
+ sim = chunks.text.similarity(query_text)
362
+ # Return a list of strings (text of relevant chunks)
363
+ return chunks.order_by(sim, asc=False).limit(limit).select(chunks.text)
364
+
365
+ # Build a simple Q&A table
366
+ qa = pxt.create_table(f'{directory}.qa_system', {'prompt': pxt.String})
367
+
368
+ # 1. Add retrieved context (now a list of strings)
369
+ qa.add_computed_column(context=get_relevant_context(qa.prompt))
370
+
371
+ # 2. Format the prompt with context
372
+ qa.add_computed_column(
373
+ final_prompt=pxtf.string.format(
374
+ """
375
+ PASSAGES:
376
+ {0}
377
+
378
+ QUESTION:
379
+ {1}
380
+ """,
381
+ qa.context,
382
+ qa.prompt
383
+ )
384
+ )
385
+
386
+ # 4. Generate the answer using the well-formatted prompt column
387
+ qa.add_computed_column(
388
+ answer=openai.chat_completions(
389
+ model='gpt-4o-mini',
390
+ messages=[{
391
+ 'role': 'user',
392
+ 'content': qa.final_prompt
393
+ }]
394
+ ).choices[0].message.content
395
+ )
396
+
397
+ # Ask a question and get the answer
398
+ qa.insert([{'prompt': 'What can you tell me about Amazon?'}])
399
+ print("--- Final Answer ---")
400
+ print(qa.select(qa.answer).collect())
401
+ ```
402
+
403
+ ## 📚 Notebook Gallery
404
+
405
+ Explore Pixeltable's capabilities interactively:
406
+
407
+ | Topic | Notebook | Topic | Notebook |
408
+ |:----------|:-----------------|:-------------------------|:---------------------------------:|
409
+ | **Fundamentals** | | **Integrations** | |
410
+ | 10-Min Tour | <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> | OpenAI | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/integrations/working-with-openai.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
411
+ | Tables & Ops | <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> | Anthropic | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/integrations/working-with-anthropic.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
412
+ | 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> | Together AI | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/integrations/working-with-together.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> |
413
+ | Embedding Index | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/feature-guides/embedding-and-vector-indexes.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> | Label Studio | <a target="_blank" href="https://docs.pixeltable.com/docs/cookbooks/vision/label-studio"> <img src="https://img.shields.io/badge/📚%20Docs-013056" alt="Visit Docs"/></a> |
414
+ | 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> | Mistral | <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"/> |
415
+ | **Use Cases** | | **Sample Apps** | |
416
+ | RAG Demo | <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"/> | Multimodal Agent | <a target="_blank" href="https://huggingface.co/spaces/Pixeltable/Multimodal-Powerhouse"> <img src="https://img.shields.io/badge/🤗%20Demo-FF7D04" alt="HF Space"/></a> |
417
+ | Object Detection | <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> | Image/Text 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/🖥️%20App-black.svg" alt="GitHub App"/> |
418
+ | Audio Transcription | <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"/> | 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%20Bot-%235865F2.svg" alt="GitHub App"/></a> |
419
+
420
+ ## 🔮 Roadmap (2025)
421
+
422
+ ### Cloud Infrastructure and Deployment
423
+ We're working on a hosted Pixeltable service that will:
424
+
425
+ - Enable Multimodal Data Sharing of Pixeltable Tables and Views
426
+ - Provide a persistent cloud instance
427
+ - Turn Pixeltable workflows (Tables, Queries, UDFs) into API endpoints/[MCP Servers](https://github.com/pixeltable/pixeltable-mcp-server)
428
+
429
+ ## 🤝 Contributing
430
+
431
+ We love contributions! Whether it's reporting bugs, suggesting features, improving documentation, or submitting code changes, please check out our [Contributing Guide](CONTRIBUTING.md) and join the [Discussions](https://github.com/pixeltable/pixeltable/discussions) or our [Discord Server](https://discord.gg/QPyqFYx2UN).
432
+
433
+ ## 🏢 License
434
+
435
+ Pixeltable is licensed under the Apache 2.0 License.
436
+
@@ -0,0 +1,179 @@
1
+ pixeltable/__init__.py,sha256=hSQqCuVinIpYLIBuOOh2cV-pP8-1buk0zT9xCtqxaSA,1658
2
+ pixeltable/__version__.py,sha256=nKy1w-9YfBgJ1lnl8j1yahk-Vtoogyun-3QYELntNCM,114
3
+ pixeltable/catalog/__init__.py,sha256=rQmjveID4bk6NI4Ql09lGsZ0K0HVE2l1yqKAveipHzc,558
4
+ pixeltable/catalog/catalog.py,sha256=5b8rad0ZXInofr75AP-7Al53DOPx3E1Sy5OKu_YrrkQ,35425
5
+ pixeltable/catalog/column.py,sha256=i_KJVRvjR9Dh4tPrdf9Fg7IBGcKLYiOJKngSVBLgMCA,10800
6
+ pixeltable/catalog/dir.py,sha256=HFemOf67Nfw13EOpQsR_UgzP2L1w4LDfw2009DrSK0Y,2063
7
+ pixeltable/catalog/globals.py,sha256=FwMnw6TVcuTLklrDr6MUmw3Sxg30_v5i3MAWf_VFflM,3910
8
+ pixeltable/catalog/insertable_table.py,sha256=FtDCCwr3O9cnx-nR24uNos2rTe9bETUZdfKYtjKrQ1w,8553
9
+ pixeltable/catalog/named_function.py,sha256=vZ-j7P4HugWh9OmUzBMwyRYvO3tQn9jWyJz_1stPavU,1210
10
+ pixeltable/catalog/path.py,sha256=LUQ1vmSbUaZ66yBn8H4SLV6UJLx96EgHAvUKjqxazrQ,2211
11
+ pixeltable/catalog/schema_object.py,sha256=6OxJTfT1NOivL1sbg8opf4DTGvGCLqqkuuS4Xo8ESJU,1806
12
+ pixeltable/catalog/table.py,sha256=6j_oWxtDtNIJ1NnuJ9ZbqJ6bH7t8J_ahcmjDCDRnYjs,65353
13
+ pixeltable/catalog/table_version.py,sha256=5L80BWRbCn_mzKlLat7rEVqIvFTkBb2xebQB6RelU6k,59656
14
+ pixeltable/catalog/table_version_handle.py,sha256=LYJFTdRssPu4uOBPbP93wKqXygJXr3Gwdc9wHzzZRag,1654
15
+ pixeltable/catalog/table_version_path.py,sha256=_g9knGenpMOlhaK8DZa8iLz5CorsMcbnFqTLnvaUkYM,6653
16
+ pixeltable/catalog/view.py,sha256=1naZXwuGO1XzOiqxRI-NhJA_jZQ6z2G5pf__qA6Pm6E,11683
17
+ pixeltable/config.py,sha256=gnRI4G9GE7mQJDcMcn8JsEzYk8oKVfHB-BwoLRWnRDo,3971
18
+ pixeltable/dataframe.py,sha256=4RnQtRVJSWNzpJPQued9lyXSU3FW1Zeul502WCOxDQk,49585
19
+ pixeltable/env.py,sha256=uQ8LZG-KU96Jhgs0wAUOn0rrj1ouAeliavnJPgvDx_Q,36250
20
+ pixeltable/exceptions.py,sha256=NuFY2WtkQpLfLHT_J70kOw9Tr0kEDkkgo-u7As4Gaq4,410
21
+ pixeltable/exec/__init__.py,sha256=m4AF2kzFtsTRUevupgWs8er0oJQisCR9ROW7ZJlL3dw,509
22
+ pixeltable/exec/aggregation_node.py,sha256=C6gdQqCwg2Cio0bFbtGBhvjMMc4ADBjljnLwMVwdrLQ,4090
23
+ pixeltable/exec/cache_prefetch_node.py,sha256=j8ThRGNAeP47A02MgMF0ViZdD6ZYJgTY8dbNubxQbW0,12135
24
+ pixeltable/exec/component_iteration_node.py,sha256=FZszWHrzsjHxCbUTwXtJIlgQqgYtvKZB6QWiDGkfIbs,4757
25
+ pixeltable/exec/data_row_batch.py,sha256=EAB15JRhXbWIe91x1J5N5lFiMXzjB8NGTFjZsBDSbf8,3393
26
+ pixeltable/exec/exec_context.py,sha256=jKeLStfkjwCKKAooC-7a7qZUnZU5O0_JQhanhVerV9c,984
27
+ pixeltable/exec/exec_node.py,sha256=WIN1sBEBNS7TlBk5QpHsDUCZUUdcvs6Os_Bxq2HoWdo,4077
28
+ pixeltable/exec/expr_eval/__init__.py,sha256=sQThSEByK_DLfB-_-18RFhpARx49cSXYEkpCDyi0vQI,61
29
+ pixeltable/exec/expr_eval/evaluators.py,sha256=NiFhqAdKKXfWZC4qoaxUEfW8Dfa4XtbSXjSVuYwuAd4,17009
30
+ pixeltable/exec/expr_eval/expr_eval_node.py,sha256=KJO-Z9jLVITc-m1oIlZ3Tf5wm02OPFHC4yQx49UfcHU,19050
31
+ pixeltable/exec/expr_eval/globals.py,sha256=fFrj2O53TgHDfVF8dgnyn1fPLi4ZHQuylewf5aHMwYk,7752
32
+ pixeltable/exec/expr_eval/row_buffer.py,sha256=YY0thdlMNNReEOTyPp36xKPeMeXSZ0VrI9bJsXgo7sU,2744
33
+ pixeltable/exec/expr_eval/schedulers.py,sha256=tAvCQKa1q0x7y7cdnGcTGbeku8QcoKH1GkgSm8ktOnM,17000
34
+ pixeltable/exec/in_memory_data_node.py,sha256=csw_4qyOKsvqgIiqX6IMDw6wi2pqnHwLgoE_77j7Pck,3594
35
+ pixeltable/exec/row_update_node.py,sha256=zU0eSyn81-vRrjAMOadRqU8luTshnPUtIbS7npyLBKY,2798
36
+ pixeltable/exec/sql_node.py,sha256=FNzXxPhtQ7iQoht4QeXp5sAFZorRkVb9ttkpkOPsBbY,19871
37
+ pixeltable/exprs/__init__.py,sha256=AxSMjKNavCT9F6vBaNR-nwX2iupAI5hbMb5hEj65Tfk,1096
38
+ pixeltable/exprs/arithmetic_expr.py,sha256=sZPao0qdFWbrDx0eiAVxw1wGHJXZ5ZoCpQaScysBldE,7333
39
+ pixeltable/exprs/array_slice.py,sha256=8Zv0E2RghdJi1Mbk0kKtOz2ccGQuXwLLb6R9v1jk7hA,2180
40
+ pixeltable/exprs/column_property_ref.py,sha256=nwvPxyVveOCSCGgUDTnILFKAolZ2VwMVToDLCAQsH0c,3786
41
+ pixeltable/exprs/column_ref.py,sha256=BO68xBLAIbXZcL_Oa8qjx0hJSPTbQgbOV_VCF1jv_fU,12620
42
+ pixeltable/exprs/comparison.py,sha256=fJ840HORCi4x5ovkkdM_PXqlzttS0K9W0oikWWp1oa8,5139
43
+ pixeltable/exprs/compound_predicate.py,sha256=vJVRVueAmaKnjiHCLWyh8wHgktzzK0DVqbOIQJgTjF8,3801
44
+ pixeltable/exprs/data_row.py,sha256=drPgjvTK9u-KeGRuolfqzzzJOGAiwayjs4PBbt8ZGUY,11251
45
+ pixeltable/exprs/expr.py,sha256=JABPT8dGISMq_ciG67GPdX00nKTrJwQ1DQhxSRqkC4A,35602
46
+ pixeltable/exprs/expr_dict.py,sha256=2ZeZ0eACx3VrRNEOjipuT5WxOIzjXQ_DSip8NTH0KRo,1584
47
+ pixeltable/exprs/expr_set.py,sha256=OlRTbHAAYH2fOEs1HE-8DIu7Z247xVfoT_9Y58GZoOQ,2559
48
+ pixeltable/exprs/function_call.py,sha256=_PxrEACVyiihdQdmTiiSv5WkZfOXSQFcGO18wPueM_Y,21989
49
+ pixeltable/exprs/globals.py,sha256=budmqzTCyajkelpzcNxPKP-ZE3WDiIWT7IYWWqQmB78,2300
50
+ pixeltable/exprs/in_predicate.py,sha256=u98JmBX9XsglKe5uCy1NUMnyi3wioBri_tue2vI9_sk,3799
51
+ pixeltable/exprs/inline_expr.py,sha256=XYVKKXZN9BtHN5qlvZna-mgdOlot6WcmPu5usRBYei0,7972
52
+ pixeltable/exprs/is_null.py,sha256=NfA_485hfT69pWyY6u8BhykDUkz5k91AH93azGu6lCg,1087
53
+ pixeltable/exprs/json_mapper.py,sha256=bJSB39sZgpN9KS0RReDnUhTCwg-4Y4cgXXaFNy3o3wU,7035
54
+ pixeltable/exprs/json_path.py,sha256=RFSS1zgNRY2Qen0TPxaPY1ae9ehkZ2XuTsnhdVlpsic,7224
55
+ pixeltable/exprs/literal.py,sha256=j4Rq5dGPbf7E3E4fqFgHtq0roiRtiy-9J03FaamEEVw,4315
56
+ pixeltable/exprs/method_ref.py,sha256=NNhJTGo7luZLh8EJdFIZAax9LiiqqDCEK1AwPmHip0w,2642
57
+ pixeltable/exprs/object_ref.py,sha256=idYFcT27jv0BjtJT3paL37xDrZZc35_3eCJyQOIqdZU,1999
58
+ pixeltable/exprs/row_builder.py,sha256=vZbSEctWYn79zC1CCBqFHZeD3-2oryyQeJKVi2-enH0,21200
59
+ pixeltable/exprs/rowid_ref.py,sha256=nDY2swlEN9hzpg2t9c2eFByJEIB4Mtnu0R0qIpMhm5c,4761
60
+ pixeltable/exprs/similarity_expr.py,sha256=f4Qt6HKSYvQsjLCX1nHHXpB5cFilJr4qYL_dwI6Iwl8,3650
61
+ pixeltable/exprs/sql_element_cache.py,sha256=c7Q6vFK4xnf9vmcRYnXiAcwPBBwmw0dolftM4BwDO8c,1359
62
+ pixeltable/exprs/string_op.py,sha256=8GkqYpZrSJjHX1ghsUMI9Op2NJyBbvmLWJwDYf_vad0,4171
63
+ pixeltable/exprs/type_cast.py,sha256=_nDzTxg5kXVGLewI0FrH2zmwJzgptdxYd5Jvuyig0UI,2322
64
+ pixeltable/exprs/variable.py,sha256=UwWwaNECbtwyC8v0g8iqCa3a6mO8z9lK7ta5NrlCwvs,1493
65
+ pixeltable/ext/__init__.py,sha256=UgDXWzGWiQIrwOuEvWTePLBcR2kecllPAE7gp-42Awg,457
66
+ pixeltable/ext/functions/__init__.py,sha256=Ox3kUHn5IslVEmEKsjrHfkHDrUkmLl9RCO2YkrPJkgc,193
67
+ pixeltable/ext/functions/whisperx.py,sha256=qda6kFQSvZTY2asfrYPwHb1cvSa03LbhJ-Wf9b7qPhw,2355
68
+ pixeltable/ext/functions/yolox.py,sha256=dX22nMb-0n2hZi7WhZ1Y4LIpFk5loyeXXuSUcc2Fgrg,3724
69
+ pixeltable/func/__init__.py,sha256=HS9WQcHPbp9fvaWdeuh0VEk1UrdtbAFvfAm8lRMWjSI,494
70
+ pixeltable/func/aggregate_function.py,sha256=eeEJ1O604G4lMbIPndpuvnCyfbaRU46jn-gvllosFQ4,13267
71
+ pixeltable/func/callable_function.py,sha256=Wre4p8RelolvpukwbetzW_PONjL0gqzUPKBsu1zjJeM,9281
72
+ pixeltable/func/expr_template_function.py,sha256=ncbSfDdHEKHHhPA-PXGu97HBFmkLQB0Th_NoKjx84ZY,5946
73
+ pixeltable/func/function.py,sha256=cbHufGcWxq_oWaHXAnXSXf7KdT8zAuWLNv-XD8DOVg4,23155
74
+ pixeltable/func/function_registry.py,sha256=7AQ1bdF2DJbTRn9xx6s5cC_VHtCBXGt_GyJJEjJHcMw,12308
75
+ pixeltable/func/globals.py,sha256=5Wo4GPxYgHRRk5nvV0h_lAthKSalxKvj5n1p-uMPR0U,1501
76
+ pixeltable/func/query_template_function.py,sha256=XFTbxfLkzLySxfOYnmr1B5pthj3kE0zFLlHrdorZdns,4341
77
+ pixeltable/func/signature.py,sha256=0PI6xdhLgwy9-GMkzkm7GlsBnsNMiS9aoNI9LWXwvN0,13700
78
+ pixeltable/func/tools.py,sha256=e-qUSkvRJu5blUJ1C-5BK8qG6GWQ8ESvhehHQgQ5UkQ,5724
79
+ pixeltable/func/udf.py,sha256=anBoJUAjUa46_SbZuIVLRpRCmW_D9Ce1UeV0NyeWR3Y,13213
80
+ pixeltable/functions/__init__.py,sha256=egLhhTusyiP9GkwImx8wT4nwO-eTxkmSPJ7NEn8TFmw,555
81
+ pixeltable/functions/anthropic.py,sha256=-NYawpiNJkYrZLvF1MA6JxlQBId0sNTNKnuw-tF9XKY,9324
82
+ pixeltable/functions/audio.py,sha256=7bsm4igQEW7RYSrSevwqaUOqyEnvBbPbJ8c-VknDl1E,657
83
+ pixeltable/functions/deepseek.py,sha256=KYIa-UJJUTOt9cCfmP6k6nM4MpKm1MBU8F-jWk3CycY,3827
84
+ pixeltable/functions/fireworks.py,sha256=k0vUXxeeNYWfL_tdLgF9c-vOilr0g2tTeLkAL9SJ6ws,4972
85
+ pixeltable/functions/gemini.py,sha256=vr1mBZDcDI1GNLp8pKVcQmUEbV9P0L0HRInE78rA4Ok,2952
86
+ pixeltable/functions/globals.py,sha256=_u4A2aOWJGEzlA2Q2qr5p-ubA9paiCnkmC_oP908Qt0,5374
87
+ pixeltable/functions/huggingface.py,sha256=EDOR4ADKPI9vPYAxu2nE-n3DAfk97odAK1z2C9BwYLQ,20534
88
+ pixeltable/functions/image.py,sha256=UgUzA8GWsYtA3yyq_Ypx8pyksQwAihZTflR8g6jgk20,13971
89
+ pixeltable/functions/json.py,sha256=Pkqkhf_1ot6RL2JB9Kw6NQAj0-nVn1eSfeHpdq5vr1M,770
90
+ pixeltable/functions/llama_cpp.py,sha256=uf7WSZIhKDa492snnQv5ojGVLNdBWvuw0Ou3Mch1c_I,3874
91
+ pixeltable/functions/math.py,sha256=SnAdjL7FIyEju2k3gEpk2ywn5zMmk7yGzD48JtTCX_0,1554
92
+ pixeltable/functions/mistralai.py,sha256=ZQeGNCFNRhh7KZ5d0C7mabY2hRl9c-vOQUH5zvunmDs,6241
93
+ pixeltable/functions/ollama.py,sha256=AmkP532HwWeTyWkTnHm_hIk0CFjzV5MwCCPnM9Kb7KM,4231
94
+ pixeltable/functions/openai.py,sha256=1KLOwKrNGUFwJImMe1iDKnZg4Q3rB_eEnK3I73u-774,29233
95
+ pixeltable/functions/replicate.py,sha256=SLMPNi44QMa16TVTImZRkNMXXyRZ0mmpnK6P5uXQE0k,2467
96
+ pixeltable/functions/string.py,sha256=ToLodCr1MRVaLhzaUe5NbGNYHR9ENNpmKztSstkz5O4,20201
97
+ pixeltable/functions/timestamp.py,sha256=0zp4urJagCcNLfJE0ltTCft-J9qs2C716TmRngKYaa0,9171
98
+ pixeltable/functions/together.py,sha256=GBQKJz2AUs-KDIU25-_Yyp76X5z-ZKXKq3geQbi1ebw,9983
99
+ pixeltable/functions/util.py,sha256=lVya13gcao8T34OGX7zy1cglQPNwaBbSBw57bVPyHNs,745
100
+ pixeltable/functions/video.py,sha256=rrKYGCEm-oJVQnjiNbEjDykusAtaQDLrYFNqv8Twwcw,6948
101
+ pixeltable/functions/vision.py,sha256=_a0wY3akkVhWnnxlq__1VzSLylytlNadpNOOPOwSfLk,15393
102
+ pixeltable/functions/whisper.py,sha256=c9E6trhc2UcShVaGaEBCUEpArke1ql3MV5We0qSgmuU,2960
103
+ pixeltable/globals.py,sha256=SOEBBXfb3YEHY7fiIjp3a0LTx_vAmpeUXUigMKedsTQ,30897
104
+ pixeltable/index/__init__.py,sha256=97aFuxiP_oz1ldn5iq8IWApkOV8XG6ZIBW5-9rkS0vM,122
105
+ pixeltable/index/base.py,sha256=jrE2Sack14_o_oFWkQf_qdDCSQ85SCZLcJX4GhU_JaY,1527
106
+ pixeltable/index/btree.py,sha256=m4eUk8jVG5h2VW_IcsmWG4GN-FFk0uFHyDF6FSw_gbM,2299
107
+ pixeltable/index/embedding_index.py,sha256=W-PO-ytmh1UTSZHDIGMJiVInwQUR5WGouEvFwVF39e4,11552
108
+ pixeltable/io/__init__.py,sha256=Yjq13pBCBoaZv-OkIY2XSusVOC5b6cB5C6NbgJq5H1g,620
109
+ pixeltable/io/datarows.py,sha256=6JGt5AqLvBx1fYwfMvRwVBRaOBsBLurXHhV6B22ZBPQ,6055
110
+ pixeltable/io/external_store.py,sha256=5gHSHLi-pPWHJ4OtVtY2vxrcbLG899hNMEcLvBfvYqI,16719
111
+ pixeltable/io/fiftyone.py,sha256=v0r28bIk2I0TRP5DfVHtBIUa4DpIJDK5sgExxOmHZ_w,6882
112
+ pixeltable/io/globals.py,sha256=Z8ww-Pcm59ql1tvame8z0Mu1thIy5BPbW-TswGRXt4s,11368
113
+ pixeltable/io/hf_datasets.py,sha256=VbQvRaUqmiKiIUeek_yf3-uAXlPRxpB62bUUQRQ_A_c,5356
114
+ pixeltable/io/label_studio.py,sha256=Q-SacWYox0g8lBVWl8IxVrZhYE6NeR29aB_Iwc6GDyg,31252
115
+ pixeltable/io/pandas.py,sha256=IeIOb_HOhARFlG112u6SqoXp4xd8Z6QlG1ADGGZcyp4,8453
116
+ pixeltable/io/parquet.py,sha256=ezWHy5XnErEt4EmYDYQHrmIQLXrYChA26qVwiPoBfRQ,7672
117
+ pixeltable/io/table_data_conduit.py,sha256=QUA94tsXAC2ak3axSoQEcxSGyNFR0VJz4gl9t43eFbQ,22987
118
+ pixeltable/io/utils.py,sha256=YMfhpqMitWz1PhXJGkCNOgNtEM1AZ55S0zXVhljC5kY,4260
119
+ pixeltable/iterators/__init__.py,sha256=bU4EmbX85J1URmRw6G71f2I77b1ctqngEOwDmRB3T0w,455
120
+ pixeltable/iterators/audio.py,sha256=wSVGdL5GeO3uY_lU-pNlY49E5dExIaJWY6oaXm-MnSU,9150
121
+ pixeltable/iterators/base.py,sha256=ZC0ZvXL4iw6AmT8cu-Mdx-T2UG9nmJYV1C6LK4efAfw,1669
122
+ pixeltable/iterators/document.py,sha256=wJYSnzusJFaxipv5y0uQw-surN9fFz0Aq-s7w_l_Yk8,20306
123
+ pixeltable/iterators/image.py,sha256=nWm-03CxNvHRdTr8U6PvWEnEiquqIQNG5rB-3Y44Mm4,3440
124
+ pixeltable/iterators/string.py,sha256=URj5edWp-CsorjN_8nnfWGvtIFs_Zh4VPm6htlJbFkU,1257
125
+ pixeltable/iterators/video.py,sha256=L5S1YPmT_zM11vW9fK6d5nQpUvHVewQWmfDmy4BD45E,9134
126
+ pixeltable/metadata/__init__.py,sha256=37m9C-NzUdQGXKucCPLoKOhwOk_1ENSPAdmxEsntgX8,2607
127
+ pixeltable/metadata/converters/convert_10.py,sha256=myYIo1DyccnsQUxDKG6mafnU5ge_EhZpHg_pesKBoK4,708
128
+ pixeltable/metadata/converters/convert_12.py,sha256=Ci-qyZW1gqci-8wnjeOB5afdq7KTuN-hVSV9OqSPx8g,162
129
+ pixeltable/metadata/converters/convert_13.py,sha256=yFR6lD3pOrZ46ZQBFKYvxiIYa7rRxh46Bsq7yiCBNak,1356
130
+ pixeltable/metadata/converters/convert_14.py,sha256=9e_JNm3a35Gs4dvFFaV-_jtCqp3ud6OEOqMIhTQmasE,428
131
+ pixeltable/metadata/converters/convert_15.py,sha256=wKTdBt8p9GlUM3yBZFX-37J0c0_xc5SK0SXooxtDQJY,1722
132
+ pixeltable/metadata/converters/convert_16.py,sha256=9sRigN4h3UHEurV1zAwO8AwE_ERkvxNVTUPFiV9h4MU,493
133
+ pixeltable/metadata/converters/convert_17.py,sha256=LmE8uAk2yPRN5Ddk8I_KOZjUGBKSUe-s-PoJl9ltWEE,878
134
+ pixeltable/metadata/converters/convert_18.py,sha256=SylkXMoBPXwKEmUV72ah_5xSGNNLPWwib3km0tUE-68,1461
135
+ pixeltable/metadata/converters/convert_19.py,sha256=9weimsB_U-rSWzALzKRCNdW_6fQ2mcq1IaiSDYSpn7k,2026
136
+ pixeltable/metadata/converters/convert_20.py,sha256=M6w3FuJypRsqUUX3K1b5sTKaQcOug6asosMfnhbUv_c,2746
137
+ pixeltable/metadata/converters/convert_21.py,sha256=w35qzY6EfxBap3r_WEdXKTmtczsGV9KKfBOR18Ivl84,1095
138
+ pixeltable/metadata/converters/convert_22.py,sha256=rQu4kCyCI0UguU2D4fJK8YqS-01DnOTs6H0Puzu_TV8,591
139
+ pixeltable/metadata/converters/convert_23.py,sha256=95o72p2A_7ZTVG4N8tJLVPHg34uuIWh7AYxowfwrHc4,1134
140
+ pixeltable/metadata/converters/convert_24.py,sha256=4A78PIXvYGDtml478u0vHy0eDWfdAjLQEf3xxAXn-pU,2346
141
+ pixeltable/metadata/converters/convert_25.py,sha256=VYSejFDv5CGu25pe4wWsQCLjJOxmFk39feYA3so1D7k,620
142
+ pixeltable/metadata/converters/convert_26.py,sha256=XaVYFFtlpuUD3bN_UAr9ONgaSkJg5u7xtqmbVICWuYE,673
143
+ pixeltable/metadata/converters/convert_27.py,sha256=1P7DSAXPwHqkXvNxFqjIOcdI8dlsL8ikfaaveBvQHyM,904
144
+ pixeltable/metadata/converters/convert_28.py,sha256=v2CqpXAbCTQ-3gbn_ZtSl0fXueK1Q7VDECbIc7Ci1VQ,694
145
+ pixeltable/metadata/converters/convert_29.py,sha256=aBqZeXiYbtcAX3MiuEgqPkfzd8Hu8oNYjO-lJafmfOg,4912
146
+ pixeltable/metadata/converters/convert_30.py,sha256=DKCD6ZMgRU2Cu7eonB1kYEnYCKI40m2XIjTiOyFsCyA,1450
147
+ pixeltable/metadata/converters/util.py,sha256=qnhrwUS7nSczCdrMjKG7v3lRxRKh9o19epCtP8HTpsY,7729
148
+ pixeltable/metadata/notes.py,sha256=zqFAbQi56oypFk34WeOaQOSlJxoVj8MHonGL9SPKPE4,1084
149
+ pixeltable/metadata/schema.py,sha256=3x2ldgcV5_XdPk9Awn3JbS7meqJ4_-BiDtD1-XAYCHI,10234
150
+ pixeltable/plan.py,sha256=ExvFuwqOdOEcl4UeWFlKS2rWn8eVGhvJPuNx2o4vgm0,43392
151
+ pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
+ pixeltable/share/__init__.py,sha256=zTJtLn0F7-5DgSIpxUvFQPO2LP7AOw9xjEaD30RH62U,58
153
+ pixeltable/share/packager.py,sha256=1jXKF7bCtN4cZ57Kxk4Z2tonD2ML-A-xHhCIU68zg8w,11838
154
+ pixeltable/share/publish.py,sha256=0aRgiX2c-RuwyAuekbQXza-lsKIgtlpnM5ZbYNCoYbc,3807
155
+ pixeltable/store.py,sha256=ZkXaeHOplT4ssg8_6Lymsb3bJ9vIWlcKSRkuWznxHEs,22501
156
+ pixeltable/type_system.py,sha256=xGRgz6tQzmBDZ3Lvzq7vTfD1WDJg-pa7UUMw1vv0PeE,52378
157
+ pixeltable/utils/__init__.py,sha256=Pwgu-Sg1XkxzdCZ4ZhWP77UgLP3tnQsyCKaUJLF4ajo,1741
158
+ pixeltable/utils/arrow.py,sha256=2R0rhin1-dN0O5aL_s8LZYE7Or4mdf5LCRbe2OOsz2A,6292
159
+ pixeltable/utils/coco.py,sha256=Y1DWVYguZD4VhKyf7JruYfHWvhkJLq39fzbiSm5cdyY,7304
160
+ pixeltable/utils/code.py,sha256=SbG5OUF_fQAbOgGZHDuENijmbzisVqa4VS9guaZ0KtU,1231
161
+ pixeltable/utils/console_output.py,sha256=x23iDnNwUbsr7Ec20BQ7BLATTsrQZflxc9NucAt_sVU,1150
162
+ pixeltable/utils/coroutine.py,sha256=IPUqBpwHkDNaioMde7Km3LU8s54SGXVOtRJpYPkm1gE,1425
163
+ pixeltable/utils/dbms.py,sha256=qm6O6leJJT0c5323cZnJTW5W_4rvQVfD4YFMbuw1mpM,2021
164
+ pixeltable/utils/description_helper.py,sha256=acibNm36wkZG7h6k8gjcypTD_PVV2SL7YgX6cPYP1i8,3743
165
+ pixeltable/utils/documents.py,sha256=x3UHU7eykibyA3eVkSrCK1CQoaid228vp96WUEESssU,3105
166
+ pixeltable/utils/filecache.py,sha256=8RZZiEkD4awZpR-mn7OhoZPc6_JlPUNSBnMU8BcEAv4,10864
167
+ pixeltable/utils/formatter.py,sha256=_pYQOhBh2dZBeCTUKuWaIzm7JRWeMepMZwSd5KTv-tw,9220
168
+ pixeltable/utils/http_server.py,sha256=B5iQ1s_VuwsVC7pUm1joGjLZqaluV8_RfFiU8V1FuG8,2453
169
+ pixeltable/utils/iceberg.py,sha256=L_s9G9NMIGMQdRHtNkks6ntTVW4DKKAw97R9gRmtw5s,553
170
+ pixeltable/utils/media_store.py,sha256=Dhsnj1ZPRSX0iyGOu4JU4pC3fvSBd7sQpruVHqzKm7A,3089
171
+ pixeltable/utils/pytorch.py,sha256=rrqXn6KVXmABEPGLjjq3qYINfCCv9SbpfPFmSx9KyGQ,3422
172
+ pixeltable/utils/s3.py,sha256=pxip2MlCqd2Qon2dzJXzfxvwtZyc-BAsjAnLL4J_OXY,587
173
+ pixeltable/utils/sql.py,sha256=Sa4Lh-VGe8GToU5W7DRiWf2lMl9B6saPqemiT0ZdHEc,806
174
+ pixeltable/utils/transactional_directory.py,sha256=OFKmu90oP7KwBAljwjnzP_w8euGdAXob3y4Nx9SCNHA,1357
175
+ pixeltable-0.3.11.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
176
+ pixeltable-0.3.11.dist-info/METADATA,sha256=HLcfKQsJZ8zJa4w0whkhCRgb1GMSkVq2gvNH0HZ3IM4,20629
177
+ pixeltable-0.3.11.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
178
+ pixeltable-0.3.11.dist-info/entry_points.txt,sha256=ToOd-pRgG7AitEBgYoBCRRB4-KVDQ0pj_9T4a1LgwA4,97
179
+ pixeltable-0.3.11.dist-info/RECORD,,