fugue 0.8.2.dev1__py3-none-any.whl → 0.8.4__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.
Files changed (114) hide show
  1. fugue/__init__.py +9 -5
  2. fugue/_utils/interfaceless.py +1 -558
  3. fugue/_utils/io.py +2 -91
  4. fugue/_utils/registry.py +3 -2
  5. fugue/api.py +1 -0
  6. fugue/bag/bag.py +8 -4
  7. fugue/collections/__init__.py +0 -7
  8. fugue/collections/partition.py +21 -9
  9. fugue/constants.py +3 -1
  10. fugue/dataframe/__init__.py +7 -8
  11. fugue/dataframe/arrow_dataframe.py +1 -2
  12. fugue/dataframe/dataframe.py +17 -18
  13. fugue/dataframe/dataframe_iterable_dataframe.py +22 -6
  14. fugue/dataframe/function_wrapper.py +432 -0
  15. fugue/dataframe/iterable_dataframe.py +3 -0
  16. fugue/dataframe/utils.py +11 -79
  17. fugue/dataset/api.py +0 -4
  18. fugue/dev.py +47 -0
  19. fugue/execution/__init__.py +1 -5
  20. fugue/execution/api.py +36 -14
  21. fugue/execution/execution_engine.py +30 -4
  22. fugue/execution/factory.py +0 -6
  23. fugue/execution/native_execution_engine.py +44 -67
  24. fugue/extensions/_builtins/creators.py +4 -2
  25. fugue/extensions/_builtins/outputters.py +4 -3
  26. fugue/extensions/_builtins/processors.py +3 -3
  27. fugue/extensions/creator/convert.py +5 -2
  28. fugue/extensions/outputter/convert.py +2 -2
  29. fugue/extensions/processor/convert.py +3 -2
  30. fugue/extensions/transformer/convert.py +22 -9
  31. fugue/extensions/transformer/transformer.py +15 -1
  32. fugue/plugins.py +2 -0
  33. fugue/registry.py +0 -39
  34. fugue/sql/_utils.py +1 -1
  35. fugue/workflow/_checkpoint.py +1 -1
  36. fugue/workflow/api.py +13 -13
  37. fugue/workflow/module.py +30 -37
  38. fugue/workflow/workflow.py +6 -0
  39. {fugue-0.8.2.dev1.dist-info → fugue-0.8.4.dist-info}/METADATA +37 -23
  40. {fugue-0.8.2.dev1.dist-info → fugue-0.8.4.dist-info}/RECORD +112 -101
  41. {fugue-0.8.2.dev1.dist-info → fugue-0.8.4.dist-info}/WHEEL +1 -1
  42. {fugue-0.8.2.dev1.dist-info → fugue-0.8.4.dist-info}/entry_points.txt +2 -1
  43. {fugue-0.8.2.dev1.dist-info → fugue-0.8.4.dist-info}/top_level.txt +1 -0
  44. fugue_contrib/contrib.py +1 -0
  45. fugue_contrib/viz/_ext.py +7 -1
  46. fugue_dask/_io.py +0 -13
  47. fugue_dask/_utils.py +10 -4
  48. fugue_dask/dataframe.py +1 -2
  49. fugue_dask/execution_engine.py +45 -18
  50. fugue_dask/registry.py +8 -33
  51. fugue_duckdb/_io.py +8 -2
  52. fugue_duckdb/_utils.py +7 -2
  53. fugue_duckdb/dask.py +1 -1
  54. fugue_duckdb/dataframe.py +23 -19
  55. fugue_duckdb/execution_engine.py +19 -22
  56. fugue_duckdb/registry.py +11 -34
  57. fugue_ibis/dataframe.py +6 -10
  58. fugue_ibis/execution_engine.py +7 -1
  59. fugue_notebook/env.py +5 -10
  60. fugue_polars/__init__.py +2 -0
  61. fugue_polars/_utils.py +8 -0
  62. fugue_polars/polars_dataframe.py +234 -0
  63. fugue_polars/registry.py +86 -0
  64. fugue_ray/_constants.py +10 -1
  65. fugue_ray/_utils/dataframe.py +36 -9
  66. fugue_ray/_utils/io.py +2 -4
  67. fugue_ray/dataframe.py +16 -12
  68. fugue_ray/execution_engine.py +53 -32
  69. fugue_ray/registry.py +8 -32
  70. fugue_spark/_utils/convert.py +22 -11
  71. fugue_spark/_utils/io.py +0 -13
  72. fugue_spark/_utils/misc.py +27 -0
  73. fugue_spark/_utils/partition.py +11 -18
  74. fugue_spark/dataframe.py +26 -22
  75. fugue_spark/execution_engine.py +136 -54
  76. fugue_spark/registry.py +29 -78
  77. fugue_test/builtin_suite.py +36 -14
  78. fugue_test/dataframe_suite.py +9 -5
  79. fugue_test/execution_suite.py +100 -122
  80. fugue_version/__init__.py +1 -1
  81. tests/fugue/bag/test_array_bag.py +0 -9
  82. tests/fugue/collections/test_partition.py +10 -3
  83. tests/fugue/dataframe/test_function_wrapper.py +293 -0
  84. tests/fugue/dataframe/test_utils.py +2 -34
  85. tests/fugue/execution/test_factory.py +7 -9
  86. tests/fugue/execution/test_naive_execution_engine.py +35 -80
  87. tests/fugue/extensions/test_utils.py +12 -7
  88. tests/fugue/extensions/transformer/test_convert_cotransformer.py +1 -0
  89. tests/fugue/extensions/transformer/test_convert_output_cotransformer.py +1 -0
  90. tests/fugue/extensions/transformer/test_convert_transformer.py +2 -0
  91. tests/fugue/sql/test_workflow.py +1 -1
  92. tests/fugue/sql/test_workflow_parse.py +3 -5
  93. tests/fugue/utils/test_interfaceless.py +1 -325
  94. tests/fugue/utils/test_io.py +0 -80
  95. tests/fugue_dask/test_execution_engine.py +48 -0
  96. tests/fugue_dask/test_io.py +0 -55
  97. tests/fugue_duckdb/test_dataframe.py +2 -2
  98. tests/fugue_duckdb/test_execution_engine.py +16 -1
  99. tests/fugue_duckdb/test_utils.py +1 -1
  100. tests/fugue_ibis/test_dataframe.py +6 -3
  101. tests/fugue_polars/__init__.py +0 -0
  102. tests/fugue_polars/test_api.py +13 -0
  103. tests/fugue_polars/test_dataframe.py +82 -0
  104. tests/fugue_polars/test_transform.py +100 -0
  105. tests/fugue_ray/test_execution_engine.py +40 -4
  106. tests/fugue_spark/test_dataframe.py +0 -8
  107. tests/fugue_spark/test_execution_engine.py +50 -11
  108. tests/fugue_spark/test_importless.py +4 -4
  109. tests/fugue_spark/test_spark_connect.py +82 -0
  110. tests/fugue_spark/utils/test_convert.py +6 -8
  111. tests/fugue_spark/utils/test_io.py +0 -17
  112. fugue/_utils/register.py +0 -3
  113. fugue_test/_utils.py +0 -13
  114. {fugue-0.8.2.dev1.dist-info → fugue-0.8.4.dist-info}/LICENSE +0 -0
@@ -1,154 +1,159 @@
1
- fugue/__init__.py,sha256=ok6v9KRwJfUZuhCwtnr4ZgDvty8mX_9OJSRhioBOj_A,2748
2
- fugue/api.py,sha256=OxkydFcgJ8VX6i0qxHXGAki54iEX8VW-Qzbwcyv_F1s,1216
3
- fugue/constants.py,sha256=aR3oRPU24moqTm5v132je_AaG2KegpYqPG1JfciZM9w,3345
1
+ fugue/__init__.py,sha256=xT5zuNZfRkjbA8a-uTT5oLK6hLGuezGZLWYBl6eS5J4,2749
2
+ fugue/api.py,sha256=6_d3vYwJGAX7tW7NMhHB_NAX4aPsfzK2L06Zr2V78Ks,1240
3
+ fugue/constants.py,sha256=crd0VqX8WtBcjSUNwZDi2LDIEkhUMWOlSn73H8JI9ds,3385
4
+ fugue/dev.py,sha256=GQCkezBBl4V0lVDWhGtUQKqomiCxgR9dMhfqj9C8cS8,1369
4
5
  fugue/exceptions.py,sha256=ylP8gkZL8ao_ZLinNYKv16FPyO_n7c29dN-4QChUxi0,1544
