pixeltable 0.4.15__py3-none-any.whl → 0.4.17__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 (68) hide show
  1. pixeltable/__init__.py +4 -0
  2. pixeltable/catalog/catalog.py +125 -63
  3. pixeltable/catalog/column.py +7 -2
  4. pixeltable/catalog/table.py +1 -0
  5. pixeltable/catalog/table_metadata.py +4 -0
  6. pixeltable/catalog/table_version.py +174 -117
  7. pixeltable/catalog/table_version_handle.py +4 -1
  8. pixeltable/catalog/table_version_path.py +0 -11
  9. pixeltable/catalog/view.py +6 -0
  10. pixeltable/config.py +7 -0
  11. pixeltable/dataframe.py +10 -5
  12. pixeltable/env.py +56 -19
  13. pixeltable/exec/__init__.py +2 -0
  14. pixeltable/exec/cell_materialization_node.py +231 -0
  15. pixeltable/exec/cell_reconstruction_node.py +135 -0
  16. pixeltable/exec/exec_node.py +1 -1
  17. pixeltable/exec/expr_eval/evaluators.py +1 -0
  18. pixeltable/exec/expr_eval/expr_eval_node.py +3 -0
  19. pixeltable/exec/expr_eval/globals.py +2 -0
  20. pixeltable/exec/globals.py +32 -0
  21. pixeltable/exec/object_store_save_node.py +1 -4
  22. pixeltable/exec/row_update_node.py +16 -9
  23. pixeltable/exec/sql_node.py +107 -14
  24. pixeltable/exprs/__init__.py +1 -1
  25. pixeltable/exprs/arithmetic_expr.py +23 -18
  26. pixeltable/exprs/column_property_ref.py +10 -10
  27. pixeltable/exprs/column_ref.py +2 -2
  28. pixeltable/exprs/data_row.py +106 -37
  29. pixeltable/exprs/expr.py +9 -0
  30. pixeltable/exprs/expr_set.py +14 -7
  31. pixeltable/exprs/inline_expr.py +2 -19
  32. pixeltable/exprs/json_path.py +45 -12
  33. pixeltable/exprs/row_builder.py +54 -22
  34. pixeltable/functions/__init__.py +1 -0
  35. pixeltable/functions/bedrock.py +7 -0
  36. pixeltable/functions/deepseek.py +11 -4
  37. pixeltable/functions/llama_cpp.py +7 -0
  38. pixeltable/functions/math.py +1 -1
  39. pixeltable/functions/ollama.py +7 -0
  40. pixeltable/functions/openai.py +4 -4
  41. pixeltable/functions/openrouter.py +143 -0
  42. pixeltable/functions/video.py +110 -28
  43. pixeltable/globals.py +10 -4
  44. pixeltable/io/globals.py +18 -17
  45. pixeltable/io/parquet.py +1 -1
  46. pixeltable/io/table_data_conduit.py +47 -22
  47. pixeltable/iterators/document.py +61 -23
  48. pixeltable/iterators/video.py +126 -53
  49. pixeltable/metadata/__init__.py +1 -1
  50. pixeltable/metadata/converters/convert_40.py +73 -0
  51. pixeltable/metadata/notes.py +1 -0
  52. pixeltable/plan.py +175 -46
  53. pixeltable/share/packager.py +155 -26
  54. pixeltable/store.py +2 -3
  55. pixeltable/type_system.py +5 -3
  56. pixeltable/utils/arrow.py +6 -6
  57. pixeltable/utils/av.py +65 -0
  58. pixeltable/utils/console_output.py +4 -1
  59. pixeltable/utils/exception_handler.py +5 -28
  60. pixeltable/utils/image.py +7 -0
  61. pixeltable/utils/misc.py +5 -0
  62. pixeltable/utils/object_stores.py +16 -1
  63. pixeltable/utils/s3_store.py +44 -11
  64. {pixeltable-0.4.15.dist-info → pixeltable-0.4.17.dist-info}/METADATA +29 -28
  65. {pixeltable-0.4.15.dist-info → pixeltable-0.4.17.dist-info}/RECORD +68 -61
  66. {pixeltable-0.4.15.dist-info → pixeltable-0.4.17.dist-info}/WHEEL +0 -0
  67. {pixeltable-0.4.15.dist-info → pixeltable-0.4.17.dist-info}/entry_points.txt +0 -0
  68. {pixeltable-0.4.15.dist-info → pixeltable-0.4.17.dist-info}/licenses/LICENSE +0 -0
@@ -24,24 +24,37 @@ _logger = logging.getLogger('pixeltable')
24
24
  client_lock = threading.Lock()
25
25
 
26
26
 
27
- class R2ClientDict(NamedTuple):
28
- """Container for actual R2 access objects (clients, resources)
29
- Thread-safe, protected by the module lock 'client_lock'"""
27
+ class S3CompatClientDict(NamedTuple):
28
+ """Container for S3-compatible storage access objects (R2, B2, etc.).
29
+ Thread-safe via the module-level 'client_lock'.
30
+ """
30
31
 
31
- profile: Optional[str] # profile used to find credentials
32
- clients: dict[str, Any] # Dictionary of URI to client object attached to the URI
32
+ profile: Optional[str] # AWS-style profile used to locate credentials
33
+ clients: dict[str, Any] # Map of endpoint URL boto3 client instance
33
34
 
34
35
 
35
36
  @env.register_client('r2')
36
37
  def _() -> Any:
37
38
  profile_name = Config.get().get_string_value('r2_profile')
38
- return R2ClientDict(profile=profile_name, clients={})
39
+ return S3CompatClientDict(profile=profile_name, clients={})
39
40
 
40
41
 
41
42
  @env.register_client('r2_resource')
42
43
  def _() -> Any:
43
44
  profile_name = Config.get().get_string_value('r2_profile')
44
- return R2ClientDict(profile=profile_name, clients={})
45
+ return S3CompatClientDict(profile=profile_name, clients={})
46
+
47
+
48
+ @env.register_client('b2')
49
+ def _() -> Any:
50
+ profile_name = Config.get().get_string_value('b2_profile')
51
+ return S3CompatClientDict(profile=profile_name, clients={})
52
+
53
+
54
+ @env.register_client('b2_resource')
55
+ def _() -> Any:
56
+ profile_name = Config.get().get_string_value('b2_profile')
57
+ return S3CompatClientDict(profile=profile_name, clients={})
45
58
 
46
59
 
47
60
  @env.register_client('s3')
@@ -75,8 +88,8 @@ class S3Store(ObjectStoreBase):
75
88
  self.soa = soa
76
89
  self.__bucket_name = self.soa.container
77
90
  self.__prefix_name = self.soa.prefix
78
- assert self.soa.storage_target in {StorageTarget.R2_STORE, StorageTarget.S3_STORE}, (
79
- f'Expected storage_target "s3" or "r2", got {self.soa.storage_target}'
91
+ assert self.soa.storage_target in {StorageTarget.R2_STORE, StorageTarget.S3_STORE, StorageTarget.B2_STORE}, (
92
+ f'Expected storage_target "s3", "r2", or "b2", got {self.soa.storage_target}'
80
93
  )
81
94
  self.__base_uri = self.soa.prefix_free_uri + self.soa.prefix
82
95
 
@@ -91,6 +104,15 @@ class S3Store(ObjectStoreBase):
91
104
  extra_args={'endpoint_url': self.soa.container_free_uri, 'region_name': 'auto'},
92
105
  )
93
106
  return cd.clients[self.soa.container_free_uri]
107
+ if self.soa.storage_target == StorageTarget.B2_STORE:
108
+ cd = env.Env.get().get_client('b2')
109
+ with client_lock:
110
+ if self.soa.container_free_uri not in cd.clients:
111
+ cd.clients[self.soa.container_free_uri] = S3Store.create_boto_client(
112
+ profile_name=cd.profile,
113
+ extra_args={'endpoint_url': self.soa.container_free_uri, 'region_name': 'auto'},
114
+ )
115
+ return cd.clients[self.soa.container_free_uri]
94
116
  if self.soa.storage_target == StorageTarget.S3_STORE:
