pixeltable 0.4.17__py3-none-any.whl → 0.4.18__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.

pixeltable/store.py CHANGED
@@ -111,6 +111,8 @@ class StoreBase:
111
111
  idx_name = f'vmax_idx_{tbl_version.id.hex}'
112
112
  idxs.append(sql.Index(idx_name, self.v_max_col, postgresql_using=Env.get().dbms.version_index_type))
113
113
 
114
+ # TODO: Include indices to ensure a completely accurate SA table definition?
115
+
114
116
  self.sa_tbl = sql.Table(self._storage_name(), self.sa_md, *all_cols, *idxs)
115
117
  # _logger.debug(f'created sa tbl for {tbl_version.id!s} (sa_tbl={id(self.sa_tbl):x}, tv={id(tbl_version):x})')
116
118
 
@@ -195,15 +197,34 @@ class StoreBase:
195
197
  log_stmt(_logger, stmt)
196
198
  Env.get().conn.execute(stmt)
197
199
 
198
- def ensure_columns_exist(self, cols: Iterable[catalog.Column]) -> None:
200
+ def ensure_updated_schema(self) -> None:
201
+ from pixeltable.utils.dbms import PostgresqlDbms
202
+
203
+ # This should only be called during replica creation where the underlying DBMS is Postgres.
204
+ assert isinstance(Env.get().dbms, PostgresqlDbms)
205
+
199
206
  conn = Env.get().conn
207
+ tv = self.tbl_version.get()
208
+
209
+ # Ensure columns exist
200
210
  sql_text = f'SELECT column_name FROM information_schema.columns WHERE table_name = {self._storage_name()!r}'
201
211
  result = conn.execute(sql.text(sql_text))
202
212
  existing_cols = {row[0] for row in result}
203
- for col in cols:
204
- if col.store_name() not in existing_cols:
213
+ for col in tv.cols:
214
+ if col.is_stored and col.store_name() not in existing_cols:
215
+ _logger.debug(f'Adding missing column {col.store_name()!r} to store table {self._storage_name()!r}')
205
216
  self.add_column(col)
206
217
 
218
+ # Ensure indices exist
219
+ sql_text = f'SELECT indexname FROM pg_indexes WHERE tablename = {self._storage_name()!r}'
220
+ result = conn.execute(sql.text(sql_text))
221
+ existing_idxs = {row[0] for row in result}
222
+ for idx_name, idx_info in tv.all_idxs.items():
223
+ store_name = tv._store_idx_name(idx_info.id)
224
+ if store_name not in existing_idxs:
225
+ _logger.debug(f'Creating missing index {idx_name!r} on store table {self._storage_name()!r}')
226
+ idx_info.idx.create_index(store_name, idx_info.val_col)
227
+
207
228
  def load_column(self, col: catalog.Column, exec_plan: ExecNode, abort_on_exc: bool) -> int:
