pixeltable 0.2.24__py3-none-any.whl → 0.3.0__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 (101) hide show
  1. pixeltable/__init__.py +2 -2
  2. pixeltable/__version__.py +2 -2
  3. pixeltable/catalog/__init__.py +1 -1
  4. pixeltable/catalog/dir.py +6 -0
  5. pixeltable/catalog/globals.py +25 -0
  6. pixeltable/catalog/named_function.py +4 -0
  7. pixeltable/catalog/path_dict.py +37 -11
  8. pixeltable/catalog/schema_object.py +6 -0
  9. pixeltable/catalog/table.py +531 -251
  10. pixeltable/catalog/table_version.py +22 -8
  11. pixeltable/catalog/view.py +8 -7
  12. pixeltable/dataframe.py +439 -105
  13. pixeltable/env.py +19 -5
  14. pixeltable/exec/__init__.py +1 -1
  15. pixeltable/exec/exec_node.py +6 -7
  16. pixeltable/exec/expr_eval_node.py +1 -1
  17. pixeltable/exec/sql_node.py +92 -45
  18. pixeltable/exprs/__init__.py +1 -0
  19. pixeltable/exprs/arithmetic_expr.py +1 -1
  20. pixeltable/exprs/array_slice.py +1 -1
  21. pixeltable/exprs/column_property_ref.py +1 -1
  22. pixeltable/exprs/column_ref.py +29 -2
  23. pixeltable/exprs/comparison.py +1 -1
  24. pixeltable/exprs/compound_predicate.py +1 -1
  25. pixeltable/exprs/expr.py +12 -5
  26. pixeltable/exprs/expr_set.py +8 -0
  27. pixeltable/exprs/function_call.py +147 -39
  28. pixeltable/exprs/in_predicate.py +1 -1
  29. pixeltable/exprs/inline_expr.py +25 -5
  30. pixeltable/exprs/is_null.py +1 -1
  31. pixeltable/exprs/json_mapper.py +1 -1
  32. pixeltable/exprs/json_path.py +1 -1
  33. pixeltable/exprs/method_ref.py +1 -1
  34. pixeltable/exprs/row_builder.py +1 -1
  35. pixeltable/exprs/rowid_ref.py +1 -1
  36. pixeltable/exprs/similarity_expr.py +17 -7
  37. pixeltable/exprs/sql_element_cache.py +4 -0
  38. pixeltable/exprs/type_cast.py +2 -2
  39. pixeltable/exprs/variable.py +3 -0
  40. pixeltable/func/__init__.py +5 -4
  41. pixeltable/func/aggregate_function.py +151 -68
  42. pixeltable/func/callable_function.py +48 -16
  43. pixeltable/func/expr_template_function.py +64 -23
  44. pixeltable/func/function.py +227 -23
  45. pixeltable/func/function_registry.py +2 -1
  46. pixeltable/func/query_template_function.py +51 -9
  47. pixeltable/func/signature.py +65 -7
  48. pixeltable/func/tools.py +153 -0
  49. pixeltable/func/udf.py +57 -35
  50. pixeltable/functions/__init__.py +2 -2
  51. pixeltable/functions/anthropic.py +51 -4
  52. pixeltable/functions/gemini.py +85 -0
  53. pixeltable/functions/globals.py +54 -34
  54. pixeltable/functions/huggingface.py +10 -28
  55. pixeltable/functions/json.py +3 -8
  56. pixeltable/functions/math.py +67 -0
  57. pixeltable/functions/mistralai.py +0 -2
  58. pixeltable/functions/ollama.py +8 -8
  59. pixeltable/functions/openai.py +51 -4
  60. pixeltable/functions/timestamp.py +1 -1
  61. pixeltable/functions/video.py +3 -9
  62. pixeltable/functions/vision.py +1 -1
  63. pixeltable/globals.py +374 -89
  64. pixeltable/index/embedding_index.py +106 -29
  65. pixeltable/io/__init__.py +1 -1
  66. pixeltable/io/label_studio.py +1 -1
  67. pixeltable/io/parquet.py +39 -19
  68. pixeltable/iterators/__init__.py +1 -0
  69. pixeltable/iterators/document.py +12 -0
  70. pixeltable/iterators/image.py +100 -0
  71. pixeltable/iterators/video.py +7 -8
  72. pixeltable/metadata/__init__.py +1 -1
  73. pixeltable/metadata/converters/convert_16.py +2 -1
  74. pixeltable/metadata/converters/convert_17.py +2 -1
  75. pixeltable/metadata/converters/convert_22.py +17 -0
  76. pixeltable/metadata/converters/convert_23.py +35 -0
  77. pixeltable/metadata/converters/convert_24.py +56 -0
  78. pixeltable/metadata/converters/convert_25.py +19 -0
  79. pixeltable/metadata/converters/util.py +4 -2
  80. pixeltable/metadata/notes.py +4 -0
  81. pixeltable/metadata/schema.py +1 -0
  82. pixeltable/plan.py +129 -51
  83. pixeltable/store.py +1 -1
  84. pixeltable/type_system.py +196 -54
  85. pixeltable/utils/arrow.py +8 -3
  86. pixeltable/utils/description_helper.py +89 -0
  87. pixeltable/utils/documents.py +14 -0
  88. {pixeltable-0.2.24.dist-info → pixeltable-0.3.0.dist-info}/METADATA +32 -22
  89. pixeltable-0.3.0.dist-info/RECORD +155 -0
  90. {pixeltable-0.2.24.dist-info → pixeltable-0.3.0.dist-info}/WHEEL +1 -1
  91. pixeltable-0.3.0.dist-info/entry_points.txt +3 -0
  92. pixeltable/tool/create_test_db_dump.py +0 -308
  93. pixeltable/tool/create_test_video.py +0 -81
  94. pixeltable/tool/doc_plugins/griffe.py +0 -50
  95. pixeltable/tool/doc_plugins/mkdocstrings.py +0 -6
  96. pixeltable/tool/doc_plugins/templates/material/udf.html.jinja +0 -135
  97. pixeltable/tool/embed_udf.py +0 -9
  98. pixeltable/tool/mypy_plugin.py +0 -55
  99. pixeltable-0.2.24.dist-info/RECORD +0 -153
  100. pixeltable-0.2.24.dist-info/entry_points.txt +0 -3
  101. {pixeltable-0.2.24.dist-info → pixeltable-0.3.0.dist-info}/LICENSE +0 -0