5
- fugue/plugins.py,sha256=gDS25RESrz8yaRPbLIFeZT5mFSiz9Ns9NTjSTv0mFTA,920
6
- fugue/registry.py,sha256=aA-lWR2ui91YvTFkCItv6-PndMLHBE0IOzNdw8zR--s,1996
6
+ fugue/plugins.py,sha256=SJ-jqs04StHIHJ65lgdGP0IDopVIGBDpmzHHllNK8p0,998
7
+ fugue/registry.py,sha256=SNULGv08f37fRO-cIxFDmnVcod7ref2fNLSK6G7nVnI,868
7
8
  fugue/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
9
  fugue/_utils/display.py,sha256=JV8oDA7efHm1wceZulCBOY5dMvjbWHvIm6ASisKfoWY,3164
9
10
  fugue/_utils/exception.py,sha256=SFIjwjV4CIEovp3P9k7ePNOFB12A5D8hDdhtfFUeM5Y,2247
10
- fugue/_utils/interfaceless.py,sha256=0T1U9DBwV5tXy-3rg7r-njXHwlZGM_HMCoCtlfgLXyg,20983
11
- fugue/_utils/io.py,sha256=8CLy7HNNd6NJETvH6hJ021Ae_YU5o8RoYdtfluW6o7o,11502
11
+ fugue/_utils/interfaceless.py,sha256=wI0H6L4W_1uQjh9tpjgT9HzN-fbrrtXXHC1x6Q_rrPg,2203
12
+ fugue/_utils/io.py,sha256=xA8wAWDwp3bGsMiHogaUsh-2SZ1lCykWy6NSg25p4Ls,9104
12
13
  fugue/_utils/misc.py,sha256=C8bM9DzdeaYPsmHwsqxg-1fsCqk7uJvZHCXkhQmNYGs,495
13
- fugue/_utils/register.py,sha256=OSxfmXf4x71t423PeOHPhaum4sEjHNMu7RHgvQjr42g,89
14
- fugue/_utils/registry.py,sha256=BOLrMvcmr5fUPVTDCBCZN_UtWh1bxmQPVfzw88ImC8k,311
14
+ fugue/_utils/registry.py,sha256=lrbzTdUEVnW6paBGDj-Yb-aTIbP5mjCqrXuRU9_N6os,316
15
15
  fugue/bag/__init__.py,sha256=0Q0_rnrEThrTx2U-1xGNyAg95idp_xcnywymIcW4Xck,46
16
16
  fugue/bag/array_bag.py,sha256=b0UdDPmZpEAI3R0SBbZVOLVLAwMQnBCFeYDEpFWen14,1111
17
- fugue/bag/bag.py,sha256=sJ-1BGs7k9lHY38pUqPlJ9kwRt0V7vBbDF8YsEIycX8,2828
18
- fugue/collections/__init__.py,sha256=4fmySA9b6bX2VMZCJsOZbnbUiN6O10IeS4oMJsQxZcQ,186
19
- fugue/collections/partition.py,sha256=rzPXJGUy1OzTY5qmGsfbKsaMM9cu4wrW-UbPgqRY5Rs,16807
17
+ fugue/bag/bag.py,sha256=sNBAzPmEh5fEm8ME8NEEOOre6l58ri6oouVBWwafqTc,3018
18
+ fugue/collections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ fugue/collections/partition.py,sha256=ClvPBlKoNktY73bhqLnXcR0M8PyzykfVoZRfDMAuLwY,17248
20
20
  fugue/collections/sql.py,sha256=PUFtHCmU7sjjyqE49-rgV_yI90HE068tY_xldAAqKS4,4856
21
21
  fugue/collections/yielded.py,sha256=KAvCXAZpeuErGww7Y217_F7M2zv9G5hfdl2AWiO7wEM,2040
22
22
  fugue/column/__init__.py,sha256=aoZwwzyJtNL-duLxzU2sNGoaKikWd-yesbigE_Wj29s,208
23
23
  fugue/column/expressions.py,sha256=fdGX9oPCqJBuROFZqrOYVcwkjghdXT9ngaSTG5tW_i8,26544
24
24
  fugue/column/functions.py,sha256=ygLyn2gp5lTdGbYqJXeGeMmRNhbm4-vfJvAY_Zt0pb0,9774
25
25
  fugue/column/sql.py,sha256=s_qTtHgnvRFqjhCWr7s595PTrHM-Pr9zHUQfU5xcTVA,17391
26
- fugue/dataframe/__init__.py,sha256=HyIlpJ3ochnrWl1WLd158sXljF6W1Mo2W-CtcB06mVs,593
26
+ fugue/dataframe/__init__.py,sha256=zm7TbsaJLIvfm7zymWm2LGcuJd3nxfGsFnQiyrSnenM,678
27
27
  fugue/dataframe/api.py,sha256=c5Err3c-ayl-k28IUi6kV_ClDWX30NpVNkv97hQKDac,9862
28
28
  fugue/dataframe/array_dataframe.py,sha256=oBfN545NTGdYJ5zPIRv7hXRR-R_OW1JieyOfnl296oU,4447
29
- fugue/dataframe/arrow_dataframe.py,sha256=07ud7VwTUqTnzrxcf9RTVvssijhDqt67-Af4ydR0VL4,12100
30
- fugue/dataframe/dataframe.py,sha256=PmkxDvLLjFZbmTMHO37qGLQurwRTkaS6xfgVn6UYywU,17233
31
- fugue/dataframe/dataframe_iterable_dataframe.py,sha256=YVmQXe7yKyz3GhPn8O5rnx1QJojw6JqJ03jsdXaSL50,6818
29
+ fugue/dataframe/arrow_dataframe.py,sha256=h0DJH8G0MEgfkyvX4U957iqDXIgvTtrP7YED5iEjizI,12098
30
+ fugue/dataframe/dataframe.py,sha256=rIjaOplyRDt_BfpFwZWMjZALDqa03NePs9tFiLSW6Jg,17247
31
+ fugue/dataframe/dataframe_iterable_dataframe.py,sha256=0gvb12D0s4VntNZ-M8J_Pic2XlFpw7upXf4hfMn2ufY,7255
32
32
  fugue/dataframe/dataframes.py,sha256=tBSpHsENgbcdOJ0Jgst6PTKbjG7_uoFJch96oTlaQIs,4160
33
- fugue/dataframe/iterable_dataframe.py,sha256=dBsmTZ8N6v0_LSDVPPDDgW1-qEu1-ElE2ad2U1uRjJc,4502
33
+ fugue/dataframe/function_wrapper.py,sha256=DjyIrNBj5Bv9AwIl2I2fG5ClcKe3OoW_eBkyEabYY5Y,13505
34
+ fugue/dataframe/iterable_dataframe.py,sha256=Kn5HZnVU4o1nn9mbbQxaV8rGG869wImZcOCK3AdlA-M,4627
34
35
  fugue/dataframe/pandas_dataframe.py,sha256=ZWqI-ZUFiSP7giJ3siRlrZcMedI_fyuoLn227H0YRvw,10453
35
- fugue/dataframe/utils.py,sha256=YIJw06KH_zCp0DuM5tvmXX_0U5gZqpLOR3TnA4dYpiY,13341
36
+ fugue/dataframe/utils.py,sha256=nQVU01jspB1NSeRiagE71uzRibDqvyGwi94ZfHwNHD0,10508
36
37
  fugue/dataset/__init__.py,sha256=5f2CAJ4xst6Z2o9Q2e2twfDOGUw8ZJoE2ild4JEU2pg,112
37
- fugue/dataset/api.py,sha256=9QEUI1AlX9Zfa2u9CixavMXroySfo5QDTXmcR8hZa4o,2958
38
+ fugue/dataset/api.py,sha256=DacI4L2w5NJ-eZ6nFxNMqmReEnb0WUXswbjVp7BeErk,2794
38
39
  fugue/dataset/dataset.py,sha256=jWXZqy3msMPFFkhas2PYJEX55ZAI3gk3Txq5f4-Qya4,4759
39
- fugue/execution/__init__.py,sha256=BvAWZ-Hi3AoNHGMHBYNhj775maOSnf5tBPisIXPwKFs,458
40
- fugue/execution/api.py,sha256=8DZgGwxyqoSVbRpwB_C0-NbiQ62ADKdhwlIxFDqHrHw,38983
41
- fugue/execution/execution_engine.py,sha256=iItMIzKT8P3q1IU1SCVfAgwStCO-k8l7_joXYbpr7mM,48135
42
- fugue/execution/factory.py,sha256=wj_r91rPN8d660gvOhS72isXtpKvUN5w9fmGOhjpA94,21159
43
- fugue/execution/native_execution_engine.py,sha256=MAJ5VBpH2WUQdDJthOPGo1VzL45zWQ-4QaYBgkxCGco,13526
40
+ fugue/execution/__init__.py,sha256=iZGxAznZz9piM3k4gp0tln97MDIBxdliLyNbD-0Zc48,427
41
+ fugue/execution/api.py,sha256=KsFOLGdWQMlXmlQ5JRgRsbUeB64qzTVHxSEaunjiojo,39818
42
+ fugue/execution/execution_engine.py,sha256=o7HwZO3SBnCdrIm6OyH3kC3iYkWBWOT1cCN3WX_Ik0M,49152
43
+ fugue/execution/factory.py,sha256=5ICzfNh2QqqABuVyYLijY5-7LZgfRqczlaZN32p78bE,21003
44
+ fugue/execution/native_execution_engine.py,sha256=CPE6sBjKjJTShLjj3fxxuGZJyxJuWw7-pDepY5gc4YU,13205
44
45
  fugue/extensions/__init__.py,sha256=y-uLKd6mZ8sZ_8-OdW6ELoBO_9IfC0gDmEbE_rMCvOA,599