95
117
  return env.Env.get().get_client('s3')
96
118
  raise AssertionError(f'Unexpected storage_target: {self.soa.storage_target}')
@@ -105,6 +127,15 @@ class S3Store(ObjectStoreBase):
105
127
  extra_args={'endpoint_url': self.soa.container_free_uri, 'region_name': 'auto'},
106
128
  )
107
129
  return cd.clients[self.soa.container_free_uri]
130
+ if self.soa.storage_target == StorageTarget.B2_STORE:
131
+ cd = env.Env.get().get_client('b2_resource')
132
+ with client_lock:
133
+ if self.soa.container_free_uri not in cd.clients:
134
+ cd.clients[self.soa.container_free_uri] = S3Store.create_boto_resource(
135
+ profile_name=cd.profile,
136
+ extra_args={'endpoint_url': self.soa.container_free_uri, 'region_name': 'auto'},
137
+ )
138
+ return cd.clients[self.soa.container_free_uri]
108
139
  if self.soa.storage_target == StorageTarget.S3_STORE:
109
140
  return env.Env.get().get_client('s3_resource')
110
141
  raise AssertionError(f'Unexpected storage_target: {self.soa.storage_target}')
@@ -161,8 +192,8 @@ class S3Store(ObjectStoreBase):
161
192
  new_file_uri = self._prepare_uri(col, ext=src_path.suffix)
162
193
  parsed = urllib.parse.urlparse(new_file_uri)
163
194
  key = parsed.path.lstrip('/')
164
- if self.soa.storage_target == StorageTarget.R2_STORE:
165
- key = key.split('/', 1)[-1] # Remove the bucket name from the key for R2
195
+ if self.soa.storage_target in {StorageTarget.R2_STORE, StorageTarget.B2_STORE}:
196
+ key = key.split('/', 1)[-1] # Remove the bucket name from the key for R2/B2
166
197
  try:
167
198
  _logger.debug(f'Media Storage: copying {src_path} to {new_file_uri} : Key: {key}')
168
199
  self.client().upload_file(Filename=str(src_path), Bucket=self.bucket_name, Key=key)
@@ -329,6 +360,8 @@ class S3Store(ObjectStoreBase):
329
360
  'connect_timeout': 15,
330
361
  'read_timeout': 30,
331
362
  'retries': {'max_attempts': 3, 'mode': 'adaptive'},
363
+ 's3': {'addressing_style': 'path'}, # Use path-style addressing for S3-compatible services
364
+ 'user_agent_extra': 'pixeltable', # Marks requests as coming from Pixeltable for tracking and debugging
332
365
  }
333
366
 
