pixeltable 0.2.18__py3-none-any.whl → 0.2.19__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 (36) hide show
  1. pixeltable/__init__.py +1 -1
  2. pixeltable/__version__.py +2 -2
  3. pixeltable/catalog/table.py +0 -1
  4. pixeltable/catalog/table_version.py +1 -1
  5. pixeltable/catalog/view.py +1 -1
  6. pixeltable/dataframe.py +1 -1
  7. pixeltable/env.py +34 -5
  8. pixeltable/exceptions.py +5 -1
  9. pixeltable/exec/component_iteration_node.py +1 -1
  10. pixeltable/exprs/__init__.py +1 -2
  11. pixeltable/exprs/expr.py +5 -6
  12. pixeltable/exprs/function_call.py +8 -10
  13. pixeltable/exprs/inline_expr.py +200 -0
  14. pixeltable/ext/functions/whisperx.py +2 -0
  15. pixeltable/ext/functions/yolox.py +5 -3
  16. pixeltable/functions/huggingface.py +89 -12
  17. pixeltable/functions/image.py +3 -3
  18. pixeltable/functions/together.py +15 -8
  19. pixeltable/functions/vision.py +43 -21
  20. pixeltable/functions/whisper.py +3 -0
  21. pixeltable/globals.py +5 -1
  22. pixeltable/metadata/__init__.py +1 -1
  23. pixeltable/metadata/converters/convert_18.py +1 -1
  24. pixeltable/metadata/converters/convert_20.py +56 -0
  25. pixeltable/metadata/converters/util.py +29 -4
  26. pixeltable/metadata/notes.py +1 -0
  27. pixeltable/tool/create_test_db_dump.py +14 -3
  28. pixeltable/type_system.py +3 -1
  29. pixeltable-0.2.19.dist-info/LICENSE +201 -0
  30. {pixeltable-0.2.18.dist-info → pixeltable-0.2.19.dist-info}/METADATA +6 -4
  31. {pixeltable-0.2.18.dist-info → pixeltable-0.2.19.dist-info}/RECORD +33 -33
  32. pixeltable/exprs/inline_array.py +0 -117
  33. pixeltable/exprs/inline_dict.py +0 -104
  34. pixeltable-0.2.18.dist-info/LICENSE +0 -18
  35. {pixeltable-0.2.18.dist-info → pixeltable-0.2.19.dist-info}/WHEEL +0 -0
  36. {pixeltable-0.2.18.dist-info → pixeltable-0.2.19.dist-info}/entry_points.txt +0 -0
@@ -1,5 +1,5 @@
1
- pixeltable/__init__.py,sha256=ISVoeqNCvSJonD0EXJ32Mer84m29YQDyLhhUydyCV_o,1272
2
- pixeltable/__version__.py,sha256=s3mrrWLLuA0t99E-5nkBaev1w0vkqrnkd5TYw2Ebv-8,114
1
+ pixeltable/__init__.py,sha256=t1uRHKta7mPH9_KgkUpOWBu6AewA7DRdSGGyrm0OcSQ,1279
2
+ pixeltable/__version__.py,sha256=_o-1q05Ttbs4cHNYgDuwFGf4i38fZkI3gdZZEbf8-co,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
@@ -10,17 +10,17 @@ pixeltable/catalog/named_function.py,sha256=W8vikP_3jMJ9pQQsksO2EfQAlaVxuQHBlo65
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=C_JQ19EEXlGXYHzgTohgEHfF2kKWo5hHi54Uwp97VKA,40828
14
- pixeltable/catalog/table_version.py,sha256=WNBjzwbGNPphfTbPLkHaL4XndH3TyB6ubabGmRNLx0A,56989
13
+ pixeltable/catalog/table.py,sha256=eVGCXZxtEaG8Y4IEe-8IgPtIFAaUsycJqMdVE_WpKPA,40811
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=vWZIkCZszpBQBHpKJ2zczNqO7eK94v9xpxT9-3ga4sU,10619
17
- pixeltable/dataframe.py,sha256=-Ctpm8tptobONDMeNEyF3am5dwXfR5zQq7SjBOzq0KQ,34379
18
- pixeltable/env.py,sha256=OlG_-3zV_q8Hdxi0S2AnZ-vPt-Ssftdj8WnggvmjNFs,25732
19
- pixeltable/exceptions.py,sha256=MSP9zeL0AmXT93XqjdvgGN4rzno1_KRrGriq6hpemnw,376
16
+ pixeltable/catalog/view.py,sha256=RfQRldjPUZ7W8jMMdXJFSjbjCUe-3ynxDFvg4W27qXc,10642
17
+ pixeltable/dataframe.py,sha256=kAPv9YjOEx0xZViFG3fi6eXsX6zUhm3F2x5U7qDOrJU,34378
18
+ pixeltable/env.py,sha256=fAxc0vXRN_OkooqepIbHQJPyoY2aQwWmfxYmFCq-8pc,27374
19
+ pixeltable/exceptions.py,sha256=pgMRe11dqUdSWaTssib4bXj9R_HNqwhdqKSnMsRkSvE,422
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=RrMy7dBQinPp-3YprA6eyrrvNgaeDMXTmPZANl7VvBQ,4066
23
+ pixeltable/exec/component_iteration_node.py,sha256=d5XHahyq-cosYW6BaIeFLuU8zNRmDL8eGtiN_eYY8ZM,4068
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=juaDpMcHL6TB57hwuaV1as5UEfd4B8bPcHaoGcDmITs,948
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,13 +37,12 @@ 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=T6L0X-eo5QhKj8fWYmNmsxdDQhbo-vGYnC_lX-atWE4,30129
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=R5hA_hJk0vH_tMy1ko-qNp6RCSqKKSoBlY9FOPfmHME,20204
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/inline_array.py,sha256=MenBf39T1teXyKQ2WB-R9VSF0CuJ3D_E28k98ZCkSBk,4910
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
48
  pixeltable/exprs/json_path.py,sha256=cdAA73af_ZK2hZAzROA9fpP8dTBrHYzcTi4APgtJNdk,7051
