fugue 0.8.2.dev4__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.
- fugue/__init__.py +0 -1
- fugue/_utils/io.py +2 -91
- fugue/api.py +1 -0
- fugue/collections/partition.py +12 -6
- fugue/constants.py +1 -1
- fugue/dataframe/__init__.py +1 -7
- fugue/dataframe/arrow_dataframe.py +1 -1
- fugue/dataframe/function_wrapper.py +2 -3
- fugue/dataframe/utils.py +10 -84
- fugue/execution/api.py +34 -12
- fugue/execution/native_execution_engine.py +33 -19
- fugue/extensions/_builtins/creators.py +4 -2
- fugue/extensions/_builtins/outputters.py +3 -3
- fugue/extensions/_builtins/processors.py +2 -3
- fugue/plugins.py +1 -0
- fugue/workflow/_checkpoint.py +1 -1
- {fugue-0.8.2.dev4.dist-info → fugue-0.8.4.dist-info}/METADATA +20 -10
- {fugue-0.8.2.dev4.dist-info → fugue-0.8.4.dist-info}/RECORD +67 -65
- {fugue-0.8.2.dev4.dist-info → fugue-0.8.4.dist-info}/entry_points.txt +2 -2
- fugue_contrib/viz/_ext.py +7 -1
- fugue_dask/_io.py +0 -13
- fugue_dask/_utils.py +10 -4
- fugue_dask/execution_engine.py +42 -16
- fugue_duckdb/_utils.py +7 -2
- fugue_duckdb/dask.py +1 -1
- fugue_duckdb/dataframe.py +17 -10
- fugue_duckdb/execution_engine.py +12 -22
- fugue_ibis/dataframe.py +2 -7
- fugue_notebook/env.py +5 -10
- fugue_polars/_utils.py +0 -40
- fugue_polars/polars_dataframe.py +22 -7
- fugue_ray/_constants.py +8 -1
- fugue_ray/_utils/dataframe.py +31 -4
- fugue_ray/_utils/io.py +2 -4
- fugue_ray/dataframe.py +13 -4
- fugue_ray/execution_engine.py +39 -21
- fugue_spark/_utils/convert.py +22 -11
- fugue_spark/_utils/io.py +0 -13
- fugue_spark/_utils/misc.py +27 -0
- fugue_spark/_utils/partition.py +11 -18
- fugue_spark/dataframe.py +24 -19
- fugue_spark/execution_engine.py +61 -35
- fugue_spark/registry.py +15 -3
- fugue_test/builtin_suite.py +7 -9
- fugue_test/dataframe_suite.py +7 -3
- fugue_test/execution_suite.py +100 -122
- fugue_version/__init__.py +1 -1
- tests/fugue/collections/test_partition.py +6 -3
- tests/fugue/dataframe/test_utils.py +2 -43
- tests/fugue/execution/test_naive_execution_engine.py +33 -0
- tests/fugue/utils/test_io.py +0 -80
- tests/fugue_dask/test_execution_engine.py +45 -0
- tests/fugue_dask/test_io.py +0 -55
- tests/fugue_duckdb/test_dataframe.py +2 -2
- tests/fugue_duckdb/test_utils.py +1 -1
- tests/fugue_polars/test_api.py +13 -0
- tests/fugue_polars/test_transform.py +11 -5
- tests/fugue_ray/test_execution_engine.py +32 -1
- tests/fugue_spark/test_dataframe.py +0 -8
- tests/fugue_spark/test_execution_engine.py +48 -10
- tests/fugue_spark/test_importless.py +4 -4
- tests/fugue_spark/test_spark_connect.py +82 -0
- tests/fugue_spark/utils/test_convert.py +6 -8
- tests/fugue_spark/utils/test_io.py +0 -17
- fugue_test/_utils.py +0 -13
- {fugue-0.8.2.dev4.dist-info → fugue-0.8.4.dist-info}/LICENSE +0 -0
- {fugue-0.8.2.dev4.dist-info → fugue-0.8.4.dist-info}/WHEEL +0 -0
- {fugue-0.8.2.dev4.dist-info → fugue-0.8.4.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: fugue
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.4
|
|
4
4
|
Summary: An abstraction layer for distributed computation
|
|
5
5
|
Home-page: http://github.com/fugue-project/fugue
|
|
6
6
|
Author: The Fugue Development Team
|
|
@@ -20,16 +20,16 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
21
21
|
Requires-Python: >=3.7
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
|
-
Requires-Dist: triad (>=0.8.
|
|
23
|
+
Requires-Dist: triad (>=0.8.8)
|
|
24
24
|
Requires-Dist: adagio (>=0.2.4)
|
|
25
|
-
Requires-Dist: qpd (>=0.4.
|
|
26
|
-
Requires-Dist: fugue-sql-antlr (>=0.1.
|
|
27
|
-
Requires-Dist: sqlglot
|
|
25
|
+
Requires-Dist: qpd (>=0.4.1)
|
|
26
|
+
Requires-Dist: fugue-sql-antlr (>=0.1.6)
|
|
28
27
|
Requires-Dist: pyarrow (>=0.15.1)
|
|
29
|
-
Requires-Dist: pandas (
|
|
28
|
+
Requires-Dist: pandas (>=1.2.0)
|
|
29
|
+
Requires-Dist: sqlglot
|
|
30
30
|
Requires-Dist: jinja2
|
|
31
31
|
Provides-Extra: all
|
|
32
|
-
Requires-Dist: fugue-sql-antlr[cpp] (>=0.1.
|
|
32
|
+
Requires-Dist: fugue-sql-antlr[cpp] (>=0.1.6) ; extra == 'all'
|
|
33
33
|
Requires-Dist: pyspark ; extra == 'all'
|
|
34
34
|
Requires-Dist: ray[data] (>=2.0.0) ; extra == 'all'
|
|
35
35
|
Requires-Dist: qpd[dask] (>=0.4.0) ; extra == 'all'
|
|
@@ -44,9 +44,9 @@ Requires-Dist: ibis-framework (>=2.1.1) ; (python_version < "3.8") and extra ==
|
|
|
44
44
|
Requires-Dist: dask[dataframe,distributed] (>=2022.9.0) ; (python_version >= "3.8") and extra == 'all'
|
|
45
45
|
Requires-Dist: ibis-framework (>=3.2.0) ; (python_version >= "3.8") and extra == 'all'
|
|
46
46
|
Provides-Extra: cpp_sql_parser
|
|
47
|
-
Requires-Dist: fugue-sql-antlr[cpp] (>=0.1.
|
|
47
|
+
Requires-Dist: fugue-sql-antlr[cpp] (>=0.1.6) ; extra == 'cpp_sql_parser'
|
|
48
48
|
Provides-Extra: dask
|
|
49
|
-
Requires-Dist: qpd[dask] (>=0.4.
|
|
49
|
+
Requires-Dist: qpd[dask] (>=0.4.1) ; extra == 'dask'
|
|
50
50
|
Requires-Dist: dask[dataframe,distributed] ; (python_version < "3.8") and extra == 'dask'
|
|
51
51
|
Requires-Dist: dask[dataframe,distributed] (>=2022.9.0) ; (python_version >= "3.8") and extra == 'dask'
|
|
52
52
|
Provides-Extra: duckdb
|
|
@@ -219,13 +219,14 @@ It also has the following installation extras:
|
|
|
219
219
|
* **dask**: to support Dask as the ExecutionEngine.
|
|
220
220
|
* **ray**: to support Ray as the ExecutionEngine.
|
|
221
221
|
* **duckdb**: to support DuckDB as the ExecutionEngine, read [details](https://fugue-tutorials.readthedocs.io/tutorials/integrations/backends/duckdb.html).
|
|
222
|
+
* **polars**: to support Polars DataFrames and extensions using Polars.
|
|
222
223
|
* **ibis**: to enable Ibis for Fugue workflows, read [details](https://fugue-tutorials.readthedocs.io/tutorials/integrations/backends/ibis.html).
|
|
223
224
|
* **cpp_sql_parser**: to enable the CPP antlr parser for Fugue SQL. It can be 50+ times faster than the pure Python parser. For the main Python versions and platforms, there is already pre-built binaries, but for the remaining, it needs a C++ compiler to build on the fly.
|
|
224
225
|
|
|
225
226
|
For example a common use case is:
|
|
226
227
|
|
|
227
228
|
```bash
|
|
228
|
-
pip install fugue[duckdb,spark]
|
|
229
|
+
pip install "fugue[duckdb,spark]"
|
|
229
230
|
```
|
|
230
231
|
|
|
231
232
|
Note if you already installed Spark or DuckDB independently, Fugue is able to automatically use them without installing the extras.
|
|
@@ -272,6 +273,7 @@ By being an abstraction layer, Fugue can be used with a lot of other open-source
|
|
|
272
273
|
Python backends:
|
|
273
274
|
|
|
274
275
|
* [Pandas](https://github.com/pandas-dev/pandas)
|
|
276
|
+
* [Polars](https://www.pola.rs) (DataFrames only)
|
|
275
277
|
* [Spark](https://github.com/apache/spark)
|
|
276
278
|
* [Dask](https://github.com/dask/dask)
|
|
277
279
|
* [Ray](http://github.com/ray-project/ray)
|
|
@@ -294,6 +296,13 @@ Fugue is available as a backend or can integrate with the following projects:
|
|
|
294
296
|
* [Prefect](https://fugue-tutorials.readthedocs.io/tutorials/integrations/ecosystem/prefect.html) - workflow orchestration
|
|
295
297
|
* [Pandera](https://fugue-tutorials.readthedocs.io/tutorials/integrations/ecosystem/pandera.html) - data validation
|
|
296
298
|
|
|
299
|
+
Registered 3rd party extensions (majorly for Fugue SQL) include:
|
|
300
|
+
|
|
301
|
+
* [Pandas plot](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html) - visualize data using matplotlib or plotly
|
|
302
|
+
* [Seaborn](https://seaborn.pydata.org/api.html) - visualize data using seaborn
|
|
303
|
+
* [WhyLogs](https://whylogs.readthedocs.io/en/latest/examples/integrations/Fugue_Profiling.html?highlight=fugue) - visualize data profiling
|
|
304
|
+
* [Vizzu](https://github.com/vizzuhq/ipyvizzu) - visualize data using ipyvizzu
|
|
305
|
+
|
|
297
306
|
## Community and Contributing
|
|
298
307
|
|
|
299
308
|
Feel free to message us on [Slack](http://slack.fugue.ai). We also have [contributing instructions](CONTRIBUTING.md).
|
|
@@ -308,6 +317,7 @@ Feel free to message us on [Slack](http://slack.fugue.ai). We also have [contrib
|
|
|
308
317
|
* [Productionizing Data Science at Interos, Inc. (LinkedIn post by Anthony Holten)](https://www.linkedin.com/posts/anthony-holten_pandas-spark-dask-activity-7022628193983459328-QvcF)
|
|
309
318
|
|
|
310
319
|
* [Multiple Time Series Forecasting with Fugue & Nixtla at Bain & Company(LinkedIn post by Fahad Akbar)](https://www.linkedin.com/posts/fahadakbar_fugue-datascience-forecasting-activity-7041119034813124608-u08q?utm_source=share&utm_medium=member_desktop)
|
|
320
|
+
|
|
311
321
|
## Further Resources
|
|
312
322
|
|
|
313
323
|
View some of our latest conferences presentations and content. For a more complete list, check the [Content](https://fugue-tutorials.readthedocs.io/tutorials/resources/content.html) page in the tutorials.
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
fugue/__init__.py,sha256=
|
|
2
|
-
fugue/api.py,sha256=
|
|
3
|
-
fugue/constants.py,sha256=
|
|
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
4
|
fugue/dev.py,sha256=GQCkezBBl4V0lVDWhGtUQKqomiCxgR9dMhfqj9C8cS8,1369
|
|
5
5
|
fugue/exceptions.py,sha256=ylP8gkZL8ao_ZLinNYKv16FPyO_n7c29dN-4QChUxi0,1544
|
|
6
|
-
fugue/plugins.py,sha256=
|
|
6
|
+
fugue/plugins.py,sha256=SJ-jqs04StHIHJ65lgdGP0IDopVIGBDpmzHHllNK8p0,998
|
|
7
7
|
fugue/registry.py,sha256=SNULGv08f37fRO-cIxFDmnVcod7ref2fNLSK6G7nVnI,868
|
|
8
8
|
fugue/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
fugue/_utils/display.py,sha256=JV8oDA7efHm1wceZulCBOY5dMvjbWHvIm6ASisKfoWY,3164
|
|
10
10
|
fugue/_utils/exception.py,sha256=SFIjwjV4CIEovp3P9k7ePNOFB12A5D8hDdhtfFUeM5Y,2247
|
|
11
11
|
fugue/_utils/interfaceless.py,sha256=wI0H6L4W_1uQjh9tpjgT9HzN-fbrrtXXHC1x6Q_rrPg,2203
|
|
12
|
-
fugue/_utils/io.py,sha256=
|
|
12
|
+
fugue/_utils/io.py,sha256=xA8wAWDwp3bGsMiHogaUsh-2SZ1lCykWy6NSg25p4Ls,9104
|
|
13
13
|
fugue/_utils/misc.py,sha256=C8bM9DzdeaYPsmHwsqxg-1fsCqk7uJvZHCXkhQmNYGs,495
|
|
14
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
17
|
fugue/bag/bag.py,sha256=sNBAzPmEh5fEm8ME8NEEOOre6l58ri6oouVBWwafqTc,3018
|
|
18
18
|
fugue/collections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
-
fugue/collections/partition.py,sha256=
|
|
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=
|
|
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=
|
|
29
|
+
fugue/dataframe/arrow_dataframe.py,sha256=h0DJH8G0MEgfkyvX4U957iqDXIgvTtrP7YED5iEjizI,12098
|
|
30
30
|
fugue/dataframe/dataframe.py,sha256=rIjaOplyRDt_BfpFwZWMjZALDqa03NePs9tFiLSW6Jg,17247
|
|
31
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/function_wrapper.py,sha256=
|
|
33
|
+
fugue/dataframe/function_wrapper.py,sha256=DjyIrNBj5Bv9AwIl2I2fG5ClcKe3OoW_eBkyEabYY5Y,13505
|
|
34
34
|
fugue/dataframe/iterable_dataframe.py,sha256=Kn5HZnVU4o1nn9mbbQxaV8rGG869wImZcOCK3AdlA-M,4627
|
|
35
35
|
fugue/dataframe/pandas_dataframe.py,sha256=ZWqI-ZUFiSP7giJ3siRlrZcMedI_fyuoLn227H0YRvw,10453
|
|
36
|
-
fugue/dataframe/utils.py,sha256=
|
|
36
|
+
fugue/dataframe/utils.py,sha256=nQVU01jspB1NSeRiagE71uzRibDqvyGwi94ZfHwNHD0,10508
|
|
37
37
|
fugue/dataset/__init__.py,sha256=5f2CAJ4xst6Z2o9Q2e2twfDOGUw8ZJoE2ild4JEU2pg,112
|
|
38
38
|
fugue/dataset/api.py,sha256=DacI4L2w5NJ-eZ6nFxNMqmReEnb0WUXswbjVp7BeErk,2794
|
|
39
39
|
fugue/dataset/dataset.py,sha256=jWXZqy3msMPFFkhas2PYJEX55ZAI3gk3Txq5f4-Qya4,4759
|
|
40
40
|
fugue/execution/__init__.py,sha256=iZGxAznZz9piM3k4gp0tln97MDIBxdliLyNbD-0Zc48,427
|
|
41
|
-
fugue/execution/api.py,sha256=
|
|
41
|
+
fugue/execution/api.py,sha256=KsFOLGdWQMlXmlQ5JRgRsbUeB64qzTVHxSEaunjiojo,39818
|
|
42
42
|
fugue/execution/execution_engine.py,sha256=o7HwZO3SBnCdrIm6OyH3kC3iYkWBWOT1cCN3WX_Ik0M,49152
|
|
43
43
|
fugue/execution/factory.py,sha256=5ICzfNh2QqqABuVyYLijY5-7LZgfRqczlaZN32p78bE,21003
|
|
44
|
-
fugue/execution/native_execution_engine.py,sha256=
|
|
44
|
+
fugue/execution/native_execution_engine.py,sha256=CPE6sBjKjJTShLjj3fxxuGZJyxJuWw7-pDepY5gc4YU,13205
|
|
45
45
|
fugue/extensions/__init__.py,sha256=y-uLKd6mZ8sZ_8-OdW6ELoBO_9IfC0gDmEbE_rMCvOA,599
|
|
46
46
|
fugue/extensions/_utils.py,sha256=Bi3pYKy2Z6fG6_5BpwIWldxetassXpB4Zp8QamWB-wg,5173
|
|
47
47
|
fugue/extensions/context.py,sha256=c_y2UttzzIFoQTOCV42VCdj2nqah33xYuBjbKNIOpx8,4262
|
|
48
48
|
fugue/extensions/_builtins/__init__.py,sha256=OAUjZJP-QI8VpJxxEEZJFFGir4PmTyLMmWQ3VCHtIGk,545
|
|
49
|
-
fugue/extensions/_builtins/creators.py,sha256=
|
|
50
|
-
fugue/extensions/_builtins/outputters.py,sha256=
|
|
51
|
-
fugue/extensions/_builtins/processors.py,sha256=
|
|
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
|
|
52
52
|
fugue/extensions/creator/__init__.py,sha256=7qmrb0eRKbGSEvrb6045-5hkmjH-nT1GJo1qYubX158,188
|
|
53
53
|
fugue/extensions/creator/convert.py,sha256=66ei5x0K0a8nWQ-kNwZXmmf1VeR_6XuqSe9rZ64mYpI,7297
|
|
54
54
|
fugue/extensions/creator/creator.py,sha256=ET9yprY4mvw0kkfWtW4aQEvKv1VR-FiWT4SThvwgAyo,1541
|
|
@@ -71,7 +71,7 @@ fugue/sql/_visitors.py,sha256=2pc0J-AHJAiIexsKgNjcgrCGOyhC3_7rzonSgtjy--k,33844
|
|
|
71
71
|
fugue/sql/api.py,sha256=l2I9CAy_W2oFFTct9fDPLyXF0LiDxQhMx5O8jBHTAxU,10050
|
|
72
72
|
fugue/sql/workflow.py,sha256=0JL44i12DoLBJ1Pj2e1HpSt8giG95utltmOzzGbPRAA,2939
|
|
73
73
|
fugue/workflow/__init__.py,sha256=tXM_KYO8Q358W6qAVlwhIQIaYNRDgZtTubrIEX4QMgM,229
|
|
74
|
-
fugue/workflow/_checkpoint.py,sha256=
|
|
74
|
+
fugue/workflow/_checkpoint.py,sha256=MTMyNCdWHf5UK8bRepfR2u8y3cEhO1RYIYq558ZlXzA,5715
|
|
75
75
|
fugue/workflow/_tasks.py,sha256=Zq_jXJO_VaF8DrWUuBiwO2Y3OVuhsiOQdzP4VBsp7Fo,11826
|
|
76
76
|
fugue/workflow/_workflow_context.py,sha256=Wmp6n0lSrh2Gpslb5EaSX6BQNniKsvKn6SlhVkQ6ui0,2504
|
|
77
77
|
fugue/workflow/api.py,sha256=uQoxPSCZ91-ST4vwuPWG7qioRGW4eo-Sgi3DdwtSL4k,12495
|
|
@@ -82,78 +82,78 @@ fugue_contrib/__init__.py,sha256=QJioX-r2AiU7Pvt24M-k2c4vNq29qpK-3WNUde7ucck,222
|
|
|
82
82
|
fugue_contrib/contrib.py,sha256=3B--6oIVBMZ-GwjIOXwZqYqkloH7Cxfq1I8vkwl2yPk,267
|
|
83
83
|
fugue_contrib/seaborn/__init__.py,sha256=NuVv8EI4Om4gHcHwYO8ddextLQqw24vDj8qJio3E1MU,1405
|
|
84
84
|
fugue_contrib/viz/__init__.py,sha256=osgZx63Br-yMZImyEfYf9MVzJNM2Cqqke_-WsuDmG5M,1273
|
|
85
|
-
fugue_contrib/viz/_ext.py,sha256=
|
|
85
|
+
fugue_contrib/viz/_ext.py,sha256=Lu_DlS5DcmrFz27fHcKTCkhKyknVWcfS5kzZVVuO9xM,1345
|
|
86
86
|
fugue_dask/__init__.py,sha256=2CcJ0AsN-k_f7dZ-yAyYpaICfUMPfH3l0FvUJSBzTr0,161
|
|
87
87
|
fugue_dask/_constants.py,sha256=dVkUTig3tUB7KY2H0xZjTy5_9oG7w4RMswxlfiva2MM,182
|
|
88
|
-
fugue_dask/_io.py,sha256=
|
|
89
|
-
fugue_dask/_utils.py,sha256=
|
|
88
|
+
fugue_dask/_io.py,sha256=EntoIwhqNDXspn-0rFzZj875OG_3fMn44VKSeKQpRnk,5314
|
|
89
|
+
fugue_dask/_utils.py,sha256=r_GTainvQaJIQPRYj_sgYlgC1yBojGrYMXIteGU1BS4,4476
|
|
90
90
|
fugue_dask/dataframe.py,sha256=LoDQ-UZnhvQGHD3hibP4FMls8Z5L_Exc029Ags5L32I,11801
|
|
91
|
-
fugue_dask/execution_engine.py,sha256=
|
|
91
|
+
fugue_dask/execution_engine.py,sha256=QG19LWsUAyivd6AALp8zLdj1KJlJCrKmkGtWhMvOzG4,18462
|
|
92
92
|
fugue_dask/ibis_engine.py,sha256=kQdaG_KlZZ2AjtYETNCdTJOgtwI_eH0aGzLaAiIBbRI,2120
|
|
93
93
|
fugue_dask/registry.py,sha256=EqhMfuR4m2VEmwDGaf6wtUL1RVFZhSO5rrkkL8AH-fA,2152
|
|
94
94
|
fugue_duckdb/__init__.py,sha256=nSNv-fxBAKD6W23EbMeV4dVRIaSTqr9DzQUWuVOES8s,379
|
|
95
95
|
fugue_duckdb/_io.py,sha256=Sq228unVnroYTq4GX-Wnv22SLHC9Ji-aWgiqrfdu81w,8880
|
|
96
|
-
fugue_duckdb/_utils.py,sha256=
|
|
97
|
-
fugue_duckdb/dask.py,sha256=
|
|
98
|
-
fugue_duckdb/dataframe.py,sha256=
|
|
99
|
-
fugue_duckdb/execution_engine.py,sha256=
|
|
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
|
|
100
100
|
fugue_duckdb/ibis_engine.py,sha256=MrypeABozqwetKOpqtrmWvCJX2QPfBXhbSEhvK9vqmI,1990
|
|
101
101
|
fugue_duckdb/registry.py,sha256=Dj0Tng1cXVT6Q7t-KxOky2k1dD9xSBjYGQmI26UgZPo,3095
|
|
102
102
|
fugue_ibis/__init__.py,sha256=PcUt66KlLyGGicad7asq5j2U567_fhR0HzvWQBhV1VM,362
|
|
103
103
|
fugue_ibis/_compat.py,sha256=zKdTaTfuC02eUIzZPkcd7oObnVBi_X5mQjQf7SDme3Y,246
|
|
104
104
|
fugue_ibis/_utils.py,sha256=BUL5swA5FE4eQu0t5Z17hZVu9a2MFfxlFH6Ymy9xifg,6607
|
|
105
|
-
fugue_ibis/dataframe.py,sha256=
|
|
105
|
+
fugue_ibis/dataframe.py,sha256=Y4Wn--oAlCvmqStY92AgUaAKqr9l6jSfJ2EXOhDFk9M,7302
|
|
106
106
|
fugue_ibis/execution_engine.py,sha256=igZ_rHflORPKp2h8HMSlzuv50P3ZaaijsvWyc8gilow,18540
|
|
107
107
|
fugue_ibis/extensions.py,sha256=H8l-SPfoqLuUoILtOuL2nccOpoL83zHeSoIhoqjtWQM,6905
|
|
108
108
|
fugue_ibis/execution/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
109
|
fugue_ibis/execution/ibis_engine.py,sha256=-HdPnIFWD83n5WITdzJiu4attH7GOcO041wkT5Y5ChA,1499
|
|
110
110
|
fugue_ibis/execution/pandas_backend.py,sha256=r6Pfs06FXrWukSbK2uz5gsCDG6a4wrk4sWIJ9acSuNU,1615
|
|
111
111
|
fugue_notebook/__init__.py,sha256=9r_-2uxu1lBeZ8GgpYCKom_OZy2soIOYZajg7JDO-HY,4326
|
|
112
|
-
fugue_notebook/env.py,sha256=
|
|
112
|
+
fugue_notebook/env.py,sha256=TYiTxYPFi-BVJJY49jDsvw9mddhK8WrifeRxBke30I8,4773
|
|
113
113
|
fugue_notebook/nbextension/README.md,sha256=QLnr957YeGfwzy2r4c4qbZPaXyCbyGrKPvcqSBQYSnU,123
|
|
114
114
|
fugue_notebook/nbextension/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
115
|
fugue_notebook/nbextension/description.yaml,sha256=CsXgx9CSLbAlO4Z1kvX9ejYA_TImPjOGWzRTF6PY-w0,150
|
|
116
116
|
fugue_notebook/nbextension/main.js,sha256=Px2tQuBCNGEZOEBKsnfVruFEg-AxK7Tj0dY84ktub_U,3709
|
|
117
117
|
fugue_polars/__init__.py,sha256=NDkjlbLhHPTjUaCAw6mAwIqeK3HSeh-z88s9dqmwheQ,61
|
|
118
|
-
fugue_polars/_utils.py,sha256=
|
|
119
|
-
fugue_polars/polars_dataframe.py,sha256=
|
|
118
|
+
fugue_polars/_utils.py,sha256=64MxC2rCKmbgZryCaY0Y_98VstQEb3JW8im7oU4vMXI,216
|
|
119
|
+
fugue_polars/polars_dataframe.py,sha256=Ll4ZUuRhAETWtmSf87KsdUCqZPiexFqy4FiPkvWQkN0,7348
|
|
120
120
|
fugue_polars/registry.py,sha256=gd6qQ-OxYtTAQFyvYbLDPXmSvCR-LW6n5K5ylgMY_7A,2950
|
|
121
121
|
fugue_ray/__init__.py,sha256=HzEHfG2mpc0ugf3nf1Pdy15Bhg35K6maZpYejn1aoyI,119
|
|
122
|
-
fugue_ray/_constants.py,sha256=
|
|
123
|
-
fugue_ray/dataframe.py,sha256=
|
|
124
|
-
fugue_ray/execution_engine.py,sha256=
|
|
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
125
|
fugue_ray/registry.py,sha256=xJRAhbwNrg695EwghQDnVtTKi4YkqZ0_61BD4OAblSA,1685
|
|
126
126
|
fugue_ray/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
127
127
|
fugue_ray/_utils/cluster.py,sha256=3T3Gyra6lAHlzktta-Ro35j6YZQfH6fNrj2hC5ATF9k,621
|
|
128
|
-
fugue_ray/_utils/dataframe.py,sha256=
|
|
129
|
-
fugue_ray/_utils/io.py,sha256=
|
|
128
|
+
fugue_ray/_utils/dataframe.py,sha256=xaw9Pbfjsnd_0vmbGRJJbAPUPWMZaYptw4LfDdIgvHo,3145
|
|
129
|
+
fugue_ray/_utils/io.py,sha256=gHfx70tdXPHmVL6nHxVhmCO5KpWjjyDG8qKT1Lbpav4,8737
|
|
130
130
|
fugue_spark/__init__.py,sha256=rvrMpFs9socMgyH_58gLbnAqmirBf5oidXoO4cekW6U,165
|
|
131
131
|
fugue_spark/_constants.py,sha256=K2uLQfjvMxXk75K-7_Wn47Alpwq5rW57BtECAUrOeqA,177
|
|
132
|
-
fugue_spark/dataframe.py,sha256=
|
|
133
|
-
fugue_spark/execution_engine.py,sha256=
|
|
132
|
+
fugue_spark/dataframe.py,sha256=xoM2-SwVRFfSyfEEnx4g4b0GO6XgN-DQLvXtUrAMq1Q,9510
|
|
133
|
+
fugue_spark/execution_engine.py,sha256=c0dzpRRVvDbgYrQU2FCA1JQvERqr3b55spDTN_wq4BU,32633
|
|
134
134
|
fugue_spark/ibis_engine.py,sha256=Yl5xxwROo1idcD2hFaylaI1IpmBUgbvOZRWtcrE0Zjo,1697
|
|
135
|
-
fugue_spark/registry.py,sha256=
|
|
135
|
+
fugue_spark/registry.py,sha256=kyIMk6dAiKRSKCHawQKyXu9DhZ24T6j3gL57TiOAZ8c,4162
|
|
136
136
|
fugue_spark/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
|
-
fugue_spark/_utils/convert.py,sha256=
|
|
138
|
-
fugue_spark/_utils/io.py,sha256=
|
|
139
|
-
fugue_spark/_utils/
|
|
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
|
|
140
141
|
fugue_sql/__init__.py,sha256=Cmr7w0Efr7PzoXdQzdJfc4Dgqd69qKqcHZZodENq7EU,287
|
|
141
142
|
fugue_sql/exceptions.py,sha256=ltS0MC8gMnVVrJbQiOZ0kRUWvVQ2LTx33dCW3ugqtb0,260
|
|
142
143
|
fugue_test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
143
|
-
fugue_test/_utils.py,sha256=VUHbOrnhcI-WasRGve_0rbuIct5qxeVWiw8ht0iKTE4,247
|
|
144
144
|
fugue_test/bag_suite.py,sha256=WbDCFjuAHYoJh4GXSPiSJxOoOwE1VMtYpJ3lQrsUK-Y,2483
|
|
145
|
-
fugue_test/builtin_suite.py,sha256=
|
|
146
|
-
fugue_test/dataframe_suite.py,sha256=
|
|
147
|
-
fugue_test/execution_suite.py,sha256=
|
|
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
|
|
148
148
|
fugue_test/ibis_suite.py,sha256=Dk4AHVD00RcFsNm9VvJ4_4LOyFdGX30OnAtpO2SPruE,3529
|
|
149
|
-
fugue_version/__init__.py,sha256=
|
|
149
|
+
fugue_version/__init__.py,sha256=jhHEJFZWhkQDemoZMomBYq-RNrKXknYzUaeIU9A6XsI,22
|
|
150
150
|
tests/__init__.py,sha256=Ve0nsaoKiNp2pxFA9NX9DubKkq-6tzCAQqKNaf0EWr4,22
|
|
151
151
|
tests/fugue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
152
152
|
tests/fugue/test_interfaceless.py,sha256=T1elfGTXctyiUsQurhaG_8zB5AsUOrTw_vMQuxFOYO4,6152
|
|
153
153
|
tests/fugue/bag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
154
|
tests/fugue/bag/test_array_bag.py,sha256=JaDsYSsBu90etwQ8PVo__aAnIxgJ9FYg5YzfxjMRh4w,992
|
|
155
155
|
tests/fugue/collections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
156
|
-
tests/fugue/collections/test_partition.py,sha256=
|
|
156
|
+
tests/fugue/collections/test_partition.py,sha256=R2BIBP_Lukv2XV1emenUrwFKDe6cMTnwFpYoMmNnM0E,8852
|
|
157
157
|
tests/fugue/collections/test_sql.py,sha256=mClpupzeJl4yv9y3dpWFaDAyDTAgukm_RsRGFr7jpWY,2869
|
|
158
158
|
tests/fugue/column/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
159
159
|
tests/fugue/column/test_expressions.py,sha256=whTRBlSJn9sCCMCxylVekbVx5hEaEBdLdVNF3xo2ews,8037
|
|
@@ -168,13 +168,13 @@ tests/fugue/dataframe/test_dataframes.py,sha256=pvGTrje3p11y48eusoH7vlB8NM0x71rv
|
|
|
168
168
|
tests/fugue/dataframe/test_function_wrapper.py,sha256=CLTfZh5OLX-5ysnzLEuwTicvb2NQp_zzM-1_ITc3Ig8,8608
|
|
169
169
|
tests/fugue/dataframe/test_iterable_dataframe.py,sha256=YvMUS-EEpAnZP59g9ro2vYRPrpSgTHxHwfcDI7WBRKE,4396
|
|
170
170
|
tests/fugue/dataframe/test_pandas_dataframe.py,sha256=RT4M_TZfaCviNW5FNFGl9ItgaW8DALC6bB3_byxxQGk,7255
|
|
171
|
-
tests/fugue/dataframe/test_utils.py,sha256=
|
|
171
|
+
tests/fugue/dataframe/test_utils.py,sha256=SnFGO2HaiTC8gWpgY3SGdNE9snKRydNAdAPNXoG9N24,7981
|
|
172
172
|
tests/fugue/execution/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
173
173
|
tests/fugue/execution/test_api.py,sha256=JpiObezK_c2oeca1POgPo-Sp3CkgYaAD8a_IYPttQZk,2742
|
|
174
174
|
tests/fugue/execution/test_execution_engine.py,sha256=xjb1cvisRV9AzrbVDznlgqiS6Yfqp0eE4OcLGWf7fmA,2533
|
|
175
175
|
tests/fugue/execution/test_factory.py,sha256=KPlRz4T2CQ3nLu4VHkynqt2wpoBRMAhAQEkJxDuEtpE,10284
|
|
176
176
|
tests/fugue/execution/test_ibis.py,sha256=6VahB8xzJ1WX_nbtrZnzRhw1XONRvtubHQOTbshgtRU,525
|
|
177
|
-
tests/fugue/execution/test_naive_execution_engine.py,sha256=
|
|
177
|
+
tests/fugue/execution/test_naive_execution_engine.py,sha256=MbHIEFZGKqPXtvgUoeu2-r02aTHR5euCd_JwrImJGK0,2824
|
|
178
178
|
tests/fugue/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
179
179
|
tests/fugue/extensions/test_utils.py,sha256=QId9O15J5OJ7iki_-ag5U7zFqoVc2PJ4pChwT38zOT4,4915
|
|
180
180
|
tests/fugue/extensions/creator/__init__.py,sha256=9JYB5oUuEX2qoddZ2gVSNOKU4ef-pCYrOaH9cahO7Ec,1974
|
|
@@ -199,7 +199,7 @@ tests/fugue/sql/test_workflow.py,sha256=GukF4i3sBepY0lFkXQSmR1KV3F7bdaroW9Q9KYzE
|
|
|
199
199
|
tests/fugue/sql/test_workflow_parse.py,sha256=C83vE_WKLG3_5uSEJ5nMoTvmXiUNswYSH5BjroDv_pI,23329
|
|
200
200
|
tests/fugue/utils/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
201
201
|
tests/fugue/utils/test_interfaceless.py,sha256=SYMQbuvxktV8siZkfMCHqc8Qfrsn2zSCTzZG101qWTg,1453
|
|
202
|
-
tests/fugue/utils/test_io.py,sha256=
|
|
202
|
+
tests/fugue/utils/test_io.py,sha256=VXVFty7BoJZeUcWdSzaqSuQn9lrzYcoZLLna-zVBIgk,8170
|
|
203
203
|
tests/fugue/utils/test_misc.py,sha256=mJBO5YllEjlV7Av6p1e26kWa7jVOfAPZDsVMXGY1nec,399
|
|
204
204
|
tests/fugue/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
205
205
|
tests/fugue/workflow/test_module.py,sha256=pPfB-AvgSj2HaONdYmibTinxRr_425RidLBRTMeGx_8,5303
|
|
@@ -209,18 +209,18 @@ tests/fugue/workflow/test_workflow_determinism.py,sha256=M7DesMhD1aog6VlJJb3pj2q
|
|
|
209
209
|
tests/fugue/workflow/test_workflow_parallel.py,sha256=uHbGspkOeMkzVcB0Ojx6_IFSq2_USFV6N8DeDVVpPXA,1418
|
|
210
210
|
tests/fugue_dask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
211
211
|
tests/fugue_dask/test_dataframe.py,sha256=CuuC4LVe6dsinNGYhFkqnLJaJl3SKNinB0k88g1KB4k,8244
|
|
212
|
-
tests/fugue_dask/test_execution_engine.py,sha256=
|
|
212
|
+
tests/fugue_dask/test_execution_engine.py,sha256=vDspDOvwAWyz10NSnrBQyFbXPmxo8AiPqRDyX6FGtEE,8296
|
|
213
213
|
tests/fugue_dask/test_ibis.py,sha256=2LCJ1QO4FBhrP-TEV8n5mQRazJQI5KmyKPCLIDQDtZU,450
|
|
214
214
|
tests/fugue_dask/test_importless.py,sha256=Zoqv6kV2uRcKmfTA4KVIm_I_KjY356DmNxN1vd_AoHo,560
|
|
215
|
-
tests/fugue_dask/test_io.py,sha256=
|
|
215
|
+
tests/fugue_dask/test_io.py,sha256=HYlakXVwIHPbnkTI-BrmtBR5gheEoZuH5bjVA4kY2SY,4514
|
|
216
216
|
tests/fugue_dask/test_sql.py,sha256=dd24gUY-0czk9vnPyv8M2e1SBzZnWTiv52W3kFZlOSo,513
|
|
217
217
|
tests/fugue_duckdb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
218
218
|
tests/fugue_duckdb/test_dask.py,sha256=iH3voB6zJQMGEibrBTFgEn6upE1VlYxSLCu0qFoLiOQ,4626
|
|
219
|
-
tests/fugue_duckdb/test_dataframe.py,sha256=
|
|
219
|
+
tests/fugue_duckdb/test_dataframe.py,sha256=WOAXrqjMSSyxLZGRvS8YJ78wyBZOgf5Wy8vC-cKz7qY,2997
|
|
220
220
|
tests/fugue_duckdb/test_execution_engine.py,sha256=Z3-8B68wwvwOLIT6pL2ljjb2RvOAmG4LhgggA10iPB8,7093
|
|
221
221
|
tests/fugue_duckdb/test_ibis.py,sha256=SeahaFPzNwgj3n64LuJoE5RYCVf-G593au6C_42Hyrs,1483
|
|
222
222
|
tests/fugue_duckdb/test_importless.py,sha256=X_UtJE6NmOmfL4MATbtjgqY5MlkDZHMsL7KkCSJjdbQ,671
|
|
223
|
-
tests/fugue_duckdb/test_utils.py,sha256=
|
|
223
|
+
tests/fugue_duckdb/test_utils.py,sha256=TEp8q7qIdplbCdUIiSLpV7UDSYnQyAsLl7x6KFNQB0E,3494
|
|
224
224
|
tests/fugue_ibis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
225
225
|
tests/fugue_ibis/test_dataframe.py,sha256=UgfXl-7cqjQDPda08wz0WkskzrThLTrCZUmIRer5wHw,3027
|
|
226
226
|
tests/fugue_ibis/test_execution_engine.py,sha256=oyu5l6iyczwcqZ-tXByivKWP2zPLe-03jK_sQPVw2go,2487
|
|
@@ -232,26 +232,28 @@ tests/fugue_ibis/mock/dataframe.py,sha256=1WnaadzCiQ6V5qI8J6DwEhbEFWbLz2ifvmhAOE
|
|
|
232
232
|
tests/fugue_ibis/mock/execution_engine.py,sha256=z5WphWdYixGZ4F8h6CiA3rX_h_DpEUzV1iprfqO6wLY,4536
|
|
233
233
|
tests/fugue_notebook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
234
234
|
tests/fugue_polars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
235
|
+
tests/fugue_polars/test_api.py,sha256=buywsQ-TQYXYbsdDHU7UMXE2PdFKxjN1_ZPsl8kxRro,384
|
|
235
236
|
tests/fugue_polars/test_dataframe.py,sha256=B5VKPMFMVR9mxHhCbIQzPHtehPe4qvZVsXJ_VdFxOUk,2944
|
|
236
|
-
tests/fugue_polars/test_transform.py,sha256=
|
|
237
|
+
tests/fugue_polars/test_transform.py,sha256=4UetPteBAR1acMNDvVgVyyTjKqCQS-SSc9-3fF0p-2Y,3435
|
|
237
238
|
tests/fugue_ray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
238
239
|
tests/fugue_ray/test_dataframe.py,sha256=WjDb52C8qXY-aWLp2R1tcJi7Mc7wm1kWFKMUd4sLLIk,4589
|
|
239
|
-
tests/fugue_ray/test_execution_engine.py,sha256=
|
|
240
|
+
tests/fugue_ray/test_execution_engine.py,sha256=h73VOVhpFB5kMYYhgmYihbOq1lRDFZ1-8FZ_pKLQxMY,8689
|
|
240
241
|
tests/fugue_ray/test_registry.py,sha256=B8yxpNqcvcF7ioyhHX1SZ6l7Oo0Tbof02R0tRdNal_Q,771
|
|
241
242
|
tests/fugue_ray/test_utils.py,sha256=_u5_pWjlaBd0r5sddpNTk46QAxxwvHGgUBBLHH3Tqng,583
|
|
242
243
|
tests/fugue_spark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
243
|
-
tests/fugue_spark/test_dataframe.py,sha256=
|
|
244
|
-
tests/fugue_spark/test_execution_engine.py,sha256=
|
|
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
|
|
245
246
|
tests/fugue_spark/test_ibis.py,sha256=T-P3bbwk3OawpA-0UdQ6QgH9SaG0OmUuqQcnSHz544E,673
|
|
246
|
-
tests/fugue_spark/test_importless.py,sha256=
|
|
247
|
+
tests/fugue_spark/test_importless.py,sha256=pXaHyuydRBnaovKcicwgVxw-IJOCaiGh2_9-POSJmlM,1149
|
|
248
|
+
tests/fugue_spark/test_spark_connect.py,sha256=9AfnQwYrRLEsx6L7HGWu3y0IbYYSIOUY3ERYFFeJ8mg,2527
|
|
247
249
|
tests/fugue_spark/test_sql.py,sha256=l1R1e_y1fqwA1nrjHVrAf2tPdfKZgDZOJGP8BcdGBVo,606
|
|
248
250
|
tests/fugue_spark/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
249
|
-
tests/fugue_spark/utils/test_convert.py,sha256=
|
|
250
|
-
tests/fugue_spark/utils/test_io.py,sha256=
|
|
251
|
+
tests/fugue_spark/utils/test_convert.py,sha256=e_8efaawMzx8ROxCYKHRxjKUtkqrudlKy3yL64tD7eY,3304
|
|
252
|
+
tests/fugue_spark/utils/test_io.py,sha256=Av5cjuUHc02E6vo4OglohL1RtwdO9uRtAA5MTCDg2XQ,5069
|
|
251
253
|
tests/fugue_spark/utils/test_partition.py,sha256=mJKvkAXgmRu1ylQpU_SpO0xCQusFjLalW3axcX4RkJk,4726
|
|
252
|
-
fugue-0.8.
|
|
253
|
-
fugue-0.8.
|
|
254
|
-
fugue-0.8.
|
|
255
|
-
fugue-0.8.
|
|
256
|
-
fugue-0.8.
|
|
257
|
-
fugue-0.8.
|
|
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,11 +1,11 @@
|
|
|
1
1
|
[fugue.plugins]
|
|
2
2
|
dask = fugue_dask.registry [dask]
|
|
3
|
-
dask_ibis = fugue_dask.ibis_engine [ibis
|
|
3
|
+
dask_ibis = fugue_dask.ibis_engine [dask,ibis]
|
|
4
4
|
duckdb = fugue_duckdb.registry [duckdb]
|
|
5
5
|
duckdb_ibis = fugue_duckdb.ibis_engine [ibis,duckdb]
|
|
6
6
|
ibis = fugue_ibis [ibis]
|
|
7
7
|
polars = fugue_polars.registry [polars]
|
|
8
8
|
ray = fugue_ray.registry [ray]
|
|
9
9
|
spark = fugue_spark.registry [spark]
|
|
10
|
-
spark_ibis = fugue_spark.ibis_engine [ibis
|
|
10
|
+
spark_ibis = fugue_spark.ibis_engine [spark,ibis]
|
|
11
11
|
|
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
|
-
|
|
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):
|