208
229
  """Update store column of a computed column with values produced by an execution plan
209
230
 
pixeltable/utils/av.py CHANGED
@@ -91,25 +91,58 @@ def has_audio_stream(path: str) -> bool:
91
91
  return any(stream['type'] == 'audio' for stream in md['streams'])
92
92
 
93
93
 
94
- def ffmpeg_clip_cmd(input_path: str, output_path: str, start_time: float, duration: float | None = None) -> list[str]:
95
- # the order of arguments is critical: -ss <start> -t <duration> -i <input>
96
- cmd = ['ffmpeg', '-ss', str(start_time)]
94
+ def ffmpeg_clip_cmd(
95
+ input_path: str,
96
+ output_path: str,
97
+ start_time: float,
98
+ duration: float | None = None,
99
+ fast: bool = True,
100
+ video_encoder: str | None = None,
101
+ video_encoder_args: dict[str, Any] | None = None,
102
+ ) -> list[str]:
103
+ cmd = ['ffmpeg']
104
+ if fast:
105
+ # fast: -ss before -i
106
+ cmd.extend(
107
+ [
108
+ '-ss',
109
+ str(start_time),
110
+ '-i',
111
+ input_path,
112
+ '-map',
113
+ '0', # Copy all streams from input
114
+ '-c',
115
+ 'copy', # Stream copy (no re-encoding)
116
+ ]
117
+ )
118
+ else:
119
+ if video_encoder is None:
120
+ video_encoder = Env.get().default_video_encoder
121
+
122
+ # accurate: -ss after -i
123
+ cmd.extend(
124
+ [
125
+ '-i',
126
+ input_path,
127
+ '-ss',
128
+ str(start_time),
129
+ '-map',
130
+ '0', # Copy all streams from input
131
+ '-c:a',
132
+ 'copy', # audio copy
133
+ '-c:s',
134
+ 'copy', # subtitle copy
135
+ '-c:v',
136
+ video_encoder, # re-encode video
137
+ ]
138
+ )
139
+ if video_encoder_args is not None:
140
+ for k, v in video_encoder_args.items():
141
+ cmd.extend([f'-{k}', str(v)])
142
+
97
143
  if duration is not None:
98
144
  cmd.extend(['-t', str(duration)])
99
- cmd.extend(
100
- [
101
- '-i', # Input file
102
- input_path,
103
- '-y', # Overwrite output file
104
- '-loglevel',
105
- 'error', # Only show errors
106
- '-c',
107
- 'copy', # Stream copy (no re-encoding)
108
- '-map',
109
- '0', # Copy all streams from input
110
- output_path,
111
- ]
112
- )
145
+ cmd.extend(['-loglevel', 'error', output_path])
113
146
  return cmd
114
147
 
115
148
 
@@ -130,44 +163,39 @@ def ffmpeg_segment_cmd(
130
163
  'ffmpeg',
131
164
  '-i',
132
165
  input_path,
133
- '-f',
134
- 'segment', # Use segment muxer
166
+ '-map',
167
+ '0', # Copy all streams from input
168
+ '-c:a',
169
+ 'copy', # don't re-encode audio
170
+ '-c:v',
171
+ video_encoder, # re-encode video
135
172
  ]
173
+ if video_encoder_args is not None:
174
+ for k, v in video_encoder_args.items():
175
+ cmd.extend([f'-{k}', str(v)])
176
+ cmd.extend(['-f', 'segment'])
136
177
 
178
+ # -force_key_frames needs to precede -f segment
137
179
  if segment_duration is not None:
138
180
  cmd.extend(
139
181
  [
140
- '-segment_time',
141
- str(segment_duration), # Target segment duration
142
- '-break_non_keyframes',
143
- '1', # need to break at non-keyframes to get frame-accurate segments
144
182
  '-force_key_frames',
145
183
  f'expr:gte(t,n_forced*{segment_duration})', # Force keyframe at each segment boundary
184
+ '-f',
185
+ 'segment',
186
+ '-segment_time',
187
+ str(segment_duration),
146
188
  ]
147
189
  )
148
190
  else:
149
191
  assert segment_times is not None
150
192
  times_str = ','.join([str(t) for t in segment_times])
151
- cmd.extend(['-segment_times', times_str, '-force_key_frames', times_str])
193
+ cmd.extend(['-force_key_frames', times_str, '-f', 'segment', '-segment_times', times_str])
152
194
 
153
195
  cmd.extend(
154
196
  [
155
197
  '-reset_timestamps',
156
198
  '1', # Reset timestamps for each segment
157
- '-map',
158
- '0', # Copy all streams from input
159
- '-c:a',
160
- 'copy', # don't re-encode audio
161
- '-c:v',
162
- video_encoder, # re-encode video
163
- ]
164
- )
165
- if video_encoder_args is not None:
166
- for k, v in video_encoder_args.items():
167
- cmd.extend([f'-{k}', str(v)])
168
-
169
- cmd.extend(
170
- [
171
199
  '-loglevel',
172
200
  'error', # Only show errors
173
201
  output_pattern,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pixeltable
3
- Version: 0.4.17
3
+ Version: 0.4.18
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
@@ -126,7 +126,7 @@ t.add_computed_column(
126
126
  # Extract specific fields from detection results
127
127
  t.add_computed_column(detections_text=t.detections.label_text)
128
128
 
129
- # OpenAI Vision API integration with built-in rate limiting and async managemennt
129
+ # OpenAI Vision API integration with built-in rate limiting and async management
130
130
  from pixeltable.functions import openai
131
131
 
132
132
  t.add_computed_column(
@@ -343,7 +343,7 @@ pxt.export_images_as_fo_dataset(table, table.image) # FiftyOne
343
343
  ## Key Examples
344
344
 
345
345
  *(See the [Full Quick Start](https://docs.pixeltable.com/overview/quick-start) or
346
- [Notebook Gallery](#-notebook-gallery) for more details)*
346
+ [Notebook Gallery](#notebook-gallery) for more details)*
347
347
 
348
348
  **1. Multimodal Data Store and Data Transformation (Computed Column):**
349
349
 
@@ -543,7 +543,7 @@ Explore Pixeltable's capabilities interactively:
543
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> |
544
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> |
545
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> |
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
+ | Embedding Index | <a target="_blank" href="https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/notebooks/feature-guides/embedding-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> |
547
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"/> |
548
548
  | **Use Cases** | | **Sample Apps** | |
549
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> |
@@ -1,16 +1,16 @@
1
1
  pixeltable/__init__.py,sha256=-EBEVxlngasTuD1qkJVHebSfUmYlZQH26qWLmXPRZX8,1716
2
2
  pixeltable/__version__.py,sha256=LnMIuAxx6nAQDMev_jnZyUdgsaiE3F8lulfXQBRl9qQ,112
3
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
4
+ pixeltable/dataframe.py,sha256=EOfxMZPdDRfvvLEeFKt-ocJv_PTWYbza7QG9dd4L9Do,64868
5
+ pixeltable/env.py,sha256=gnCsMRszzlsIcqbwzDii_WLXMvcdh55JvaclFM3eTRc,47297
6
6
  pixeltable/exceptions.py,sha256=Gm8d3TL2iiv6Pj2DLd29wp_j41qNBhxXL9iTQnL4Nk4,1116
7
- pixeltable/globals.py,sha256=OxH62N_tOV_UH0sKCprdpj2_NfNP5sn9YKs20ixY-bE,40366
8
- pixeltable/plan.py,sha256=qRHs1fn6my72w_sV40dNpKNBtWh573Nzam3W8zGj6fw,54070
7
+ pixeltable/globals.py,sha256=nUU0ElOlBM0KhrlZJ26FjFxitkWDqBKz-mNUxJPCULg,41291
8
+ pixeltable/plan.py,sha256=oaNmaiCkTkcYNypzZj49xkqvJmVGZV4KWPs6IhwSL5E,53920
9
9
  pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- pixeltable/store.py,sha256=oC1dsRvY7WsY7KlldYWGwG7uaHSXqsT8zz5QPJxBrRk,22839
10
+ pixeltable/store.py,sha256=TTSAYSQDwq3atDC_UZ41Rk6Cc1OZLVyfy-WoEQ9BVJY,23890
11
11
  pixeltable/type_system.py,sha256=dbV4HKuRzWu5X0LscjWzdxbgcuy8mX34pMCg0725y0g,56316
12
12
  pixeltable/catalog/__init__.py,sha256=GL0MLxqCBHlhKWqhC3e9B4kwTazagTOiqBHHRjyWbTg,726
13
- pixeltable/catalog/catalog.py,sha256=FcVldCdkhl0r79s-VQLWF5hgLyydxV7zn1CZ_PHTcME,103047
13
+ pixeltable/catalog/catalog.py,sha256=NvOss8B0RGG656tINPN01GHwyJsmKVNqOJ6q64UUfC0,103825
14
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
@@ -18,9 +18,9 @@ pixeltable/catalog/insertable_table.py,sha256=VUuJ8z7OtMqgy_LMzkn1KzeLXdR-9poTtt
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=P3NDlzDfAd2fHAcZ0fJb6ZA3ROpzfcVsyRCfVDaaf7U,81051
21
+ pixeltable/catalog/table.py,sha256=M_pnUeZbwCvnxzJabJVPiqIE15xC6gODqIjpf9Z8gKU,81481
22
22
  pixeltable/catalog/table_metadata.py,sha256=dDUGss6wTv_e1FHIRO9wWC5QhuIaCXTe9Xhd_lUW3Fg,3762
23
- pixeltable/catalog/table_version.py,sha256=IHcfirzCyPBnn8SxQPjxDgbV3WMCl4niGJiUOqzo0fw,68143
23
+ pixeltable/catalog/table_version.py,sha256=fDAr6518LFkUWdHMym940wni1OP-3vzeW_d4-BxoLRY,68268
24
24
  pixeltable/catalog/table_version_handle.py,sha256=oCQGKdy13TaHDQVLGOMxLtFkYPWs-GdDqlFhfR3WvrU,3732
25
25
  pixeltable/catalog/table_version_path.py,sha256=IFRg1QZdh_DMK0KSg1OncRCw4iZWnrIymblvjVCcklY,9237
26
26
  pixeltable/catalog/tbl_ops.py,sha256=Vdcz4Nzvdw09zcQaCEaOr9Uufk2rQHgG0vBvMbQp9R8,1145
@@ -33,13 +33,13 @@ pixeltable/exec/cell_materialization_node.py,sha256=TfkGUQdCmTkkLU_lHEXNvd6SzORP
33
33
  pixeltable/exec/cell_reconstruction_node.py,sha256=ygB-BOK1I1KW_yFOMFX-E-w2l_-LUbYKXY6mfQXf6Fg,5322
34
34
  pixeltable/exec/component_iteration_node.py,sha256=7k8Wfzjc15SO0V8rc-zYTiB3DQ-euMtNQIOsve_FY7I,4797
35
35
  pixeltable/exec/data_row_batch.py,sha256=ryrhfXczQVrtxrTEyDTyK9ItNZ9wNt15FdM_Mpuuumw,1109
36
- pixeltable/exec/exec_context.py,sha256=jKeLStfkjwCKKAooC-7a7qZUnZU5O0_JQhanhVerV9c,984
36
+ pixeltable/exec/exec_context.py,sha256=dODbeIXOsxFaIsPoE_q0ybaMqyEsg6JXcw0jOF8jd_Y,1363
37
37
  pixeltable/exec/exec_node.py,sha256=gvXU1nFQqwXNfjUSGAcrB9_2V8Stur6A_dETBkpxqXY,3305
38
38
  pixeltable/exec/globals.py,sha256=fAKOvszbntIh4J1nAmvVA9BGGk98NKZ_G9mVEaZ28pk,904
39
39
  pixeltable/exec/in_memory_data_node.py,sha256=XrR3ggNILrJ77n3l4qOiKWfwUVakdRIdRsVasKP17jw,3513
40
40
  pixeltable/exec/object_store_save_node.py,sha256=r78ySsSlpmw0ZsfG2Rp0kR2xfbs_RgrWjZ__gU_oL1Y,13272
41
41
  pixeltable/exec/row_update_node.py,sha256=KS68FYUxtUv2JSP5RjJmKBAr_hT26zXmWmdpQrYfvKI,3127
42
- pixeltable/exec/sql_node.py,sha256=wPk-LbMqDKIVB_lkjIqh2MqBUSIUZIwLEOGPkNeCwhk,31701
42
+ pixeltable/exec/sql_node.py,sha256=jo6ffEYQjblU2mY0xhMSbI93qhUO-7kZj8yDQIMi52A,31832
43
43
  pixeltable/exec/expr_eval/__init__.py,sha256=sQThSEByK_DLfB-_-18RFhpARx49cSXYEkpCDyi0vQI,61
44
44
  pixeltable/exec/expr_eval/evaluators.py,sha256=t-pJbDW3jjbJLjU53hZtl2uESIX82PSKjMgOzfFi_os,17174
45
45
  pixeltable/exec/expr_eval/expr_eval_node.py,sha256=aYupmD1Trc9O11JgrA5g1yvk2QtdNhjB4jymvQzjsTo,19870
@@ -96,7 +96,7 @@ pixeltable/functions/fireworks.py,sha256=q7eWlYfiWbA0d9r3CB_NAe1fw3q-Z7qsw2gyGJN
96
96
  pixeltable/functions/gemini.py,sha256=Stpchxr7FfxbwCp3WsPR8zfd_GFdLMCWW1G7vt0DpNk,8924
97
97
  pixeltable/functions/globals.py,sha256=OyPJUJ4S6VWyzxstxIzk3xzYBGIEMwgk1RmSTWTZzdI,5106
98
98
  pixeltable/functions/groq.py,sha256=61XbgY4ItASomMw9t-q8HBuv8II_ssclthjA7sL6jik,3605
99
- pixeltable/functions/huggingface.py,sha256=Y-io3EungSs5ibr43vLEXs4dz_Ej20F1nglD0fyLrXA,20371
99
+ pixeltable/functions/huggingface.py,sha256=vN-Tp3Qrue1aYqgGFPme6ZFyfU3ifi93Ury46lhH8xQ,60018
100
100
  pixeltable/functions/image.py,sha256=IKXljMma-uU88efptC3F4aywau7DYcD-Nqd3YpmRNRw,13971
101
101
  pixeltable/functions/json.py,sha256=d7-AvwytUQtQYF_JnWJkptT_Yq0NgMpWfVk-m3U6qTY,807
102
102
  pixeltable/functions/llama_cpp.py,sha256=7m0g_g3YxmyALDXfvqcbm-eCYWgDZhZfCFfj5PjkJVU,4318
@@ -110,7 +110,7 @@ pixeltable/functions/string.py,sha256=LdBNOna5PUSPmM5VlJ_qhmwzyFhumW0k6Dvx2rXSZt
110
110
  pixeltable/functions/timestamp.py,sha256=3GVCVIWdry96Qk5XXuvbJ58Tp30iY5snBibzl2CHjQc,9143
111
111
  pixeltable/functions/together.py,sha256=A8J19BXywyWQ6a2_n05-8uIG5jquOBGqPmW3mb-NrIc,8842
112
112
  pixeltable/functions/util.py,sha256=uQNkyBSkTVMe1wbUI2Q0nz-mM3qPVTF86yK8c9OFIcE,954
113
- pixeltable/functions/video.py,sha256=0gB3utWqDqJS6AT2cts-TjtaI9i68SQHpHD9KiBh9lU,34909
113
+ pixeltable/functions/video.py,sha256=wqEZ5X3wk3_L8Rp11hIIFUvgRxl6eA694i9l90xynl4,36036
114
114
  pixeltable/functions/vision.py,sha256=17h9bOm3NJyQzFMBwXDHMqnkcuCspyQJgHdBOXV1Ip8,15380
115
115
  pixeltable/functions/whisper.py,sha256=u2QcDU7JdtgLIImCkFPkzjWEjLTJIrlSkAWqeITyIJw,3103
116
116
  pixeltable/functions/whisperx.py,sha256=NapvBQlIR6FfYeUP328Kjv7a9zgFZPghiFtsvgzhKZk,7724
@@ -134,10 +134,10 @@ pixeltable/io/utils.py,sha256=qzBTmqdIawXMt2bfXQOraYnEstL69eC2Z33nl8RrwJk,4244
134
134
  pixeltable/iterators/__init__.py,sha256=hbQhrz0LShLGOPcT1SnWl1s1nBUzAjWino64CfFT_UA,537
135
135
  pixeltable/iterators/audio.py,sha256=khW4M4P_J5twz1Eu3nuDP_73C9iWeCYZ5K_zQysvYxI,9671
136
136
  pixeltable/iterators/base.py,sha256=ZC0ZvXL4iw6AmT8cu-Mdx-T2UG9nmJYV1C6LK4efAfw,1669
137
- pixeltable/iterators/document.py,sha256=dc1MJLS6VVYFBP_bodvf1HrmeMKZvc3vy6ilVAxTwew,21080
137
+ pixeltable/iterators/document.py,sha256=qOOGSkuBKGh2dKUDvwJ0PA_Du1S32xleM6McZuKvIJI,22310
138
138
  pixeltable/iterators/image.py,sha256=RrFdf5cnFIQzWKJk4uYi1m1p2qAiz909THYhRQ27DbY,3603
139
139
  pixeltable/iterators/string.py,sha256=URj5edWp-CsorjN_8nnfWGvtIFs_Zh4VPm6htlJbFkU,1257
140
- pixeltable/iterators/video.py,sha256=xgzZxeuF1J3HLihy8f7kpF1G6k2aFU_uoRmtx9Fq8bM,19574
140
+ pixeltable/iterators/video.py,sha256=L241Oz8OOM07t2SdWYPCRIE-0ntsrEtHZx5CHD_Pv7I,21626
141
141
  pixeltable/metadata/__init__.py,sha256=8ytwPwl2GkaS8JaBLneqT8jxxRDbsKaO52bRip8SpcI,3289
142
142
  pixeltable/metadata/notes.py,sha256=heoQFFkn_vo-vPO6K2_6gcE2LpL8Ca_2wjsUNcN7_0E,1598
143
143
  pixeltable/metadata/schema.py,sha256=CL877NmO5ZOusqhURKkMjCoh00alW199p4onXab3iVg,13824
@@ -180,7 +180,7 @@ pixeltable/share/packager.py,sha256=aPyFj2lB8876CpEPpRgSWazPiwDEe_p-5FuUqluo9DY,
180
180
  pixeltable/share/publish.py,sha256=Cpbn10duCXoe5k0RaB2WpJjbeMhXd5DXEV7OLQpmtJA,10899
181
181
  pixeltable/utils/__init__.py,sha256=45qEM20L2VuIe-Cc3BTKWFqQb-S7A8qDtmmgl77zYK0,1728
182
182
  pixeltable/utils/arrow.py,sha256=jVW5I8AEqyR7uVcjHkM8QA14LO3qIuj09Fl1coif1nI,10335
183
- pixeltable/utils/av.py,sha256=g6E64jmqiqnfL32syjqORsWLUnNG6CgGwmyLjtY0K_Q,5913
183
+ pixeltable/utils/av.py,sha256=IhfwYWV5UYLIU_fDdFPukpGE1lxiykswI6thqKVUC14,6586
184
184
  pixeltable/utils/coco.py,sha256=Y1DWVYguZD4VhKyf7JruYfHWvhkJLq39fzbiSm5cdyY,7304
185
185
  pixeltable/utils/code.py,sha256=3CZMVJm69JIG5sxmd56mjB4Fo4L-s0_Y8YvQeJIj0F0,1280
186
186
  pixeltable/utils/console_output.py,sha256=Xodh5K3bI_2WsL6ySTVHXM7S3FZKi7RLwIqFIxip-mg,1232
@@ -204,8 +204,8 @@ pixeltable/utils/pytorch.py,sha256=77x2g4N6dkfYvqbxjYi_rBRiNnMMZAb2cNtBw0hOCHg,3
204
204
  pixeltable/utils/s3_store.py,sha256=ZLKyChX3SPOJSWVULwS7b8E2nBQiKOamEGGbdrkrGdo,16454
205
205
  pixeltable/utils/sql.py,sha256=Sa4Lh-VGe8GToU5W7DRiWf2lMl9B6saPqemiT0ZdHEc,806
206
206
  pixeltable/utils/transactional_directory.py,sha256=OFKmu90oP7KwBAljwjnzP_w8euGdAXob3y4Nx9SCNHA,1357
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,,
207
+ pixeltable-0.4.18.dist-info/METADATA,sha256=27tYtJQXfoEhLJS6aS3QoBGJdca0FwF75FqddXjJLHk,25521
208
+ pixeltable-0.4.18.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
209
+ pixeltable-0.4.18.dist-info/entry_points.txt,sha256=rrKugZmxDtGnXCnEQ5UJMaaSYY7-g1cLjUZ4W1moIhM,98
210
+ pixeltable-0.4.18.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
211
+ pixeltable-0.4.18.dist-info/RECORD,,