45
46
  fugue/extensions/_utils.py,sha256=Bi3pYKy2Z6fG6_5BpwIWldxetassXpB4Zp8QamWB-wg,5173
46
47
  fugue/extensions/context.py,sha256=c_y2UttzzIFoQTOCV42VCdj2nqah33xYuBjbKNIOpx8,4262
47
48
  fugue/extensions/_builtins/__init__.py,sha256=OAUjZJP-QI8VpJxxEEZJFFGir4PmTyLMmWQ3VCHtIGk,545
48
- fugue/extensions/_builtins/creators.py,sha256=9AicKr6WD75tcHfp8ABVqzLVP_6Hr2WhozGK8gKNh54,1759
49
- fugue/extensions/_builtins/outputters.py,sha256=G-8rLzNq4sPkmU16YLq7SUy3uRfd0WrMnl8BqzUgUCw,6862
50
- fugue/extensions/_builtins/processors.py,sha256=mPyQ6mIhYLSP8dYa9R3-7EQLdr5cs7GUT8Xdkivk404,14491
49
+ fugue/extensions/_builtins/creators.py,sha256=ad9snV4oN7F9o50Iaa9T4tw5J6rXBUgOHOINKzDqoEQ,1825
50
+ fugue/extensions/_builtins/outputters.py,sha256=e8yupV7dTTRDKi38KEXqd29x1uPHWcGazMkiXwmqnU0,6892
51
+ fugue/extensions/_builtins/processors.py,sha256=_YkrVNkgBRTk8W3LSjIiZrDtcIByhOCMEDaRG5L9QHQ,14517
51
52
  fugue/extensions/creator/__init__.py,sha256=7qmrb0eRKbGSEvrb6045-5hkmjH-nT1GJo1qYubX158,188
52
- fugue/extensions/creator/convert.py,sha256=Wrbgk65ofnXH1LPl_XploTLvMDO7Y1AfUmMOpoaTSJk,7213
53
+ fugue/extensions/creator/convert.py,sha256=66ei5x0K0a8nWQ-kNwZXmmf1VeR_6XuqSe9rZ64mYpI,7297
53
54
  fugue/extensions/creator/creator.py,sha256=ET9yprY4mvw0kkfWtW4aQEvKv1VR-FiWT4SThvwgAyo,1541
54
55
  fugue/extensions/outputter/__init__.py,sha256=j7jHSOB2xfnJlg9BdL9UHwAML4A77eI6kI8jFFia1Y0,204
55
- fugue/extensions/outputter/convert.py,sha256=P_I2LEcf0-h4W62jQprAQ3NaVr7F12TmSYsLKB-Kd-c,6915
56
+ fugue/extensions/outputter/convert.py,sha256=dPyNELy6Sruv5_NJlMSPPIfBknTlRVZo0zCWAz5U16o,6939
56
57
  fugue/extensions/outputter/outputter.py,sha256=n2Do4NKX7_uKkUQRrSjJAl6CYoifb9_zEaXTZIF_ZJQ,1619
57
58
  fugue/extensions/processor/__init__.py,sha256=8ws8WSnLGCfTdsigoU0_xpaPY54vpo0V2O3Bw3W9cSg,204
58
- fugue/extensions/processor/convert.py,sha256=fAUtIyHTaedP_vWzLx3l0RMEfLkCz7tUrlAA3M97cJk,8240
59
+ fugue/extensions/processor/convert.py,sha256=zG0lMtHGwY5TsqK4eplbMdlTg7J_PD3HbI0jdWcv5yw,8302
59
60
  fugue/extensions/processor/processor.py,sha256=czhQlQgMpAXXoLVAX9Q0TFUMYEEhsgufTammxcKSmOY,1665
60
61
  fugue/extensions/transformer/__init__.py,sha256=VD6d-8xW1Yl8fUPj43cBWNR9pCOlYD9xWyGIHAlHwvI,456
61
62
  fugue/extensions/transformer/constants.py,sha256=76DfpoTOGQ8gp5XtCs_xznfbr_H015-prXpHWSqMNDU,59
62
- fugue/extensions/transformer/convert.py,sha256=-8MZGmLBV5IfQ8Oqm02fb6YkUpiMHNjMPNzq5fnD3KQ,22628
63
- fugue/extensions/transformer/transformer.py,sha256=pAcLYsF02NaYqGGlCi4ztpOh2nPFsBupoTmVCD2Fsqw,8478
63
+ fugue/extensions/transformer/convert.py,sha256=5fhktR2s13ZOpUihpy-gy7Xn2BRN6UoA5uwOzJ6YNOU,23380
64
+ fugue/extensions/transformer/transformer.py,sha256=zhOUgyv5-DPxYd1CP_98WeEw-zUgwknRnPW_6di-q3g,9098
64
65
  fugue/rpc/__init__.py,sha256=3GzUl4QZQuCChjD7eaTJW8tnTwfke6ZY9r9g5nCeBZ8,167
65
66
  fugue/rpc/base.py,sha256=3Fq5SvwLZqw9NXru3r32WuJKBGFr9bl7nFgy6e9boGo,8470
66
67
  fugue/rpc/flask.py,sha256=1oD0dE4Q-0PKeZ7RG3c0pfwyx21dUavfXWORu_gV7mg,4485
67
68
  fugue/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- fugue/sql/_utils.py,sha256=3S4XsBGWvyMpkgbF89pVnF-JX61dNEMDOcRhgQzGC-c,2066
69
+ fugue/sql/_utils.py,sha256=uv5IeUaj6NMGgOzGC2bCPpa1w66ij7Ydh9PeqzGGNxM,2074
69
70
  fugue/sql/_visitors.py,sha256=2pc0J-AHJAiIexsKgNjcgrCGOyhC3_7rzonSgtjy--k,33844
70
71
  fugue/sql/api.py,sha256=l2I9CAy_W2oFFTct9fDPLyXF0LiDxQhMx5O8jBHTAxU,10050
71
72
  fugue/sql/workflow.py,sha256=0JL44i12DoLBJ1Pj2e1HpSt8giG95utltmOzzGbPRAA,2939
72
73
  fugue/workflow/__init__.py,sha256=tXM_KYO8Q358W6qAVlwhIQIaYNRDgZtTubrIEX4QMgM,229
73
- fugue/workflow/_checkpoint.py,sha256=VeDRjtkJ_o7Bz4jhimYHANUsYkpIgvr3egfAxnEns1U,5705
74
+ fugue/workflow/_checkpoint.py,sha256=MTMyNCdWHf5UK8bRepfR2u8y3cEhO1RYIYq558ZlXzA,5715
74
75
  fugue/workflow/_tasks.py,sha256=Zq_jXJO_VaF8DrWUuBiwO2Y3OVuhsiOQdzP4VBsp7Fo,11826
75
76
  fugue/workflow/_workflow_context.py,sha256=Wmp6n0lSrh2Gpslb5EaSX6BQNniKsvKn6SlhVkQ6ui0,2504
76
- fugue/workflow/api.py,sha256=hf0u6sMR0lB_JJ7olpYveg3eTXrJ8vNKp9qZRQuq5zI,12446
77
+ fugue/workflow/api.py,sha256=uQoxPSCZ91-ST4vwuPWG7qioRGW4eo-Sgi3DdwtSL4k,12495
77
78
  fugue/workflow/input.py,sha256=V_zLDNzndmQuYJAPXtdK4n-vOp7LrimGIf_wQtwf2mc,321
78
- fugue/workflow/module.py,sha256=PW-FC79BbVAcgwwv-0R_EN78cHdNOwLqFMgWjH8SUI0,6089
79
- fugue/workflow/workflow.py,sha256=SngXWu7-qOyvfonezmuIDNLbX-1ZEjrm9qDn-Fs9fqo,87969
79
+ fugue/workflow/module.py,sha256=ajyqgMwX6hFMZY9xp4Bp1Q-Zdta0p5f_W_n_SNrc4LE,5547
80
+ fugue/workflow/workflow.py,sha256=-SFCXkyxgXbS6DpQGSBox4d3Ws3psIlB6PnraJLSu9Y,88219
80
81
  fugue_contrib/__init__.py,sha256=QJioX-r2AiU7Pvt24M-k2c4vNq29qpK-3WNUde7ucck,222