@@ -1,81 +0,0 @@
1
- import av # type: ignore[import-untyped]
2
- import PIL.Image
3
- import PIL.ImageDraw
4
- import PIL.ImageFont
5
-
6
- from pathlib import Path
7
- from typing import Optional
8
- import tempfile
9
- import math
10
-
11
- def create_test_video(
12
- frame_count: int,
13
- frame_rate: float = 1.0,
14
- frame_width: int = 224,
15
- aspect_ratio: str = '16:9',
16
- frame_height: Optional[int] = None,
17
- output_path: Optional[Path] = None,
18
- font_file: str = '/Library/Fonts/Arial Unicode.ttf',
19
- ) -> Path:
20
- """
21
- Creates an .mp4 video file such as the ones in /tests/data/test_videos
22
- The video contains a frame number in each frame (for visual sanity check).
23
-
24
- Args:
25
- frame_count: Number of frames to create
26
- frame_rate: Frame rate of the video
27
- frame_width (int): Width in pixels of the video frame. Note: cost of decoding increases dramatically
28
- with frame width * frame height.
29
- aspect_ratio: Aspect ratio (width/height) of the video frames string of form 'width:height'
30
- frame_height: Height of the video frame, if given, aspect_ratio is ignored
31
- output_path: Path to save the video file
32
- font_file: Path to the font file used for text.
33
- """
34
-
35
- if output_path is None:
36
- output_path = Path(tempfile.NamedTemporaryFile(suffix='.mp4', delete=False).name)
37
-
38
- parts = [int(p) for p in aspect_ratio.split(':')]
39
- assert len(parts) == 2
40
- aspect_ratio = parts[0] / parts[1]
41
-
42
- if frame_height is None:
43
- frame_height = math.ceil(frame_width / aspect_ratio)
44
-
45
- frame_size = (frame_width, frame_height)
46
-
47
- font_size = min(frame_height, frame_width) // 4
48
- font = PIL.ImageFont.truetype(font=font_file, size=font_size)
49
- font_fill = 0xFFFFFF # white
50
- frame_color = 0xFFFFFF - font_fill # black
51
- # Create a video container
52
- container = av.open(str(output_path), mode='w')
53
-
54
- # Add a video stream
55
- stream = container.add_stream('h264', rate=frame_rate)
56
- stream.width, stream.height = frame_size
57
- stream.pix_fmt = 'yuv420p'
58
-
59
- for frame_number in range(frame_count):
60
- # Create an image with a number in it
61
- image = PIL.Image.new('RGB', frame_size, color=frame_color)
62
- draw = PIL.ImageDraw.Draw(image)
63
- # Optionally, add a font here if you have one
64
- text = str(frame_number)
65
- _, _, text_width, text_height = draw.textbbox((0, 0), text, font=font)
66
- text_position = ((frame_size[0] - text_width) // 2, (frame_size[1] - text_height) // 2)
67
- draw.text(text_position, text, font=font, fill=font_fill)
68
-
69
- # Convert the PIL image to an AVFrame
70
- frame = av.VideoFrame.from_image(image)
71
-
72
- # Encode and write the frame
73
- for packet in stream.encode(frame):
74
- container.mux(packet)
75
-
76
- # Flush and close the stream
77
- for packet in stream.encode():
78
- container.mux(packet)
79
-
80
- container.close()
81
- return output_path
@@ -1,50 +0,0 @@
1
- import ast
2
- import warnings
3
- from typing import Optional, Union
4
-
5
- import griffe
6
- import griffe.expressions
7
- from griffe import Extension, Object, ObjectNode
8
-
9
- import pixeltable as pxt
10
-
11
- logger = griffe.get_logger(__name__)
12
-
13
- class PxtGriffeExtension(Extension):
14
- """Implementation of a Pixeltable custom griffe extension."""
15
-
16
- def on_instance(self, node: Union[ast.AST, ObjectNode], obj: Object) -> None:
17
- if obj.docstring is None:
18
- # Skip over entities without a docstring
19
- return
20
-
21
- if isinstance(obj, griffe.Function):
22
- # See if the (Python) function has a @pxt.udf decorator
23
- if any(
24
- isinstance(dec.value, griffe.expressions.Expr) and dec.value.canonical_path in ['pixeltable.func.udf', 'pixeltable.udf']
25
- for dec in obj.decorators
26
- ):
27
- # Update the template
28
- self.__modify_pxt_udf(obj)
29
-
30
- def __modify_pxt_udf(self, func: griffe.Function) -> None:
31
- """
32
- Instructs the doc snippet for `func` to use the custom Pixeltable UDF jinja template, and
33
- converts all type hints to Pixeltable column type references, in accordance with the @udf
34
- decorator behavior.
35
- """
36
- func.extra['mkdocstrings']['template'] = 'udf.html.jinja'
37
- # Dynamically load the UDF reference so we can inspect the Pixeltable signature directly
38
- warnings.simplefilter("ignore")
39
- udf = griffe.dynamic_import(func.path)
40
- assert isinstance(udf, pxt.Function)
41
- # Convert the return type to a Pixeltable type reference
42
- func.returns = str(udf.signature.get_return_type())
43
- # Convert the parameter types to Pixeltable type references
44
- for griffe_param in func.parameters:
45
- assert isinstance(griffe_param.annotation, griffe.expressions.Expr)
46
- if griffe_param.name not in udf.signature.parameters:
47
- logger.warning(f'Parameter `{griffe_param.name}` not found in signature for UDF: {udf.display_name}')
48
- continue
49
- pxt_param = udf.signature.parameters[griffe_param.name]
50
- griffe_param.annotation = str(pxt_param.col_type)
@@ -1,6 +0,0 @@
1
- from pathlib import Path
2
-
3
-
4
- def get_templates_path() -> Path:
5
- """Implementation of the 'mkdocstrings.python.templates' plugin for custom jinja templates."""
6
- return Path(__file__).parent / "templates"
@@ -1,135 +0,0 @@
1
- {#- Template for Pixeltable UDFs. Cargo-culted (with modification) from _base/function.html.jinja. -#}
2
-
3
- {% block logs scoped %}
4
- {#- Logging block.
5
-
6
- This block can be used to log debug messages, deprecation messages, warnings, etc.
7
- -#}
8
- {{ log.debug("Rendering " + function.path) }}
9
- {% endblock logs %}
10
-
11
- {% import "language"|get_template as lang with context %}
12
- {#- Language module providing the `t` translation method. -#}
13
-
14
- <div class="doc doc-object doc-function">
15
- {% with obj = function, html_id = function.path %}
16
-
17
- {% if root %}
18
- {% set show_full_path = config.show_root_full_path %}
19
- {% set root_members = True %}
20
- {% elif root_members %}
21
- {% set show_full_path = config.show_root_members_full_path or config.show_object_full_path %}
22
- {% set root_members = False %}
23
- {% else %}
24
- {% set show_full_path = config.show_object_full_path %}
25
- {% endif %}
26
-
27
- {% set function_name = function.path if show_full_path else function.name %}
28
- {#- Brief or full function name depending on configuration. -#}
29
- {% set symbol_type = "udf" %}
30
- {#- Symbol type: method when parent is a class, function otherwise. -#}
31
-
32
- {% if not root or config.show_root_heading %}
33
- {% filter heading(
34
- heading_level,
35
- role="function",
36
- id=html_id,
37
- class="doc doc-heading",
38
- toc_label=(('<code class="doc-symbol doc-symbol-toc doc-symbol-' + symbol_type + '"></code>&nbsp;')|safe if config.show_symbol_type_toc else '') + function.name,
39
- ) %}
40
-
41
- {% block heading scoped %}
42
- {#- Heading block.
43
-
44
- This block renders the heading for the function.
45
- -#}
46
- {% if config.show_symbol_type_heading %}<code class="doc-symbol doc-symbol-heading doc-symbol-{{ symbol_type }}"></code>{% endif %}
47
- {% if config.separate_signature %}
48
- <span class="doc doc-object-name doc-function-name">{{ function_name }}</span>
49
- {% else %}
50
- {%+ filter highlight(language="python", inline=True) %}
51
- {{ function_name }}{% include "signature"|get_template with context %}
52
- {% endfilter %}
53
- {% endif %}
54
- {% endblock heading %}
55
-
56
- {% block labels scoped %}
57
- {#- Labels block.
58
-
59
- This block renders the labels for the function.
60
- -#}
61
- {% with labels = function.labels %}
62
- {% include "labels"|get_template with context %}
63
- {% endwith %}
64
- {% endblock labels %}
65
-
66
- {% endfilter %}
67
-
68
- {% block signature scoped %}
69
- {#- Signature block.
70
-
71
- This block renders the signature for the function.
72
- -#}
73
- {% if config.separate_signature %}
74
- {% filter format_signature(function, config.line_length, crossrefs=config.signature_crossrefs) %}
75
- {{ function.name }}
76
- {% endfilter %}
77
- {% endif %}
78
- {% endblock signature %}
79
-
80
- {% else %}
81
-
82
- {% if config.show_root_toc_entry %}
83
- {% filter heading(
84
- heading_level,
85
- role="function",
86
- id=html_id,
87
- toc_label=(('<code class="doc-symbol doc-symbol-toc doc-symbol-' + symbol_type + '"></code>&nbsp;')|safe if config.show_symbol_type_toc else '') + function.name,
88
- hidden=True,
89
- ) %}
90
- {% endfilter %}
91
- {% endif %}
92
- {% set heading_level = heading_level - 1 %}
93
- {% endif %}
94
-
95
- <div class="doc doc-contents {% if root %}first{% endif %}">
96
- {% block contents scoped %}
97
- {#- Contents block.
98
-
99
- This block renders the contents of the function.
100
- It contains other blocks that users can override.
101
- Overriding the contents block allows to rearrange the order of the blocks.
102
- -#}
103
- {% block docstring scoped %}
104
- {#- Docstring block.
105
-
106
- This block renders the docstring for the function.
107
- -#}
108
- {% with docstring_sections = function.docstring.parsed %}
109
- {% include "docstring"|get_template with context %}
110
- {% endwith %}
111
- {% endblock docstring %}
112
-
113
- {% block source scoped %}
114
- {#- Source block.
115
-
116
- This block renders the source code for the function.
117
- -#}
118
- {% if config.show_source and function.source %}
119
- <details class="quote">
120
- <summary>{{ lang.t("Source code in") }} <code>
121
- {%- if function.relative_filepath.is_absolute() -%}
122
- {{ function.relative_package_filepath }}
123
- {%- else -%}
124
- {{ function.relative_filepath }}
125
- {%- endif -%}
126
- </code></summary>
127
- {{ function.source|highlight(language="python", linestart=function.lineno, linenums=True) }}
128
- </details>
129
- {% endif %}
130
- {% endblock source %}
131
- {% endblock contents %}
132
- </div>
133
-
134
- {% endwith %}
135
- </div>
@@ -1,9 +0,0 @@
1
- import numpy as np
2
-
3
- import pixeltable as pxt
4
-
5
-
6
- # TODO This can go away once we have the ability to inline expr_udf's
7
- @pxt.expr_udf
8
- def clip_text_embed(txt: str) -> np.ndarray:
9
- return pxt.functions.huggingface.clip_text(txt, model_id='openai/clip-vit-base-patch32') # type: ignore[return-value]
@@ -1,55 +0,0 @@
1
- from typing import Callable, Optional
2
-
3
- from mypy import nodes
4
- from mypy.plugin import AnalyzeTypeContext, ClassDefContext, Plugin
5
- from mypy.plugins.common import add_method_to_class
6
- from mypy.types import AnyType, Type, TypeOfAny
7
-
8
- import pixeltable as pxt
9
-
10
-
11
- class PxtPlugin(Plugin):
12
- __UDA_FULLNAME = f'{pxt.uda.__module__}.{pxt.uda.__name__}'
13
- __TYPE_MAP = {
14
- pxt.Json: 'typing.Any',
15
- pxt.Array: 'numpy.ndarray',
16
- pxt.Image: 'PIL.Image.Image',
17
- pxt.Video: 'builtins.str',
18
- pxt.Audio: 'builtins.str',
19
- pxt.Document: 'builtins.str',
20
- }
21
- __FULLNAME_MAP = {
22
- f'{k.__module__}.{k.__name__}': v
23
- for k, v in __TYPE_MAP.items()
24
- }
25
-
26
- def get_type_analyze_hook(self, fullname: str) -> Optional[Callable[[AnalyzeTypeContext], Type]]:
27
- if fullname in self.__FULLNAME_MAP:
28
- subst_name = self.__FULLNAME_MAP[fullname]
29
- return lambda ctx: pxt_hook(ctx, subst_name)
30
- return None
31
-
32
- def get_class_decorator_hook_2(self, fullname: str) -> Optional[Callable[[ClassDefContext], bool]]:
33
- if fullname == self.__UDA_FULLNAME:
34
- return pxt_decorator_hook
35
- return None
36
-
37
- def plugin(version: str) -> type:
38
- return PxtPlugin
39
-
40
- def pxt_hook(ctx: AnalyzeTypeContext, subst_name: str) -> Type:
41
- if subst_name == 'typing.Any':
42
- return AnyType(TypeOfAny.special_form)
43
- return ctx.api.named_type(subst_name, [])
44
-
45
- def pxt_decorator_hook(ctx: ClassDefContext) -> bool:
46
- arg = nodes.Argument(nodes.Var('fn'), AnyType(TypeOfAny.special_form), None, nodes.ARG_POS)
47
- add_method_to_class(
48
- ctx.api,
49
- ctx.cls,
50
- "to_sql",
51
- args=[arg],
52
- return_type=AnyType(TypeOfAny.special_form),
53
- is_staticmethod=True,
54
- )
55
- return True
@@ -1,153 +0,0 @@
1
- pixeltable/__init__.py,sha256=gv2jvZ7H5tEjLear10E7hSH9jF5Mw6iSeryvRp88bOE,1391
2
- pixeltable/__version__.py,sha256=w8n5Ad700zSFGVbR5bQpPtdgGwCXcl22svUmysoPXE0,114
3
- pixeltable/catalog/__init__.py,sha256=Ar6_F_6C7tkznIlCPBHVHDop5YssBDjKQr2NPQ21QCI,484
4
- pixeltable/catalog/catalog.py,sha256=tyDyI5wQw7vV6_FChrp9qgGCRClcjiSdW3eygYT0p9s,7849
5
- pixeltable/catalog/column.py,sha256=ezeKoGl6aBTzSZBihDA6vdETcvyCguAD4OsmrxWs73A,9595
6
- pixeltable/catalog/dir.py,sha256=fG_BQM-fLuABpTstMVH-9dvZPx7kqi3sgTQgKveVXJI,922
7
- pixeltable/catalog/globals.py,sha256=2P9cEfgnYQ19MFS4OsbnA8ZQkWLZPqJmmknDYWCXjWw,2415
8
- pixeltable/catalog/insertable_table.py,sha256=hOsdYhkhtRcDOrRkweIGFUfjweWF3fLUErkUTlGYoSU,7172
9
- pixeltable/catalog/named_function.py,sha256=W8vikP_3jMJ9pQQsksO2EfQAlaVxuQHBlo65M4924dc,1150
10
- pixeltable/catalog/path.py,sha256=QgccEi_QOfaKt8YsR2zLtd_z7z7QQkU_1kprJFi2SPQ,1677
11
- pixeltable/catalog/path_dict.py,sha256=4b9_Ax7Q8tkmoCYPaKNedpQkU17pE0oGDd2XB53eNZA,5979
12
- pixeltable/catalog/schema_object.py,sha256=qhpeeUPOYT5doDbsyUNBcPm5QzAQPCAsikqh1PQ6d1k,2226
13
- pixeltable/catalog/table.py,sha256=7UwLGydwfvzBoQXjqZdn8toPU6-6t0OySPFIiwj6KkA,48477
14
- pixeltable/catalog/table_version.py,sha256=W4yrvn-mF63CQ8cQGmjbjYTCf1xYuV6k6rI__ubJOIc,57898
15
- pixeltable/catalog/table_version_path.py,sha256=CczGbcz5ESq663arreri_p4chMZHozgG6k3y-ajkJN4,5787
16
- pixeltable/catalog/view.py,sha256=7KQeHiqKmGrS_hjt6QjIjZhOvl9-XKBAi7A9_9_Worg,10715
17
- pixeltable/dataframe.py,sha256=SGge2DxcjT0gaKpWsmQJhqlqX6b75nefoKAh1Ld4S8Y,33639
18
- pixeltable/env.py,sha256=oIFeLJVDQuQgW8REAoNkY45BF2o02NxtysgAlJNEBc8,30520
19
- pixeltable/exceptions.py,sha256=NuFY2WtkQpLfLHT_J70kOw9Tr0kEDkkgo-u7As4Gaq4,410
20
- pixeltable/exec/__init__.py,sha256=QmaKzkZ704nbJ1BiAFwjYvIX3R2_EHzpO8R7HxcEY-g,481
21
- pixeltable/exec/aggregation_node.py,sha256=0LdoPp_CR_UbcS60XkDw66SqlrQnw6Dy6KDWqi4PJ6k,4005
22
- pixeltable/exec/cache_prefetch_node.py,sha256=hrJA5PxLSmFRuZdZO4Nc-vy6_PSb9YO4rnJc6MSTPHE,12017
23
- pixeltable/exec/component_iteration_node.py,sha256=ABuXGbDRQWLGuaBnfK7bvOxCrz81vMMiAvXHHI8SX4c,4930
24
- pixeltable/exec/data_row_batch.py,sha256=qPN0GtBGt72Jnap-UN53VlUPOpYEvqJhp1nuTeJ_8Co,2925
25
- pixeltable/exec/exec_context.py,sha256=-FbfYLcGOL7mviru5dE1A7x4YxLbdKoXBHN3OSbqbcg,1084
26
- pixeltable/exec/exec_node.py,sha256=glESCX17lcVYE0SzDb1O2HzKiWwaiXZRsB5DHYwMwnQ,3248
27
- pixeltable/exec/expr_eval_node.py,sha256=nEMnVTikQyTa3C9xfe6tuWLpQceM_7XJqfMPB_oI0wU,11890
28
- pixeltable/exec/in_memory_data_node.py,sha256=uK3puLZDzUSJUJwGwkTMYoPqNIvE67jtQodhE2sCz2M,3452
29
- pixeltable/exec/row_update_node.py,sha256=b8yuKtkmI2Q6U-7svKbkjdM3Z85ddZoJgJgUa17j-YE,2773
30
- pixeltable/exec/sql_node.py,sha256=9huPLpMqq4J5JhSh5vtt-T4K1Tu3EXJ9omv6mMi-zD4,17616
31
- pixeltable/exprs/__init__.py,sha256=toKJm6y1_2fD8Fo-ld5feD-nMN-yZGMWwMHYyb8vsrg,967
32
- pixeltable/exprs/arithmetic_expr.py,sha256=oUe7r3CQo3VJOzFUpmDDuYZMWc7zEcngNdb17GvTseQ,6321
33
- pixeltable/exprs/array_slice.py,sha256=HgB9BV8a9Qg6Y-t7PRjFszr40jDArensZ75-wDyFpcQ,2179
34
- pixeltable/exprs/column_property_ref.py,sha256=rCYNv9o_UMVhIz-U0-bhTxLf4c7_CTYWH6VB9LLo0F8,3787
35
- pixeltable/exprs/column_ref.py,sha256=Od4UAvSr--TtsWkJhqNBEkUWmOGTNEhLJRAZQerQ44c,9817
36
- pixeltable/exprs/comparison.py,sha256=s1f4fGytnrhXN5wfuGlKUoNpp5EO4LLrFNA321OH1Kk,5100
37
- pixeltable/exprs/compound_predicate.py,sha256=H35SB053aCHigtPp_JYrOTLRC2AGDQK3NAkOYOBPDQg,3845
38
- pixeltable/exprs/data_row.py,sha256=rLtKxlst9mK6684A5y-nsjBcalyKEcKAWcYCtNpK10w,9852
39
- pixeltable/exprs/expr.py,sha256=QlVslNfAOPxPVvsNiEv_k_S2QWp4-8dc3eocT6zclNU,29986
40
- pixeltable/exprs/expr_dict.py,sha256=xkvo_iVPOLMq3WkBZQ2FOoXqYoebuV6XGlidPJxdOkY,1588
41
- pixeltable/exprs/expr_set.py,sha256=kAV-PbudbAlW0dqhKqfstXnxKbK_FWKXyrzkpvDrpjQ,2330
42
- pixeltable/exprs/function_call.py,sha256=Sp23zxpzA4f7ztd71sn_B0sgos1hyMPKRR8wICzxOZ4,21365
43
- pixeltable/exprs/globals.py,sha256=5pwn5vdi-EEpYBpPty658YV45myY7W0iFIfTH7QIzak,2032
44
- pixeltable/exprs/in_predicate.py,sha256=eR6qFf_0lsqM0jPRI9IxTsDlXM6Bt9RBY9a05bZ6bDs,3782
45
- pixeltable/exprs/inline_expr.py,sha256=OF-yLIoU7LfHqFdbZkZnC1oQ2_X26WyHbfxbxrdZr-k,7104
46
- pixeltable/exprs/is_null.py,sha256=x9-CijQf1JuUioUAv1_8OvP9nK9Ahjc1wJfgE1QEOL8,1091
47
- pixeltable/exprs/json_mapper.py,sha256=OJ8ohAZhuLxTGtmmbB8voVG9AzUuCHLHuNBi-3hJZEg,4544
48
- pixeltable/exprs/json_path.py,sha256=BUpjc7u-GOHcmQ1d3FzIZlGVE6VLioGOfMwA_gpWvEE,6810
49
- pixeltable/exprs/literal.py,sha256=TTKb0gw6qck9D61SwVDuBrLrBrGwEhkCB-m0ILFpWFk,3764
50
- pixeltable/exprs/method_ref.py,sha256=x9rQzlRQlVnbTpBQoV0COFsiOPstJcOifXl0lJC-roI,2614
51
- pixeltable/exprs/object_ref.py,sha256=GVg6uxZnKwFVTC0kouJq-wMFP-gUPb_ld_syHrsGMdE,1283
52
- pixeltable/exprs/row_builder.py,sha256=7f-h4y8xv0ktkk6GYqGrMJvLSwkVYtMPHsBBIskmQLw,18435
53
- pixeltable/exprs/rowid_ref.py,sha256=hjGrbk9zHH3H-00uFAopyRvLTeQeB2e44kAJUAxiy3k,4400
54
- pixeltable/exprs/similarity_expr.py,sha256=snOseawC4ySvyHo8TCqbh_bDxIrENfIzO_0lXlzL-BA,4016
55
- pixeltable/exprs/sql_element_cache.py,sha256=DRW5Aa0WQZ-yMf5anlUg-_Rmq3Oz3G6Us1X_KseMC68,1229
56
- pixeltable/exprs/type_cast.py,sha256=BTnhgoll7LVZdOU_282QlzGZ4EEMTzPYcNdDcFOfkTs,1837
57
- pixeltable/exprs/variable.py,sha256=VATAmLaPrQipv2AXqg-m6FYMLNGyhPtys8c5Et8Ba0g,1414
58
- pixeltable/ext/__init__.py,sha256=iO0J_Jfnv38F5y40sDAW54gpXjIyZgOGgoWQJAwjQec,423
59
- pixeltable/ext/functions/__init__.py,sha256=hIjPEKC5E5uJOXlQqUyhP9yn9ZqWOCJAlj0kXWDlhlE,159
60
- pixeltable/ext/functions/whisperx.py,sha256=jojjNhazcYiAh1scwUl-erhIDRr4kOTkcLrjy0xcp6g,2325
61
- pixeltable/ext/functions/yolox.py,sha256=k-pQTelv4Tea3AXvDB7Kc7YCIa1uexjVGqxETP0B_hc,5351
62
- pixeltable/func/__init__.py,sha256=WjftUGyNkd6bF_qSxqZ5Gd7Elf8oExb3dUlpydhdFTo,407
63
- pixeltable/func/aggregate_function.py,sha256=LM6DMldmaUJNlQgEqPFQIKVmwjl3IpBxS4Y61G8-zG0,9477
64
- pixeltable/func/callable_function.py,sha256=PO5Mn5WL2cd7y5LcKr_K0AaYHf2-1NfuXP2IPOfsiVs,4933
65
- pixeltable/func/expr_template_function.py,sha256=2co1I9Epzh2ROyQ2WYJAfEbw8OxTbnc0Wp3GOvBLRBU,4043
66
- pixeltable/func/function.py,sha256=BLJbahyKteGemp0EcG7joTrgrG2hnIfwHkuKoLZm4mo,6941
67
- pixeltable/func/function_registry.py,sha256=fBXe7NKyk8_JzZz6fsS0LF-WHTdMnmIP_XzrICuj9fA,12328
68
- pixeltable/func/globals.py,sha256=sEwn6lGgHMp6VQORb_P5qRd_-Q2_bUSqvqM9-XPN_ec,1483
69
- pixeltable/func/query_template_function.py,sha256=pGqwtWiPsEmo7phVoJJODiuD1Sh0gZoW4BpKnZV9cRE,3537
70
- pixeltable/func/signature.py,sha256=vBKs3igtijTQGK7rEGTxBiOznKo6Tj9Ut6OrSfiVcA0,8609
71
- pixeltable/func/udf.py,sha256=_883xbGujeIhYOz-lWH5SvLn22F5JVpP6O_MRvpU4hU,7362
72
- pixeltable/functions/__init__.py,sha256=EtR9M3ewYpmtHeshNULqZVBd87bNeKSFAdpOuWCMl6o,389
73
- pixeltable/functions/anthropic.py,sha256=P1E5o4-8QP1LTIUsWVgo_wMJ4WOnxtXUUXuFWUagChU,3032
74
- pixeltable/functions/audio.py,sha256=7213nTnqKJ6vM9kalaoJ283OwX5SGEJN10vDhaRNZ6E,644
75
- pixeltable/functions/fireworks.py,sha256=qwFC_eIaDs-glxyJ_IVXaNGkpgPzeRsQ_SdpzueBxq0,2605
76
- pixeltable/functions/globals.py,sha256=pCFX2a_N87SwG9GxyPjSOC3TVMowMB6XIHSWKfFOuGE,3917
77
- pixeltable/functions/huggingface.py,sha256=s5KmOfi9-TOYyrL1Wv-voKP7ykkUN7LlLAA_uo01UQc,21210
78
- pixeltable/functions/image.py,sha256=3Qm4ybAT_o4YUl3bzhEXy8dKOwgZ7RCUV-ky-dbL_jc,13836
79
- pixeltable/functions/json.py,sha256=ehCnBA5WiIl-crV9PFVgmxrsWsiO8FpRs9LDwcSpLa4,879
80
- pixeltable/functions/llama_cpp.py,sha256=1awALuAXVpQH64l7vQlM8gvxLDix4c1-6DV3nG5RHu4,3881
81
- pixeltable/functions/mistralai.py,sha256=zljm0ZfucnJFaRyMQHkjyD51vEe0OlurACin7kCNmxk,5569
82
- pixeltable/functions/ollama.py,sha256=eZh461HvChjlr0CvQyd93m7qrv889PAoM-Z1IKierY0,4335
83
- pixeltable/functions/openai.py,sha256=e1-NZP5v0h9Axlo1oxUYzWfVRxKZVhOrKnqwcy0jH88,15583
84
- pixeltable/functions/replicate.py,sha256=j8ZedScOMInmHWmriQSUOviw6tp8gQr-W6n21PNNL2g,2188
85
- pixeltable/functions/string.py,sha256=VqzhVildxTt_XblW89Kl5Zd6MVOU71eaX2LTMY5jkUg,20366
86
- pixeltable/functions/timestamp.py,sha256=Q5l2iEscrS3ZfKAa4R940bSM_x4FsmF-PF2i-wQ_4_c,9096
87
- pixeltable/functions/together.py,sha256=xbgQMlA2G2FXdoQR4O9DlkmBsm2mivAdiOnxtxcyPwo,9440
88
- pixeltable/functions/util.py,sha256=GgKTzCjvzUQNjWtSObTkfxkvJ9GVUOzKimY45WhE25M,759
89
- pixeltable/functions/video.py,sha256=yW1Lwqu4_jYXp1aAOUThKB5-_Qxy-In_vTgB5cuW7Lg,6809
90
- pixeltable/functions/vision.py,sha256=K_E1Q-n2plPuFoOPlbKWRMiJp9dPgftIJ2T_o3TNL3I,15594
91
- pixeltable/functions/whisper.py,sha256=f2wqRd0n9jSBqRZN3W93UaetiAHtbsK0j9jXR2j2kkQ,2913
92
- pixeltable/globals.py,sha256=GDA5T6jpXlFHLMKraLZxZ9jTC99IiQfW85jkbTCPKKc,20002
93
- pixeltable/index/__init__.py,sha256=XBwetNQQwnz0fiKwonOKhyy_U32l_cjt77kNvEIdjWs,102
94
- pixeltable/index/base.py,sha256=zo0YvJI3oXiK6hZJztB36ZftKKhLfO75Zq3t-PeQA6M,1556
95
- pixeltable/index/btree.py,sha256=JFerLyyLoBaD0FSF_jJ6iJFBVa-z_et--KdNR02xjRg,2264
96
- pixeltable/index/embedding_index.py,sha256=g5bajq8Dn82o8ZlkDwPT5kBUClR4ZCuH6dttwCW6KWI,7793
97
- pixeltable/io/__init__.py,sha256=PHqbiEJXFtCzTsia7LmsHLfBIkA41tzII3n9L4UkfJ8,547
98
- pixeltable/io/external_store.py,sha256=H1jt7MDn464QRgBvU-PmcPcFlo3EZBCG7fKWEZXOfyc,16676
99
- pixeltable/io/fiftyone.py,sha256=hH-FahW6BuMQY8lGa2atnNnJto_pK8kWrP_y_EMsq6g,6965
100
- pixeltable/io/globals.py,sha256=9S9wnlIAuhZq7eC_GklTM_UX0UATK9fEagk8-SRCeXQ,17794
101
- pixeltable/io/hf_datasets.py,sha256=o5fqm2CJAjhFd3z-NYGxN0jM1tfrp4szuUX0TGnyNRY,8316
102
- pixeltable/io/label_studio.py,sha256=7KTro1H-AlVbwWuoYwU-mxH3zejZWTpQbz56uX-Wnjs,31078
103
- pixeltable/io/pandas.py,sha256=7eHg7wnAfRA9eBk4iC0iSSVTKOM59Ne4pXokKWdt3dY,9793
104
- pixeltable/io/parquet.py,sha256=4bAQNCahtLGuHRF669kLGx2MhOFmuwTkUYYHLC-qKcs,7862
105
- pixeltable/iterators/__init__.py,sha256=sjldFckkT8aVRiKgEP6faeAK2NQBdzbmpwAeRhI1FkM,366
106
- pixeltable/iterators/base.py,sha256=ZC0ZvXL4iw6AmT8cu-Mdx-T2UG9nmJYV1C6LK4efAfw,1669
107
- pixeltable/iterators/document.py,sha256=AsvEmZ5RGRi3AFGCrH2_-UNx5rTCFA-0WmMYQBTQI20,19679
108
- pixeltable/iterators/string.py,sha256=NG_fWc_GAITDfzl6MvrDOMrSoMcZdMZf6hPQztCSatE,1305
109
- pixeltable/iterators/video.py,sha256=CKx6jHFW-393r4xN-ulVDDZFETSkhhMwT7bPX2NHVU8,9442
110
- pixeltable/metadata/__init__.py,sha256=CI0ZWcxsCbXEWhdbbByNJFdSmvIBrMEbf_vqrVb0b-Q,2209
111
- pixeltable/metadata/converters/convert_10.py,sha256=J1_r7LNNAWTdb042AwqFpJ4sEB-i4qhUdk5iOjcZk34,719
112
- pixeltable/metadata/converters/convert_12.py,sha256=Ci-qyZW1gqci-8wnjeOB5afdq7KTuN-hVSV9OqSPx8g,162
113
- pixeltable/metadata/converters/convert_13.py,sha256=yFR6lD3pOrZ46ZQBFKYvxiIYa7rRxh46Bsq7yiCBNak,1356
114
- pixeltable/metadata/converters/convert_14.py,sha256=9e_JNm3a35Gs4dvFFaV-_jtCqp3ud6OEOqMIhTQmasE,428
115
- pixeltable/metadata/converters/convert_15.py,sha256=jMfL5wGil0-gZeIfmCbgtR3LSVNyOcxVp6YRhBECqY4,1741
116
- pixeltable/metadata/converters/convert_16.py,sha256=SvcWOYgLwRw_gLTnLbCSI9f2cpdkXazYOmmtJUOOzv4,476
117
- pixeltable/metadata/converters/convert_17.py,sha256=vJg4y2lg53WSj9OSntWsdUiCr6yRgMQm0eFbs_Geqjg,861
118
- pixeltable/metadata/converters/convert_18.py,sha256=NxSroQntVLgmvXfae1f0-jYJIhM2W7dhRY3I7g0RxPY,1482
119
- pixeltable/metadata/converters/convert_19.py,sha256=QgUDjNoH87KZg_f3cx4k0ZR67NqWRhZQKIIojbqxSkg,2080
120
- pixeltable/metadata/converters/convert_20.py,sha256=NLMeke9QUGqIJUe5MNqKmVdaLs6pPFrjyigImhogaT4,2768
121
- pixeltable/metadata/converters/convert_21.py,sha256=YTztkbqOC2zQcTWrXfhrP8diUbfxy5DHwsu_IT-bBok,1115
122
- pixeltable/metadata/converters/util.py,sha256=nycZk_UecJcrVZsIyxQrz5ngbke8-yfY-_UcERuzhPk,5983
123
- pixeltable/metadata/notes.py,sha256=HJmeA9fo37iREFIhlbGbxWnwbwIDcvdqvJO-BavIvxE,597
124
- pixeltable/metadata/schema.py,sha256=CnEsMqLn4hzLDaAr5lyd-NqiOUFQdvhxdCoXMR4Qcs4,9352
125
- pixeltable/plan.py,sha256=GRR1HvQKxYfpFJzeuPa1Ku3aE3tR3g3bcRu7KlfsAqQ,37436
126
- pixeltable/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
- pixeltable/store.py,sha256=IG33KEu0eHGD2CGMBVV-HmPj7xGUMCLmLGdJn49_4Cs,21990
128
- pixeltable/tool/create_test_db_dump.py,sha256=Qm9uq-PbcwNhj4Iczw5_uYJXh4TIyOp4RVKXssVFAiU,11972
129
- pixeltable/tool/create_test_video.py,sha256=4cQmqoKjn3juy7Ilty75gWBygqBxTZ1E9XPlrsC0Ssk,2931
130
- pixeltable/tool/doc_plugins/griffe.py,sha256=J5zxyEUchfR3mkWmhx4Vjl_iSodL_pHiuOyD2eczbNU,2182
131
- pixeltable/tool/doc_plugins/mkdocstrings.py,sha256=afq7XOaSC5WRmugkh-FMFMK8PqOgIlDIsJdD8cuPhtE,207
132
- pixeltable/tool/doc_plugins/templates/material/udf.html.jinja,sha256=R-7Q57nmDd5BUea-F1-MjwjK3pq7uBHXNoSo8_QjZG4,4890
133
- pixeltable/tool/embed_udf.py,sha256=EXvfvuzZm0uTgH-aAATSrKV8ixCU8OMwpzXlJMg845Y,299
134
- pixeltable/tool/mypy_plugin.py,sha256=__oTFElirrK25jCX1z_asD_gxGnGxtD2TaU6r1if-Ic,1784
135
- pixeltable/type_system.py,sha256=6U3bSQpXCnrxrpO4uCQ6jTO-OIbgnQB8A2agXnnlvkA,41935
136
- pixeltable/utils/__init__.py,sha256=UYlrf6TIWJT0g-Hac0b34-dEk478B5Qx8dGco34YlIk,439
137
- pixeltable/utils/arrow.py,sha256=UQkMxyU4G_ikUF9OnEHcaBXHjVqdPXHSY4JXGmuARhA,3776
138
- pixeltable/utils/coco.py,sha256=WCUyoj0dTyJFbPB7frEQUvY92SlEPxQ068r-3QAwROE,7285
139
- pixeltable/utils/code.py,sha256=AOw1u2r8_DQXpX-lxJhyHWARGrCRDXOJHFVgKOi54Uc,1231
140
- pixeltable/utils/documents.py,sha256=B984nVigJgHZ5Rm-zX4LLuHuMnfmz-zr24bbAsc_y3w,2511
141
- pixeltable/utils/filecache.py,sha256=6HKQdItqSSTQvj2HkSJulyhfBedi4PgC7umwxXGOVG8,10637
142
- pixeltable/utils/formatter.py,sha256=5E_gDg11ClFI-5SthwkiqyE3hAok3JHDj4OSK9cJklM,9257
143
- pixeltable/utils/http_server.py,sha256=xYPTvmYrkUpKfOaLDq08D-eHswkcgDf4qAt76ZFH6lM,2411
144
- pixeltable/utils/media_store.py,sha256=YwvTjbVqC_aLbDvLuqnDSL8xeIVMZcmzp0ANuM6uMbw,3092
145
- pixeltable/utils/pytorch.py,sha256=6RvOCjy_QV4gc-aht-3d0zoASkuv-warfpl87vgmuKw,3450
146
- pixeltable/utils/s3.py,sha256=huA5hxDGkPIu18zWet76o0FsO7Vbtp-iPmnOzCe-MvA,586
147
- pixeltable/utils/sql.py,sha256=j_tj0h4ffm-DhUIJbvGphxrVyBKlNTwDKqWGhRQ5_PY,795
148
- pixeltable/utils/transactional_directory.py,sha256=UGzCrGtLR3hEEf8sYGuWBzLVFAEQml3vdIavigWeTBM,1349
149
- pixeltable-0.2.24.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
150
- pixeltable-0.2.24.dist-info/METADATA,sha256=pOqK9GV-mL4WjzzxeM9w4sJGZsJNSN05DhiTslxJLtk,18112
151
- pixeltable-0.2.24.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
152
- pixeltable-0.2.24.dist-info/entry_points.txt,sha256=TNI1Gb5vPwFrTdw6TimSYjO8FeK8c_HuPr28vcf7o_I,108
153
- pixeltable-0.2.24.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [mkdocstrings.python.templates]
2
- extension-name=pixeltable.tool.doc_plugins.mkdocstrings:get_templates_path
3
-