@@ -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=-xLznbn3djuEsaAgBPSq8DOL_4j8M2hXrZRdaPABg2U,2293
62
- pixeltable/ext/functions/yolox.py,sha256=AwZq3La8aGI-ZkLOeMrSxQEFSA19nsHU6zhaShICZbM,5221
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,19 +74,19 @@ 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=TqGaYexxMWjWRdeiKjRVUy2aiH3cSvdG2Gbf0ABM7rU,12871
79
- pixeltable/functions/image.py,sha256=v54PVOX0l1fsjDaQ9RYKpYkNSiYdzn261WxAb_zD1mM,13708
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=WtcqSyde8vCdwvxfsv0UgkA9Hx46KJeymTEIPE0dn9E,8617
84
+ pixeltable/functions/together.py,sha256=h2FqZomgLhTkpwJ-t1mFgbBrFPbNzKE4CLlqTEc-qwY,8947
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=cqDX7MmY-QbUK_tg5jjY4xhpFgRTGvmR1SHG4tutYcM,14335
89
- pixeltable/functions/whisper.py,sha256=U4ke85ooVkhwsjUlwWV_94_oXd8l63HdtIuVMPRP_pY,3266
90
- pixeltable/globals.py,sha256=UeYIjbCwidtzF6PT681nXNZL61HT3WmFE_fxp40RDZs,16565
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=Jc9XgtCUTjM7O2EJLnrDXkjQL--ROSMlRl5MBP7ndC8,16661
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
@@ -104,7 +103,7 @@ pixeltable/iterators/base.py,sha256=cnEh1tNN2JAxRzrLTg3dhun3N1oNQ8vifCm6ts3_UiE,
104
103
  pixeltable/iterators/document.py,sha256=dz7bfukocBS_2xBTD4gBS8EMaUP5fnkmQL-kWGxqdTA,19454
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=cEdhOQ4TvrjHBaBfjQWF3cSkGZhYWoxABjvkhcPhCFU,2172
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,20 +111,21 @@ 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=tejUM88AVZmPsg4l2OWqEEPmpSzXpb6ZFxFTdYZ8-7E,1462
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/util.py,sha256=AcYs3yUICl93y8whf0pkeWZoCzE4JuUMafmcYMyJUCY,2618
118
- pixeltable/metadata/notes.py,sha256=3MGOKj9Mc23Exid8ysgRgwgkiSbwBF6oDW_tuLRGERE,505
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=yLMZMfUgoBnI_xo6oYCZDpRVt8Z9MGJZ5mPPCMUHEjc,11390
122
+ pixeltable/tool/create_test_db_dump.py,sha256=YpVGwe6mn22p1sEGbXcEpOyF0RQwKgd3gCRA0Wl2phY,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=OgIDhIXSyUeekzfMKEEGbum7NboXHYbvZVYU2tJWcVQ,31330
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
@@ -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.18.dist-info/LICENSE,sha256=0UNMmwuqWPC0xDY1NWMm4uNJ2_MyA1pnTNRgQTvuBiQ,746
144
- pixeltable-0.2.18.dist-info/METADATA,sha256=opuIstfPeRdg2GsdJ_y0eGV6156BY68tEoIhlRwTMc0,13340
145
- pixeltable-0.2.18.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
146
- pixeltable-0.2.18.dist-info/entry_points.txt,sha256=TNI1Gb5vPwFrTdw6TimSYjO8FeK8c_HuPr28vcf7o_I,108
147
- pixeltable-0.2.18.dist-info/RECORD,,
143
+ pixeltable-0.2.19.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
144
+ pixeltable-0.2.19.dist-info/METADATA,sha256=elg8Pycf1lqUyJVyCbPHjWNXQqHqCKei_wRlKSI6A_o,13538
145
+ pixeltable-0.2.19.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
146
+ pixeltable-0.2.19.dist-info/entry_points.txt,sha256=TNI1Gb5vPwFrTdw6TimSYjO8FeK8c_HuPr28vcf7o_I,108
147
+ pixeltable-0.2.19.dist-info/RECORD,,
@@ -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)
@@ -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.