81
- fugue_contrib/contrib.py,sha256=pnJ-IJdcCCz9F0ozwR4AbLUkoAA0Zans3TbqopnDl40,211
82
+ fugue_contrib/contrib.py,sha256=3B--6oIVBMZ-GwjIOXwZqYqkloH7Cxfq1I8vkwl2yPk,267
82
83
  fugue_contrib/seaborn/__init__.py,sha256=NuVv8EI4Om4gHcHwYO8ddextLQqw24vDj8qJio3E1MU,1405
83
84
  fugue_contrib/viz/__init__.py,sha256=osgZx63Br-yMZImyEfYf9MVzJNM2Cqqke_-WsuDmG5M,1273
84
- fugue_contrib/viz/_ext.py,sha256=xL8WM3NSkN-NEZe_RXZL56wzLnhsq2zOGq1IFEXZ7_E,1119
85
+ fugue_contrib/viz/_ext.py,sha256=Lu_DlS5DcmrFz27fHcKTCkhKyknVWcfS5kzZVVuO9xM,1345
85
86
  fugue_dask/__init__.py,sha256=2CcJ0AsN-k_f7dZ-yAyYpaICfUMPfH3l0FvUJSBzTr0,161
86
87
  fugue_dask/_constants.py,sha256=dVkUTig3tUB7KY2H0xZjTy5_9oG7w4RMswxlfiva2MM,182
87
- fugue_dask/_io.py,sha256=uWRhIWMsqDISwaJyOcDQArWUOInHHq2hpcIihvR2FSg,5715
88
- fugue_dask/_utils.py,sha256=7hckmJPMe2fa2oHGL7AQYruNySRPDVDhSeBYRb96OzM,4219
89
- fugue_dask/dataframe.py,sha256=FMOk7ntG27I95qTzXdyMUInOtjazcjSNDy5A_HLQH38,11806
90
- fugue_dask/execution_engine.py,sha256=0Jk3XYrKt_pZYZYxFYjvO7gczeHLRIiGdBIHxLAEhXQ,17101
88
+ fugue_dask/_io.py,sha256=EntoIwhqNDXspn-0rFzZj875OG_3fMn44VKSeKQpRnk,5314
89
+ fugue_dask/_utils.py,sha256=r_GTainvQaJIQPRYj_sgYlgC1yBojGrYMXIteGU1BS4,4476
90
+ fugue_dask/dataframe.py,sha256=LoDQ-UZnhvQGHD3hibP4FMls8Z5L_Exc029Ags5L32I,11801
91
+ fugue_dask/execution_engine.py,sha256=QG19LWsUAyivd6AALp8zLdj1KJlJCrKmkGtWhMvOzG4,18462
91
92
  fugue_dask/ibis_engine.py,sha256=kQdaG_KlZZ2AjtYETNCdTJOgtwI_eH0aGzLaAiIBbRI,2120
92
- fugue_dask/registry.py,sha256=axZngmn_jg2TCNl30QxlyhHduPXLWGW8_tkSWlO8XGI,2922
93
+ fugue_dask/registry.py,sha256=EqhMfuR4m2VEmwDGaf6wtUL1RVFZhSO5rrkkL8AH-fA,2152
93
94
  fugue_duckdb/__init__.py,sha256=nSNv-fxBAKD6W23EbMeV4dVRIaSTqr9DzQUWuVOES8s,379
94
- fugue_duckdb/_io.py,sha256=tK4azTdhksVhzLZcRF0WXqZUbaASFQRxNmFEmZuh6hc,8732
95
- fugue_duckdb/_utils.py,sha256=8ZAOVmfvrsMc6xv5k_PD0S5gZ_31tny5QkA1Jgsl5yE,4870
96
- fugue_duckdb/dask.py,sha256=G8HFl8rhie9qq00mA-f32e6u4_TUpkWJldDAdsqX0A0,5009
97
- fugue_duckdb/dataframe.py,sha256=iOqsubh5yx0rRF9bBohF7qK_VQ8z5t2UzAimwlB5Sgo,6008
98
- fugue_duckdb/execution_engine.py,sha256=hsDWmaC8qHeuYrctFH2clTd_tA_o8eEOdOvuxV0iyx4,20488
95
+ fugue_duckdb/_io.py,sha256=Sq228unVnroYTq4GX-Wnv22SLHC9Ji-aWgiqrfdu81w,8880
96
+ fugue_duckdb/_utils.py,sha256=ElKbHUyn5fWSPGXsK57iqMzcqKtCf0c8pBVBYGe5Ql4,5020
97
+ fugue_duckdb/dask.py,sha256=agoLzeB7Swxj2kVWfmXFbWD1NS2lbbTlnrjSkR8kKWY,5014
98
+ fugue_duckdb/dataframe.py,sha256=yqz0zFTPYVNIBXi3S-3Om3PtoLt8MQajA8qnx9kyhYI,6448
99
+ fugue_duckdb/execution_engine.py,sha256=fkkQb4Eh0m7SwKrTplVk2oQalLkNoj3CW0R12g01ofk,20536
99
100
  fugue_duckdb/ibis_engine.py,sha256=MrypeABozqwetKOpqtrmWvCJX2QPfBXhbSEhvK9vqmI,1990
100
- fugue_duckdb/registry.py,sha256=j5RD9AdHjXCGcsEQ3fpXSBxdXcmYp7XU90QSVXWuk2U,3738
101
+ fugue_duckdb/registry.py,sha256=Dj0Tng1cXVT6Q7t-KxOky2k1dD9xSBjYGQmI26UgZPo,3095
101
102
  fugue_ibis/__init__.py,sha256=PcUt66KlLyGGicad7asq5j2U567_fhR0HzvWQBhV1VM,362
102
103
  fugue_ibis/_compat.py,sha256=zKdTaTfuC02eUIzZPkcd7oObnVBi_X5mQjQf7SDme3Y,246
103
104
  fugue_ibis/_utils.py,sha256=BUL5swA5FE4eQu0t5Z17hZVu9a2MFfxlFH6Ymy9xifg,6607
104
- fugue_ibis/dataframe.py,sha256=OmzxhWZdVyalM275-HZyaOfmirxWzZkAOS5AuwqMGVM,7330
105
- fugue_ibis/execution_engine.py,sha256=FoQNVDgsoicaeWNBAt_uwbGuDq5h9XRonkLQd45OBVw,18338
105
+ fugue_ibis/dataframe.py,sha256=Y4Wn--oAlCvmqStY92AgUaAKqr9l6jSfJ2EXOhDFk9M,7302
106
+ fugue_ibis/execution_engine.py,sha256=igZ_rHflORPKp2h8HMSlzuv50P3ZaaijsvWyc8gilow,18540
106
107
  fugue_ibis/extensions.py,sha256=H8l-SPfoqLuUoILtOuL2nccOpoL83zHeSoIhoqjtWQM,6905
107
108
  fugue_ibis/execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
109
  fugue_ibis/execution/ibis_engine.py,sha256=-HdPnIFWD83n5WITdzJiu4attH7GOcO041wkT5Y5ChA,1499
109
110
  fugue_ibis/execution/pandas_backend.py,sha256=r6Pfs06FXrWukSbK2uz5gsCDG6a4wrk4sWIJ9acSuNU,1615
110
111
  fugue_notebook/__init__.py,sha256=9r_-2uxu1lBeZ8GgpYCKom_OZy2soIOYZajg7JDO-HY,4326
111
- fugue_notebook/env.py,sha256=LLlSPfhkSmVKyG17GfIWd090d-ZSb4nYgyiuQ4jz8qU,4767
112
+ fugue_notebook/env.py,sha256=TYiTxYPFi-BVJJY49jDsvw9mddhK8WrifeRxBke30I8,4773
112
113
  fugue_notebook/nbextension/README.md,sha256=QLnr957YeGfwzy2r4c4qbZPaXyCbyGrKPvcqSBQYSnU,123
113
114
  fugue_notebook/nbextension/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
115
  fugue_notebook/nbextension/description.yaml,sha256=CsXgx9CSLbAlO4Z1kvX9ejYA_TImPjOGWzRTF6PY-w0,150
115
116
  fugue_notebook/nbextension/main.js,sha256=Px2tQuBCNGEZOEBKsnfVruFEg-AxK7Tj0dY84ktub_U,3709
