pixeltable 0.2.18__py3-none-any.whl → 0.2.20__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/__init__.py +1 -1
- pixeltable/__version__.py +2 -2
- pixeltable/catalog/insertable_table.py +9 -7
- pixeltable/catalog/table.py +18 -5
- pixeltable/catalog/table_version.py +1 -1
- pixeltable/catalog/view.py +1 -1
- pixeltable/dataframe.py +1 -1
- pixeltable/env.py +140 -40
- pixeltable/exceptions.py +12 -5
- pixeltable/exec/component_iteration_node.py +63 -42
- pixeltable/exprs/__init__.py +1 -2
- pixeltable/exprs/expr.py +5 -6
- pixeltable/exprs/function_call.py +8 -10
- pixeltable/exprs/inline_expr.py +200 -0
- pixeltable/exprs/json_path.py +3 -6
- pixeltable/ext/functions/whisperx.py +2 -0
- pixeltable/ext/functions/yolox.py +5 -3
- pixeltable/functions/huggingface.py +89 -12
- pixeltable/functions/image.py +3 -3
- pixeltable/functions/together.py +37 -16
- pixeltable/functions/vision.py +43 -21
- pixeltable/functions/whisper.py +3 -0
- pixeltable/globals.py +7 -1
- pixeltable/io/globals.py +1 -1
- pixeltable/io/hf_datasets.py +3 -3
- pixeltable/iterators/document.py +1 -1
- pixeltable/metadata/__init__.py +1 -1
- pixeltable/metadata/converters/convert_18.py +1 -1
- pixeltable/metadata/converters/convert_20.py +56 -0
- pixeltable/metadata/converters/util.py +29 -4
- pixeltable/metadata/notes.py +1 -0
- pixeltable/tool/create_test_db_dump.py +15 -4
- pixeltable/type_system.py +3 -1
- pixeltable/utils/filecache.py +126 -79
- pixeltable-0.2.20.dist-info/LICENSE +201 -0
- {pixeltable-0.2.18.dist-info → pixeltable-0.2.20.dist-info}/METADATA +16 -6
- {pixeltable-0.2.18.dist-info → pixeltable-0.2.20.dist-info}/RECORD +39 -39
- pixeltable/exprs/inline_array.py +0 -117
- pixeltable/exprs/inline_dict.py +0 -104
- pixeltable-0.2.18.dist-info/LICENSE +0 -18
- {pixeltable-0.2.18.dist-info → pixeltable-0.2.20.dist-info}/WHEEL +0 -0
- {pixeltable-0.2.18.dist-info → pixeltable-0.2.20.dist-info}/entry_points.txt +0 -0
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
pixeltable/__init__.py,sha256=
|
|
2
|
-
pixeltable/__version__.py,sha256=
|
|
1
|
+
pixeltable/__init__.py,sha256=t1uRHKta7mPH9_KgkUpOWBu6AewA7DRdSGGyrm0OcSQ,1279
|
|
2
|
+
pixeltable/__version__.py,sha256=RrlUQ8lgLgO05DWPZnMK9eYJ0O2bfE8N7RBzpECP5f8,114
|
|
3
3
|
pixeltable/catalog/__init__.py,sha256=E41bxaPeQIcgRYzTWc2vkDOboQhRymrJf4IcHQO7o_8,453
|
|
4
4
|
pixeltable/catalog/catalog.py,sha256=tyDyI5wQw7vV6_FChrp9qgGCRClcjiSdW3eygYT0p9s,7849
|
|
5
5
|
pixeltable/catalog/column.py,sha256=Be3WmOadMROS2s4IgtG_Ohjkr07eU9GJItl6WhNishQ,9683
|
|
6
6
|
pixeltable/catalog/dir.py,sha256=fG_BQM-fLuABpTstMVH-9dvZPx7kqi3sgTQgKveVXJI,922
|
|
7
7
|
pixeltable/catalog/globals.py,sha256=XeOeDqq1nDEcpqkY7PYBosoL6tXVAfkJSLJN9aQ_9Fg,1850
|
|
8
|
-
pixeltable/catalog/insertable_table.py,sha256=
|
|
8
|
+
pixeltable/catalog/insertable_table.py,sha256=DFL93x8ihYEnK_yCR8EdYHDQqAomJdU11ygTF0jEFWY,6822
|
|
9
9
|
pixeltable/catalog/named_function.py,sha256=W8vikP_3jMJ9pQQsksO2EfQAlaVxuQHBlo65M4924dc,1150
|
|
10
10
|
pixeltable/catalog/path.py,sha256=QgccEi_QOfaKt8YsR2zLtd_z7z7QQkU_1kprJFi2SPQ,1677
|
|
11
11
|
pixeltable/catalog/path_dict.py,sha256=4b9_Ax7Q8tkmoCYPaKNedpQkU17pE0oGDd2XB53eNZA,5979
|
|
12
12
|
pixeltable/catalog/schema_object.py,sha256=qhpeeUPOYT5doDbsyUNBcPm5QzAQPCAsikqh1PQ6d1k,2226
|
|
13
|
-
pixeltable/catalog/table.py,sha256=
|
|
14
|
-
pixeltable/catalog/table_version.py,sha256=
|
|
13
|
+
pixeltable/catalog/table.py,sha256=NQMZwG6wPu8DzJmZLXTkDm_Dth0AmNXhcixNqiXlPuc,41307
|
|
14
|
+
pixeltable/catalog/table_version.py,sha256=4_djeYLGu9ljRSXe_f14c3HvXL0o0P2-sOZ-1bBQzYw,56991
|
|
15
15
|
pixeltable/catalog/table_version_path.py,sha256=Ee6nPh5Jgbp91qFSKkCwdzIpQ3gJqv3SG06bFFLhbBE,6139
|
|
16
|
-
pixeltable/catalog/view.py,sha256=
|
|
17
|
-
pixeltable/dataframe.py,sha256
|
|
18
|
-
pixeltable/env.py,sha256=
|
|
19
|
-
pixeltable/exceptions.py,sha256=
|
|
16
|
+
pixeltable/catalog/view.py,sha256=RfQRldjPUZ7W8jMMdXJFSjbjCUe-3ynxDFvg4W27qXc,10642
|
|
17
|
+
pixeltable/dataframe.py,sha256=kAPv9YjOEx0xZViFG3fi6eXsX6zUhm3F2x5U7qDOrJU,34378
|
|
18
|
+
pixeltable/env.py,sha256=XHxv2P5Aj1dvUxwlvfoxahVemhJFyapmW7p3pf8Vq7g,30133
|
|
19
|
+
pixeltable/exceptions.py,sha256=NuFY2WtkQpLfLHT_J70kOw9Tr0kEDkkgo-u7As4Gaq4,410
|
|
20
20
|
pixeltable/exec/__init__.py,sha256=VRENEONsAv3PPoBV0r7h-7nAB7SWM4Uglmu1FVQE5uQ,507
|
|
21
21
|
pixeltable/exec/aggregation_node.py,sha256=-DunTLlVh3OflpwTIjkwKGczotl4i3oUqrvfyvRjv6Q,3452
|
|
22
22
|
pixeltable/exec/cache_prefetch_node.py,sha256=d5pEuR6AtJQkEVy9X3XeYFI_q0szMtoNAH96vYdtBE0,5241
|
|
23
|
-
pixeltable/exec/component_iteration_node.py,sha256=
|
|
23
|
+
pixeltable/exec/component_iteration_node.py,sha256=ABuXGbDRQWLGuaBnfK7bvOxCrz81vMMiAvXHHI8SX4c,4930
|
|
24
24
|
pixeltable/exec/data_row_batch.py,sha256=1IDYHBkSQ60dwOnAGnS-Wpp3AsnbMqKcY40zUT7ku-Q,3392
|
|
25
25
|
pixeltable/exec/exec_context.py,sha256=0rg5V8HzSy-BvqmSbGr-U4aJ4eOZg2JN0x6zjYQGtBc,1090
|
|
26
26
|
pixeltable/exec/exec_node.py,sha256=ixkv3p_EfF53UDWgwLjQGKR1LNIQxzgDXsTzzJj6ea4,2211
|
|
@@ -29,7 +29,7 @@ pixeltable/exec/in_memory_data_node.py,sha256=WL0IvAkb88cD16pnykMPucAXIkVXA19KDn
|
|
|
29
29
|
pixeltable/exec/media_validation_node.py,sha256=OKfRyKpcn7AZdACy_HD4NsDC87ZfNFs1tdrQz2NiIVw,1514
|
|
30
30
|
pixeltable/exec/row_update_node.py,sha256=b8yuKtkmI2Q6U-7svKbkjdM3Z85ddZoJgJgUa17j-YE,2773
|
|
31
31
|
pixeltable/exec/sql_node.py,sha256=c0oOeLmGRLVUKrk5yHxWyglSTlsMFLXQcZs2BTfT5vc,13171
|
|
32
|
-
pixeltable/exprs/__init__.py,sha256=
|
|
32
|
+
pixeltable/exprs/__init__.py,sha256=tNEn7FcJ3e58-OwrOoxf-YdBVJAy0yzCgNqslBXNgZo,935
|
|
33
33
|
pixeltable/exprs/arithmetic_expr.py,sha256=6NEaT9Kap0jSxuM_q-Qvmq-WzJU0BT_taVw5bA3KQdw,5965
|
|
34
34
|
pixeltable/exprs/array_slice.py,sha256=_rfW_EmAvIseSJR4RVqIV8iNSoKQS1e7pgCshYllRJc,2150
|
|
35
35
|
pixeltable/exprs/column_property_ref.py,sha256=lTbskhZlU_P_Za__VkfQFpZ74aTL62_XBoAOqufIEqU,2807
|
|
@@ -37,16 +37,15 @@ pixeltable/exprs/column_ref.py,sha256=riBNOWb03B6wKsImtQp9hBEanHEt8IzG9H49Ov6JwB
|
|
|
37
37
|
pixeltable/exprs/comparison.py,sha256=1B0FohDPuZ_abg0rVvZgiPMzV99qtS4S1o4acj4ZuKU,4763
|
|
38
38
|
pixeltable/exprs/compound_predicate.py,sha256=SB8om8wYJwNhOJ_kfMYFg8i4J7GYvj4NuzjnrIqRwec,3843
|
|
39
39
|
pixeltable/exprs/data_row.py,sha256=e40TOneupXtAZRnDeuETDfHTYWK1d1iJ7sTAbJGlgOs,9431
|
|
40
|
-
pixeltable/exprs/expr.py,sha256=
|
|
40
|
+
pixeltable/exprs/expr.py,sha256=_S85rVDH4Swy6hw6Dv3G_bv8yNuCsu2H7nCzTNTlibI,30058
|
|
41
41
|
pixeltable/exprs/expr_set.py,sha256=tEc1b7c4SlRKWDTkju9SphEIHpGzHXx4a_bcSIr3awo,1898
|
|
42
|
-
pixeltable/exprs/function_call.py,sha256=
|
|
42
|
+
pixeltable/exprs/function_call.py,sha256=tmuPKExJWma93rcYH5wixUGa4WKw74WA0qcRfcOiBdU,20035
|
|
43
43
|
pixeltable/exprs/globals.py,sha256=EKiOmuUCfQW1ASb_G6edXzuZrQJblFAt3GCMQjIxNE0,1984
|
|
44
44
|
pixeltable/exprs/in_predicate.py,sha256=vJwT07SlDXBYMbqpf-dgV2gr6je5DehrpkPBapnZZiM,3792
|
|
45
|
-
pixeltable/exprs/
|
|
46
|
-
pixeltable/exprs/inline_dict.py,sha256=SSVAneF-70Bs12EIGVRuNU_T7EBY2OE9GAymEOouTTE,3952
|
|
45
|
+
pixeltable/exprs/inline_expr.py,sha256=FIQsgwfz-9qmghnaTSTL3522Mhr9GQUKM_SDxzA4P5w,7055
|
|
47
46
|
pixeltable/exprs/is_null.py,sha256=qkzxr0NPuID77gs-J_tXj0MYuoCPBEd3Iq6MUWJ_dSc,1101
|
|
48
47
|
pixeltable/exprs/json_mapper.py,sha256=grr-9xVOU_TUL1wtON7wNqZ10-p3mGp66cTCofQKkqc,4590
|
|
49
|
-
pixeltable/exprs/json_path.py,sha256=
|
|
48
|
+
pixeltable/exprs/json_path.py,sha256=xlwUeYL8D--dPTMhzoyCtkQVeik0sfwI7k_XlNs0eS4,6912
|
|
50
49
|
pixeltable/exprs/literal.py,sha256=ofhMe2kiT4tWNuzf2zKOiGY5pml10dRqbV0e9HGVcbs,3780
|
|
51
50
|
pixeltable/exprs/method_ref.py,sha256=6TQnl5JhsUqKNPFUbu2tzu5svF_BZf5rfm2cZo740Ts,2600
|
|
52
51
|
pixeltable/exprs/object_ref.py,sha256=UDLfpFXrOTrYZOVWH6G5dx4Ax_BxFTpLOaIab3MuyyI,1282
|
|
@@ -58,8 +57,8 @@ pixeltable/exprs/type_cast.py,sha256=BjBUsWJnWOQAOshtZqrPmZsZU-qGpa5yNXX6Sb0YYv0
|
|
|
58
57
|
pixeltable/exprs/variable.py,sha256=SizUTd_s6VFRcZ9J41mPShW0_JFM0oBE3UMwG5aywfQ,1428
|
|
59
58
|
pixeltable/ext/__init__.py,sha256=iO0J_Jfnv38F5y40sDAW54gpXjIyZgOGgoWQJAwjQec,423
|
|
60
59
|
pixeltable/ext/functions/__init__.py,sha256=hIjPEKC5E5uJOXlQqUyhP9yn9ZqWOCJAlj0kXWDlhlE,159
|
|
61
|
-
pixeltable/ext/functions/whisperx.py,sha256
|
|
62
|
-
pixeltable/ext/functions/yolox.py,sha256=
|
|
60
|
+
pixeltable/ext/functions/whisperx.py,sha256=CUJlr9D8_HqeIjCpDAezaQt8jw7HmljtWDUfX9cscVs,2399
|
|
61
|
+
pixeltable/ext/functions/yolox.py,sha256=k-pQTelv4Tea3AXvDB7Kc7YCIa1uexjVGqxETP0B_hc,5351
|
|
63
62
|
pixeltable/func/__init__.py,sha256=WjftUGyNkd6bF_qSxqZ5Gd7Elf8oExb3dUlpydhdFTo,407
|
|
64
63
|
pixeltable/func/aggregate_function.py,sha256=4UxBIwa2PKavITS3_EIJ_JhO5KjOntO6eYa6XWG3rVY,9487
|
|
65
64
|
pixeltable/func/callable_function.py,sha256=vmAs9FIvyV7loUKc-2NAA9MUKVXS6hEZWQ9RHcdcqwQ,4913
|
|
@@ -75,36 +74,36 @@ pixeltable/functions/anthropic.py,sha256=P1E5o4-8QP1LTIUsWVgo_wMJ4WOnxtXUUXuFWUa
|
|
|
75
74
|
pixeltable/functions/audio.py,sha256=Z94EB2iJgrXxWYMOGjxJ2KWSDhcEO61Jgs4YoFLYH78,797
|
|
76
75
|
pixeltable/functions/fireworks.py,sha256=qwFC_eIaDs-glxyJ_IVXaNGkpgPzeRsQ_SdpzueBxq0,2605
|
|
77
76
|
pixeltable/functions/globals.py,sha256=VqQq_SthQ-y_RG5Zu5A8-Ux7UBQvhu1Ugmbx7FogQGg,2867
|
|
78
|
-
pixeltable/functions/huggingface.py,sha256=
|
|
79
|
-
pixeltable/functions/image.py,sha256=
|
|
77
|
+
pixeltable/functions/huggingface.py,sha256=pcWexzwJSx6A5IZM9E3l9ceQgMzLSJtZBqNoRuPT1kg,15795
|
|
78
|
+
pixeltable/functions/image.py,sha256=a9ugJYuxBmJ6P9VNZPgaezHoTdgl70oaxxD-iJT5N5I,13583
|
|
80
79
|
pixeltable/functions/json.py,sha256=h6rXIIh4xm9EJI-lxoj0fQfUrTNBumoyiGH15sw_TGk,915
|
|
81
80
|
pixeltable/functions/mistralai.py,sha256=U7f6g4EyHMsik8HMIdJIKn6xFSCdQH6950AAOYLT7FI,5609
|
|
82
81
|
pixeltable/functions/openai.py,sha256=yr2hgUa0ZtUJOezSC9aVqp-BoxADf-gmYoK8FE2jbVU,15930
|
|
83
82
|
pixeltable/functions/string.py,sha256=RCGj5bXx7MWgcdcOuy1IMTn3vBvGzjgxudyUrDqWdAg,20153
|
|
84
83
|
pixeltable/functions/timestamp.py,sha256=lyWPv2sCpejD2t9DB62nxJEm0kWLNsAW8yMiT5iEsOo,9121
|
|
85
|
-
pixeltable/functions/together.py,sha256=
|
|
84
|
+
pixeltable/functions/together.py,sha256=pmd_Xo9XaJ9M8-Zx1bDb4pnomHGZ5swBENHYx-uhmPs,9480
|
|
86
85
|
pixeltable/functions/util.py,sha256=F2iiIL7UfhYdCVzdCa3efYqWbaeLKFrbycKnuPkG57M,650
|
|
87
86
|
pixeltable/functions/video.py,sha256=qaPkeU4qO_g_lQhiMcytAOiJbwtfO89amGVxsT86MZQ,7180
|
|
88
|
-
pixeltable/functions/vision.py,sha256=
|
|
89
|
-
pixeltable/functions/whisper.py,sha256=
|
|
90
|
-
pixeltable/globals.py,sha256=
|
|
87
|
+
pixeltable/functions/vision.py,sha256=K_E1Q-n2plPuFoOPlbKWRMiJp9dPgftIJ2T_o3TNL3I,15594
|
|
88
|
+
pixeltable/functions/whisper.py,sha256=VvGVWEsANHH2oCabT1bFTXoDEn5g90gQT_PCh56W4n4,3377
|
|
89
|
+
pixeltable/globals.py,sha256=dbLCAuobQAJgjlTASp9bGRLwOYEyBntKLl3-GP7GTgU,16755
|
|
91
90
|
pixeltable/index/__init__.py,sha256=XBwetNQQwnz0fiKwonOKhyy_U32l_cjt77kNvEIdjWs,102
|
|
92
91
|
pixeltable/index/base.py,sha256=YAQ5Dz1mfI0dfu9rxWHWroE8TjB90yKfPtXAzoADq38,1568
|
|
93
92
|
pixeltable/index/btree.py,sha256=NE4GYhcJWYJhdKyeHI0sQBlFvUaIgGOF9KLyCZOfFjE,1822
|
|
94
93
|
pixeltable/index/embedding_index.py,sha256=U1wAjcTYvw3uJf3QHIOzBV8FLOUn8IeaFsLzUb_QTmc,7829
|
|
95
94
|
pixeltable/io/__init__.py,sha256=bJGWPhKfgoMrSKFdXhLGupjQQbIXt7JaoUPwilND2PE,519
|
|
96
95
|
pixeltable/io/external_store.py,sha256=iRqvMx9QuCKmOKBe12hoY1KfXyGvDHL-q1CjaZr3Fkk,16466
|
|
97
|
-
pixeltable/io/globals.py,sha256=
|
|
98
|
-
pixeltable/io/hf_datasets.py,sha256=
|
|
96
|
+
pixeltable/io/globals.py,sha256=ZmjbLy9EMhJjXKeNVgPhsi1dmllwJ1rsHu1XHadHtgM,13330
|
|
97
|
+
pixeltable/io/hf_datasets.py,sha256=E5E2yfaHo9Hf9gFI9ZhzaztHtRC_xDL6mIyeeond2Uo,8284
|
|
99
98
|
pixeltable/io/label_studio.py,sha256=m1-ayI7S8Lxv2R1agrO-32xXyB8Z-YPP_ErAqu22c7o,31023
|
|
100
99
|
pixeltable/io/pandas.py,sha256=7eHg7wnAfRA9eBk4iC0iSSVTKOM59Ne4pXokKWdt3dY,9793
|
|
101
100
|
pixeltable/io/parquet.py,sha256=bUBJmnTFrlBZ8yIesqUJ1JufXZ76pm7vQ3Fq48hVijA,7853
|
|
102
101
|
pixeltable/iterators/__init__.py,sha256=sjldFckkT8aVRiKgEP6faeAK2NQBdzbmpwAeRhI1FkM,366
|
|
103
102
|
pixeltable/iterators/base.py,sha256=cnEh1tNN2JAxRzrLTg3dhun3N1oNQ8vifCm6ts3_UiE,1687
|
|
104
|
-
pixeltable/iterators/document.py,sha256=
|
|
103
|
+
pixeltable/iterators/document.py,sha256=dAJjCRY0HUxrdMlGjf19ZLChARmWonYoJ0QvgfxkQyQ,19455
|
|
105
104
|
pixeltable/iterators/string.py,sha256=NG_fWc_GAITDfzl6MvrDOMrSoMcZdMZf6hPQztCSatE,1305
|
|
106
105
|
pixeltable/iterators/video.py,sha256=Glp7qNjyrH8X5S4WJOEsZhCa4yChalTICiR9bbMsHlo,5734
|
|
107
|
-
pixeltable/metadata/__init__.py,sha256=
|
|
106
|
+
pixeltable/metadata/__init__.py,sha256=8mYxCsc_uvN3tqwrmIbB9iBkQ9r9ybsdpFCMsrzNaNw,2172
|
|
108
107
|
pixeltable/metadata/converters/convert_10.py,sha256=J1_r7LNNAWTdb042AwqFpJ4sEB-i4qhUdk5iOjcZk34,719
|
|
109
108
|
pixeltable/metadata/converters/convert_12.py,sha256=Ci-qyZW1gqci-8wnjeOB5afdq7KTuN-hVSV9OqSPx8g,162
|
|
110
109
|
pixeltable/metadata/converters/convert_13.py,sha256=yFR6lD3pOrZ46ZQBFKYvxiIYa7rRxh46Bsq7yiCBNak,1356
|
|
@@ -112,26 +111,27 @@ pixeltable/metadata/converters/convert_14.py,sha256=o4Dwu5wujJYILN-2chg3xCSUsh4c
|
|
|
112
111
|
pixeltable/metadata/converters/convert_15.py,sha256=N-Lt3OdOrUprN-z1gFcxniZgAtZ7jzup_YUZzXX6EtY,1709
|
|
113
112
|
pixeltable/metadata/converters/convert_16.py,sha256=SvcWOYgLwRw_gLTnLbCSI9f2cpdkXazYOmmtJUOOzv4,476
|
|
114
113
|
pixeltable/metadata/converters/convert_17.py,sha256=vJg4y2lg53WSj9OSntWsdUiCr6yRgMQm0eFbs_Geqjg,861
|
|
115
|
-
pixeltable/metadata/converters/convert_18.py,sha256=
|
|
114
|
+
pixeltable/metadata/converters/convert_18.py,sha256=NxSroQntVLgmvXfae1f0-jYJIhM2W7dhRY3I7g0RxPY,1482
|
|
116
115
|
pixeltable/metadata/converters/convert_19.py,sha256=5CdAC4g9klvJzg280EMJfgG39zY7GcRVvtPTp-fC5tg,2064
|
|
117
|
-
pixeltable/metadata/converters/
|
|
118
|
-
pixeltable/metadata/
|
|
116
|
+
pixeltable/metadata/converters/convert_20.py,sha256=yUwL5eVsvB11_I0iM3nKOJev6O1O1uuZRsoFG-5BEwc,2752
|
|
117
|
+
pixeltable/metadata/converters/util.py,sha256=9VRBs9HH0o5FhZsng_uDBIUZqT5i_clSs2ejiX-fhkw,3964
|
|
118
|
+
pixeltable/metadata/notes.py,sha256=1Hk6TGy69a4jgqqLoaUlQPtzANMvMGkifKC5rjqeOeA,552
|
|
119
119
|
pixeltable/metadata/schema.py,sha256=H2NjpNBxZNDw_VV3UK97fKs30dh81uQf8F3vexKeePo,8567
|
|
120
120
|
pixeltable/plan.py,sha256=pHTJxv2WzsDXtnBd9RvXtUnEFvIQjXV7NX_BIQRQiHs,38544
|
|
121
121
|
pixeltable/store.py,sha256=zlVG9rs5k0k8wcfYF2jcgAQgIOfanJ9YjIDs_kacRIQ,21106
|
|
122
|
-
pixeltable/tool/create_test_db_dump.py,sha256=
|
|
122
|
+
pixeltable/tool/create_test_db_dump.py,sha256=y4LotPVbcQeqnarpISmVPWoURBVnjKjSl9Yi2MmCZE0,11980
|
|
123
123
|
pixeltable/tool/create_test_video.py,sha256=OLfccymYReIpzE8osZn4rQvLXxxiPC_l0vc06U74hVM,2899
|
|
124
124
|
pixeltable/tool/doc_plugins/griffe.py,sha256=Q6ARBlQNBm8J21G_p625TB5c8MQ8r6hJlm7I2LoBon0,3422
|
|
125
125
|
pixeltable/tool/doc_plugins/mkdocstrings.py,sha256=afq7XOaSC5WRmugkh-FMFMK8PqOgIlDIsJdD8cuPhtE,207
|
|
126
126
|
pixeltable/tool/doc_plugins/templates/material/udf.html.jinja,sha256=R-7Q57nmDd5BUea-F1-MjwjK3pq7uBHXNoSo8_QjZG4,4890
|
|
127
127
|
pixeltable/tool/embed_udf.py,sha256=llHUhjGnCMp7Wyz7eHgKZV2v6o2ZWSgLQKscESuHK_o,269
|
|
128
|
-
pixeltable/type_system.py,sha256=
|
|
128
|
+
pixeltable/type_system.py,sha256=YS1bxv8f0pTfpcDMGJ68Z-LyzPQgAUz07fh_cx1lW5Q,31403
|
|
129
129
|
pixeltable/utils/__init__.py,sha256=UYlrf6TIWJT0g-Hac0b34-dEk478B5Qx8dGco34YlIk,439
|
|
130
130
|
pixeltable/utils/arrow.py,sha256=83_7aG5UR2qtTktw_otLkQs-RQbLk0VVM0JLJkbweNU,3692
|
|
131
131
|
pixeltable/utils/coco.py,sha256=ISpFBhR4eO1jOcg_SPb0thVI4KdS6H0RyNQauZIA5A4,7287
|
|
132
132
|
pixeltable/utils/code.py,sha256=AOw1u2r8_DQXpX-lxJhyHWARGrCRDXOJHFVgKOi54Uc,1231
|
|
133
133
|
pixeltable/utils/documents.py,sha256=UQq2F-W4stDuldFDSGHwUe5PK1dPoalN8SfYRoGqd14,2038
|
|
134
|
-
pixeltable/utils/filecache.py,sha256=
|
|
134
|
+
pixeltable/utils/filecache.py,sha256=hQOSz5VmC2MBk0F4RaZKgG1OQFFXOyFfanp-cQMOsU4,10553
|
|
135
135
|
pixeltable/utils/formatter.py,sha256=XOuNAhZKCvA9Dlj1QYHB_ovwWUuznvvvdkWgjl4bWq0,9239
|
|
136
136
|
pixeltable/utils/help.py,sha256=cCnxJ4VP9MJ57iDqExmnDcM-JG3a1lw_q7g-D7bpSVI,252
|
|
137
137
|
pixeltable/utils/http_server.py,sha256=WQ5ILMzlz4TlwI9j5YqAPgEZyhrN1GytMNDbLD9occk,2422
|
|
@@ -140,8 +140,8 @@ pixeltable/utils/pytorch.py,sha256=VWczSB_FT_aOU5Xqv4T5ONTsnQN6KDlZmMkuoBuji08,3
|
|
|
140
140
|
pixeltable/utils/s3.py,sha256=DBfXp0SYubhiKckdAD7PsiVBX_YfVP8Rcu6DCG_3SaQ,433
|
|
141
141
|
pixeltable/utils/sql.py,sha256=5n5_OmXAGtqFdL6z5XvgnU-vlx6Ba6f1WJrO1ZwUle8,765
|
|
142
142
|
pixeltable/utils/transactional_directory.py,sha256=UGzCrGtLR3hEEf8sYGuWBzLVFAEQml3vdIavigWeTBM,1349
|
|
143
|
-
pixeltable-0.2.
|
|
144
|
-
pixeltable-0.2.
|
|
145
|
-
pixeltable-0.2.
|
|
146
|
-
pixeltable-0.2.
|
|
147
|
-
pixeltable-0.2.
|
|
143
|
+
pixeltable-0.2.20.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
144
|
+
pixeltable-0.2.20.dist-info/METADATA,sha256=QYhIK4U4RMLo_B3lTevJoPXFTM3hP8qfqO1A89R9Qjo,14972
|
|
145
|
+
pixeltable-0.2.20.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
146
|
+
pixeltable-0.2.20.dist-info/entry_points.txt,sha256=TNI1Gb5vPwFrTdw6TimSYjO8FeK8c_HuPr28vcf7o_I,108
|
|
147
|
+
pixeltable-0.2.20.dist-info/RECORD,,
|
pixeltable/exprs/inline_array.py
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import copy
|
|
4
|
-
from typing import Iterable, Optional, List, Any, Dict, Tuple
|
|
5
|
-
|
|
6
|
-
import numpy as np
|
|
7
|
-
import sqlalchemy as sql
|
|
8
|
-
|
|
9
|
-
import pixeltable.type_system as ts
|
|
10
|
-
from .data_row import DataRow
|
|
11
|
-
from .expr import Expr
|
|
12
|
-
from .inline_dict import InlineDict
|
|
13
|
-
from .row_builder import RowBuilder
|
|
14
|
-
from .sql_element_cache import SqlElementCache
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class InlineArray(Expr):
|
|
18
|
-
"""
|
|
19
|
-
Array 'literal' which can use Exprs as values.
|
|
20
|
-
|
|
21
|
-
The literal can be cast as either a pixeltable `ArrayType` or `JsonType`. If `force_json`
|
|
22
|
-
is `True`, it will always be cast as a `JsonType`. If `force_json` is `False`, it will be cast as an
|
|
23
|
-
`ArrayType` if it is a homogenous array of scalars or arrays, or a `JsonType` otherwise.
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
|
-
elements: List[Tuple[Optional[int], Any]]
|
|
27
|
-
|
|
28
|
-
def __init__(self, elements: Iterable, force_json: bool = False):
|
|
29
|
-
# we need to call this in order to populate self.components
|
|
30
|
-
super().__init__(ts.ArrayType((len(elements),), ts.IntType()))
|
|
31
|
-
|
|
32
|
-
# elements contains
|
|
33
|
-
# - for Expr elements: (index into components, None)
|
|
34
|
-
# - for non-Expr elements: (None, value)
|
|
35
|
-
self.elements = []
|
|
36
|
-
for el in elements:
|
|
37
|
-
el = copy.deepcopy(el)
|
|
38
|
-
if isinstance(el, list):
|
|
39
|
-
# If col_type is an ArrayType, we'll require it to be a multidimensional array
|
|
40
|
-
# of the specified underlying type
|
|
41
|
-
el = InlineArray(tuple(el), force_json)
|
|
42
|
-
if isinstance(el, dict):
|
|
43
|
-
el = InlineDict(el)
|
|
44
|
-
if isinstance(el, Expr):
|
|
45
|
-
self.elements.append((len(self.components), None))
|
|
46
|
-
self.components.append(el)
|
|
47
|
-
else:
|
|
48
|
-
self.elements.append((None, el))
|
|
49
|
-
|
|
50
|
-
inferred_element_type: Optional[ts.ColumnType] = ts.InvalidType()
|
|
51
|
-
if not force_json:
|
|
52
|
-
# try to infer the element type
|
|
53
|
-
for idx, val in self.elements:
|
|
54
|
-
if idx is not None:
|
|
55
|
-
inferred_element_type = inferred_element_type.supertype(self.components[idx].col_type)
|
|
56
|
-
else:
|
|
57
|
-
inferred_element_type = inferred_element_type.supertype(ts.ColumnType.infer_literal_type(val))
|
|
58
|
-
if inferred_element_type is None:
|
|
59
|
-
break
|
|
60
|
-
|
|
61
|
-
if force_json or inferred_element_type is None:
|
|
62
|
-
# JSON conversion is forced, or there is no common supertype
|
|
63
|
-
# TODO: make sure this doesn't contain Images
|
|
64
|
-
self.col_type = ts.JsonType()
|
|
65
|
-
elif inferred_element_type.is_scalar_type():
|
|
66
|
-
self.col_type = ts.ArrayType((len(self.elements),), inferred_element_type)
|
|
67
|
-
elif inferred_element_type.is_array_type():
|
|
68
|
-
assert isinstance(inferred_element_type, ts.ArrayType)
|
|
69
|
-
self.col_type = ts.ArrayType(
|
|
70
|
-
(len(self.elements), *inferred_element_type.shape), ts.ColumnType.make_type(inferred_element_type.dtype))
|
|
71
|
-
else:
|
|
72
|
-
self.col_type = ts.JsonType()
|
|
73
|
-
|
|
74
|
-
self.id = self._create_id()
|
|
75
|
-
|
|
76
|
-
def __str__(self) -> str:
|
|
77
|
-
elem_strs = [str(val) if val is not None else str(self.components[idx]) for idx, val in self.elements]
|
|
78
|
-
return f'[{", ".join(elem_strs)}]'
|
|
79
|
-
|
|
80
|
-
def _equals(self, other: InlineDict) -> bool:
|
|
81
|
-
return self.elements == other.elements
|
|
82
|
-
|
|
83
|
-
def _id_attrs(self) -> List[Tuple[str, Any]]:
|
|
84
|
-
return super()._id_attrs() + [('elements', self.elements)]
|
|
85
|
-
|
|
86
|
-
def sql_expr(self, _: SqlElementCache) -> Optional[sql.ClauseElement]:
|
|
87
|
-
return None
|
|
88
|
-
|
|
89
|
-
def eval(self, data_row: DataRow, row_builder: RowBuilder) -> None:
|
|
90
|
-
result = [None] * len(self.elements)
|
|
91
|
-
for i, (child_idx, val) in enumerate(self.elements):
|
|
92
|
-
if child_idx is not None:
|
|
93
|
-
result[i] = data_row[self.components[child_idx].slot_idx]
|
|
94
|
-
else:
|
|
95
|
-
result[i] = copy.deepcopy(val)
|
|
96
|
-
if self.col_type.is_array_type():
|
|
97
|
-
data_row[self.slot_idx] = np.array(result)
|
|
98
|
-
else:
|
|
99
|
-
data_row[self.slot_idx] = result
|
|
100
|
-
|
|
101
|
-
def _as_dict(self) -> Dict:
|
|
102
|
-
return {'elements': self.elements, 'is_json': self.col_type.is_json_type(), **super()._as_dict()}
|
|
103
|
-
|
|
104
|
-
@classmethod
|
|
105
|
-
def _from_dict(cls, d: Dict, components: List[Expr]) -> Expr:
|
|
106
|
-
assert 'elements' in d
|
|
107
|
-
arg: List[Any] = []
|
|
108
|
-
for idx, val in d['elements']:
|
|
109
|
-
# TODO Normalize idx -1 to None via schema migrations.
|
|
110
|
-
# Long-term we should not be allowing idx == -1.
|
|
111
|
-
if idx is not None and idx >= 0: # Older schemas might have -1 instead of None
|
|
112
|
-
arg.append(components[idx])
|
|
113
|
-
else:
|
|
114
|
-
arg.append(val)
|
|
115
|
-
# in order to avoid a schema version change, we'll interpret the absence of 'is_json' to indicate an ArrayType
|
|
116
|
-
is_json = d.get('is_json', False)
|
|
117
|
-
return cls(tuple(arg), force_json=is_json)
|
pixeltable/exprs/inline_dict.py
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
import copy
|
|
4
|
-
from typing import Optional, List, Any, Dict, Tuple
|
|
5
|
-
|
|
6
|
-
import sqlalchemy as sql
|
|
7
|
-
|
|
8
|
-
import pixeltable.exceptions as excs
|
|
9
|
-
import pixeltable.type_system as ts
|
|
10
|
-
from .data_row import DataRow
|
|
11
|
-
from .expr import Expr
|
|
12
|
-
from .row_builder import RowBuilder
|
|
13
|
-
from .sql_element_cache import SqlElementCache
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class InlineDict(Expr):
|
|
17
|
-
"""
|
|
18
|
-
Dictionary 'literal' which can use Exprs as values.
|
|
19
|
-
"""
|
|
20
|
-
def __init__(self, d: Dict):
|
|
21
|
-
from .inline_array import InlineArray
|
|
22
|
-
super().__init__(ts.JsonType()) # we need to call this in order to populate self.components
|
|
23
|
-
# dict_items contains
|
|
24
|
-
# - for Expr fields: (key, index into components, None)
|
|
25
|
-
# - for non-Expr fields: (key, None, value)
|
|
26
|
-
self.dict_items: List[Tuple[str, Optional[int], Any]] = []
|
|
27
|
-
for key, val in d.items():
|
|
28
|
-
if not isinstance(key, str):
|
|
29
|
-
raise excs.Error(f'Dictionary requires string keys, {key} has type {type(key)}')
|
|
30
|
-
val = copy.deepcopy(val)
|
|
31
|
-
if isinstance(val, dict):
|
|
32
|
-
val = InlineDict(val)
|
|
33
|
-
if isinstance(val, list) or isinstance(val, tuple):
|
|
34
|
-
val = InlineArray(tuple(val), force_json=True)
|
|
35
|
-
if isinstance(val, Expr):
|
|
36
|
-
self.dict_items.append((key, len(self.components), None))
|
|
37
|
-
self.components.append(val)
|
|
38
|
-
else:
|
|
39
|
-
self.dict_items.append((key, None, val))
|
|
40
|
-
|
|
41
|
-
self.type_spec: Optional[Dict[str, ts.ColumnType]] = {}
|
|
42
|
-
for key, idx, _ in self.dict_items:
|
|
43
|
-
if idx is None:
|
|
44
|
-
# TODO: implement type inference for values
|
|
45
|
-
self.type_spec = None
|
|
46
|
-
break
|
|
47
|
-
self.type_spec[key] = self.components[idx].col_type
|
|
48
|
-
self.col_type = ts.JsonType(self.type_spec)
|
|
49
|
-
|
|
50
|
-
self.id = self._create_id()
|
|
51
|
-
|
|
52
|
-
def __str__(self) -> str:
|
|
53
|
-
item_strs: List[str] = []
|
|
54
|
-
i = 0
|
|
55
|
-
def print_val(val: Any) -> str:
|
|
56
|
-
if isinstance(val, str):
|
|
57
|
-
return f"'{val}'"
|
|
58
|
-
return str(val)
|
|
59
|
-
for key, idx, val in self.dict_items:
|
|
60
|
-
if idx is not None:
|
|
61
|
-
item_strs.append(f"'{key}': {str(self.components[i])}")
|
|
62
|
-
i += 1
|
|
63
|
-
else:
|
|
64
|
-
item_strs.append(f"'{key}': {print_val(val)}")
|
|
65
|
-
return '{' + ', '.join(item_strs) + '}'
|
|
66
|
-
|
|
67
|
-
def _equals(self, other: InlineDict) -> bool:
|
|
68
|
-
return self.dict_items == other.dict_items
|
|
69
|
-
|
|
70
|
-
def _id_attrs(self) -> List[Tuple[str, Any]]:
|
|
71
|
-
return super()._id_attrs() + [('dict_items', self.dict_items)]
|
|
72
|
-
|
|
73
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
74
|
-
"""Return the original dict used to construct this"""
|
|
75
|
-
return {key: val if idx is None else self.components[idx] for key, idx, val in self.dict_items}
|
|
76
|
-
|
|
77
|
-
def sql_expr(self, _: SqlElementCache) -> Optional[sql.ClauseElement]:
|
|
78
|
-
return None
|
|
79
|
-
|
|
80
|
-
def eval(self, data_row: DataRow, row_builder: RowBuilder) -> None:
|
|
81
|
-
result = {}
|
|
82
|
-
for key, idx, val in self.dict_items:
|
|
83
|
-
assert isinstance(key, str)
|
|
84
|
-
if idx is not None:
|
|
85
|
-
result[key] = data_row[self.components[idx].slot_idx]
|
|
86
|
-
else:
|
|
87
|
-
result[key] = copy.deepcopy(val)
|
|
88
|
-
data_row[self.slot_idx] = result
|
|
89
|
-
|
|
90
|
-
def _as_dict(self) -> Dict:
|
|
91
|
-
return {'dict_items': self.dict_items, **super()._as_dict()}
|
|
92
|
-
|
|
93
|
-
@classmethod
|
|
94
|
-
def _from_dict(cls, d: Dict, components: List[Expr]) -> Expr:
|
|
95
|
-
assert 'dict_items' in d
|
|
96
|
-
arg: Dict[str, Any] = {}
|
|
97
|
-
for key, idx, val in d['dict_items']:
|
|
98
|
-
# TODO Normalize idx -1 to None via schema migrations.
|
|
99
|
-
# Long-term we should not be allowing idx == -1.
|
|
100
|
-
if idx is not None and idx >= 0: # Older schemas might have -1 instead of None
|
|
101
|
-
arg[key] = components[idx]
|
|
102
|
-
else:
|
|
103
|
-
arg[key] = val
|
|
104
|
-
return cls(arg)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
Apache License
|
|
2
|
-
Version 2.0, January 2004
|
|
3
|
-
http://www.apache.org/licenses/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Copyright 2023 Marcel Kornacker
|
|
7
|
-
|
|
8
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
9
|
-
you may not use this file except in compliance with the License.
|
|
10
|
-
You may obtain a copy of the License at
|
|
11
|
-
|
|
12
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
13
|
-
|
|
14
|
-
Unless required by applicable law or agreed to in writing, software
|
|
15
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
16
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17
|
-
See the License for the specific language governing permissions and
|
|
18
|
-
limitations under the License.
|
|
File without changes
|
|
File without changes
|