334
367
  session = cls.create_boto_session(profile_name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pixeltable
3
- Version: 0.4.15
3
+ Version: 0.4.17
4
4
  Summary: AI Data Infrastructure: Declarative, Multimodal, and Incremental
5
5
  Project-URL: homepage, https://pixeltable.com/
6
6
  Project-URL: repository, https://github.com/pixeltable/pixeltable
@@ -37,14 +37,14 @@ Requires-Dist: more-itertools>=10.2
37
37
  Requires-Dist: nest-asyncio>=1.5
38
38
  Requires-Dist: numpy>=1.25
39
39
  Requires-Dist: pandas>=2.0
40
- Requires-Dist: pgvector>=0.2.1
40
+ Requires-Dist: pgvector>=0.4.0
41
41
  Requires-Dist: pillow-heif>=0.15.0
42
42
  Requires-Dist: pillow>=9.3.0
43
- Requires-Dist: pixeltable-pgserver==0.3.1
43
+ Requires-Dist: pixeltable-pgserver==0.4.0
44
44
  Requires-Dist: psutil>=5.9.5
45
45
  Requires-Dist: psycopg[binary]>=3.1.18
46
46
  Requires-Dist: puremagic>=1.20
47
- Requires-Dist: pyarrow>=13.0.0
47
+ Requires-Dist: pyarrow>=19
48
48
  Requires-Dist: pydantic>=2.7.4
49
49
  Requires-Dist: pymupdf>=1.24.1
50
50
  Requires-Dist: pyyaml>=6.0.1
@@ -53,6 +53,7 @@ Requires-Dist: sqlalchemy>=2.0.23
53
53
  Requires-Dist: tenacity>=8.2
54
54
  Requires-Dist: toml>=0.10
55
55
  Requires-Dist: tqdm>=4.64
56
+ Requires-Dist: tzlocal>=5.0
56
57
  Description-Content-Type: text/markdown
57
58
 
58
59
  <picture class="github-only">
@@ -74,7 +75,7 @@ The only open source Python library providing declarative data infrastructure fo
74
75
  [![PyPI Package](https://img.shields.io/pypi/v/pixeltable?color=4D148C)](https://pypi.org/project/pixeltable/)
75
76
  [![My Discord (1306431018890166272)](https://img.shields.io/badge/💬-Discord-%235865F2.svg)](https://discord.gg/QPyqFYx2UN)
76
77
 
77
- [**Quick Start**](https://docs.pixeltable.com/docs/overview/quick-start) |
78
+ [**Quick Start**](https://docs.pixeltable.com/overview/quick-start) |
78
79
  [**Documentation**](https://docs.pixeltable.com/) |
79
80
  [**API Reference**](https://pixeltable.github.io/pixeltable/) |
80
81
  [**Sample Apps**](https://github.com/pixeltable/pixeltable/tree/main/docs/sample-apps) |
@@ -96,8 +97,8 @@ https://github.com/user-attachments/assets/b50fd6df-5169-4881-9dbe-1b6e5d06cede
96
97
  ## Quick Start
97
98
 
98
99
  With Pixeltable, you define your *entire* data processing and AI workflow declaratively using
99
- **[computed columns](https://docs.pixeltable.com/docs/datastore/computed-columns)** on
100
- **[tables](https://docs.pixeltable.com/docs/datastore/tables-and-operations)**.
100
+ **[computed columns](https://docs.pixeltable.com/datastore/computed-columns)** on
101
+ **[tables](https://docs.pixeltable.com/datastore/tables-and-operations)**.
101
102
  Focus on your application logic, not the data plumbing.
102
103
 
103
104
  ```python
@@ -151,17 +152,17 @@ results = t.select(
151
152
 
152
153
  ## What Happened?
153
154
 
154
- * **Data Ingestion & Storage:** References [files](https://docs.pixeltable.com/docs/datastore/bringing-data)
155
+ * **Data Ingestion & Storage:** References [files](https://docs.pixeltable.com/datastore/bringing-data)
155
156
  (images, videos, audio, docs) in place, handles structured data.
156
- * **Transformation & Processing:** Applies *any* Python function ([UDFs](https://docs.pixeltable.com/docs/datastore/custom-functions))
157
- or built-in operations ([chunking, frame extraction](https://docs.pixeltable.com/docs/datastore/iterators)) automatically.
158
- * **AI Model Integration:** Runs inference ([embeddings](https://docs.pixeltable.com/docs/datastore/embedding-index),
159
- [object detection](https://docs.pixeltable.com/docs/examples/vision/yolox),
160
- [LLMs](https://docs.pixeltable.com/docs/integrations/frameworks#cloud-llm-providers)) as part of the data pipeline.
157
+ * **Transformation & Processing:** Applies *any* Python function ([UDFs](https://docs.pixeltable.com/datastore/custom-functions))
158
+ or built-in operations ([chunking, frame extraction](https://docs.pixeltable.com/datastore/iterators)) automatically.
159
+ * **AI Model Integration:** Runs inference ([embeddings](https://docs.pixeltable.com/datastore/vector-database),
160
+ [object detection](https://docs.pixeltable.com/examples/vision/yolox),
161
+ [LLMs](https://docs.pixeltable.com/integrations/frameworks#cloud-llm-providers)) as part of the data pipeline.
161
162
  * **Indexing & Retrieval:** Creates and manages vector indexes for fast
162
- [semantic search](https://docs.pixeltable.com/docs/datastore/embedding-index#phase-3%3A-query)
163
+ [semantic search](https://docs.pixeltable.com/datastore/vector-database#phase-3%3A-query)
163
164
  alongside traditional filtering.
164
- * **Incremental Computation:** Only [recomputes](https://docs.pixeltable.com/docs/overview/quick-start) what's
165
+ * **Incremental Computation:** Only [recomputes](https://docs.pixeltable.com/overview/quick-start) what's
165
166
  necessary when data or code changes, saving time and cost.
166
167
  * **Versioning & Lineage:** Automatically tracks data and schema changes for reproducibility. See below for an example
167
168
  that uses "time travel" to query an older version of a table.
@@ -185,7 +186,7 @@ managed by Pixeltable and is intended to be accessed through the Pixeltable Pyth
185
186
 
186
187
  ## Key Principles
187
188
 
188
- **[Unified Multimodal Interface:](https://docs.pixeltable.com/docs/datastore/tables-and-operations)** `pxt.Image`,
189
+ **[Unified Multimodal Interface:](https://docs.pixeltable.com/datastore/tables-and-operations)** `pxt.Image`,
189
190
  `pxt.Video`, `pxt.Audio`, `pxt.Document`, etc. – manage diverse data consistently.
190
191
 
191
192
  ```python
@@ -198,7 +199,7 @@ t = pxt.create_table(
198
199
  )
199
200
  ```
200
201
 
201
- **[Declarative Computed Columns:](https://docs.pixeltable.com/docs/datastore/computed-columns)** Define processing
202
+ **[Declarative Computed Columns:](https://docs.pixeltable.com/datastore/computed-columns)** Define processing
202
203
  steps once; they run automatically on new/updated data.
203
204
 
204
205
  ```python
@@ -209,7 +210,7 @@ t.add_computed_column(
209
210
  )
210
211
  ```
211
212
 
212
- **[Built-in Vector Search:](https://docs.pixeltable.com/docs/datastore/embedding-index)** Add embedding indexes and
213
+ **[Built-in Vector Search:](https://docs.pixeltable.com/datastore/vector-database)** Add embedding indexes and
213
214
  perform similarity searches directly on tables/views.
214
215
 
215
216
  ```python
@@ -223,7 +224,7 @@ t.add_embedding_index(
223
224
  sim = t.img.similarity("cat playing with yarn")
224
225
  ```
225
226
 
226
- **[Incremental View Maintenance:](https://docs.pixeltable.com/docs/datastore/views)** Create virtual tables using iterators
227
+ **[Incremental View Maintenance:](https://docs.pixeltable.com/datastore/views)** Create virtual tables using iterators
227
228
  for efficient processing without data duplication.
228
229
 
229
230
  ```python
@@ -240,7 +241,7 @@ frames = pxt.create_view('frames', videos,
240
241
  iterator=FrameIterator.create(video=videos.video, fps=0.5))
241
242
  ```
242
243
 
243
- **[Seamless AI Integration:](https://docs.pixeltable.com/docs/integrations/frameworks)** Built-in functions for
244
+ **[Seamless AI Integration:](https://docs.pixeltable.com/integrations/frameworks)** Built-in functions for
244
245
  OpenAI, Anthropic, Hugging Face, CLIP, YOLOX, and more.
245
246
 
246
247
  ```python
@@ -264,7 +265,7 @@ t.add_computed_column(
264
265
  )
265
266
  ```
266
267
 
267
- **[Bring Your Own Code:](https://docs.pixeltable.com/docs/datastore/custom-functions)** Extend Pixeltable with UDFs, batch processing, and custom aggregators.
268
+ **[Bring Your Own Code:](https://docs.pixeltable.com/datastore/custom-functions)** Extend Pixeltable with UDFs, batch processing, and custom aggregators.
268
269
 
269
270
  ```python
270
271
  @pxt.udf
@@ -272,7 +273,7 @@ def format_prompt(context: list, question: str) -> str:
272
273
  return f"Context: {context}\nQuestion: {question}"
273
274
  ```
274
275
 
275
- **[Agentic Workflows / Tool Calling:](https://docs.pixeltable.com/docs/examples/chat/tools)** Register `@pxt.udf`,
276
+ **[Agentic Workflows / Tool Calling:](https://docs.pixeltable.com/examples/chat/tools)** Register `@pxt.udf`,
276
277
  `@pxt.query` functions, or **MCP tools** as tools.
277
278
 
278
279
  ```python
@@ -286,7 +287,7 @@ t.add_computed_column(
286
287
  )
287
288
  ```
288
289
 
289
- **[Data Persistence:](https://docs.pixeltable.com/docs/datastore/tables-and-operations#data-operations)** All data,
290
+ **[Data Persistence:](https://docs.pixeltable.com/datastore/tables-and-operations#data-operations)** All data,
290
291
  metadata, and computed results are automatically stored and versioned.
291
292
 
292
293
  ```python
@@ -295,7 +296,7 @@ t.select(t.account, t.balance).collect() # Query its contents
295
296
  t.revert() # Undo the last modification to the table and restore its previous state
296
297
  ```
297
298
 
298
- **[Time Travel:](https://docs.pixeltable.com/docs/datastore/tables-and-operations#data-operations)** By default,
299
+ **[Time Travel:](https://docs.pixeltable.com/datastore/tables-and-operations#data-operations)** By default,
299
300
  Pixeltable preserves the full change history of each table, and any prior version can be selected and queried.
300
301
 
301
302
  ```python
@@ -304,7 +305,7 @@ old_version = pxt.get_table('my_table:472') # Get a handle to a specific table
304
305
  old_version.select(t.account, t.balance).collect() # Query the older version
305
306
  ```
306
307
 
307
- **[SQL-like Python Querying:](https://docs.pixeltable.com/docs/datastore/filtering-and-selecting)** Familiar syntax
308
+ **[SQL-like Python Querying:](https://docs.pixeltable.com/datastore/filtering-and-selecting)** Familiar syntax
308
309
  combined with powerful AI capabilities.
309
310
 
310
311
  ```python
@@ -341,7 +342,7 @@ pxt.export_images_as_fo_dataset(table, table.image) # FiftyOne
341
342
 
342
343
  ## Key Examples
343
344
 
344
- *(See the [Full Quick Start](https://docs.pixeltable.com/docs/overview/quick-start) or
345
+ *(See the [Full Quick Start](https://docs.pixeltable.com/overview/quick-start) or
345
346
  [Notebook Gallery](#-notebook-gallery) for more details)*
346
347
 
347
348
  **1. Multimodal Data Store and Data Transformation (Computed Column):**
@@ -542,7 +543,7 @@ Explore Pixeltable's capabilities interactively:
542
543
  | 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> |
543
544
  | 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> |
544
545
  | 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> |
545
- | 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> |
546
+ | 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/examples/vision/label-studio"> <img src="https://img.shields.io/badge/📚%20Docs-013056" alt="Visit Docs"/></a> |
546
547
  | 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"/> |
547
548
  | **Use Cases** | | **Sample Apps** | |
548
549
  | 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> |
@@ -551,7 +552,7 @@ Explore Pixeltable's capabilities interactively:
551
552
 
552
553
  ## Maintaining Production-Ready Multimodal AI Apps is Still Too Hard
553
554
 
554
- Building robust AI applications, especially [multimodal](https://docs.pixeltable.com/docs/datastore/bringing-data) ones,
555
+ Building robust AI applications, especially [multimodal](https://docs.pixeltable.com/datastore/bringing-data) ones,
555
556
  requires stitching together numerous tools:
556
557
 
557
558
  * ETL pipelines for data loading and transformation.
@@ -1,70 +1,73 @@
1
- pixeltable/__init__.py,sha256=NJIh6nHictV4OeKGRFJ8QQ-FU5doqPT7PFGD7qFkTuM,1628
1
+ pixeltable/__init__.py,sha256=-EBEVxlngasTuD1qkJVHebSfUmYlZQH26qWLmXPRZX8,1716
2
2
  pixeltable/__version__.py,sha256=LnMIuAxx6nAQDMev_jnZyUdgsaiE3F8lulfXQBRl9qQ,112
3
- pixeltable/config.py,sha256=GEHneFtLb47thJZ6nTuJpzcpDG39lNzKPGFdKKfOvkQ,8540
4
- pixeltable/dataframe.py,sha256=Qu1nCwbif9QEtBGyETnGXlGgnznMa_nQjmDnc6DcqOc,64356
5
- pixeltable/env.py,sha256=_v0Ny62RMwJkMgiXoflnXmWbvLRx0eJ4I8CRuZVcT4M,45598
3
+ pixeltable/config.py,sha256=CF_HXxqYlmMaO8EFHymMeh9Q61UZS0xYaXPE4DBTpJU,8929
4
+ pixeltable/dataframe.py,sha256=GpIDZEUF72qcpUGk5OxhcnoSFWYqVOTQiWMPJPUtj-A,64868
5
+ pixeltable/env.py,sha256=Kt9-b7ngmpQ2ZaEqUCbR1_b1g7oY73qg8G6_jC6Qzcw,47118
6
6
  pixeltable/exceptions.py,sha256=Gm8d3TL2iiv6Pj2DLd29wp_j41qNBhxXL9iTQnL4Nk4,1116
7
- pixeltable/globals.py,sha256=mLQk77dsj4QfjGL0jC-aTHAVO327hG1mjmHeOBfiuvw,39950
8
- pixeltable/plan.py,sha256=lG_H9mkixP_Dqcy14DqDNpGBs-JXAJa9kVy6rTUsuc4,49258
7
+ pixeltable/globals.py,sha256=OxH62N_tOV_UH0sKCprdpj2_NfNP5sn9YKs20ixY-bE,40366
8
+ pixeltable/plan.py,sha256=qRHs1fn6my72w_sV40dNpKNBtWh573Nzam3W8zGj6fw,54070
9
9
  pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pixeltable/store.py,sha256=zgzn-28gvRxRm29hc7pFX50Ls_ca-pJOHSDdzFZzeug,22886
11
- pixeltable/type_system.py,sha256=4xnPN684UKC3lhzOoOqVAgR1lOPlHeEHt5Njpc6cGQQ,56131
10
+ pixeltable/store.py,sha256=oC1dsRvY7WsY7KlldYWGwG7uaHSXqsT8zz5QPJxBrRk,22839
11
+ pixeltable/type_system.py,sha256=dbV4HKuRzWu5X0LscjWzdxbgcuy8mX34pMCg0725y0g,56316
12
12
  pixeltable/catalog/__init__.py,sha256=GL0MLxqCBHlhKWqhC3e9B4kwTazagTOiqBHHRjyWbTg,726
13
- pixeltable/catalog/catalog.py,sha256=x_stqOC6CFdklpefFuVflrptGmOqxH4Myo4XzYB3xmU,100345
14
- pixeltable/catalog/column.py,sha256=qEO1eyyJMaWvC_YXnyjs8f2dz_D52jxVYDN1_iVzEPE,13737
13
+ pixeltable/catalog/catalog.py,sha256=FcVldCdkhl0r79s-VQLWF5hgLyydxV7zn1CZ_PHTcME,103047
14
+ pixeltable/catalog/column.py,sha256=lZ24WsVJRcGtfrd8YuSPMWgad3gJPUGtp_YFjEcdX7U,13870
15
15
  pixeltable/catalog/dir.py,sha256=VYTscPlKR6XhupPTXlJ8txAHxS5GSpPJ3LIleDJagVQ,2047
16
16
  pixeltable/catalog/globals.py,sha256=uMIDsbeDzFxZbcgKDTOiT5plC1gAKgz1oxxdh1odIPw,2648
17
17
  pixeltable/catalog/insertable_table.py,sha256=VUuJ8z7OtMqgy_LMzkn1KzeLXdR-9poTttClscQ_uaU,13899
18
18
  pixeltable/catalog/named_function.py,sha256=vZ-j7P4HugWh9OmUzBMwyRYvO3tQn9jWyJz_1stPavU,1210
19
19
  pixeltable/catalog/path.py,sha256=O3FfxrvyX2crijBhp_2k4-3mG3BFxwba-tlPB74QtJQ,3780
20
20
  pixeltable/catalog/schema_object.py,sha256=rQ6-3rzqnOHyEEHi97kai2S7BO3D9AkH7rirnfbGc14,1785
21
- pixeltable/catalog/table.py,sha256=bPG9u-UnktClTQmqQ6cB0MSzp2uxfNkpzDUngJhG2ew,81010
22
- pixeltable/catalog/table_metadata.py,sha256=cLqEgpRKmJOaJnKdJWMz3NLzZ59n41UIzfa_EloDZNU,3567
23
- pixeltable/catalog/table_version.py,sha256=Wqm_10XivTJAT5MGVF76fNGrCEW1jiUD182RnexWuRQ,64176
24
- pixeltable/catalog/table_version_handle.py,sha256=FTPRqcGY-h-POcWyZbd9b8P2D5zIw5OSUvwF_dbyCGo,3608
25
- pixeltable/catalog/table_version_path.py,sha256=IaFVDH06_6ZMuBv5eLNCRTlWizpvz95jgAzqp4OVx_o,9713
21
+ pixeltable/catalog/table.py,sha256=P3NDlzDfAd2fHAcZ0fJb6ZA3ROpzfcVsyRCfVDaaf7U,81051
22
+ pixeltable/catalog/table_metadata.py,sha256=dDUGss6wTv_e1FHIRO9wWC5QhuIaCXTe9Xhd_lUW3Fg,3762
23
+ pixeltable/catalog/table_version.py,sha256=IHcfirzCyPBnn8SxQPjxDgbV3WMCl4niGJiUOqzo0fw,68143
24
+ pixeltable/catalog/table_version_handle.py,sha256=oCQGKdy13TaHDQVLGOMxLtFkYPWs-GdDqlFhfR3WvrU,3732
25
+ pixeltable/catalog/table_version_path.py,sha256=IFRg1QZdh_DMK0KSg1OncRCw4iZWnrIymblvjVCcklY,9237
26
26
  pixeltable/catalog/tbl_ops.py,sha256=Vdcz4Nzvdw09zcQaCEaOr9Uufk2rQHgG0vBvMbQp9R8,1145
27
27
  pixeltable/catalog/update_status.py,sha256=jeRy7WUZ80l4gPY1c5vYcxT1F82nL5KphNrSKKfOdk8,7667
28
- pixeltable/catalog/view.py,sha256=Snki7QNlKThba9MSeEYCaBIwaqfiR0v_FMdIO9SJkFE,15420
29
- pixeltable/exec/__init__.py,sha256=9B31dWrTJ9sdQiVd1OFtHgxa8A2YmAPBDPd6gnFjEqQ,580
28
+ pixeltable/catalog/view.py,sha256=Q8C3_NoGOajvG5-ew67WX5RBIf8acie6R8_lwhKwJ5Y,15661
29
+ pixeltable/exec/__init__.py,sha256=UQ32v0MbLF3vFx6MZLuZKfrqNVoihJFhsYzWOChX1go,704
30
30
  pixeltable/exec/aggregation_node.py,sha256=54YO1tddnIGOlWUwVff9xcghrZr60UNAgBekF7OuxWA,4401
31
31
  pixeltable/exec/cache_prefetch_node.py,sha256=Xq6Ty_0LLipDOQ91keUNVo5DZPn5Ogz39X2ThKQz5WA,10891
32
+ pixeltable/exec/cell_materialization_node.py,sha256=TfkGUQdCmTkkLU_lHEXNvd6SzORPL9cYRxKyssqTz8k,10106
33
+ pixeltable/exec/cell_reconstruction_node.py,sha256=ygB-BOK1I1KW_yFOMFX-E-w2l_-LUbYKXY6mfQXf6Fg,5322
32
34
  pixeltable/exec/component_iteration_node.py,sha256=7k8Wfzjc15SO0V8rc-zYTiB3DQ-euMtNQIOsve_FY7I,4797
33
35
  pixeltable/exec/data_row_batch.py,sha256=ryrhfXczQVrtxrTEyDTyK9ItNZ9wNt15FdM_Mpuuumw,1109
34
36
  pixeltable/exec/exec_context.py,sha256=jKeLStfkjwCKKAooC-7a7qZUnZU5O0_JQhanhVerV9c,984
35
- pixeltable/exec/exec_node.py,sha256=auRbL43-NR2G0rnjs8aK4Q2qAV3IeKDNqduVnoO-2AY,3315
37
+ pixeltable/exec/exec_node.py,sha256=gvXU1nFQqwXNfjUSGAcrB9_2V8Stur6A_dETBkpxqXY,3305
38
+ pixeltable/exec/globals.py,sha256=fAKOvszbntIh4J1nAmvVA9BGGk98NKZ_G9mVEaZ28pk,904
36
39
  pixeltable/exec/in_memory_data_node.py,sha256=XrR3ggNILrJ77n3l4qOiKWfwUVakdRIdRsVasKP17jw,3513
37
- pixeltable/exec/object_store_save_node.py,sha256=JCgx2fYqLK_Vjj1lK5vHebgS1oSqEq52w0Uxg3hJSIU,13322
38
- pixeltable/exec/row_update_node.py,sha256=zU0eSyn81-vRrjAMOadRqU8luTshnPUtIbS7npyLBKY,2798
39
- pixeltable/exec/sql_node.py,sha256=99GW3729YzYT0vYxhACte8XQ-NxIBn1cgfRXzPbz7O4,27233
40
+ pixeltable/exec/object_store_save_node.py,sha256=r78ySsSlpmw0ZsfG2Rp0kR2xfbs_RgrWjZ__gU_oL1Y,13272
41
+ pixeltable/exec/row_update_node.py,sha256=KS68FYUxtUv2JSP5RjJmKBAr_hT26zXmWmdpQrYfvKI,3127
42
+ pixeltable/exec/sql_node.py,sha256=wPk-LbMqDKIVB_lkjIqh2MqBUSIUZIwLEOGPkNeCwhk,31701
40
43
  pixeltable/exec/expr_eval/__init__.py,sha256=sQThSEByK_DLfB-_-18RFhpARx49cSXYEkpCDyi0vQI,61
41
- pixeltable/exec/expr_eval/evaluators.py,sha256=-6s_y29Wh8p35SVKkXtnA0NkzcHVw1Z8PgHGiFrMsqs,17135
42
- pixeltable/exec/expr_eval/expr_eval_node.py,sha256=xi0H3vlhf00gcPI_Zojt7nhpVsKqV5GaWip8TfIz_4k,19781
43
- pixeltable/exec/expr_eval/globals.py,sha256=FL9DwFub1fc8ppzzTdrQytBwylyDkH4mIwciWnIGBcc,7816
44
+ pixeltable/exec/expr_eval/evaluators.py,sha256=t-pJbDW3jjbJLjU53hZtl2uESIX82PSKjMgOzfFi_os,17174
45
+ pixeltable/exec/expr_eval/expr_eval_node.py,sha256=aYupmD1Trc9O11JgrA5g1yvk2QtdNhjB4jymvQzjsTo,19870
46
+ pixeltable/exec/expr_eval/globals.py,sha256=NQp4f7adjkR1zaFS8oBJWlLszEn8d1ionUNlXpoObbc,7933
44
47
  pixeltable/exec/expr_eval/row_buffer.py,sha256=YY0thdlMNNReEOTyPp36xKPeMeXSZ0VrI9bJsXgo7sU,2744
45
48
  pixeltable/exec/expr_eval/schedulers.py,sha256=pNTHiwL8omHa_kodv61gynBHFbJnSg5CktvezrO_yc8,24337
46
- pixeltable/exprs/__init__.py,sha256=AxSMjKNavCT9F6vBaNR-nwX2iupAI5hbMb5hEj65Tfk,1096
47
- pixeltable/exprs/arithmetic_expr.py,sha256=sZPao0qdFWbrDx0eiAVxw1wGHJXZ5ZoCpQaScysBldE,7333
49
+ pixeltable/exprs/__init__.py,sha256=u8z3gv-uHt2Bz0F7heRPOVNa1r2OD1qqUDXnwEdSmlM,1113
50
+ pixeltable/exprs/arithmetic_expr.py,sha256=fMlr9bhpdDuaSm81o2R7ua-UG1QAUM3OoeFcAw2sW2Q,7901
48
51
  pixeltable/exprs/array_slice.py,sha256=C8O0cmGHdc-iVe2FFdW_2jRVR4Gwurzeot6ESEk6RTA,2167
49
- pixeltable/exprs/column_property_ref.py,sha256=rq8VD34fZwAZuN9wIqQEwVay7LTPBKvXXdZPknOJM6M,4422
50
- pixeltable/exprs/column_ref.py,sha256=MH83bYsef5UC4vWU71PE-lPiVd8hVw4tT6sjdCCvWNw,15473
52
+ pixeltable/exprs/column_property_ref.py,sha256=GeDi0FQddyypOKkmlv1yJno8hy4xDDuhnF93gg5GL8E,4412
53
+ pixeltable/exprs/column_ref.py,sha256=zcoQAflGGvzF4N7p9RMoAY7ZdGVwaU4GoemHGuGCmEk,15511
51
54
  pixeltable/exprs/comparison.py,sha256=lgaRx000ZaNH10A4hrtsi5XoZKE-CNEONGMi7jxJfcM,5133
52
55
  pixeltable/exprs/compound_predicate.py,sha256=8nGsBlKaMBe1TT1VrZQ-Khe8rVgB8vukZQSspiHDB7Y,3863
53
- pixeltable/exprs/data_row.py,sha256=bFgaDSaS5rbk_ELWZd3IUmLdBd3addSOqKLa3I1MYCk,12344
54
- pixeltable/exprs/expr.py,sha256=T558PJBeVaHCGgv_TBDUIn-fOZJtSMkz26jGUTpvCVY,35961
56
+ pixeltable/exprs/data_row.py,sha256=2WyAlsxmlBNZplYzvwMtDSE5VU1utPuB91nLSgmd7j4,14397
57
+ pixeltable/exprs/expr.py,sha256=vyRB_ZtJOhRP_ZPagY3G-Hr7BWCy_WA4z9IRycAyOXc,36236
55
58
  pixeltable/exprs/expr_dict.py,sha256=2ZeZ0eACx3VrRNEOjipuT5WxOIzjXQ_DSip8NTH0KRo,1584
56
- pixeltable/exprs/expr_set.py,sha256=OlRTbHAAYH2fOEs1HE-8DIu7Z247xVfoT_9Y58GZoOQ,2559
59
+ pixeltable/exprs/expr_set.py,sha256=OSD2vkcYJnLMJ21stjjomjauOtBcXwr4wqQB5qa1OJ8,2891
57
60
  pixeltable/exprs/function_call.py,sha256=aVDLIggWU-9_zt8-lM2hAzgWkkuu-zVRbVpZinZTEWg,24311
58
61
  pixeltable/exprs/globals.py,sha256=33fq5Ec15z_SkIqz9ILICx18wuGAazpFDUkc_Ppl03c,2288
59
62
  pixeltable/exprs/in_predicate.py,sha256=u98JmBX9XsglKe5uCy1NUMnyi3wioBri_tue2vI9_sk,3799
60
- pixeltable/exprs/inline_expr.py,sha256=XYVKKXZN9BtHN5qlvZna-mgdOlot6WcmPu5usRBYei0,7972
63
+ pixeltable/exprs/inline_expr.py,sha256=Mo7BHEeKYVakg7fb26eBcfUrCMENluXOeilSYobCF4M,7269
61
64
  pixeltable/exprs/is_null.py,sha256=NfA_485hfT69pWyY6u8BhykDUkz5k91AH93azGu6lCg,1087
62
65
  pixeltable/exprs/json_mapper.py,sha256=bJSB39sZgpN9KS0RReDnUhTCwg-4Y4cgXXaFNy3o3wU,7035
63
- pixeltable/exprs/json_path.py,sha256=nct3ZEgJuBbN_50wdnX7kNqwt5CzxnpgpKRcL2ST-IA,7126
66
+ pixeltable/exprs/json_path.py,sha256=SRhuKwtzj6Fde4tcG8ADTeabOq_daFbXAtjndF_ep24,8494
64
67
  pixeltable/exprs/literal.py,sha256=OCJL_pw_WKqx3bXMEwL6yNaKVAKDtGRzSZUFwucRxZI,4860
65
68
  pixeltable/exprs/method_ref.py,sha256=NNhJTGo7luZLh8EJdFIZAax9LiiqqDCEK1AwPmHip0w,2642
66
69
  pixeltable/exprs/object_ref.py,sha256=idYFcT27jv0BjtJT3paL37xDrZZc35_3eCJyQOIqdZU,1999
67
- pixeltable/exprs/row_builder.py,sha256=WyyuMRnuEUP42IMB6K3rPm-mxwIO8U9MPpw6WWMDAIM,22875
70
+ pixeltable/exprs/row_builder.py,sha256=XYHI0_459YxLT4ssAdq-8N4wVYI3MtJ7DAc9wz877_s,24529
68
71
  pixeltable/exprs/rowid_ref.py,sha256=8MvQs3Uu01Gz__WXw9BCJv0CHrSaFDuQtU7rUr1AWEk,5008
69
72
  pixeltable/exprs/similarity_expr.py,sha256=i0UUnMSKKGXd3Uksu6FU2NvkfG0qzfzfi-GPy-LdutM,3688
70
73
  pixeltable/exprs/sql_element_cache.py,sha256=c7Q6vFK4xnf9vmcRYnXiAcwPBBwmw0dolftM4BwDO8c,1359
@@ -83,12 +86,12 @@ pixeltable/func/query_template_function.py,sha256=aX6GgANSdDTQwrObEV-B_la_oVRVky
83
86
  pixeltable/func/signature.py,sha256=LdHbdim14Zu7Xt1pMhOCzl6Xn2fq5CQQpwSXmu28umw,14988
84
87
  pixeltable/func/tools.py,sha256=2_M_u0Jiy5-uToZziB4O54aTuJeaytPmh71q3I2ydNw,6062
85
88
  pixeltable/func/udf.py,sha256=6tKpMt37t3BmXwRyA5fFAd6OM4D5EPEd2KuAr7DQhr0,13231
86
- pixeltable/functions/__init__.py,sha256=ZeRB7ksbzjdrvePXtd_mNxyP2RhjvN0ayl5nv7TdWcQ,613
89
+ pixeltable/functions/__init__.py,sha256=PU2SiM4HE4zA9U85OLI5i3sC_--rqrqtAFpp8CsQsRk,629
87
90
  pixeltable/functions/anthropic.py,sha256=q1rXr9MWCmnncfZXe8HlU1MVQZdAl4Ft8vdIpR-jgOg,10810
88
91
  pixeltable/functions/audio.py,sha256=S9xSg45Fx5kmB4NxOTSG99_5Kxc8kFfxuawV7qjMeS8,1660
89
- pixeltable/functions/bedrock.py,sha256=lTCFHjYunF3minBGWcjXR90yJ8resFjXr4niyKhfxms,4217
92
+ pixeltable/functions/bedrock.py,sha256=pdoncO6kmL1kt2oN9q91d8vcEeTSKOobJJl4hnW_KA4,4411
90
93
  pixeltable/functions/date.py,sha256=qs1svJ9FVod3OTa5hQNKIuashb6tVhW_2EAEXYGQX74,5308
91
- pixeltable/functions/deepseek.py,sha256=iw59TKKcw3VqbHMHB2ugtcTPeTVKuHp_3pfkjF6DYmE,3550
94
+ pixeltable/functions/deepseek.py,sha256=gbNBVDlHes1zWoYQTrixX3Vp1xRyATIGoFqdAKJtv-E,3701
92
95
  pixeltable/functions/fireworks.py,sha256=q7eWlYfiWbA0d9r3CB_NAe1fw3q-Z7qsw2gyGJNgWLQ,4786
93
96
  pixeltable/functions/gemini.py,sha256=Stpchxr7FfxbwCp3WsPR8zfd_GFdLMCWW1G7vt0DpNk,8924
94
97
  pixeltable/functions/globals.py,sha256=OyPJUJ4S6VWyzxstxIzk3xzYBGIEMwgk1RmSTWTZzdI,5106
@@ -96,17 +99,18 @@ pixeltable/functions/groq.py,sha256=61XbgY4ItASomMw9t-q8HBuv8II_ssclthjA7sL6jik,
96
99
  pixeltable/functions/huggingface.py,sha256=Y-io3EungSs5ibr43vLEXs4dz_Ej20F1nglD0fyLrXA,20371
97
100
  pixeltable/functions/image.py,sha256=IKXljMma-uU88efptC3F4aywau7DYcD-Nqd3YpmRNRw,13971
98
101
  pixeltable/functions/json.py,sha256=d7-AvwytUQtQYF_JnWJkptT_Yq0NgMpWfVk-m3U6qTY,807
99
- pixeltable/functions/llama_cpp.py,sha256=uop0K6oNxCnQXbdiL-_6PVsusc1xqCtwTipAyIbQ-Uc,4119
100
- pixeltable/functions/math.py,sha256=jhlD7v4eY-6KdmsFEBqb-W_vspGahOosUvFahWFzxrU,4969
102
+ pixeltable/functions/llama_cpp.py,sha256=7m0g_g3YxmyALDXfvqcbm-eCYWgDZhZfCFfj5PjkJVU,4318
103
+ pixeltable/functions/math.py,sha256=MNJGf_MAyZP3O5a7zf6Ii1xritfqBwFeNYLDv_ZjQ4A,5000
101
104
  pixeltable/functions/mistralai.py,sha256=Fk52mfWUfxVy-yCxhH6wrGS7nLLSiOOrWxbTkkiQ-O8,5542
102
- pixeltable/functions/ollama.py,sha256=4-6h9Foq_7Ut7JtEHGkeg1KbuKaFywSuMrKiw0xAyCA,4231
103
- pixeltable/functions/openai.py,sha256=bxHzuJybDrjaYaLnKiI84U2NvtpIBU_iidrJq3a1Hzg,28999
105
+ pixeltable/functions/ollama.py,sha256=fKq4XVe7HQggDpW0S5bXbQ4A9CDPM7GCNERGVX0mwLk,4401
106
+ pixeltable/functions/openai.py,sha256=rKTbLOr7N5_VMyM9gp4X70b2p1CtAbCKqNVAKaK5Ypc,28999
107
+ pixeltable/functions/openrouter.py,sha256=W6nBNS-H8zmuKqoqRy2f7mTWucufzPTWlrFX2TYTsnw,4685
104
108
  pixeltable/functions/replicate.py,sha256=sPvRGr0j0kCDc6Vz3mPUioFflApijukvZWJJUO2bqIQ,2429
105
109
  pixeltable/functions/string.py,sha256=LdBNOna5PUSPmM5VlJ_qhmwzyFhumW0k6Dvx2rXSZtc,25356
106
110
  pixeltable/functions/timestamp.py,sha256=3GVCVIWdry96Qk5XXuvbJ58Tp30iY5snBibzl2CHjQc,9143
107
111
  pixeltable/functions/together.py,sha256=A8J19BXywyWQ6a2_n05-8uIG5jquOBGqPmW3mb-NrIc,8842
108
112
  pixeltable/functions/util.py,sha256=uQNkyBSkTVMe1wbUI2Q0nz-mM3qPVTF86yK8c9OFIcE,954
109
- pixeltable/functions/video.py,sha256=LQ-1KHoU6DjgCWlj0koBSVO6vH4JKvfl1lGIntWoSSI,30854
113
+ pixeltable/functions/video.py,sha256=0gB3utWqDqJS6AT2cts-TjtaI9i68SQHpHD9KiBh9lU,34909
110
114
  pixeltable/functions/vision.py,sha256=17h9bOm3NJyQzFMBwXDHMqnkcuCspyQJgHdBOXV1Ip8,15380
111
115
  pixeltable/functions/whisper.py,sha256=u2QcDU7JdtgLIImCkFPkzjWEjLTJIrlSkAWqeITyIJw,3103
112
116
  pixeltable/functions/whisperx.py,sha256=NapvBQlIR6FfYeUP328Kjv7a9zgFZPghiFtsvgzhKZk,7724
@@ -119,23 +123,23 @@ pixeltable/io/__init__.py,sha256=k8jlxi2IB_yA8yYTk9lf7qyuayxUbvs9xDuZcO77sFY,716
119
123
  pixeltable/io/datarows.py,sha256=s2fDQTttGxq7cS5JwKFEJRSKn6WsXTaGdmm9VJSl_2M,6154
120
124
  pixeltable/io/external_store.py,sha256=rOYBwTqcZZVU2toWxJ_9Iy2w2YO0DhuABrM2xGmqHSo,14787
121
125
  pixeltable/io/fiftyone.py,sha256=6KyOqJbRXJzF96Ob4B3yZzyU0yveLbvuf6thjfrZZwE,6891
122
- pixeltable/io/globals.py,sha256=B9ubI9Z0m2wGPZXWmZm10vlaP0UCuUsVyrMWvyudZSc,11360
126
+ pixeltable/io/globals.py,sha256=fcGCkVMdUp4Q7sMHWLB7i_GDFvXQNEJ6KAi78rh5MdY,11378
123
127
  pixeltable/io/hf_datasets.py,sha256=5WfWfXoQppG1Bx_pS5n44KO1Vo_mEb_S82PLB8cLfAU,5606
124
128
  pixeltable/io/label_studio.py,sha256=PsKZbcko7OzxkNiay2rgpt8VoTK705k4M8AJ7AjCaew,31438
125
129
  pixeltable/io/lancedb.py,sha256=kNcYXptieMlJ6yxEIZHVFklEMOEB2mrSyp7XZmOw4qs,82
126
130
  pixeltable/io/pandas.py,sha256=xQmkwbqE9_fjbbPUgeG5yNICrbVVK73UHxDL-cgrQw0,9007
127
- pixeltable/io/parquet.py,sha256=qVvg9nixJnK9gXYxZocD8HE13SznyLrgW9IsehtT4j4,4101
128
- pixeltable/io/table_data_conduit.py,sha256=8jwQ3IOoOBS-8j2TEfgiqsFUD85kEP5IjoC0dg2uPEk,22058
131
+ pixeltable/io/parquet.py,sha256=iKdYRAx8knYyZ1smfJlexCUoer2rI1pC-E8L0OnNY2E,4085
132
+ pixeltable/io/table_data_conduit.py,sha256=eb5yCfCePzTjRijBcRGAqSJqhkb1p68zNCGCMkI7LsM,22909
129
133
  pixeltable/io/utils.py,sha256=qzBTmqdIawXMt2bfXQOraYnEstL69eC2Z33nl8RrwJk,4244
130
134
  pixeltable/iterators/__init__.py,sha256=hbQhrz0LShLGOPcT1SnWl1s1nBUzAjWino64CfFT_UA,537
131
135
  pixeltable/iterators/audio.py,sha256=khW4M4P_J5twz1Eu3nuDP_73C9iWeCYZ5K_zQysvYxI,9671
132
136
  pixeltable/iterators/base.py,sha256=ZC0ZvXL4iw6AmT8cu-Mdx-T2UG9nmJYV1C6LK4efAfw,1669
133
- pixeltable/iterators/document.py,sha256=UMmLeLQxyNfbhI8p3rBrE-sYrnJhpEUVaMLM50Iq-e8,19972
137
+ pixeltable/iterators/document.py,sha256=dc1MJLS6VVYFBP_bodvf1HrmeMKZvc3vy6ilVAxTwew,21080
134
138
  pixeltable/iterators/image.py,sha256=RrFdf5cnFIQzWKJk4uYi1m1p2qAiz909THYhRQ27DbY,3603
135
139
  pixeltable/iterators/string.py,sha256=URj5edWp-CsorjN_8nnfWGvtIFs_Zh4VPm6htlJbFkU,1257
136
- pixeltable/iterators/video.py,sha256=8xjoelWoSsP0YDr9YGdugseXviGmqoytkgz4ESXC3iw,16105
137
- pixeltable/metadata/__init__.py,sha256=oTO9kN6h4xJ2lsk4a2bq6ejAD-4wToy7b5_i3Pq1Qnc,3289
138
- pixeltable/metadata/notes.py,sha256=3fdZDFpL1-b194Ejv0Y0YP-vbnV-XvVP9wOmZM9XARA,1545
140
+ pixeltable/iterators/video.py,sha256=xgzZxeuF1J3HLihy8f7kpF1G6k2aFU_uoRmtx9Fq8bM,19574
141
+ pixeltable/metadata/__init__.py,sha256=8ytwPwl2GkaS8JaBLneqT8jxxRDbsKaO52bRip8SpcI,3289
142
+ pixeltable/metadata/notes.py,sha256=heoQFFkn_vo-vPO6K2_6gcE2LpL8Ca_2wjsUNcN7_0E,1598
139
143
  pixeltable/metadata/schema.py,sha256=CL877NmO5ZOusqhURKkMjCoh00alW199p4onXab3iVg,13824
140
144
  pixeltable/metadata/utils.py,sha256=NJQXWhhK1hdOZ4H3hh9N0mqbl-I9JqMUqrfA6OWLflE,2682
141
145
  pixeltable/metadata/converters/convert_10.py,sha256=myYIo1DyccnsQUxDKG6mafnU5ge_EhZpHg_pesKBoK4,708
@@ -167,38 +171,41 @@ pixeltable/metadata/converters/convert_36.py,sha256=g1rhZhAYfZpAwUgE3D1aipIR4RNv
167
171
  pixeltable/metadata/converters/convert_37.py,sha256=IVZGtKFaaYMGBs39V_H_okWvpxxadTUWqxoln0cNeQI,392
168
172
  pixeltable/metadata/converters/convert_38.py,sha256=YyNyocwzzdJRcI0YSCo_70Q4hSk63235iE4IxhwSEzs,1169
169
173
  pixeltable/metadata/converters/convert_39.py,sha256=YaEfgStxtYGRbuRLFw8wTAZVJRzIU6zL6nPU2zuDcEU,4658
174
+ pixeltable/metadata/converters/convert_40.py,sha256=qtsbIGv_YcMKswsSam2PBsspIl0mDsCOSiaRW8yN1wM,2892
170
175
  pixeltable/metadata/converters/util.py,sha256=QUBOj2F_6rCAdIo0lgD1IVgAM15Vmq7ikQspB4s0eQ8,7732
171
176
  pixeltable/mypy/__init__.py,sha256=cD_oHXClR_bDM8qVNIfaOAgRhQjPfcWvLcinz79ua6o,54
172
177
  pixeltable/mypy/mypy_plugin.py,sha256=KCjzKOeKW5CBqJOq9Ch7ZJ25ICPc4nlTB49DxtC6oDM,5460
173
178
  pixeltable/share/__init__.py,sha256=PTX1mw61Ss4acEOI-sUlu0HaoVsosLqwDfh0ldn8Hkg,84
174
- pixeltable/share/packager.py,sha256=UjpEv7wU_R4BKstMYw7PPULrSa4szN9KP8wwM4NU1-g,31563
179
+ pixeltable/share/packager.py,sha256=aPyFj2lB8876CpEPpRgSWazPiwDEe_p-5FuUqluo9DY,38537
175
180
  pixeltable/share/publish.py,sha256=Cpbn10duCXoe5k0RaB2WpJjbeMhXd5DXEV7OLQpmtJA,10899
176
181
  pixeltable/utils/__init__.py,sha256=45qEM20L2VuIe-Cc3BTKWFqQb-S7A8qDtmmgl77zYK0,1728
177
- pixeltable/utils/arrow.py,sha256=U7vb_ffPCR7zv-phyBMPMDosPdKN6LK4IVMpfm2mRy8,10424
178
- pixeltable/utils/av.py,sha256=omJufz62dzaTTwlR7quKfcT7apf8KkBLJ9cQ9240dt0,4016
182
+ pixeltable/utils/arrow.py,sha256=jVW5I8AEqyR7uVcjHkM8QA14LO3qIuj09Fl1coif1nI,10335
183
+ pixeltable/utils/av.py,sha256=g6E64jmqiqnfL32syjqORsWLUnNG6CgGwmyLjtY0K_Q,5913
179
184
  pixeltable/utils/coco.py,sha256=Y1DWVYguZD4VhKyf7JruYfHWvhkJLq39fzbiSm5cdyY,7304
180
185
  pixeltable/utils/code.py,sha256=3CZMVJm69JIG5sxmd56mjB4Fo4L-s0_Y8YvQeJIj0F0,1280
181
- pixeltable/utils/console_output.py,sha256=x23iDnNwUbsr7Ec20BQ7BLATTsrQZflxc9NucAt_sVU,1150
186
+ pixeltable/utils/console_output.py,sha256=Xodh5K3bI_2WsL6ySTVHXM7S3FZKi7RLwIqFIxip-mg,1232
182
187
  pixeltable/utils/coroutine.py,sha256=d87kLlkVIZq2u0kTE7kJ5Tc_yjEkdGi5sXAuxjLLxXY,896
183
188
  pixeltable/utils/dbms.py,sha256=qigvBIVzEfii9rcxrkEvwNpNi7gvmf0uwr2CMjenJYc,3012
184
189
  pixeltable/utils/description_helper.py,sha256=lwAduHT1yofH6loyNBwuCnMh-sY2e2FqHKDTVhrZDbg,3724
185
190
  pixeltable/utils/documents.py,sha256=x3UHU7eykibyA3eVkSrCK1CQoaid228vp96WUEESssU,3105
186
- pixeltable/utils/exception_handler.py,sha256=yrTAtUJEOhldps_k6aRLEf5yQ8gYGhl9c6ewYNC4Qfc,2476
191
+ pixeltable/utils/exception_handler.py,sha256=lPpNLzXOGNcP7SbsNL0q1mBbWAGZQ4opgNDZZPgbR3g,1463
187
192
  pixeltable/utils/filecache.py,sha256=3TTEqhGg0pEAP_l0GKn34uspC4dha1jPab1Ka9_oTBM,10877
188
193
  pixeltable/utils/formatter.py,sha256=tbMxE9rBw6wdKUnJhNZ8h9uAF8dZKcihQ2KesqAag9A,10096
189
194
  pixeltable/utils/gcs_store.py,sha256=sk2TYZZv4QMJi_hyGvKAzORuABBblEGt4tgnq4eXdho,11361
190
195
  pixeltable/utils/http_server.py,sha256=6khOAtpVj1lDIm9Dx8VIECLm87cFEp4IFbAg8T92A2o,2441
191
196
  pixeltable/utils/iceberg.py,sha256=COeNqqy5RRMkDGLS8CTnaUeAccG10x2fwP3e1veuqIA,522
197
+ pixeltable/utils/image.py,sha256=3KwtA106LT0pxtPV8EiCvpkfeNBVpjfvzkoC5PBOD74,262
192
198
  pixeltable/utils/lancedb.py,sha256=Otr-t47YACRo0Cq9-FyelcUuan1Kgs4gxCOpLOckj3s,2988
193
199
  pixeltable/utils/local_store.py,sha256=HwxgkjW0r4Uc50XqLjMFpLecWnFeUIU0GPcIp_V5cig,13529
194
- pixeltable/utils/object_stores.py,sha256=KUWYYm8g5HIPnwL4h1VgGQnGcDESX9ZQ65PaCxmfum4,21407
200
+ pixeltable/utils/misc.py,sha256=HxTAxPVrZGtPPDGefXzzprYlT8TGiZa4mZkfHNsfdWs,137
201
+ pixeltable/utils/object_stores.py,sha256=JvDfUfShAP-qmlEH9ml-qvWVx9fuZXpYdLx0-YdQzWw,21983
195
202
  pixeltable/utils/pydantic.py,sha256=-ztUsuRXA7B6bywb5Yy1h5pNQ2DnsT1d0oHMxqtK3WY,2011
196
203
  pixeltable/utils/pytorch.py,sha256=77x2g4N6dkfYvqbxjYi_rBRiNnMMZAb2cNtBw0hOCHg,3582
197
- pixeltable/utils/s3_store.py,sha256=l6X6vakjxtryUBJMsFYk7PUJLsMdmrVcUkF7LwZXdk0,14714
204
+ pixeltable/utils/s3_store.py,sha256=ZLKyChX3SPOJSWVULwS7b8E2nBQiKOamEGGbdrkrGdo,16454
198
205
  pixeltable/utils/sql.py,sha256=Sa4Lh-VGe8GToU5W7DRiWf2lMl9B6saPqemiT0ZdHEc,806
199
206
  pixeltable/utils/transactional_directory.py,sha256=OFKmu90oP7KwBAljwjnzP_w8euGdAXob3y4Nx9SCNHA,1357
200
- pixeltable-0.4.15.dist-info/METADATA,sha256=yaHrz0jidyCrfvXfZ1ANwI5nGvTAGkaroXZRrpMUZpU,25631
201
- pixeltable-0.4.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
202
- pixeltable-0.4.15.dist-info/entry_points.txt,sha256=rrKugZmxDtGnXCnEQ5UJMaaSYY7-g1cLjUZ4W1moIhM,98
203
- pixeltable-0.4.15.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
204
- pixeltable-0.4.15.dist-info/RECORD,,
207
+ pixeltable-0.4.17.dist-info/METADATA,sha256=X-yDPyOrCvVFrgrh7ivn_tni71BuyO1OohVo5So4k6Y,25534
208
+ pixeltable-0.4.17.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
209
+ pixeltable-0.4.17.dist-info/entry_points.txt,sha256=rrKugZmxDtGnXCnEQ5UJMaaSYY7-g1cLjUZ4W1moIhM,98
210
+ pixeltable-0.4.17.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
211
+ pixeltable-0.4.17.dist-info/RECORD,,