117
+ fugue_polars/__init__.py,sha256=NDkjlbLhHPTjUaCAw6mAwIqeK3HSeh-z88s9dqmwheQ,61
118
+ fugue_polars/_utils.py,sha256=64MxC2rCKmbgZryCaY0Y_98VstQEb3JW8im7oU4vMXI,216
119
+ fugue_polars/polars_dataframe.py,sha256=Ll4ZUuRhAETWtmSf87KsdUCqZPiexFqy4FiPkvWQkN0,7348
120
+ fugue_polars/registry.py,sha256=gd6qQ-OxYtTAQFyvYbLDPXmSvCR-LW6n5K5ylgMY_7A,2950
116
121
  fugue_ray/__init__.py,sha256=HzEHfG2mpc0ugf3nf1Pdy15Bhg35K6maZpYejn1aoyI,119
117
- fugue_ray/_constants.py,sha256=U9WyywErg_ovo0YI4yfZNVsSrGIgYEAQ-Tz7Tnwk2w4,347
118
- fugue_ray/dataframe.py,sha256=5bUtYuOCEW-d5odvNx2GWfOa1v-IXKbA_hftGvMWBco,10216
119
- fugue_ray/execution_engine.py,sha256=U2L_BjYG-nDehfxr4TyLyvI18Ypy6NpJaql7XmM0C6g,11670
120
- fugue_ray/registry.py,sha256=EK3b-pMUtrw0fdpa_EYhDzVGzqhHRWIfnbCJSIfXZY8,2420
122
+ fugue_ray/_constants.py,sha256=vu5l1w-Wi-2V_nm0HLXKOYhh5HdWRCc5yQktO2XzhOg,569
123
+ fugue_ray/dataframe.py,sha256=shUtnQbAquN2s5bR3Rx1QUGxxLz_g-Az9O0QDcXaCD0,10377
124
+ fugue_ray/execution_engine.py,sha256=PUj1Fgqsg-6DDFG9KNip7NenTX_bfYvBjcFjmXp8LNo,12596
125
+ fugue_ray/registry.py,sha256=xJRAhbwNrg695EwghQDnVtTKi4YkqZ0_61BD4OAblSA,1685
121
126
  fugue_ray/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
127
  fugue_ray/_utils/cluster.py,sha256=3T3Gyra6lAHlzktta-Ro35j6YZQfH6fNrj2hC5ATF9k,621
123
- fugue_ray/_utils/dataframe.py,sha256=kbK7LRtkUZEkfa4R6Y1ymej9s60nhTohlecRfVyMf0U,2367
124
- fugue_ray/_utils/io.py,sha256=cw-GGKhHixsBrGqAixiKvye99xVTZIbdjv-W2Apg6zY,8913
128
+ fugue_ray/_utils/dataframe.py,sha256=xaw9Pbfjsnd_0vmbGRJJbAPUPWMZaYptw4LfDdIgvHo,3145
129
+ fugue_ray/_utils/io.py,sha256=gHfx70tdXPHmVL6nHxVhmCO5KpWjjyDG8qKT1Lbpav4,8737
125
130
  fugue_spark/__init__.py,sha256=rvrMpFs9socMgyH_58gLbnAqmirBf5oidXoO4cekW6U,165
126
131
  fugue_spark/_constants.py,sha256=K2uLQfjvMxXk75K-7_Wn47Alpwq5rW57BtECAUrOeqA,177
127
- fugue_spark/dataframe.py,sha256=NANLXDAc6pO2wHEl3wrG8qhhi59_U6ZioMKARU2UQzQ,9365
128
- fugue_spark/execution_engine.py,sha256=p90AHCmpUJ6UpbZwOoRdk5hoH2qTVR1H4RYaiZImzWU,28641
132
+ fugue_spark/dataframe.py,sha256=xoM2-SwVRFfSyfEEnx4g4b0GO6XgN-DQLvXtUrAMq1Q,9510
133
+ fugue_spark/execution_engine.py,sha256=c0dzpRRVvDbgYrQU2FCA1JQvERqr3b55spDTN_wq4BU,32633
129
134
  fugue_spark/ibis_engine.py,sha256=Yl5xxwROo1idcD2hFaylaI1IpmBUgbvOZRWtcrE0Zjo,1697
130
- fugue_spark/registry.py,sha256=JxFnao5HJK9HQxE0tA7WvrX99QUamjnbx-1VRZWDbHU,5340
135
+ fugue_spark/registry.py,sha256=kyIMk6dAiKRSKCHawQKyXu9DhZ24T6j3gL57TiOAZ8c,4162
131
136
  fugue_spark/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
- fugue_spark/_utils/convert.py,sha256=1WsTSIZ0N0IFZJHIid47ccUrPYPgBEk1DRm1qcZa9_U,6300
133
- fugue_spark/_utils/io.py,sha256=rEJO_7TJJgV2aH1r_vlmJFIX5TP0VX-dnHU_00xtxRA,6129
134
- fugue_spark/_utils/partition.py,sha256=rDH0msMM8Sc53lpR_HryFHeonzYdMOYwmLMj6kfbAC4,3723
137
+ fugue_spark/_utils/convert.py,sha256=FcYKCvFZwIY-nVT0eXdi87J7G5F1n6_9B106AsWlwZk,6552
138
+ fugue_spark/_utils/io.py,sha256=TtQ0VunDTRvFyjWUZHbJWj8XVJWoy2Yu0RgNZ2XyJfI,5527
139
+ fugue_spark/_utils/misc.py,sha256=o8dZmXOHnA7D_ps37vgGXTPTiSEG9LQzPKq7l-MG-qM,860
140
+ fugue_spark/_utils/partition.py,sha256=iaesyO5f4uXhj1W-p91cD5ecPiGlu0bzh8gl2ce2Uvg,3618
135
141
  fugue_sql/__init__.py,sha256=Cmr7w0Efr7PzoXdQzdJfc4Dgqd69qKqcHZZodENq7EU,287
136
142
  fugue_sql/exceptions.py,sha256=ltS0MC8gMnVVrJbQiOZ0kRUWvVQ2LTx33dCW3ugqtb0,260
137
143
  fugue_test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
- fugue_test/_utils.py,sha256=VUHbOrnhcI-WasRGve_0rbuIct5qxeVWiw8ht0iKTE4,247
139
144
  fugue_test/bag_suite.py,sha256=WbDCFjuAHYoJh4GXSPiSJxOoOwE1VMtYpJ3lQrsUK-Y,2483
140
- fugue_test/builtin_suite.py,sha256=y0mAw6zMFcA65zILI0Xqfzbx0p1TfP-8-NdPr0_FurU,74870
141
- fugue_test/dataframe_suite.py,sha256=5_aTsEeZEoQew4_QKoB6QsK1b9sVAw1lzefRKfX_zxs,18992
142
- fugue_test/execution_suite.py,sha256=t7wLFe7qgg7R14nSfyfX0aY6pPCKKYpYDVsQUZaOsvc,51250
145
+ fugue_test/builtin_suite.py,sha256=RT8TG-2bzkl_FmKmcnjfydMnuLjvVksmR2uPyJ6Kc7w,75748
146
+ fugue_test/dataframe_suite.py,sha256=6uM7_et2Y55-ePIssG9G_K9mXBYNjPXnpunuCh0xKhw,19082
147
+ fugue_test/execution_suite.py,sha256=PVaZmg41iGQu6RLjatOOX3VNGD_6BMjOC8mQSyfwq_s,50559
143
148
  fugue_test/ibis_suite.py,sha256=Dk4AHVD00RcFsNm9VvJ4_4LOyFdGX30OnAtpO2SPruE,3529
144
- fugue_version/__init__.py,sha256=Ocl79hbbH8_jdr5dGC90VR1cAvZc05Rc0tkZttUnMjo,22
149
+ fugue_version/__init__.py,sha256=jhHEJFZWhkQDemoZMomBYq-RNrKXknYzUaeIU9A6XsI,22
145
150
  tests/__init__.py,sha256=Ve0nsaoKiNp2pxFA9NX9DubKkq-6tzCAQqKNaf0EWr4,22
146
151
  tests/fugue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
152
  tests/fugue/test_interfaceless.py,sha256=T1elfGTXctyiUsQurhaG_8zB5AsUOrTw_vMQuxFOYO4,6152
148
153
  tests/fugue/bag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- tests/fugue/bag/test_array_bag.py,sha256=EIL0txIkeHa_Ar3K4xa8Rs9o-_jG6gmms6TO4gOC0lA,1254
154
+ tests/fugue/bag/test_array_bag.py,sha256=JaDsYSsBu90etwQ8PVo__aAnIxgJ9FYg5YzfxjMRh4w,992
150
155
  tests/fugue/collections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
151
- tests/fugue/collections/test_partition.py,sha256=VQpvlmko_BRAacr3OI-vAMahE0lSpa2PunU_pK0r1vM,8598
156
+ tests/fugue/collections/test_partition.py,sha256=R2BIBP_Lukv2XV1emenUrwFKDe6cMTnwFpYoMmNnM0E,8852
152
157
  tests/fugue/collections/test_sql.py,sha256=mClpupzeJl4yv9y3dpWFaDAyDTAgukm_RsRGFr7jpWY,2869
153
158
  tests/fugue/column/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
159
  tests/fugue/column/test_expressions.py,sha256=whTRBlSJn9sCCMCxylVekbVx5hEaEBdLdVNF3xo2ews,8037
@@ -160,17 +165,18 @@ tests/fugue/dataframe/test_arrow_dataframe.py,sha256=aVG8WFQ79rgFr_-qbsKvVlFOEe-
160
165
  tests/fugue/dataframe/test_dataframe.py,sha256=TVK-MPUTHEIiRkWZ5Zo1ZkFvDqITMMqlG9DUaFnf4YE,2207
161
166
  tests/fugue/dataframe/test_dataframe_iterable_dataframe.py,sha256=PTHYklSnGK-znYwq8EYYKFYr3YC9PHdtAvDcGbF0q7I,2398
162
167
  tests/fugue/dataframe/test_dataframes.py,sha256=pvGTrje3p11y48eusoH7vlB8NM0x71rv9f4KeQJ34uA,2154
168
+ tests/fugue/dataframe/test_function_wrapper.py,sha256=CLTfZh5OLX-5ysnzLEuwTicvb2NQp_zzM-1_ITc3Ig8,8608
163
169
  tests/fugue/dataframe/test_iterable_dataframe.py,sha256=YvMUS-EEpAnZP59g9ro2vYRPrpSgTHxHwfcDI7WBRKE,4396
164
170
  tests/fugue/dataframe/test_pandas_dataframe.py,sha256=RT4M_TZfaCviNW5FNFGl9ItgaW8DALC6bB3_byxxQGk,7255
165
- tests/fugue/dataframe/test_utils.py,sha256=DnOEe0X2A0H7Ecg3uvW-RJPO8mIPXztT6AiEkOa54R4,9268
171
+ tests/fugue/dataframe/test_utils.py,sha256=SnFGO2HaiTC8gWpgY3SGdNE9snKRydNAdAPNXoG9N24,7981
166
172
  tests/fugue/execution/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
167
173
  tests/fugue/execution/test_api.py,sha256=JpiObezK_c2oeca1POgPo-Sp3CkgYaAD8a_IYPttQZk,2742
168
174
  tests/fugue/execution/test_execution_engine.py,sha256=xjb1cvisRV9AzrbVDznlgqiS6Yfqp0eE4OcLGWf7fmA,2533
169
- tests/fugue/execution/test_factory.py,sha256=2CBVmv94C_xp811JLjPxG24NtKGA1ovtLl-u0QLUOL0,10314
175
+ tests/fugue/execution/test_factory.py,sha256=KPlRz4T2CQ3nLu4VHkynqt2wpoBRMAhAQEkJxDuEtpE,10284
170
176
  tests/fugue/execution/test_ibis.py,sha256=6VahB8xzJ1WX_nbtrZnzRhw1XONRvtubHQOTbshgtRU,525
171
- tests/fugue/execution/test_naive_execution_engine.py,sha256=EnfTuDmanRWLXGNVolrusnxSVcH6R8NdXHAahhaVPEY,4018
177
+ tests/fugue/execution/test_naive_execution_engine.py,sha256=MbHIEFZGKqPXtvgUoeu2-r02aTHR5euCd_JwrImJGK0,2824
172
178
  tests/fugue/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
- tests/fugue/extensions/test_utils.py,sha256=h3QcVlpPOPwmB9HlS715tPyScok6msgjLj0M6F6-COw,5015
179
+ tests/fugue/extensions/test_utils.py,sha256=QId9O15J5OJ7iki_-ag5U7zFqoVc2PJ4pChwT38zOT4,4915
174
180
  tests/fugue/extensions/creator/__init__.py,sha256=9JYB5oUuEX2qoddZ2gVSNOKU4ef-pCYrOaH9cahO7Ec,1974
175
181
  tests/fugue/extensions/creator/test_convert.py,sha256=IccneF6MorXDstjATXz9qaiiluDaz_eDsq1JZhdWvjA,4236
176
182
  tests/fugue/extensions/outputter/__init__.py,sha256=9JYB5oUuEX2qoddZ2gVSNOKU4ef-pCYrOaH9cahO7Ec,1974
@@ -178,10 +184,10 @@ tests/fugue/extensions/outputter/test_convert.py,sha256=hSccCKLhFBZ3OaluwvchMDi4
178
184
  tests/fugue/extensions/processor/__init__.py,sha256=9JYB5oUuEX2qoddZ2gVSNOKU4ef-pCYrOaH9cahO7Ec,1974
179
185
  tests/fugue/extensions/processor/test_convert.py,sha256=sA3cqC2W8Ns4hXWVTzRmhCF3MNaS_tr9rDYFslEHSLM,6456
180
186
  tests/fugue/extensions/transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
- tests/fugue/extensions/transformer/test_convert_cotransformer.py,sha256=Ew412Ksb9WCChp0TlXgzYzeVefn9fomvqMleMncpS78,4101
182
- tests/fugue/extensions/transformer/test_convert_output_cotransformer.py,sha256=6YRWoqqjipVZBOQ-1IHik2T0p2zecy96JbembKNaL50,3180
187
+ tests/fugue/extensions/transformer/test_convert_cotransformer.py,sha256=KVc1KUCXrtkt5Wd12epcys6qr7xgvotMWYcUU-NW3ZU,4144
188
+ tests/fugue/extensions/transformer/test_convert_output_cotransformer.py,sha256=SWLDZg4deizwwSBOpVUwSPtmBnqK8GgPk69psLG2AVk,3223
183
189
  tests/fugue/extensions/transformer/test_convert_output_transformer.py,sha256=38I07Xi4fjw-y1xnhvETeBqK3NmwNoQKyDUY6EufeXk,4598
184
- tests/fugue/extensions/transformer/test_convert_transformer.py,sha256=iotKcs-g3iIAYD3_vHSrqDv5Z1dPYFOQKRbcDEcp3JE,7275
190
+ tests/fugue/extensions/transformer/test_convert_transformer.py,sha256=_ArKL25vJsO6j1Vrds2BaFQ7X2sRVaiyGCYjA7MVrXo,7357
185
191
  tests/fugue/rpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
192
  tests/fugue/rpc/test_base.py,sha256=u24YTmhxul4Yxf4GqHlg1KXWClz8C-EHcgFSpzHihRU,2198
187
193
  tests/fugue/rpc/test_flask.py,sha256=jQWZyoJz0oUp_0oIqCX8M6UplFijNP5uu4IOq9isAy0,1294
@@ -189,11 +195,11 @@ tests/fugue/rpc/test_func.py,sha256=qV5Y-ssKjppyFc5k7t8u5VNeWwN5BbviB8SnDdOgHQI,
189
195
  tests/fugue/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
196
  tests/fugue/sql/test_utils.py,sha256=aMBOK3qCvVQITytQvhlC53-VIn8qJpPFpbLOrhC2i0w,2938
191
197
  tests/fugue/sql/test_visitors.py,sha256=FqVCqR_9YhfCnYoKFuLAnF0fflLqJSk9bbP9pvw0xkc,6816
192
- tests/fugue/sql/test_workflow.py,sha256=VAEBmZqYacLZYCG4iE8uGqQPXUFJqQrf6WwR_Hy4K_M,11133
193
- tests/fugue/sql/test_workflow_parse.py,sha256=6UwsLpU4zD8YvD6j57rASITtgd1_FUhCU7wyynNABDo,23317
198
+ tests/fugue/sql/test_workflow.py,sha256=GukF4i3sBepY0lFkXQSmR1KV3F7bdaroW9Q9KYzEgfM,11133
199
+ tests/fugue/sql/test_workflow_parse.py,sha256=C83vE_WKLG3_5uSEJ5nMoTvmXiUNswYSH5BjroDv_pI,23329
194
200
  tests/fugue/utils/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
195
- tests/fugue/utils/test_interfaceless.py,sha256=uPRDpB6sp8qaGBwmKxHH7AYCfEi5nMFsq347GT8C6yw,10656
196
- tests/fugue/utils/test_io.py,sha256=PtiNM4-_3mM7rPSh0_th_pRPH4W-tr5QqeGumcbEV6w,11035
201
+ tests/fugue/utils/test_interfaceless.py,sha256=SYMQbuvxktV8siZkfMCHqc8Qfrsn2zSCTzZG101qWTg,1453
202
+ tests/fugue/utils/test_io.py,sha256=VXVFty7BoJZeUcWdSzaqSuQn9lrzYcoZLLna-zVBIgk,8170
197
203
  tests/fugue/utils/test_misc.py,sha256=mJBO5YllEjlV7Av6p1e26kWa7jVOfAPZDsVMXGY1nec,399
198
204
  tests/fugue/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
199
205
  tests/fugue/workflow/test_module.py,sha256=pPfB-AvgSj2HaONdYmibTinxRr_425RidLBRTMeGx_8,5303
@@ -203,20 +209,20 @@ tests/fugue/workflow/test_workflow_determinism.py,sha256=M7DesMhD1aog6VlJJb3pj2q
203
209
  tests/fugue/workflow/test_workflow_parallel.py,sha256=uHbGspkOeMkzVcB0Ojx6_IFSq2_USFV6N8DeDVVpPXA,1418
204
210
  tests/fugue_dask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
205
211
  tests/fugue_dask/test_dataframe.py,sha256=CuuC4LVe6dsinNGYhFkqnLJaJl3SKNinB0k88g1KB4k,8244
206
- tests/fugue_dask/test_execution_engine.py,sha256=UH-la_6Dt1lpqp91HTWGW6a0AhUKNCvVjcANVlAKEcA,6506
212
+ tests/fugue_dask/test_execution_engine.py,sha256=vDspDOvwAWyz10NSnrBQyFbXPmxo8AiPqRDyX6FGtEE,8296
207
213
  tests/fugue_dask/test_ibis.py,sha256=2LCJ1QO4FBhrP-TEV8n5mQRazJQI5KmyKPCLIDQDtZU,450
208
214
  tests/fugue_dask/test_importless.py,sha256=Zoqv6kV2uRcKmfTA4KVIm_I_KjY356DmNxN1vd_AoHo,560
209
- tests/fugue_dask/test_io.py,sha256=MG7ZAwn3m0OJVAYHSVfBNnHfD3E1oV317Aw5M53F04k,6176
215
+ tests/fugue_dask/test_io.py,sha256=HYlakXVwIHPbnkTI-BrmtBR5gheEoZuH5bjVA4kY2SY,4514
210
216
  tests/fugue_dask/test_sql.py,sha256=dd24gUY-0czk9vnPyv8M2e1SBzZnWTiv52W3kFZlOSo,513
211
217
  tests/fugue_duckdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
218
  tests/fugue_duckdb/test_dask.py,sha256=iH3voB6zJQMGEibrBTFgEn6upE1VlYxSLCu0qFoLiOQ,4626
213
- tests/fugue_duckdb/test_dataframe.py,sha256=Qd8Za4ZJTLuRSTgQE-koSI13gBQYQ5MTxBw6s83TIDY,2987
214
- tests/fugue_duckdb/test_execution_engine.py,sha256=Ell6V1uH_mxwFY9BGMwzEU6we7BP4jSfKcC5NLkq3a4,6680
219
+ tests/fugue_duckdb/test_dataframe.py,sha256=WOAXrqjMSSyxLZGRvS8YJ78wyBZOgf5Wy8vC-cKz7qY,2997
220
+ tests/fugue_duckdb/test_execution_engine.py,sha256=Z3-8B68wwvwOLIT6pL2ljjb2RvOAmG4LhgggA10iPB8,7093
215
221
  tests/fugue_duckdb/test_ibis.py,sha256=SeahaFPzNwgj3n64LuJoE5RYCVf-G593au6C_42Hyrs,1483
216
222
  tests/fugue_duckdb/test_importless.py,sha256=X_UtJE6NmOmfL4MATbtjgqY5MlkDZHMsL7KkCSJjdbQ,671
217
- tests/fugue_duckdb/test_utils.py,sha256=lf6W3bj6nsP5Hy6l9vKsdp2XdFG_TqURTW_ZaRafNnc,3489
223
+ tests/fugue_duckdb/test_utils.py,sha256=TEp8q7qIdplbCdUIiSLpV7UDSYnQyAsLl7x6KFNQB0E,3494
218
224
  tests/fugue_ibis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
- tests/fugue_ibis/test_dataframe.py,sha256=W6uYblFzpvqqgb_yvPhAhwhhhRwJ186vVcNuEiTmlyk,2873
225
+ tests/fugue_ibis/test_dataframe.py,sha256=UgfXl-7cqjQDPda08wz0WkskzrThLTrCZUmIRer5wHw,3027
220
226
  tests/fugue_ibis/test_execution_engine.py,sha256=oyu5l6iyczwcqZ-tXByivKWP2zPLe-03jK_sQPVw2go,2487
221
227
  tests/fugue_ibis/test_extensions.py,sha256=ySVzhSv0KtJC42ecTaM1G4VR6hX7DV9FeSH_8minAOQ,2189
222
228
  tests/fugue_ibis/test_importless.py,sha256=DMgnuaxxdCj_5sU61genTmJwzs23IPcCC5VMYcfdpFs,231
@@ -225,24 +231,29 @@ tests/fugue_ibis/mock/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
225
231
  tests/fugue_ibis/mock/dataframe.py,sha256=1WnaadzCiQ6V5qI8J6DwEhbEFWbLz2ifvmhAOElewMg,1168
226
232
  tests/fugue_ibis/mock/execution_engine.py,sha256=z5WphWdYixGZ4F8h6CiA3rX_h_DpEUzV1iprfqO6wLY,4536
227
233
  tests/fugue_notebook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
+ tests/fugue_polars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
+ tests/fugue_polars/test_api.py,sha256=buywsQ-TQYXYbsdDHU7UMXE2PdFKxjN1_ZPsl8kxRro,384
236
+ tests/fugue_polars/test_dataframe.py,sha256=B5VKPMFMVR9mxHhCbIQzPHtehPe4qvZVsXJ_VdFxOUk,2944
237
+ tests/fugue_polars/test_transform.py,sha256=4UetPteBAR1acMNDvVgVyyTjKqCQS-SSc9-3fF0p-2Y,3435
228
238
  tests/fugue_ray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
229
239
  tests/fugue_ray/test_dataframe.py,sha256=WjDb52C8qXY-aWLp2R1tcJi7Mc7wm1kWFKMUd4sLLIk,4589
230
- tests/fugue_ray/test_execution_engine.py,sha256=MCk8WB18gsPpeOwmfD6dalyRWw8xXQlhI3ok8smiiME,7408
240
+ tests/fugue_ray/test_execution_engine.py,sha256=h73VOVhpFB5kMYYhgmYihbOq1lRDFZ1-8FZ_pKLQxMY,8689
231
241
  tests/fugue_ray/test_registry.py,sha256=B8yxpNqcvcF7ioyhHX1SZ6l7Oo0Tbof02R0tRdNal_Q,771
232
242
  tests/fugue_ray/test_utils.py,sha256=_u5_pWjlaBd0r5sddpNTk46QAxxwvHGgUBBLHH3Tqng,583
233
243
  tests/fugue_spark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
- tests/fugue_spark/test_dataframe.py,sha256=aH-1K1uJ9Z1-Lc69eVB9fZSn4ZzKh7sqgGZLTUX5VGQ,5577
235
- tests/fugue_spark/test_execution_engine.py,sha256=S70uPBhtaTdAMTUKrzqdOUsfcf8iALEq8PTNdvXQj_g,13445
244
+ tests/fugue_spark/test_dataframe.py,sha256=aSKo4RmdbFcKeoAMvi769bGZkC_IDP_mDrVD_0gxEiQ,5353
245
+ tests/fugue_spark/test_execution_engine.py,sha256=M7Mz5c-Hq3ofrdP22qRTrkEGX7cdb7RSzsDXLKs2Ljg,14844
236
246
  tests/fugue_spark/test_ibis.py,sha256=T-P3bbwk3OawpA-0UdQ6QgH9SaG0OmUuqQcnSHz544E,673
237
- tests/fugue_spark/test_importless.py,sha256=d891pkirXj76vg0jO0n9ukyWYlC6Ww3TMT8WVfr3v-s,1117
247
+ tests/fugue_spark/test_importless.py,sha256=pXaHyuydRBnaovKcicwgVxw-IJOCaiGh2_9-POSJmlM,1149
248
+ tests/fugue_spark/test_spark_connect.py,sha256=9AfnQwYrRLEsx6L7HGWu3y0IbYYSIOUY3ERYFFeJ8mg,2527
238
249
  tests/fugue_spark/test_sql.py,sha256=l1R1e_y1fqwA1nrjHVrAf2tPdfKZgDZOJGP8BcdGBVo,606
239
250
  tests/fugue_spark/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
240
- tests/fugue_spark/utils/test_convert.py,sha256=eSiZCYxjh3H5iY6c8Ivz6Bw7GwDlgO9WZJYae_I29ow,3378
241
- tests/fugue_spark/utils/test_io.py,sha256=u9XyQvpKQOWZ8d3_hGPlhl_eKqGEprmeRHe9NCn1qOI,5694
251
+ tests/fugue_spark/utils/test_convert.py,sha256=e_8efaawMzx8ROxCYKHRxjKUtkqrudlKy3yL64tD7eY,3304
252
+ tests/fugue_spark/utils/test_io.py,sha256=Av5cjuUHc02E6vo4OglohL1RtwdO9uRtAA5MTCDg2XQ,5069
242
253
  tests/fugue_spark/utils/test_partition.py,sha256=mJKvkAXgmRu1ylQpU_SpO0xCQusFjLalW3axcX4RkJk,4726
243
- fugue-0.8.2.dev1.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
244
- fugue-0.8.2.dev1.dist-info/METADATA,sha256=H12bxKx5FlyLoc5IudEIa09pcaZs5cjce9zLUrUtH2g,15933
245
- fugue-0.8.2.dev1.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
246
- fugue-0.8.2.dev1.dist-info/entry_points.txt,sha256=R6uklUp4qgR5qnlbYbVikTfhdwDvqdcc7ZBVmLmJQ2Q,334
247
- fugue-0.8.2.dev1.dist-info/top_level.txt,sha256=oMQ_LAZA7nMpvlA3HxcQtEJvmcQNemWtIj2DTNALpu0,133
248
- fugue-0.8.2.dev1.dist-info/RECORD,,
254
+ fugue-0.8.4.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
255
+ fugue-0.8.4.dist-info/METADATA,sha256=a1JodYCkwHELyWl-UQzRuUhvYDUA1xaJ4vv2M05XNlQ,17144
256
+ fugue-0.8.4.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
257
+ fugue-0.8.4.dist-info/entry_points.txt,sha256=xD0_Lj3jz-np_UNVAwsKt9kYWX0CwM7o7IvkCXRmcQY,374
258
+ fugue-0.8.4.dist-info/top_level.txt,sha256=CgTTBWy9kh6sDmh_rtuh7YVxmjwvrC1Vhpa3ljH5vjA,146
259
+ fugue-0.8.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.38.4)
2
+ Generator: bdist_wheel (0.40.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -2,8 +2,9 @@
2
2
  dask = fugue_dask.registry [dask]
3
3
  dask_ibis = fugue_dask.ibis_engine [dask,ibis]
4
4
  duckdb = fugue_duckdb.registry [duckdb]
5
- duckdb_ibis = fugue_duckdb.ibis_engine [duckdb,ibis]
5
+ duckdb_ibis = fugue_duckdb.ibis_engine [ibis,duckdb]
6
6
  ibis = fugue_ibis [ibis]
7
+ polars = fugue_polars.registry [polars]
7
8
  ray = fugue_ray.registry [ray]
8
9
  spark = fugue_spark.registry [spark]
9
10
  spark_ibis = fugue_spark.ibis_engine [spark,ibis]
@@ -4,6 +4,7 @@ fugue_dask
4
4
  fugue_duckdb
5
5
  fugue_ibis
6
6
  fugue_notebook
7
+ fugue_polars
7
8
  fugue_ray
8
9
  fugue_spark
9
10
  fugue_sql
fugue_contrib/contrib.py CHANGED
@@ -4,4 +4,5 @@ FUGUE_CONTRIB: Dict[str, Any] = {
4
4
  "viz": {"module": "fugue_contrib.viz"},
5
5
  "sns": {"module": "fugue_contrib.seaborn"},
6
6
  "why": {"module": "whylogs.api.fugue.registry"},
7
+ "vizzu": {"module": "ipyvizzu.integrations.fugue"},
7
8
  }
fugue_contrib/viz/_ext.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from abc import ABC, abstractmethod
2
+ from typing import Any
2
3
 
3
4
  import pandas as pd
4
5
  from triad import assert_or_throw
@@ -25,7 +26,12 @@ class Visualize(Outputter, ABC):
25
26
  if len(self.partition_spec.partition_by) == 0:
26
27
  self._plot(df)
27
28
  else:
28
- for _, gp in df.groupby(self.partition_spec.partition_by, dropna=False):
29
+ keys: Any = ( # avoid pandas warning
30
+ self.partition_spec.partition_by
31
+ if len(self.partition_spec.partition_by) > 1
32
+ else self.partition_spec.partition_by[0]
33
+ )
34
+ for _, gp in df.groupby(keys, dropna=False):
29
35
  self._plot(gp.reset_index(drop=True))
30
36
 
31
37
  @abstractmethod
fugue_dask/_io.py CHANGED
@@ -3,8 +3,6 @@ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
3
3
  import fs as pfs
4
4
  from dask import dataframe as dd
5
5
  from fugue._utils.io import FileParser, _get_single_files
6
- from fugue._utils.io import _load_avro as _pd_load_avro
7
- from fugue._utils.io import _save_avro
8
6
  from triad.collections.dict import ParamDict
9
7
  from triad.collections.fs import FileSystem
10
8
  from triad.collections.schema import Schema
@@ -153,25 +151,14 @@ def _load_json(
153
151
  return pdf[schema.names], schema
154
152
 
155
153
 
156
- def _load_avro(
157
- p: FileParser, columns: Any = None, **kwargs: Any
158
- ) -> Tuple[dd.DataFrame, Any]:
159
- # TODO: change this hacky implementation!
160
- pdf, schema = _pd_load_avro(p, columns, **kwargs)
161
-
162
- return dd.from_pandas(pdf, npartitions=4), schema
163
-
164
-
165
154
  _FORMAT_LOAD: Dict[str, Callable[..., Tuple[dd.DataFrame, Any]]] = {
166
155
  "csv": _load_csv,
167
156
  "parquet": _load_parquet,
168
157
  "json": _load_json,
169
- "avro": _load_avro,
170
158
  }
171
159
 
172
160
  _FORMAT_SAVE: Dict[str, Callable] = {
173
161
  "csv": _save_csv,
174
162
  "parquet": _save_parquet,
175
163
  "json": _save_json,
176
- "avro": _save_avro,
177
164
  }
fugue_dask/_utils.py CHANGED
@@ -86,10 +86,14 @@ class DaskUtils(DaskUtilsBase):
86
86
  return df.astype(dtype=to_pandas_dtype(schema))
87
87
  for v in schema:
88
88
  s = df[v.name]
89
- if pa.types.is_string(v.type):
89
+ if pa.types.is_string(v.type) and not pandas.api.types.is_string_dtype(
90
+ s.dtype
91
+ ):
90
92
  ns = s.isnull()
91
93
  s = s.astype(str).mask(ns, None)
92
- elif pa.types.is_boolean(v.type):
94
+ elif pa.types.is_boolean(v.type) and not pandas.api.types.is_bool_dtype(
95
+ s.dtype
96
+ ):
93
97
  ns = s.isnull()
94
98
  if pandas.api.types.is_string_dtype(s.dtype):
95
99
  try:
@@ -98,8 +102,10 @@ class DaskUtils(DaskUtilsBase):
98
102
  s = s.fillna(0).astype(bool)
99
103
  else:
100
104
  s = s.fillna(0).astype(bool)
101
- s = s.mask(ns, None)
102
- elif pa.types.is_integer(v.type):
105
+ s = s.mask(ns, None).astype("boolean")
106
+ elif pa.types.is_integer(v.type) and not pandas.api.types.is_integer_dtype(
107
+ s.dtype
108
+ ):
103
109
  ns = s.isnull()
104
110
  s = s.fillna(0).astype(v.type.to_pandas_dtype()).mask(ns, None)
105
111
  elif not pa.types.is_struct(v.type) and not pa.types.is_list(v.type):
fugue_dask/dataframe.py CHANGED
@@ -11,7 +11,6 @@ from fugue.dataframe import (
11
11
  ArrowDataFrame,
12
12
  DataFrame,
13
13
  LocalBoundedDataFrame,
14
- LocalDataFrame,
15
14
  PandasDataFrame,
16
15
  )
17
16
  from fugue.dataframe.dataframe import _input_schema
@@ -100,7 +99,7 @@ class DaskDataFrame(DataFrame):
100
99
  def is_local(self) -> bool:
101
100
  return False
102
101
 
103
- def as_local(self) -> LocalDataFrame:
102
+ def as_local_bounded(self) -> LocalBoundedDataFrame:
104
103
  res = PandasDataFrame(self.as_pandas(), self.schema)
105
104
  if self.has_metadata:
106
105
  res.reset_metadata(self.metadata)