pynndescent 0.5.3 traceback
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2021-07-06T06:22:38.2855413Z ##[section]Starting: PyTest | |
2021-07-06T06:22:38.2865170Z ============================================================================== | |
2021-07-06T06:22:38.2865487Z Task : Command line | |
2021-07-06T06:22:38.2866717Z Description : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows | |
2021-07-06T06:22:38.2867060Z Version : 2.182.0 | |
2021-07-06T06:22:38.2867287Z Author : Microsoft Corporation | |
2021-07-06T06:22:38.2867638Z Help : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/command-line | |
2021-07-06T06:22:38.2868015Z ============================================================================== | |
2021-07-06T06:22:39.2961314Z Generating script. | |
2021-07-06T06:22:39.2962626Z Script contents: | |
2021-07-06T06:22:39.2963181Z pytest --color=yes -vv --ignore=scanpy/tests/_images | |
2021-07-06T06:22:39.2963596Z ========================== Starting Command Output =========================== | |
2021-07-06T06:22:39.2969626Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/b25dde67-39d8-42f0-bee3-c1e8955b93b7.sh | |
2021-07-06T06:22:39.2970452Z [1m============================= test session starts ==============================[0m | |
2021-07-06T06:22:39.2971524Z platform linux -- Python 3.7.10, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- /opt/hostedtoolcache/Python/3.7.10/x64/bin/python | |
2021-07-06T06:22:39.2972413Z cachedir: .pytest_cache | |
2021-07-06T06:22:39.2972804Z rootdir: /home/vsts/work/1/s, configfile: pyproject.toml, testpaths: scanpy/tests/ | |
2021-07-06T06:22:39.2973378Z plugins: nunit-0.6.0, cov-2.12.1 | |
2021-07-06T06:23:05.3033926Z [1mcollecting ... [0mcollected 738 items / 5 skipped / 733 selected | |
2021-07-06T06:23:05.3034476Z | |
2021-07-06T06:23:05.3072570Z scanpy/tests/test_binary.py::test_builtin_settings [32mPASSED[0m[33m [ 0%][0m | |
2021-07-06T06:23:05.3161688Z scanpy/tests/test_binary.py::test_help_displayed[args0] [32mPASSED[0m[33m [ 0%][0m | |
2021-07-06T06:23:05.3236124Z scanpy/tests/test_binary.py::test_help_displayed[args1] [32mPASSED[0m[33m [ 0%][0m | |
2021-07-06T06:23:05.3318308Z scanpy/tests/test_binary.py::test_help_output [32mPASSED[0m[33m [ 0%][0m | |
2021-07-06T06:23:05.3735651Z scanpy/tests/test_binary.py::test_external [32mPASSED[0m[33m [ 0%][0m | |
2021-07-06T06:23:05.3824018Z scanpy/tests/test_binary.py::test_error_wrong_command [32mPASSED[0m[33m [ 0%][0m | |
2021-07-06T06:23:05.4956274Z scanpy/tests/test_clustering.py::test_leiden_basic [32mPASSED[0m[33m [ 0%][0m | |
2021-07-06T06:23:05.7027732Z scanpy/tests/test_clustering.py::test_clustering_subset[louvain-louvain] [32mPASSED[0m[33m [ 1%][0m | |
2021-07-06T06:23:05.9399023Z scanpy/tests/test_clustering.py::test_clustering_subset[leiden-leiden] [32mPASSED[0m[33m [ 1%][0m | |
2021-07-06T06:23:06.1076769Z scanpy/tests/test_clustering.py::test_louvain_basic [32mPASSED[0m[33m [ 1%][0m | |
2021-07-06T06:23:06.2458265Z scanpy/tests/test_clustering.py::test_partition_type [32mPASSED[0m[33m [ 1%][0m | |
2021-07-06T06:23:06.3040223Z scanpy/tests/test_combat.py::test_norm [32mPASSED[0m[33m [ 1%][0m | |
2021-07-06T06:23:06.4429345Z scanpy/tests/test_combat.py::test_covariates [32mPASSED[0m[33m [ 1%][0m | |
2021-07-06T06:23:06.5289639Z scanpy/tests/test_combat.py::test_combat_obs_names [32mPASSED[0m[33m [ 1%][0m | |
2021-07-06T06:23:06.5938147Z scanpy/tests/test_combat.py::test_silhouette [32mPASSED[0m[33m [ 2%][0m | |
2021-07-06T06:23:06.5953967Z scanpy/tests/test_datasets.py::test_burczynski06 [33mSKIPPED[0m (need --int...)[33m [ 2%][0m | |
2021-07-06T06:23:06.5965967Z scanpy/tests/test_datasets.py::test_moignard15 [33mSKIPPED[0m (need --inter...)[33m [ 2%][0m | |
2021-07-06T06:23:06.5980331Z scanpy/tests/test_datasets.py::test_paul15 [33mSKIPPED[0m (need --internet-...)[33m [ 2%][0m | |
2021-07-06T06:23:06.5995304Z scanpy/tests/test_datasets.py::test_pbmc3k [33mSKIPPED[0m (need --internet-...)[33m [ 2%][0m | |
2021-07-06T06:23:06.6007904Z scanpy/tests/test_datasets.py::test_pbmc3k_processed [33mSKIPPED[0m (need -...)[33m [ 2%][0m | |
2021-07-06T06:23:06.6019566Z scanpy/tests/test_datasets.py::test_ebi_expression_atlas [33mSKIPPED[0m (ne...)[33m [ 2%][0m | |
2021-07-06T06:23:06.6158465Z scanpy/tests/test_datasets.py::test_krumsiek11 [32mPASSED[0m[33m [ 2%][0m | |
2021-07-06T06:23:06.6202976Z scanpy/tests/test_datasets.py::test_blobs [32mPASSED[0m[33m [ 3%][0m | |
2021-07-06T06:23:06.6268438Z scanpy/tests/test_datasets.py::test_toggleswitch [32mPASSED[0m[33m [ 3%][0m | |
2021-07-06T06:23:06.6995760Z scanpy/tests/test_datasets.py::test_pbmc68k_reduced [32mPASSED[0m[33m [ 3%][0m | |
2021-07-06T06:23:06.7011365Z scanpy/tests/test_datasets.py::test_visium_datasets [33mSKIPPED[0m (need --...)[33m [ 3%][0m | |
2021-07-06T06:23:06.8791516Z scanpy/tests/test_datasets.py::test_download_failure [32mPASSED[0m[33m [ 3%][0m | |
2021-07-06T06:23:06.9527571Z scanpy/tests/test_dendrogram_key_added.py::test_dendrogram_key_added[None-bulk_labels] [32mPASSED[0m[33m [ 3%][0m | |
2021-07-06T06:23:07.0300306Z scanpy/tests/test_dendrogram_key_added.py::test_dendrogram_key_added[None-groupby1] [32mPASSED[0m[33m [ 3%][0m | |
2021-07-06T06:23:07.1078817Z scanpy/tests/test_dendrogram_key_added.py::test_dendrogram_key_added[custom_key-bulk_labels] [32mPASSED[0m[33m [ 4%][0m | |
2021-07-06T06:23:07.1856053Z scanpy/tests/test_dendrogram_key_added.py::test_dendrogram_key_added[custom_key-groupby1] [32mPASSED[0m[33m [ 4%][0m | |
2021-07-06T06:23:19.9170326Z scanpy/tests/test_deprecations.py::test_deprecate_multicore_tsne [32mPASSED[0m[33m [ 4%][0m | |
2021-07-06T06:23:32.3000945Z scanpy/tests/test_embedding.py::test_tsne [32mPASSED[0m[33m [ 4%][0m | |
2021-07-06T06:23:34.9191312Z scanpy/tests/test_embedding.py::test_tsne_metric_warning [32mPASSED[0m[33m [ 4%][0m | |
2021-07-06T06:23:37.8077961Z scanpy/tests/test_embedding.py::test_umap_init_dtype [32mPASSED[0m[33m [ 4%][0m | |
2021-07-06T06:23:37.8091599Z scanpy/tests/test_embedding.py::test_umap_init_paga[fa] [33mSKIPPED[0m (nee...)[33m [ 4%][0m | |
2021-07-06T06:23:39.6475500Z scanpy/tests/test_embedding.py::test_umap_init_paga[fr] [32mPASSED[0m[33m [ 5%][0m | |
2021-07-06T06:23:39.8287515Z scanpy/tests/test_embedding.py::test_diffmap [32mPASSED[0m[33m [ 5%][0m | |
2021-07-06T06:23:39.8348199Z scanpy/tests/test_embedding_density.py::test_embedding_density [32mPASSED[0m[33m [ 5%][0m | |
2021-07-06T06:23:40.0008681Z scanpy/tests/test_embedding_density.py::test_embedding_density_plot [32mPASSED[0m[33m [ 5%][0m | |
2021-07-06T06:23:40.5797450Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.True-legend.on_data-groups.3] [32mPASSED[0m[33m [ 5%][0m | |
2021-07-06T06:23:40.8305936Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.True-legend.on_data-groups.all] [32mPASSED[0m[33m [ 5%][0m | |
2021-07-06T06:23:41.2704058Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.True-legend.on_right-groups.3] [32mPASSED[0m[33m [ 5%][0m | |
2021-07-06T06:23:42.3677061Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.True-legend.on_right-groups.all] [32mPASSED[0m[33m [ 5%][0m | |
2021-07-06T06:23:42.5898049Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.True-legend.off-groups.3] [32mPASSED[0m[33m [ 6%][0m | |
2021-07-06T06:23:42.7889499Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.True-legend.off-groups.all] [32mPASSED[0m[33m [ 6%][0m | |
2021-07-06T06:23:43.0120341Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.False-legend.on_data-groups.3] [32mPASSED[0m[33m [ 6%][0m | |
2021-07-06T06:23:43.2653012Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.False-legend.on_data-groups.all] [32mPASSED[0m[33m [ 6%][0m | |
2021-07-06T06:23:43.6446714Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.False-legend.on_right-groups.3] [32mPASSED[0m[33m [ 6%][0m | |
2021-07-06T06:23:44.5355334Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.False-legend.on_right-groups.all] [32mPASSED[0m[33m [ 6%][0m | |
2021-07-06T06:23:44.7461705Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.False-legend.off-groups.3] [32mPASSED[0m[33m [ 6%][0m | |
2021-07-06T06:23:44.9479414Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.black_tup-na_in_legend.False-legend.off-groups.all] [32mPASSED[0m[33m [ 7%][0m | |
2021-07-06T06:23:45.1802860Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.True-legend.on_data-groups.3] [32mPASSED[0m[33m [ 7%][0m | |
2021-07-06T06:23:45.4421974Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.True-legend.on_data-groups.all] [32mPASSED[0m[33m [ 7%][0m | |
2021-07-06T06:23:45.8901120Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.True-legend.on_right-groups.3] [32mPASSED[0m[33m [ 7%][0m | |
2021-07-06T06:23:46.7823242Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.True-legend.on_right-groups.all] [32mPASSED[0m[33m [ 7%][0m | |
2021-07-06T06:23:46.9884442Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.True-legend.off-groups.3] [32mPASSED[0m[33m [ 7%][0m | |
2021-07-06T06:23:47.2013229Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.True-legend.off-groups.all] [32mPASSED[0m[33m [ 7%][0m | |
2021-07-06T06:23:47.4284050Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.False-legend.on_data-groups.3] [32mPASSED[0m[33m [ 7%][0m | |
2021-07-06T06:23:47.6781658Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.False-legend.on_data-groups.all] [32mPASSED[0m[33m [ 8%][0m | |
2021-07-06T06:23:48.2447460Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.False-legend.on_right-groups.3] [32mPASSED[0m[33m [ 8%][0m | |
2021-07-06T06:23:49.1296439Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.False-legend.on_right-groups.all] [32mPASSED[0m[33m [ 8%][0m | |
2021-07-06T06:23:49.3286170Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.False-legend.off-groups.3] [32mPASSED[0m[33m [ 8%][0m | |
2021-07-06T06:23:49.5080641Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[pca-na_color.default-na_in_legend.False-legend.off-groups.all] [32mPASSED[0m[33m [ 8%][0m | |
2021-07-06T06:23:51.1409919Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.True-legend.on_data-groups.3] [32mPASSED[0m[33m [ 8%][0m | |
2021-07-06T06:23:52.8242729Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.True-legend.on_data-groups.all] [32mPASSED[0m[33m [ 8%][0m | |
2021-07-06T06:23:54.6963777Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.True-legend.on_right-groups.3] [32mPASSED[0m[33m [ 9%][0m | |
2021-07-06T06:23:56.8400930Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.True-legend.on_right-groups.all] [32mPASSED[0m[33m [ 9%][0m | |
2021-07-06T06:23:58.8067334Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.True-legend.off-groups.3] [32mPASSED[0m[33m [ 9%][0m | |
2021-07-06T06:24:00.1898061Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.True-legend.off-groups.all] [32mPASSED[0m[33m [ 9%][0m | |
2021-07-06T06:24:01.8646197Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.False-legend.on_data-groups.3] [32mPASSED[0m[33m [ 9%][0m | |
2021-07-06T06:24:03.5453063Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.False-legend.on_data-groups.all] [32mPASSED[0m[33m [ 9%][0m | |
2021-07-06T06:24:05.3242581Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.False-legend.on_right-groups.3] [32mPASSED[0m[33m [ 9%][0m | |
2021-07-06T06:24:07.6102667Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.False-legend.on_right-groups.all] [32mPASSED[0m[33m [ 10%][0m | |
2021-07-06T06:24:09.2267391Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.False-legend.off-groups.3] [32mPASSED[0m[33m [ 10%][0m | |
2021-07-06T06:24:10.8088393Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.black_tup-na_in_legend.False-legend.off-groups.all] [32mPASSED[0m[33m [ 10%][0m | |
2021-07-06T06:24:12.4506399Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.True-legend.on_data-groups.3] [32mPASSED[0m[33m [ 10%][0m | |
2021-07-06T06:24:14.1334803Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.True-legend.on_data-groups.all] [32mPASSED[0m[33m [ 10%][0m | |
2021-07-06T06:24:16.0620319Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.True-legend.on_right-groups.3] [32mPASSED[0m[33m [ 10%][0m | |
2021-07-06T06:24:18.4257715Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.True-legend.on_right-groups.all] [32mPASSED[0m[33m [ 10%][0m | |
2021-07-06T06:24:19.8953341Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.True-legend.off-groups.3] [32mPASSED[0m[33m [ 10%][0m | |
2021-07-06T06:24:21.5228346Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.True-legend.off-groups.all] [32mPASSED[0m[33m [ 11%][0m | |
2021-07-06T06:24:23.1374936Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.False-legend.on_data-groups.3] [32mPASSED[0m[33m [ 11%][0m | |
2021-07-06T06:24:24.8003810Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.False-legend.on_data-groups.all] [32mPASSED[0m[33m [ 11%][0m | |
2021-07-06T06:24:26.5732928Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.False-legend.on_right-groups.3] [32mPASSED[0m[33m [ 11%][0m | |
2021-07-06T06:24:28.8660590Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.False-legend.on_right-groups.all] [32mPASSED[0m[33m [ 11%][0m | |
2021-07-06T06:24:30.4749190Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.False-legend.off-groups.3] [32mPASSED[0m[33m [ 11%][0m | |
2021-07-06T06:24:32.0994760Z scanpy/tests/test_embedding_plots.py::test_missing_values_categorical[spatial-na_color.default-na_in_legend.False-legend.off-groups.all] [32mPASSED[0m[33m [ 11%][0m | |
2021-07-06T06:24:32.4129359Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_data-vbounds.default] [32mPASSED[0m[33m [ 12%][0m | |
2021-07-06T06:24:32.7271240Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_data-vbounds.numbers] [32mPASSED[0m[33m [ 12%][0m | |
2021-07-06T06:24:33.0724027Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_data-vbounds.percentile] [32mPASSED[0m[33m [ 12%][0m | |
2021-07-06T06:24:33.3959358Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_data-vbounds.vcenter] [32mPASSED[0m[33m [ 12%][0m | |
2021-07-06T06:24:33.7263988Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_data-vbounds.norm] [32mPASSED[0m[33m [ 12%][0m | |
2021-07-06T06:24:34.0497766Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_right-vbounds.default] [32mPASSED[0m[33m [ 12%][0m | |
2021-07-06T06:24:34.5626064Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_right-vbounds.numbers] [32mPASSED[0m[33m [ 12%][0m | |
2021-07-06T06:24:34.9099138Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_right-vbounds.percentile] [32mPASSED[0m[33m [ 13%][0m | |
2021-07-06T06:24:35.2257931Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_right-vbounds.vcenter] [32mPASSED[0m[33m [ 13%][0m | |
2021-07-06T06:24:35.5449878Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.on_right-vbounds.norm] [32mPASSED[0m[33m [ 13%][0m | |
2021-07-06T06:24:35.8630267Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.off-vbounds.default] [32mPASSED[0m[33m [ 13%][0m | |
2021-07-06T06:24:36.1963671Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.off-vbounds.numbers] [32mPASSED[0m[33m [ 13%][0m | |
2021-07-06T06:24:36.5379635Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.off-vbounds.percentile] [32mPASSED[0m[33m [ 13%][0m | |
2021-07-06T06:24:36.8711753Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.off-vbounds.vcenter] [32mPASSED[0m[33m [ 13%][0m | |
2021-07-06T06:24:37.1941031Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.black_tup-legend.off-vbounds.norm] [32mPASSED[0m[33m [ 13%][0m | |
2021-07-06T06:24:37.5171601Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_data-vbounds.default] [32mPASSED[0m[33m [ 14%][0m | |
2021-07-06T06:24:38.0485542Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_data-vbounds.numbers] [32mPASSED[0m[33m [ 14%][0m | |
2021-07-06T06:24:38.4035682Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_data-vbounds.percentile] [32mPASSED[0m[33m [ 14%][0m | |
2021-07-06T06:24:38.7171403Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_data-vbounds.vcenter] [32mPASSED[0m[33m [ 14%][0m | |
2021-07-06T06:24:39.0521975Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_data-vbounds.norm] [32mPASSED[0m[33m [ 14%][0m | |
2021-07-06T06:24:39.3652502Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_right-vbounds.default] [32mPASSED[0m[33m [ 14%][0m | |
2021-07-06T06:24:39.6946386Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_right-vbounds.numbers] [32mPASSED[0m[33m [ 14%][0m | |
2021-07-06T06:24:40.0325584Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_right-vbounds.percentile] [32mPASSED[0m[33m [ 15%][0m | |
2021-07-06T06:24:40.3498967Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_right-vbounds.vcenter] [32mPASSED[0m[33m [ 15%][0m | |
2021-07-06T06:24:40.6793702Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.on_right-vbounds.norm] [32mPASSED[0m[33m [ 15%][0m | |
2021-07-06T06:24:41.1678228Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.off-vbounds.default] [32mPASSED[0m[33m [ 15%][0m | |
2021-07-06T06:24:41.4753197Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.off-vbounds.numbers] [32mPASSED[0m[33m [ 15%][0m | |
2021-07-06T06:24:41.8182447Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.off-vbounds.percentile] [32mPASSED[0m[33m [ 15%][0m | |
2021-07-06T06:24:42.1366137Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.off-vbounds.vcenter] [32mPASSED[0m[33m [ 15%][0m | |
2021-07-06T06:24:42.4600399Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[pca-na_color.default-legend.off-vbounds.norm] [32mPASSED[0m[33m [ 15%][0m | |
2021-07-06T06:24:44.1701062Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_data-vbounds.default] [32mPASSED[0m[33m [ 16%][0m | |
2021-07-06T06:24:45.9259395Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_data-vbounds.numbers] [32mPASSED[0m[33m [ 16%][0m | |
2021-07-06T06:24:47.6797316Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_data-vbounds.percentile] [32mPASSED[0m[33m [ 16%][0m | |
2021-07-06T06:24:49.3945637Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_data-vbounds.vcenter] [32mPASSED[0m[33m [ 16%][0m | |
2021-07-06T06:24:51.1268745Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_data-vbounds.norm] [32mPASSED[0m[33m [ 16%][0m | |
2021-07-06T06:24:52.8411580Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_right-vbounds.default] [32mPASSED[0m[33m [ 16%][0m | |
2021-07-06T06:24:54.5995749Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_right-vbounds.numbers] [32mPASSED[0m[33m [ 16%][0m | |
2021-07-06T06:24:56.4122887Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_right-vbounds.percentile] [32mPASSED[0m[33m [ 17%][0m | |
2021-07-06T06:24:58.1723019Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_right-vbounds.vcenter] [32mPASSED[0m[33m [ 17%][0m | |
2021-07-06T06:24:59.9124936Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.on_right-vbounds.norm] [32mPASSED[0m[33m [ 17%][0m | |
2021-07-06T06:25:01.5166921Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.off-vbounds.default] [32mPASSED[0m[33m [ 17%][0m | |
2021-07-06T06:25:03.3042597Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.off-vbounds.numbers] [32mPASSED[0m[33m [ 17%][0m | |
2021-07-06T06:25:05.0941020Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.off-vbounds.percentile] [32mPASSED[0m[33m [ 17%][0m | |
2021-07-06T06:25:06.8558915Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.off-vbounds.vcenter] [32mPASSED[0m[33m [ 17%][0m | |
2021-07-06T06:25:08.6461276Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.black_tup-legend.off-vbounds.norm] [32mPASSED[0m[33m [ 18%][0m | |
2021-07-06T06:25:10.4185321Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_data-vbounds.default] [32mPASSED[0m[33m [ 18%][0m | |
2021-07-06T06:25:12.1931160Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_data-vbounds.numbers] [32mPASSED[0m[33m [ 18%][0m | |
2021-07-06T06:25:13.9854339Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_data-vbounds.percentile] [32mPASSED[0m[33m [ 18%][0m | |
2021-07-06T06:25:15.7307446Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_data-vbounds.vcenter] [32mPASSED[0m[33m [ 18%][0m | |
2021-07-06T06:25:17.5111390Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_data-vbounds.norm] [32mPASSED[0m[33m [ 18%][0m | |
2021-07-06T06:25:19.2273332Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_right-vbounds.default] [32mPASSED[0m[33m [ 18%][0m | |
2021-07-06T06:25:20.9636890Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_right-vbounds.numbers] [32mPASSED[0m[33m [ 18%][0m | |
2021-07-06T06:25:22.7258474Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_right-vbounds.percentile] [32mPASSED[0m[33m [ 19%][0m | |
2021-07-06T06:25:24.4940220Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_right-vbounds.vcenter] [32mPASSED[0m[33m [ 19%][0m | |
2021-07-06T06:25:26.2445940Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.on_right-vbounds.norm] [32mPASSED[0m[33m [ 19%][0m | |
2021-07-06T06:25:27.9736009Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.off-vbounds.default] [32mPASSED[0m[33m [ 19%][0m | |
2021-07-06T06:25:29.7538315Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.off-vbounds.numbers] [32mPASSED[0m[33m [ 19%][0m | |
2021-07-06T06:25:31.5639676Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.off-vbounds.percentile] [32mPASSED[0m[33m [ 19%][0m | |
2021-07-06T06:25:33.3091497Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.off-vbounds.vcenter] [32mPASSED[0m[33m [ 19%][0m | |
2021-07-06T06:25:35.0270856Z scanpy/tests/test_embedding_plots.py::test_missing_values_continuous[spatial-na_color.default-legend.off-vbounds.norm] [32mPASSED[0m[33m [ 20%][0m | |
2021-07-06T06:25:35.9438253Z scanpy/tests/test_embedding_plots.py::test_enumerated_palettes[pca] [32mPASSED[0m[33m [ 20%][0m | |
2021-07-06T06:25:38.2744852Z scanpy/tests/test_embedding_plots.py::test_enumerated_palettes[spatial] [32mPASSED[0m[33m [ 20%][0m | |
2021-07-06T06:25:39.1296738Z scanpy/tests/test_embedding_plots.py::test_visium_circles [32mPASSED[0m[33m [ 20%][0m | |
2021-07-06T06:25:39.9121780Z scanpy/tests/test_embedding_plots.py::test_visium_default [32mPASSED[0m[33m [ 20%][0m | |
2021-07-06T06:25:43.5393504Z scanpy/tests/test_embedding_plots.py::test_visium_empty_img_key [32mPASSED[0m[33m [ 20%][0m | |
2021-07-06T06:25:45.7401418Z scanpy/tests/test_embedding_plots.py::test_spatial_general [32mPASSED[0m[33m [ 20%][0m | |
2021-07-06T06:25:48.0711720Z scanpy/tests/test_embedding_plots.py::test_spatial_external_img [32mPASSED[0m[33m [ 21%][0m | |
2021-07-06T06:25:49.5758462Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency[crop] [32mPASSED[0m[33m [ 21%][0m | |
2021-07-06T06:25:51.3472076Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency[size:.5] [32mPASSED[0m[33m [ 21%][0m | |
2021-07-06T06:25:53.0789716Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency[size:2] [32mPASSED[0m[33m [ 21%][0m | |
2021-07-06T06:25:54.8215517Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency[spotsize] [32mPASSED[0m[33m [ 21%][0m | |
2021-07-06T06:25:56.5564163Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency[bw] [32mPASSED[0m[33m [ 21%][0m | |
2021-07-06T06:25:58.3327845Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency[img] [32mPASSED[0m[33m [ 21%][0m | |
2021-07-06T06:26:00.0908382Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency[na_color.transparent] [32mPASSED[0m[33m [ 21%][0m | |
2021-07-06T06:26:01.9118597Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency[na_color.lightgray] [32mPASSED[0m[33m [ 22%][0m | |
2021-07-06T06:26:03.2210659Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency_no_img[crop] [32mPASSED[0m[33m [ 22%][0m | |
2021-07-06T06:26:04.5366820Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency_no_img[size:.5] [32mPASSED[0m[33m [ 22%][0m | |
2021-07-06T06:26:05.8324649Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency_no_img[size:2] [32mPASSED[0m[33m [ 22%][0m | |
2021-07-06T06:26:07.1447058Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency_no_img[spotsize] [32mPASSED[0m[33m [ 22%][0m | |
2021-07-06T06:26:07.1474192Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency_no_img[bw] [33mSKIPPED[0m[33m [ 22%][0m | |
2021-07-06T06:26:08.8399633Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency_no_img[img] [32mPASSED[0m[33m [ 22%][0m | |
2021-07-06T06:26:10.1668111Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency_no_img[na_color.transparent] [32mPASSED[0m[33m [ 23%][0m | |
2021-07-06T06:26:11.4747074Z scanpy/tests/test_embedding_plots.py::test_manual_equivalency_no_img[na_color.lightgray] [32mPASSED[0m[33m [ 23%][0m | |
2021-07-06T06:26:12.8753119Z scanpy/tests/test_embedding_plots.py::test_white_background_vs_no_img[crop] [32mPASSED[0m[33m [ 23%][0m | |
2021-07-06T06:26:14.5450230Z scanpy/tests/test_embedding_plots.py::test_white_background_vs_no_img[size:.5] [32mPASSED[0m[33m [ 23%][0m | |
2021-07-06T06:26:16.2885382Z scanpy/tests/test_embedding_plots.py::test_white_background_vs_no_img[size:2] [32mPASSED[0m[33m [ 23%][0m | |
2021-07-06T06:26:18.0034766Z scanpy/tests/test_embedding_plots.py::test_white_background_vs_no_img[spotsize] [32mPASSED[0m[33m [ 23%][0m | |
2021-07-06T06:26:18.0069839Z scanpy/tests/test_embedding_plots.py::test_white_background_vs_no_img[bw] [33mSKIPPED[0m[33m [ 23%][0m | |
2021-07-06T06:26:18.0100670Z scanpy/tests/test_embedding_plots.py::test_white_background_vs_no_img[img] [33mSKIPPED[0m[33m [ 23%][0m | |
2021-07-06T06:26:18.0132469Z scanpy/tests/test_embedding_plots.py::test_white_background_vs_no_img[na_color.transparent] [33mSKIPPED[0m[33m [ 24%][0m | |
2021-07-06T06:26:18.0160658Z scanpy/tests/test_embedding_plots.py::test_white_background_vs_no_img[na_color.lightgray] [33mSKIPPED[0m[33m [ 24%][0m | |
2021-07-06T06:26:20.8828456Z scanpy/tests/test_embedding_plots.py::test_spatial_na_color [32mPASSED[0m[33m [ 24%][0m | |
2021-07-06T06:26:22.5547320Z scanpy/tests/test_filter_rank_genes_groups.py::test_filter_rank_genes_groups [32mPASSED[0m[33m [ 24%][0m | |
2021-07-06T06:26:22.6041435Z scanpy/tests/test_get.py::test_obs_df [32mPASSED[0m[33m [ 24%][0m | |
2021-07-06T06:26:22.6116093Z scanpy/tests/test_get.py::test_repeated_gene_symbols [32mPASSED[0m[33m [ 24%][0m | |
2021-07-06T06:26:22.7752171Z scanpy/tests/test_get.py::test_backed_vs_memory [32mPASSED[0m[33m [ 24%][0m | |
2021-07-06T06:26:22.8692176Z scanpy/tests/test_get.py::test_column_content [32mPASSED[0m[33m [ 25%][0m | |
2021-07-06T06:26:22.8974178Z scanpy/tests/test_get.py::test_var_df [32mPASSED[0m[33m [ 25%][0m | |
2021-07-06T06:26:22.9038042Z scanpy/tests/test_get.py::test_just_mapping_keys[obs_df] [32mPASSED[0m[33m [ 25%][0m | |
2021-07-06T06:26:22.9132001Z scanpy/tests/test_get.py::test_just_mapping_keys[var_df] [32mPASSED[0m[33m [ 25%][0m | |
2021-07-06T06:26:22.9150283Z scanpy/tests/test_get.py::test_non_unique_cols_value_error [32mPASSED[0m[33m [ 25%][0m | |
2021-07-06T06:26:22.9187984Z scanpy/tests/test_get.py::test_non_unique_var_index_value_error [32mPASSED[0m[33m [ 25%][0m | |
2021-07-06T06:26:22.9218930Z scanpy/tests/test_get.py::test_keys_in_both_obs_and_var_index_value_error [32mPASSED[0m[33m [ 25%][0m | |
2021-07-06T06:26:22.9255004Z scanpy/tests/test_get.py::test_repeated_cols[obs_df] [32mPASSED[0m[33m [ 26%][0m | |
2021-07-06T06:26:22.9315467Z scanpy/tests/test_get.py::test_repeated_cols[var_df] [32mPASSED[0m[33m [ 26%][0m | |
2021-07-06T06:26:22.9354825Z scanpy/tests/test_get.py::test_repeated_index_vals[obs_df] [32mPASSED[0m[33m [ 26%][0m | |
2021-07-06T06:26:22.9396317Z scanpy/tests/test_get.py::test_repeated_index_vals[var_df] [32mPASSED[0m[33m [ 26%][0m | |
2021-07-06T06:26:22.9471470Z scanpy/tests/test_get.py::test_shared_key_errors[obs_df] [32mPASSED[0m[33m [ 26%][0m | |
2021-07-06T06:26:22.9527821Z scanpy/tests/test_get.py::test_shared_key_errors[var_df] [32mPASSED[0m[33m [ 26%][0m | |
2021-07-06T06:26:22.9590605Z scanpy/tests/test_get.py::test_shared_key_errors[obs_df:use_raw] [32mPASSED[0m[33m [ 26%][0m | |
2021-07-06T06:26:22.9661872Z scanpy/tests/test_get.py::test_shared_key_errors[obs_df:gene_symbols] [32mPASSED[0m[33m [ 26%][0m | |
2021-07-06T06:26:22.9736584Z scanpy/tests/test_get.py::test_shared_key_errors[obs_df:gene_symbols,use_raw] [32mPASSED[0m[33m [ 27%][0m | |
2021-07-06T06:26:23.3902362Z scanpy/tests/test_get.py::test_rank_genes_groups_df [32mPASSED[0m[33m [ 27%][0m | |
2021-07-06T06:26:24.2020069Z scanpy/tests/test_highly_variable_genes.py::test_highly_variable_genes_basic [32mPASSED[0m[33m [ 27%][0m | |
2021-07-06T06:26:24.3574484Z scanpy/tests/test_highly_variable_genes.py::test_higly_variable_genes_compare_to_seurat [32mPASSED[0m[33m [ 27%][0m | |
2021-07-06T06:26:30.0012886Z scanpy/tests/test_highly_variable_genes.py::test_higly_variable_genes_compare_to_seurat_v3 [32mPASSED[0m[33m [ 27%][0m | |
2021-07-06T06:26:30.1521777Z scanpy/tests/test_highly_variable_genes.py::test_filter_genes_dispersion_compare_to_seurat [32mPASSED[0m[33m [ 27%][0m | |
2021-07-06T06:26:30.5397705Z scanpy/tests/test_highly_variable_genes.py::test_highly_variable_genes_batches [32mPASSED[0m[33m [ 27%][0m | |
2021-07-06T06:26:32.0129843Z scanpy/tests/test_highly_variable_genes.py::test_seurat_v3_mean_var_output_with_batchkey [32mPASSED[0m[33m [ 28%][0m | |
2021-07-06T06:26:35.4659076Z scanpy/tests/test_ingest.py::test_representation [31mERROR[0m[31m [ 28%][0m | |
2021-07-06T06:26:36.8557044Z scanpy/tests/test_ingest.py::test_neighbors [31mERROR[0m[31m [ 28%][0m | |
2021-07-06T06:26:38.1661831Z scanpy/tests/test_ingest.py::test_neighbors_defaults[3] [31mERROR[0m[31m [ 28%][0m | |
2021-07-06T06:26:39.4758808Z scanpy/tests/test_ingest.py::test_neighbors_defaults[4] [31mERROR[0m[31m [ 28%][0m | |
2021-07-06T06:26:40.7814456Z scanpy/tests/test_ingest.py::test_ingest_function [31mERROR[0m[31m [ 28%][0m | |
2021-07-06T06:26:41.9174292Z scanpy/tests/test_ingest.py::test_ingest_map_embedding_umap [31mFAILED[0m[31m [ 28%][0m | |
2021-07-06T06:26:41.9189750Z scanpy/tests/test_logging.py::test_defaults [32mPASSED[0m[31m [ 28%][0m | |
2021-07-06T06:26:41.9218696Z scanpy/tests/test_logging.py::test_formats [32mPASSED[0m[31m [ 29%][0m | |
2021-07-06T06:26:41.9244759Z scanpy/tests/test_logging.py::test_deep [32mPASSED[0m[31m [ 29%][0m | |
2021-07-06T06:26:41.9279523Z scanpy/tests/test_logging.py::test_logfile [32mPASSED[0m[31m [ 29%][0m | |
2021-07-06T06:26:41.9307179Z scanpy/tests/test_logging.py::test_timing [32mPASSED[0m[31m [ 29%][0m | |
2021-07-06T06:26:41.9328151Z scanpy/tests/test_logging.py::test_call_outputs[print_header] [32mPASSED[0m[31m [ 29%][0m | |
2021-07-06T06:26:42.0614687Z scanpy/tests/test_logging.py::test_call_outputs[print_versions] [32mPASSED[0m[31m [ 29%][0m | |
2021-07-06T06:26:42.0635094Z scanpy/tests/test_logging.py::test_call_outputs[print_version_and_date] [32mPASSED[0m[31m [ 29%][0m | |
2021-07-06T06:26:42.0673603Z scanpy/tests/test_marker_gene_overlap.py::test_marker_overlap_base [32mPASSED[0m[31m [ 30%][0m | |
2021-07-06T06:26:42.0716076Z scanpy/tests/test_marker_gene_overlap.py::test_marker_overlap_normalization [32mPASSED[0m[31m [ 30%][0m | |
2021-07-06T06:26:42.0755600Z scanpy/tests/test_marker_gene_overlap.py::test_marker_overlap_methods [32mPASSED[0m[31m [ 30%][0m | |
2021-07-06T06:26:42.0798184Z scanpy/tests/test_marker_gene_overlap.py::test_marker_overlap_subsetting [32mPASSED[0m[31m [ 30%][0m | |
2021-07-06T06:26:43.8415863Z scanpy/tests/test_metrics.py::test_gearys_c_consistency [31mFAILED[0m[31m [ 30%][0m | |
2021-07-06T06:26:45.6972641Z scanpy/tests/test_metrics.py::test_gearys_c_correctness [31mFAILED[0m[31m [ 30%][0m | |
2021-07-06T06:26:47.3457732Z scanpy/tests/test_metrics.py::test_morans_i_consistency [31mFAILED[0m[31m [ 30%][0m | |
2021-07-06T06:26:48.9016614Z scanpy/tests/test_metrics.py::test_morans_i_correctness [31mFAILED[0m[31m [ 31%][0m | |
2021-07-06T06:26:50.6552193Z scanpy/tests/test_metrics.py::test_graph_metrics_w_constant_values[asarray-gearys_c] [31mFAILED[0m[31m [ 31%][0m | |
2021-07-06T06:26:52.4122838Z scanpy/tests/test_metrics.py::test_graph_metrics_w_constant_values[asarray-morans_i] [31mFAILED[0m[31m [ 31%][0m | |
2021-07-06T06:26:55.0369093Z scanpy/tests/test_metrics.py::test_graph_metrics_w_constant_values[csr_matrix-gearys_c] [31mFAILED[0m[31m [ 31%][0m | |
2021-07-06T06:26:56.7081859Z scanpy/tests/test_metrics.py::test_graph_metrics_w_constant_values[csr_matrix-morans_i] [31mFAILED[0m[31m [ 31%][0m | |
2021-07-06T06:26:57.6354429Z scanpy/tests/test_metrics.py::test_graph_metrics_w_constant_values[csc_matrix-gearys_c] [31mFAILED[0m[31m [ 31%][0m | |
2021-07-06T06:26:58.7554391Z scanpy/tests/test_metrics.py::test_graph_metrics_w_constant_values[csc_matrix-morans_i] [31mFAILED[0m[31m [ 31%][0m | |
2021-07-06T06:26:58.7683053Z scanpy/tests/test_metrics.py::test_confusion_matrix [32mPASSED[0m[31m [ 31%][0m | |
2021-07-06T06:26:58.8092235Z scanpy/tests/test_metrics.py::test_confusion_matrix_randomized [32mPASSED[0m[31m [ 32%][0m | |
2021-07-06T06:26:58.8270484Z scanpy/tests/test_metrics.py::test_confusion_matrix_api [32mPASSED[0m[31m [ 32%][0m | |
2021-07-06T06:27:00.0272596Z scanpy/tests/test_neighbors.py::test_umap_connectivities_euclidean [31mFAILED[0m[31m [ 32%][0m | |
2021-07-06T06:27:00.0349070Z scanpy/tests/test_neighbors.py::test_gauss_noknn_connectivities_euclidean [32mPASSED[0m[31m [ 32%][0m | |
2021-07-06T06:27:00.0486654Z scanpy/tests/test_neighbors.py::test_gauss_connectivities_euclidean [32mPASSED[0m[31m [ 32%][0m | |
2021-07-06T06:27:00.0554046Z scanpy/tests/test_neighbors.py::test_metrics_argument [32mPASSED[0m[31m [ 32%][0m | |
2021-07-06T06:27:01.2754775Z scanpy/tests/test_neighbors.py::test_use_rep_argument [31mFAILED[0m[31m [ 32%][0m | |
2021-07-06T06:27:01.2858666Z scanpy/tests/test_neighbors.py::test_restore_n_neighbors[toarray] [32mPASSED[0m[31m [ 33%][0m | |
2021-07-06T06:27:01.2954162Z scanpy/tests/test_neighbors.py::test_restore_n_neighbors[csr_matrix] [32mPASSED[0m[31m [ 33%][0m | |
2021-07-06T06:27:02.4570394Z scanpy/tests/test_neighbors_key_added.py::test_neighbors_key_added [31mFAILED[0m[31m [ 33%][0m | |
2021-07-06T06:27:03.8091771Z scanpy/tests/test_neighbors_key_added.py::test_neighbors_key_obsp[neighbors_key] [31mFAILED[0m[31m [ 33%][0m | |
2021-07-06T06:27:05.1547469Z scanpy/tests/test_neighbors_key_added.py::test_neighbors_key_obsp[obsp] [31mFAILED[0m[31m [ 33%][0m | |
2021-07-06T06:27:05.1674227Z scanpy/tests/test_normalization.py::test_normalize_total[float32-array] [32mPASSED[0m[31m [ 33%][0m | |
2021-07-06T06:27:05.1805867Z scanpy/tests/test_normalization.py::test_normalize_total[float32-csr_matrix] [32mPASSED[0m[31m [ 33%][0m | |
2021-07-06T06:27:05.1919085Z scanpy/tests/test_normalization.py::test_normalize_total[int64-array] [32mPASSED[0m[31m [ 34%][0m | |
2021-07-06T06:27:05.2073171Z scanpy/tests/test_normalization.py::test_normalize_total[int64-csr_matrix] [32mPASSED[0m[31m [ 34%][0m | |
2021-07-06T06:27:05.2351225Z scanpy/tests/test_normalization.py::test_normalize_total_rep[float32-asarray] [32mPASSED[0m[31m [ 34%][0m | |
2021-07-06T06:27:05.2617741Z scanpy/tests/test_normalization.py::test_normalize_total_rep[float32-csr_matrix] [32mPASSED[0m[31m [ 34%][0m | |
2021-07-06T06:27:05.2852264Z scanpy/tests/test_normalization.py::test_normalize_total_rep[int64-asarray] [32mPASSED[0m[31m [ 34%][0m | |
2021-07-06T06:27:05.3111435Z scanpy/tests/test_normalization.py::test_normalize_total_rep[int64-csr_matrix] [32mPASSED[0m[31m [ 34%][0m | |
2021-07-06T06:27:05.3188215Z scanpy/tests/test_normalization.py::test_normalize_total_layers[float32-array] [32mPASSED[0m[31m [ 34%][0m | |
2021-07-06T06:27:05.3274188Z scanpy/tests/test_normalization.py::test_normalize_total_layers[float32-csr_matrix] [32mPASSED[0m[31m [ 34%][0m | |
2021-07-06T06:27:05.3350689Z scanpy/tests/test_normalization.py::test_normalize_total_layers[int64-array] [32mPASSED[0m[31m [ 35%][0m | |
2021-07-06T06:27:05.3434706Z scanpy/tests/test_normalization.py::test_normalize_total_layers[int64-csr_matrix] [32mPASSED[0m[31m [ 35%][0m | |
2021-07-06T06:27:05.3531318Z scanpy/tests/test_normalization.py::test_normalize_total_view[float32-array] [32mPASSED[0m[31m [ 35%][0m | |
2021-07-06T06:27:05.3641745Z scanpy/tests/test_normalization.py::test_normalize_total_view[float32-csr_matrix] [32mPASSED[0m[31m [ 35%][0m | |
2021-07-06T06:27:05.3740807Z scanpy/tests/test_normalization.py::test_normalize_total_view[int64-array] [32mPASSED[0m[31m [ 35%][0m | |
2021-07-06T06:27:05.3853098Z scanpy/tests/test_normalization.py::test_normalize_total_view[int64-csr_matrix] [32mPASSED[0m[31m [ 35%][0m | |
2021-07-06T06:27:05.3870445Z scanpy/tests/test_package_structure.py::test_function_headers[print_header] [32mPASSED[0m[31m [ 35%][0m | |
2021-07-06T06:27:05.3889245Z scanpy/tests/test_package_structure.py::test_function_headers[print_versions] [32mPASSED[0m[31m [ 36%][0m | |
2021-07-06T06:27:05.3906517Z scanpy/tests/test_package_structure.py::test_function_headers[print_version_and_date] [32mPASSED[0m[31m [ 36%][0m | |
2021-07-06T06:27:05.3927727Z scanpy/tests/test_package_structure.py::test_function_headers[error] [32mPASSED[0m[31m [ 36%][0m | |
2021-07-06T06:27:05.3944346Z scanpy/tests/test_package_structure.py::test_function_headers[warning] [32mPASSED[0m[31m [ 36%][0m | |
2021-07-06T06:27:05.3962861Z scanpy/tests/test_package_structure.py::test_function_headers[info] [32mPASSED[0m[31m [ 36%][0m | |
2021-07-06T06:27:05.3980785Z scanpy/tests/test_package_structure.py::test_function_headers[hint] [32mPASSED[0m[31m [ 36%][0m | |
2021-07-06T06:27:05.3998336Z scanpy/tests/test_package_structure.py::test_function_headers[debug] [32mPASSED[0m[31m [ 36%][0m | |
2021-07-06T06:27:05.4016006Z scanpy/tests/test_package_structure.py::test_function_headers[override] [32mPASSED[0m[31m [ 36%][0m | |
2021-07-06T06:27:05.4033629Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups_df0] [32mPASSED[0m[31m [ 37%][0m | |
2021-07-06T06:27:05.4050312Z scanpy/tests/test_package_structure.py::test_function_headers[obs_df0] [32mPASSED[0m[31m [ 37%][0m | |
2021-07-06T06:27:05.4070811Z scanpy/tests/test_package_structure.py::test_function_headers[var_df0] [32mPASSED[0m[31m [ 37%][0m | |
2021-07-06T06:27:05.4094461Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups_df1] [32mPASSED[0m[31m [ 37%][0m | |
2021-07-06T06:27:05.4108976Z scanpy/tests/test_package_structure.py::test_function_headers[obs_df1] [32mPASSED[0m[31m [ 37%][0m | |
2021-07-06T06:27:05.4139994Z scanpy/tests/test_package_structure.py::test_function_headers[var_df1] [32mPASSED[0m[31m [ 37%][0m | |
2021-07-06T06:27:05.4164874Z scanpy/tests/test_package_structure.py::test_function_headers[neighbors0] [32mPASSED[0m[31m [ 37%][0m | |
2021-07-06T06:27:05.4185359Z scanpy/tests/test_package_structure.py::test_function_headers[compute_neighbors_umap] [32mPASSED[0m[31m [ 38%][0m | |
2021-07-06T06:27:05.4201816Z scanpy/tests/test_package_structure.py::test_function_headers[compute_neighbors_rapids] [32mPASSED[0m[31m [ 38%][0m | |
2021-07-06T06:27:05.4220489Z scanpy/tests/test_package_structure.py::test_function_headers[restrict] [32mPASSED[0m[31m [ 38%][0m | |
2021-07-06T06:27:05.4241126Z scanpy/tests/test_package_structure.py::test_function_headers[to_igraph0] [32mPASSED[0m[31m [ 38%][0m | |
2021-07-06T06:27:05.4260269Z scanpy/tests/test_package_structure.py::test_function_headers[compute_neighbors0] [32mPASSED[0m[31m [ 38%][0m | |
2021-07-06T06:27:05.4275951Z scanpy/tests/test_package_structure.py::test_function_headers[compute_transitions0] [32mPASSED[0m[31m [ 38%][0m | |
2021-07-06T06:27:05.4308026Z scanpy/tests/test_package_structure.py::test_function_headers[compute_eigen0] [32mPASSED[0m[31m [ 38%][0m | |
2021-07-06T06:27:05.4327984Z scanpy/tests/test_package_structure.py::test_function_headers[recipe_zheng17] [32mPASSED[0m[31m [ 39%][0m | |
2021-07-06T06:27:05.4354123Z scanpy/tests/test_package_structure.py::test_function_headers[recipe_weinreb17] [32mPASSED[0m[31m [ 39%][0m | |
2021-07-06T06:27:05.4375135Z scanpy/tests/test_package_structure.py::test_function_headers[recipe_seurat] [32mPASSED[0m[31m [ 39%][0m | |
2021-07-06T06:27:05.4396603Z scanpy/tests/test_package_structure.py::test_function_headers[filter_cells] [32mPASSED[0m[31m [ 39%][0m | |
2021-07-06T06:27:05.4417638Z scanpy/tests/test_package_structure.py::test_function_headers[filter_genes] [32mPASSED[0m[31m [ 39%][0m | |
2021-07-06T06:27:05.4439422Z scanpy/tests/test_package_structure.py::test_function_headers[filter_genes_dispersion0] [32mPASSED[0m[31m [ 39%][0m | |
2021-07-06T06:27:05.4461895Z scanpy/tests/test_package_structure.py::test_function_headers[highly_variable_genes0] [32mPASSED[0m[31m [ 39%][0m | |
2021-07-06T06:27:05.4479212Z scanpy/tests/test_package_structure.py::test_function_headers[log1p] [32mPASSED[0m[31m [ 39%][0m | |
2021-07-06T06:27:05.4497914Z scanpy/tests/test_package_structure.py::test_function_headers[sqrt] [32mPASSED[0m[31m [ 40%][0m | |
2021-07-06T06:27:05.4514559Z scanpy/tests/test_package_structure.py::test_function_headers[scale] [32mPASSED[0m[31m [ 40%][0m | |
2021-07-06T06:27:05.4531398Z scanpy/tests/test_package_structure.py::test_function_headers[subsample] [32mPASSED[0m[31m [ 40%][0m | |
2021-07-06T06:27:05.4550503Z scanpy/tests/test_package_structure.py::test_function_headers[normalize_per_cell] [32mPASSED[0m[31m [ 40%][0m | |
2021-07-06T06:27:05.4568769Z scanpy/tests/test_package_structure.py::test_function_headers[regress_out] [32mPASSED[0m[31m [ 40%][0m | |
2021-07-06T06:27:05.4588804Z scanpy/tests/test_package_structure.py::test_function_headers[downsample_counts] [32mPASSED[0m[31m [ 40%][0m | |
2021-07-06T06:27:05.4608302Z scanpy/tests/test_package_structure.py::test_function_headers[pca0] [32mPASSED[0m[31m [ 40%][0m | |
2021-07-06T06:27:05.4624050Z scanpy/tests/test_package_structure.py::test_function_headers[calculate_qc_metrics] [32mPASSED[0m[31m [ 41%][0m | |
2021-07-06T06:27:05.4643288Z scanpy/tests/test_package_structure.py::test_function_headers[combat] [32mPASSED[0m[31m [ 41%][0m | |
2021-07-06T06:27:05.4668696Z scanpy/tests/test_package_structure.py::test_function_headers[normalize_total] [32mPASSED[0m[31m [ 41%][0m | |
2021-07-06T06:27:05.4698343Z scanpy/tests/test_package_structure.py::test_function_headers[neighbors1] [32mPASSED[0m[31m [ 41%][0m | |
2021-07-06T06:27:05.4705986Z scanpy/tests/test_package_structure.py::test_function_headers[read0] [32mPASSED[0m[31m [ 41%][0m | |
2021-07-06T06:27:05.4722247Z scanpy/tests/test_package_structure.py::test_function_headers[read_10x_h50] [32mPASSED[0m[31m [ 41%][0m | |
2021-07-06T06:27:05.4741292Z scanpy/tests/test_package_structure.py::test_function_headers[read_visium0] [32mPASSED[0m[31m [ 41%][0m | |
2021-07-06T06:27:05.4761558Z scanpy/tests/test_package_structure.py::test_function_headers[read_10x_mtx0] [32mPASSED[0m[31m [ 42%][0m | |
2021-07-06T06:27:05.4780819Z scanpy/tests/test_package_structure.py::test_function_headers[write0] [32mPASSED[0m[31m [ 42%][0m | |
2021-07-06T06:27:05.4800389Z scanpy/tests/test_package_structure.py::test_function_headers[read_params] [32mPASSED[0m[31m [ 42%][0m | |
2021-07-06T06:27:05.4822097Z scanpy/tests/test_package_structure.py::test_function_headers[write_params] [32mPASSED[0m[31m [ 42%][0m | |
2021-07-06T06:27:05.4838669Z scanpy/tests/test_package_structure.py::test_function_headers[is_float] [32mPASSED[0m[31m [ 42%][0m | |
2021-07-06T06:27:05.4856705Z scanpy/tests/test_package_structure.py::test_function_headers[is_int] [32mPASSED[0m[31m [ 42%][0m | |
2021-07-06T06:27:05.4876024Z scanpy/tests/test_package_structure.py::test_function_headers[convert_bool] [32mPASSED[0m[31m [ 42%][0m | |
2021-07-06T06:27:05.4894488Z scanpy/tests/test_package_structure.py::test_function_headers[convert_string] [32mPASSED[0m[31m [ 42%][0m | |
2021-07-06T06:27:05.4914747Z scanpy/tests/test_package_structure.py::test_function_headers[get_used_files] [32mPASSED[0m[31m [ 43%][0m | |
2021-07-06T06:27:05.4934371Z scanpy/tests/test_package_structure.py::test_function_headers[is_valid_filename] [32mPASSED[0m[31m [ 43%][0m | |
2021-07-06T06:27:05.4953260Z scanpy/tests/test_package_structure.py::test_function_headers[pca1] [32mPASSED[0m[31m [ 43%][0m | |
2021-07-06T06:27:05.4969541Z scanpy/tests/test_package_structure.py::test_function_headers[tsne0] [32mPASSED[0m[31m [ 43%][0m | |
2021-07-06T06:27:05.4988021Z scanpy/tests/test_package_structure.py::test_function_headers[umap0] [32mPASSED[0m[31m [ 43%][0m | |
2021-07-06T06:27:05.5004257Z scanpy/tests/test_package_structure.py::test_function_headers[diffmap0] [32mPASSED[0m[31m [ 43%][0m | |
2021-07-06T06:27:05.5023118Z scanpy/tests/test_package_structure.py::test_function_headers[draw_graph0] [32mPASSED[0m[31m [ 43%][0m | |
2021-07-06T06:27:05.5039752Z scanpy/tests/test_package_structure.py::test_function_headers[paga0] [32mPASSED[0m[31m [ 44%][0m | |
2021-07-06T06:27:05.5062183Z scanpy/tests/test_package_structure.py::test_function_headers[paga_degrees] [32mPASSED[0m[31m [ 44%][0m | |
2021-07-06T06:27:05.5083102Z scanpy/tests/test_package_structure.py::test_function_headers[paga_expression_entropies] [32mPASSED[0m[31m [ 44%][0m | |
2021-07-06T06:27:05.5101873Z scanpy/tests/test_package_structure.py::test_function_headers[paga_compare_paths] [32mPASSED[0m[31m [ 44%][0m | |
2021-07-06T06:27:05.5121528Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups0] [32mPASSED[0m[31m [ 44%][0m | |
2021-07-06T06:27:05.5142907Z scanpy/tests/test_package_structure.py::test_function_headers[filter_rank_genes_groups] [32mPASSED[0m[31m [ 44%][0m | |
2021-07-06T06:27:05.5163571Z scanpy/tests/test_package_structure.py::test_function_headers[dpt] [32mPASSED[0m[31m [ 44%][0m | |
2021-07-06T06:27:05.5181731Z scanpy/tests/test_package_structure.py::test_function_headers[leiden] [32mPASSED[0m[31m [ 44%][0m | |
2021-07-06T06:27:05.5200619Z scanpy/tests/test_package_structure.py::test_function_headers[louvain] [32mPASSED[0m[31m [ 45%][0m | |
2021-07-06T06:27:05.5219529Z scanpy/tests/test_package_structure.py::test_function_headers[sim0] [32mPASSED[0m[31m [ 45%][0m | |
2021-07-06T06:27:05.5239583Z scanpy/tests/test_package_structure.py::test_function_headers[score_genes] [32mPASSED[0m[31m [ 45%][0m | |
2021-07-06T06:27:05.5258868Z scanpy/tests/test_package_structure.py::test_function_headers[score_genes_cell_cycle] [32mPASSED[0m[31m [ 45%][0m | |
2021-07-06T06:27:05.5276425Z scanpy/tests/test_package_structure.py::test_function_headers[dendrogram0] [32mPASSED[0m[31m [ 45%][0m | |
2021-07-06T06:27:05.5296023Z scanpy/tests/test_package_structure.py::test_function_headers[embedding_density0] [32mPASSED[0m[31m [ 45%][0m | |
2021-07-06T06:27:05.5314561Z scanpy/tests/test_package_structure.py::test_function_headers[marker_gene_overlap] [32mPASSED[0m[31m [ 45%][0m | |
2021-07-06T06:27:05.5335793Z scanpy/tests/test_package_structure.py::test_function_headers[ingest] [32mPASSED[0m[31m [ 46%][0m | |
2021-07-06T06:27:05.5356085Z scanpy/tests/test_package_structure.py::test_function_headers[fit] [32mPASSED[0m[31m [ 46%][0m | |
2021-07-06T06:27:05.5374308Z scanpy/tests/test_package_structure.py::test_function_headers[neighbors2] [32mPASSED[0m[31m [ 46%][0m | |
2021-07-06T06:27:05.5393524Z scanpy/tests/test_package_structure.py::test_function_headers[map_embedding] [32mPASSED[0m[31m [ 46%][0m | |
2021-07-06T06:27:05.5412143Z scanpy/tests/test_package_structure.py::test_function_headers[map_labels] [32mPASSED[0m[31m [ 46%][0m | |
2021-07-06T06:27:05.5428635Z scanpy/tests/test_package_structure.py::test_function_headers[to_adata] [32mPASSED[0m[31m [ 46%][0m | |
2021-07-06T06:27:05.5456665Z scanpy/tests/test_package_structure.py::test_function_headers[to_adata_joint] [32mPASSED[0m[31m [ 46%][0m | |
2021-07-06T06:27:05.5465697Z scanpy/tests/test_package_structure.py::test_function_headers[scatter] [32mPASSED[0m[31m [ 47%][0m | |
2021-07-06T06:27:05.5481285Z scanpy/tests/test_package_structure.py::test_function_headers[violin] [32mPASSED[0m[31m [ 47%][0m | |
2021-07-06T06:27:05.5501446Z scanpy/tests/test_package_structure.py::test_function_headers[ranking] [32mPASSED[0m[31m [ 47%][0m | |
2021-07-06T06:27:05.5519546Z scanpy/tests/test_package_structure.py::test_function_headers[clustermap] [32mPASSED[0m[31m [ 47%][0m | |
2021-07-06T06:27:05.5535744Z scanpy/tests/test_package_structure.py::test_function_headers[tracksplot] [32mPASSED[0m[31m [ 47%][0m | |
2021-07-06T06:27:05.5554687Z scanpy/tests/test_package_structure.py::test_function_headers[dendrogram1] [32mPASSED[0m[31m [ 47%][0m | |
2021-07-06T06:27:05.5574045Z scanpy/tests/test_package_structure.py::test_function_headers[correlation_matrix] [32mPASSED[0m[31m [ 47%][0m | |
2021-07-06T06:27:05.5595906Z scanpy/tests/test_package_structure.py::test_function_headers[heatmap] [32mPASSED[0m[31m [ 47%][0m | |
2021-07-06T06:27:05.5614142Z scanpy/tests/test_package_structure.py::test_function_headers[style0] [32mPASSED[0m[31m [ 48%][0m | |
2021-07-06T06:27:05.5633155Z scanpy/tests/test_package_structure.py::test_function_headers[legend] [32mPASSED[0m[31m [ 48%][0m | |
2021-07-06T06:27:05.5658365Z scanpy/tests/test_package_structure.py::test_function_headers[dotplot] [32mPASSED[0m[31m [ 48%][0m | |
2021-07-06T06:27:05.5675013Z scanpy/tests/test_package_structure.py::test_function_headers[style1] [32mPASSED[0m[31m [ 48%][0m | |
2021-07-06T06:27:05.5695767Z scanpy/tests/test_package_structure.py::test_function_headers[matrixplot] [32mPASSED[0m[31m [ 48%][0m | |
2021-07-06T06:27:05.5715084Z scanpy/tests/test_package_structure.py::test_function_headers[style2] [32mPASSED[0m[31m [ 48%][0m | |
2021-07-06T06:27:05.5732630Z scanpy/tests/test_package_structure.py::test_function_headers[stacked_violin] [32mPASSED[0m[31m [ 48%][0m | |
2021-07-06T06:27:05.5751875Z scanpy/tests/test_package_structure.py::test_function_headers[filter_genes_dispersion1] [32mPASSED[0m[31m [ 49%][0m | |
2021-07-06T06:27:05.5769214Z scanpy/tests/test_package_structure.py::test_function_headers[highly_variable_genes1] [32mPASSED[0m[31m [ 49%][0m | |
2021-07-06T06:27:05.5787912Z scanpy/tests/test_package_structure.py::test_function_headers[embedding0] [32mPASSED[0m[31m [ 49%][0m | |
2021-07-06T06:27:05.5806269Z scanpy/tests/test_package_structure.py::test_function_headers[pca2] [32mPASSED[0m[31m [ 49%][0m | |
2021-07-06T06:27:05.5825268Z scanpy/tests/test_package_structure.py::test_function_headers[diffmap1] [32mPASSED[0m[31m [ 49%][0m | |
2021-07-06T06:27:05.5845435Z scanpy/tests/test_package_structure.py::test_function_headers[draw_graph1] [32mPASSED[0m[31m [ 49%][0m | |
2021-07-06T06:27:05.5863217Z scanpy/tests/test_package_structure.py::test_function_headers[tsne1] [32mPASSED[0m[31m [ 49%][0m | |
2021-07-06T06:27:05.5880295Z scanpy/tests/test_package_structure.py::test_function_headers[umap1] [32mPASSED[0m[31m [ 50%][0m | |
2021-07-06T06:27:05.5899044Z scanpy/tests/test_package_structure.py::test_function_headers[spatial] [32mPASSED[0m[31m [ 50%][0m | |
2021-07-06T06:27:05.5918857Z scanpy/tests/test_package_structure.py::test_function_headers[pca_loadings] [32mPASSED[0m[31m [ 50%][0m | |
2021-07-06T06:27:05.5935849Z scanpy/tests/test_package_structure.py::test_function_headers[pca3] [32mPASSED[0m[31m [ 50%][0m | |
2021-07-06T06:27:05.5959195Z scanpy/tests/test_package_structure.py::test_function_headers[pca_overview] [32mPASSED[0m[31m [ 50%][0m | |
2021-07-06T06:27:05.5977351Z scanpy/tests/test_package_structure.py::test_function_headers[pca_variance_ratio] [32mPASSED[0m[31m [ 50%][0m | |
2021-07-06T06:27:05.6000595Z scanpy/tests/test_package_structure.py::test_function_headers[paga1] [32mPASSED[0m[31m [ 50%][0m | |
2021-07-06T06:27:05.6019214Z scanpy/tests/test_package_structure.py::test_function_headers[paga_adjacency] [32mPASSED[0m[31m [ 50%][0m | |
2021-07-06T06:27:05.6038945Z scanpy/tests/test_package_structure.py::test_function_headers[paga_compare] [32mPASSED[0m[31m [ 51%][0m | |
2021-07-06T06:27:05.6057930Z scanpy/tests/test_package_structure.py::test_function_headers[paga_path] [32mPASSED[0m[31m [ 51%][0m | |
2021-07-06T06:27:05.6075435Z scanpy/tests/test_package_structure.py::test_function_headers[dpt_timeseries] [32mPASSED[0m[31m [ 51%][0m | |
2021-07-06T06:27:05.6093424Z scanpy/tests/test_package_structure.py::test_function_headers[dpt_groups_pseudotime] [32mPASSED[0m[31m [ 51%][0m | |
2021-07-06T06:27:05.6110888Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups1] [32mPASSED[0m[31m [ 51%][0m | |
2021-07-06T06:27:05.6130060Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups_violin] [32mPASSED[0m[31m [ 51%][0m | |
2021-07-06T06:27:05.6149528Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups_dotplot] [32mPASSED[0m[31m [ 51%][0m | |
2021-07-06T06:27:05.6174714Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups_heatmap] [32mPASSED[0m[31m [ 52%][0m | |
2021-07-06T06:27:05.6192572Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups_stacked_violin] [32mPASSED[0m[31m [ 52%][0m | |
2021-07-06T06:27:05.6208695Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups_matrixplot] [32mPASSED[0m[31m [ 52%][0m | |
2021-07-06T06:27:05.6226549Z scanpy/tests/test_package_structure.py::test_function_headers[rank_genes_groups_tracksplot] [32mPASSED[0m[31m [ 52%][0m | |
2021-07-06T06:27:05.6246309Z scanpy/tests/test_package_structure.py::test_function_headers[sim1] [32mPASSED[0m[31m [ 52%][0m | |
2021-07-06T06:27:05.6268209Z scanpy/tests/test_package_structure.py::test_function_headers[embedding_density1] [32mPASSED[0m[31m [ 52%][0m | |
2021-07-06T06:27:05.6286964Z scanpy/tests/test_package_structure.py::test_function_headers[set_rcParams_scanpy] [32mPASSED[0m[31m [ 52%][0m | |
2021-07-06T06:27:05.6306515Z scanpy/tests/test_package_structure.py::test_function_headers[set_rcParams_defaults] [32mPASSED[0m[31m [ 52%][0m | |
2021-07-06T06:27:05.6324156Z scanpy/tests/test_package_structure.py::test_function_headers[matrix] [32mPASSED[0m[31m [ 53%][0m | |
2021-07-06T06:27:05.6342620Z scanpy/tests/test_package_structure.py::test_function_headers[timeseries] [32mPASSED[0m[31m [ 53%][0m | |
2021-07-06T06:27:05.6362454Z scanpy/tests/test_package_structure.py::test_function_headers[timeseries_subplot] [32mPASSED[0m[31m [ 53%][0m | |
2021-07-06T06:27:05.6380732Z scanpy/tests/test_package_structure.py::test_function_headers[timeseries_as_heatmap] [32mPASSED[0m[31m [ 53%][0m | |
2021-07-06T06:27:05.6402489Z scanpy/tests/test_package_structure.py::test_function_headers[highest_expr_genes] [32mPASSED[0m[31m [ 53%][0m | |
2021-07-06T06:27:05.6422081Z scanpy/tests/test_package_structure.py::test_function_headers[blobs] [32mPASSED[0m[31m [ 53%][0m | |
2021-07-06T06:27:05.6443171Z scanpy/tests/test_package_structure.py::test_function_headers[burczynski06] [32mPASSED[0m[31m [ 53%][0m | |
2021-07-06T06:27:05.6465744Z scanpy/tests/test_package_structure.py::test_function_headers[krumsiek11] [32mPASSED[0m[31m [ 54%][0m | |
2021-07-06T06:27:05.6487943Z scanpy/tests/test_package_structure.py::test_function_headers[moignard15] [32mPASSED[0m[31m [ 54%][0m | |
2021-07-06T06:27:05.6506669Z scanpy/tests/test_package_structure.py::test_function_headers[paul15] [32mPASSED[0m[31m [ 54%][0m | |
2021-07-06T06:27:05.6523777Z scanpy/tests/test_package_structure.py::test_function_headers[toggleswitch] [32mPASSED[0m[31m [ 54%][0m | |
2021-07-06T06:27:05.6539920Z scanpy/tests/test_package_structure.py::test_function_headers[pbmc68k_reduced] [32mPASSED[0m[31m [ 54%][0m | |
2021-07-06T06:27:05.6572166Z scanpy/tests/test_package_structure.py::test_function_headers[pbmc3k] [32mPASSED[0m[31m [ 54%][0m | |
2021-07-06T06:27:05.6591381Z scanpy/tests/test_package_structure.py::test_function_headers[pbmc3k_processed] [32mPASSED[0m[31m [ 54%][0m | |
2021-07-06T06:27:05.6612111Z scanpy/tests/test_package_structure.py::test_function_headers[visium_sge] [32mPASSED[0m[31m [ 55%][0m | |
2021-07-06T06:27:05.6633477Z scanpy/tests/test_package_structure.py::test_function_headers[ebi_expression_atlas] [32mPASSED[0m[31m [ 55%][0m | |
2021-07-06T06:27:05.6651855Z scanpy/tests/test_package_structure.py::test_function_headers[biomart_annotations] [32mPASSED[0m[31m [ 55%][0m | |
2021-07-06T06:27:05.6668463Z scanpy/tests/test_package_structure.py::test_function_headers[gene_coordinates] [32mPASSED[0m[31m [ 55%][0m | |
2021-07-06T06:27:05.6685608Z scanpy/tests/test_package_structure.py::test_function_headers[mitochondrial_genes] [32mPASSED[0m[31m [ 55%][0m | |
2021-07-06T06:27:05.6705576Z scanpy/tests/test_package_structure.py::test_function_headers[enrich] [32mPASSED[0m[31m [ 55%][0m | |
2021-07-06T06:27:05.6726363Z scanpy/tests/test_package_structure.py::test_function_headers[cyclone] [32mPASSED[0m[31m [ 55%][0m | |
2021-07-06T06:27:05.6749373Z scanpy/tests/test_package_structure.py::test_function_headers[sandbag] [32mPASSED[0m[31m [ 55%][0m | |
2021-07-06T06:27:05.6769633Z scanpy/tests/test_package_structure.py::test_function_headers[phate0] [32mPASSED[0m[31m [ 56%][0m | |
2021-07-06T06:27:05.6787920Z scanpy/tests/test_package_structure.py::test_function_headers[phenograph] [32mPASSED[0m[31m [ 56%][0m | |
2021-07-06T06:27:05.6807768Z scanpy/tests/test_package_structure.py::test_function_headers[palantir] [32mPASSED[0m[31m [ 56%][0m | |
2021-07-06T06:27:05.6824216Z scanpy/tests/test_package_structure.py::test_function_headers[palantir_results] [32mPASSED[0m[31m [ 56%][0m | |
2021-07-06T06:27:05.6840990Z scanpy/tests/test_package_structure.py::test_function_headers[trimap0] [32mPASSED[0m[31m [ 56%][0m | |
2021-07-06T06:27:05.6860065Z scanpy/tests/test_package_structure.py::test_function_headers[harmony_timeseries0] [32mPASSED[0m[31m [ 56%][0m | |
2021-07-06T06:27:05.6878976Z scanpy/tests/test_package_structure.py::test_function_headers[sam0] [32mPASSED[0m[31m [ 56%][0m | |
2021-07-06T06:27:05.6897996Z scanpy/tests/test_package_structure.py::test_function_headers[wishbone] [32mPASSED[0m[31m [ 57%][0m | |
2021-07-06T06:27:05.6916037Z scanpy/tests/test_package_structure.py::test_function_headers[embedding1] [32mPASSED[0m[31m [ 57%][0m | |
2021-07-06T06:27:05.6933704Z scanpy/tests/test_package_structure.py::test_function_headers[phate1] [32mPASSED[0m[31m [ 57%][0m | |
2021-07-06T06:27:05.6951825Z scanpy/tests/test_package_structure.py::test_function_headers[trimap1] [32mPASSED[0m[31m [ 57%][0m | |
2021-07-06T06:27:05.6972376Z scanpy/tests/test_package_structure.py::test_function_headers[harmony_timeseries1] [32mPASSED[0m[31m [ 57%][0m | |
2021-07-06T06:27:05.6990859Z scanpy/tests/test_package_structure.py::test_function_headers[sam1] [32mPASSED[0m[31m [ 57%][0m | |
2021-07-06T06:27:05.7009861Z scanpy/tests/test_package_structure.py::test_function_headers[wishbone_marker_trajectory] [32mPASSED[0m[31m [ 57%][0m | |
2021-07-06T06:27:05.7029513Z scanpy/tests/test_package_structure.py::test_function_headers[scrublet_score_distribution] [32mPASSED[0m[31m [ 57%][0m | |
2021-07-06T06:27:05.7047816Z scanpy/tests/test_package_structure.py::test_function_headers[mnn_correct] [32mPASSED[0m[31m [ 58%][0m | |
2021-07-06T06:27:05.7066936Z scanpy/tests/test_package_structure.py::test_function_headers[bbknn] [32mPASSED[0m[31m [ 58%][0m | |
2021-07-06T06:27:05.7083285Z scanpy/tests/test_package_structure.py::test_function_headers[dca] [32mPASSED[0m[31m [ 58%][0m | |
2021-07-06T06:27:05.7102812Z scanpy/tests/test_package_structure.py::test_function_headers[harmony_integrate] [32mPASSED[0m[31m [ 58%][0m | |
2021-07-06T06:27:05.7120474Z scanpy/tests/test_package_structure.py::test_function_headers[magic] [32mPASSED[0m[31m [ 58%][0m | |
2021-07-06T06:27:05.7139349Z scanpy/tests/test_package_structure.py::test_function_headers[scanorama_integrate] [32mPASSED[0m[31m [ 58%][0m | |
2021-07-06T06:27:05.7158080Z scanpy/tests/test_package_structure.py::test_function_headers[hashsolo] [32mPASSED[0m[31m [ 58%][0m | |
2021-07-06T06:27:05.7178848Z scanpy/tests/test_package_structure.py::test_function_headers[scrublet] [32mPASSED[0m[31m [ 59%][0m | |
2021-07-06T06:27:05.7194550Z scanpy/tests/test_package_structure.py::test_function_headers[scrublet_simulate_doublets] [32mPASSED[0m[31m [ 59%][0m | |
2021-07-06T06:27:05.7210761Z scanpy/tests/test_package_structure.py::test_function_headers[spring_project] [32mPASSED[0m[31m [ 59%][0m | |
2021-07-06T06:27:05.7230311Z scanpy/tests/test_package_structure.py::test_function_headers[write_hdf5_genes] [32mPASSED[0m[31m [ 59%][0m | |
2021-07-06T06:27:05.7248335Z scanpy/tests/test_package_structure.py::test_function_headers[write_hdf5_cells] [32mPASSED[0m[31m [ 59%][0m | |
2021-07-06T06:27:05.7266102Z scanpy/tests/test_package_structure.py::test_function_headers[write_sparse_npz] [32mPASSED[0m[31m [ 59%][0m | |
2021-07-06T06:27:05.7285404Z scanpy/tests/test_package_structure.py::test_function_headers[cellbrowser] [32mPASSED[0m[31m [ 59%][0m | |
2021-07-06T06:27:05.7302468Z scanpy/tests/test_package_structure.py::test_function_headers[gearys_c] [32mPASSED[0m[31m [ 60%][0m | |
2021-07-06T06:27:05.7320183Z scanpy/tests/test_package_structure.py::test_function_headers[confusion_matrix] [32mPASSED[0m[31m [ 60%][0m | |
2021-07-06T06:27:05.7342260Z scanpy/tests/test_package_structure.py::test_function_headers[morans_i] [32mPASSED[0m[31m [ 60%][0m | |
2021-07-06T06:27:05.7361900Z scanpy/tests/test_package_structure.py::test_function_headers[read1] [32mPASSED[0m[31m [ 60%][0m | |
2021-07-06T06:27:05.7382491Z scanpy/tests/test_package_structure.py::test_function_headers[read_10x_h51] [32mPASSED[0m[31m [ 60%][0m | |
2021-07-06T06:27:05.7401024Z scanpy/tests/test_package_structure.py::test_function_headers[read_10x_mtx1] [32mPASSED[0m[31m [ 60%][0m | |
2021-07-06T06:27:05.7419335Z scanpy/tests/test_package_structure.py::test_function_headers[write1] [32mPASSED[0m[31m [ 60%][0m | |
2021-07-06T06:27:05.7440590Z scanpy/tests/test_package_structure.py::test_function_headers[read_visium1] [32mPASSED[0m[31m [ 60%][0m | |
2021-07-06T06:27:05.7459531Z scanpy/tests/test_package_structure.py::test_function_headers[to_igraph1] [32mPASSED[0m[31m [ 61%][0m | |
2021-07-06T06:27:05.7506368Z scanpy/tests/test_package_structure.py::test_function_headers[compute_neighbors1] [32mPASSED[0m[31m [ 61%][0m | |
2021-07-06T06:27:05.7507791Z scanpy/tests/test_package_structure.py::test_function_headers[compute_transitions1] [32mPASSED[0m[31m [ 61%][0m | |
2021-07-06T06:27:05.7515311Z scanpy/tests/test_package_structure.py::test_function_headers[compute_eigen1] [32mPASSED[0m[31m [ 61%][0m | |
2021-07-06T06:27:05.7530071Z scanpy/tests/test_package_structure.py::test_function_headers[main] [32mPASSED[0m[31m [ 61%][0m | |
2021-07-06T06:27:05.7547523Z scanpy/tests/test_package_structure.py::test_function_headers[console_main] [32mPASSED[0m[31m [ 61%][0m | |
2021-07-06T06:27:05.8876759Z scanpy/tests/test_package_structure.py::test_metadata [32mPASSED[0m[31m [ 61%][0m | |
2021-07-06T06:27:05.9102561Z scanpy/tests/test_pca.py::test_pca_transform[scipy-csr] [32mPASSED[0m[31m [ 62%][0m | |
2021-07-06T06:27:06.3232373Z scanpy/tests/test_pca.py::test_pca_transform[scipy-csc] [32mPASSED[0m[31m [ 62%][0m | |
2021-07-06T06:27:06.3432093Z scanpy/tests/test_pca.py::test_pca_transform[np-ndarray] [32mPASSED[0m[31m [ 62%][0m | |
2021-07-06T06:27:06.3582797Z scanpy/tests/test_pca.py::test_pca_shapes [32mPASSED[0m[31m [ 62%][0m | |
2021-07-06T06:27:10.6718055Z scanpy/tests/test_pca.py::test_pca_sparse [32mPASSED[0m[31m [ 62%][0m | |
2021-07-06T06:27:14.4862228Z scanpy/tests/test_pca.py::test_pca_reproducible[scipy-csr-float64] [32mPASSED[0m[31m [ 62%][0m | |
2021-07-06T06:27:18.3115044Z scanpy/tests/test_pca.py::test_pca_reproducible[scipy-csr-float32] [32mPASSED[0m[31m [ 62%][0m | |
2021-07-06T06:27:22.4376755Z scanpy/tests/test_pca.py::test_pca_reproducible[scipy-csc-float64] [32mPASSED[0m[31m [ 63%][0m | |
2021-07-06T06:27:26.1364018Z scanpy/tests/test_pca.py::test_pca_reproducible[scipy-csc-float32] [32mPASSED[0m[31m [ 63%][0m | |
2021-07-06T06:27:33.7232070Z scanpy/tests/test_pca.py::test_pca_reproducible[np-ndarray-float64] [32mPASSED[0m[31m [ 63%][0m | |
2021-07-06T06:27:41.1037441Z scanpy/tests/test_pca.py::test_pca_reproducible[np-ndarray-float32] [32mPASSED[0m[31m [ 63%][0m | |
2021-07-06T06:27:46.8722867Z scanpy/tests/test_pca.py::test_pca_chunked [32mPASSED[0m[31m [ 63%][0m | |
2021-07-06T06:27:46.8749455Z scanpy/tests/test_performance.py::test_deferred_imports [32mPASSED[0m[31m [ 63%][0m | |
2021-07-06T06:27:49.8947696Z scanpy/tests/test_plotting.py::test_heatmap [32mPASSED[0m[31m [ 63%][0m | |
2021-07-06T06:27:50.6794393Z scanpy/tests/test_plotting.py::test_clustermap[None-master_clustermap] [32mPASSED[0m[31m [ 63%][0m | |
2021-07-06T06:27:51.5943086Z scanpy/tests/test_plotting.py::test_clustermap[cell_type-master_clustermap_withcolor] [32mPASSED[0m[31m [ 64%][0m | |
2021-07-06T06:27:52.0569617Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[dotplot-fn0] [32mPASSED[0m[31m [ 64%][0m | |
2021-07-06T06:27:52.4576860Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[dotplot2-fn1] [32mPASSED[0m[31m [ 64%][0m | |
2021-07-06T06:27:52.9839438Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[dotplot3-fn2] [32mPASSED[0m[31m [ 64%][0m | |
2021-07-06T06:27:53.4604372Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[dotplot_std_scale_group-fn3] [32mPASSED[0m[31m [ 64%][0m | |
2021-07-06T06:27:54.2160349Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[dotplot_dict-fn4] [32mPASSED[0m[31m [ 64%][0m | |
2021-07-06T06:27:54.5551414Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[matrixplot-fn5] [32mPASSED[0m[31m [ 64%][0m | |
2021-07-06T06:27:54.9983680Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[matrixplot_std_scale_var_dict-fn6] [32mPASSED[0m[31m [ 65%][0m | |
2021-07-06T06:27:55.2923375Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[matrixplot_std_scale_group-fn7] [32mPASSED[0m[31m [ 65%][0m | |
2021-07-06T06:27:55.6008342Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[matrixplot2-fn8] [32mPASSED[0m[31m [ 65%][0m | |
2021-07-06T06:27:56.5955638Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[stacked_violin-fn9] [32mPASSED[0m[31m [ 65%][0m | |
2021-07-06T06:27:57.9161581Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[stacked_violin_std_scale_var_dict-fn10] [32mPASSED[0m[31m [ 65%][0m | |
2021-07-06T06:27:59.0033624Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[stacked_violin_std_scale_group-fn11] [32mPASSED[0m[31m [ 65%][0m | |
2021-07-06T06:27:59.8211846Z scanpy/tests/test_plotting.py::test_dotplot_matrixplot_stacked_violin[stacked_violin_no_cat_obs-fn12] [32mPASSED[0m[31m [ 65%][0m | |
2021-07-06T06:28:00.4385413Z scanpy/tests/test_plotting.py::test_dotplot_obj [32mPASSED[0m[31m [ 65%][0m | |
2021-07-06T06:28:01.0396825Z scanpy/tests/test_plotting.py::test_matrixplot_obj [32mPASSED[0m[31m [ 66%][0m | |
2021-07-06T06:28:02.8462572Z scanpy/tests/test_plotting.py::test_stacked_violin_obj [32mPASSED[0m[31m [ 66%][0m | |
2021-07-06T06:28:03.8589415Z scanpy/tests/test_plotting.py::test_tracksplot [32mPASSED[0m[31m [ 66%][0m | |
2021-07-06T06:28:06.6714174Z scanpy/tests/test_plotting.py::test_multiple_plots [32mPASSED[0m[31m [ 66%][0m | |
2021-07-06T06:28:08.4376848Z scanpy/tests/test_plotting.py::test_violin [32mPASSED[0m[31m [ 66%][0m | |
2021-07-06T06:28:09.2242542Z scanpy/tests/test_plotting.py::test_violin_without_raw [32mPASSED[0m[31m [ 66%][0m | |
2021-07-06T06:28:09.4654289Z scanpy/tests/test_plotting.py::test_dendrogram [32mPASSED[0m[31m [ 66%][0m | |
2021-07-06T06:28:09.9330400Z scanpy/tests/test_plotting.py::test_correlation [32mPASSED[0m[31m [ 67%][0m | |
2021-07-06T06:28:11.9817898Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_sharey-fn0] [32mPASSED[0m[31m [ 67%][0m | |
2021-07-06T06:28:13.8343861Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes-fn1] [32mPASSED[0m[31m [ 67%][0m | |
2021-07-06T06:28:15.3805583Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_heatmap-fn2] [32mPASSED[0m[31m [ 67%][0m | |
2021-07-06T06:28:16.6298671Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_heatmap_swap_axes-fn3] [32mPASSED[0m[31m [ 67%][0m | |
2021-07-06T06:28:17.8772345Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_heatmap_swap_axes_vcenter-fn4] [32mPASSED[0m[31m [ 67%][0m | |
2021-07-06T06:28:20.1726950Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_stacked_violin-fn5] [32mPASSED[0m[31m [ 67%][0m | |
2021-07-06T06:28:21.8915452Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_dotplot-fn6] [32mPASSED[0m[31m [ 68%][0m | |
2021-07-06T06:28:23.1780467Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_dotplot_gene_names-fn7] [32mPASSED[0m[31m [ 68%][0m | |
2021-07-06T06:28:25.5345014Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_dotplot_logfoldchange-fn8] [32mPASSED[0m[31m [ 68%][0m | |
2021-07-06T06:28:27.6384365Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_dotplot_logfoldchange_vcenter-fn9] [32mPASSED[0m[31m [ 68%][0m | |
2021-07-06T06:28:29.9095723Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_matrixplot-fn10] [32mPASSED[0m[31m [ 68%][0m | |
2021-07-06T06:28:31.1748668Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_matrixplot_gene_names_symbol-fn11] [32mPASSED[0m[31m [ 68%][0m | |
2021-07-06T06:28:33.3549146Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_matrixplot_n_genes_negative-fn12] [32mPASSED[0m[31m [ 68%][0m | |
2021-07-06T06:28:35.5183725Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_matrixplot_swap_axes-fn13] [32mPASSED[0m[31m [ 68%][0m | |
2021-07-06T06:28:37.9753650Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_matrixplot_swap_axes_vcenter-fn14] [32mPASSED[0m[31m [ 69%][0m | |
2021-07-06T06:28:39.6026824Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_tracksplot-fn15] [32mPASSED[0m[31m [ 69%][0m | |
2021-07-06T06:28:40.0521620Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_violin-fn16] [32mPASSED[0m[31m [ 69%][0m | |
2021-07-06T06:28:40.5146265Z scanpy/tests/test_plotting.py::test_rank_genes_groups[ranked_genes_violin_not_raw-fn17] [32mPASSED[0m[31m [ 69%][0m | |
2021-07-06T06:28:51.0527599Z scanpy/tests/test_plotting.py::test_plot_rank_genes_groups_gene_symbols[rank_genes_groups_dotplot] [32mPASSED[0m[31m [ 69%][0m | |
2021-07-06T06:28:59.8484190Z scanpy/tests/test_plotting.py::test_plot_rank_genes_groups_gene_symbols[rank_genes_groups_heatmap] [32mPASSED[0m[31m [ 69%][0m | |
2021-07-06T06:29:08.7560813Z scanpy/tests/test_plotting.py::test_plot_rank_genes_groups_gene_symbols[rank_genes_groups_matrixplot] [32mPASSED[0m[31m [ 69%][0m | |
2021-07-06T06:29:23.7544149Z scanpy/tests/test_plotting.py::test_plot_rank_genes_groups_gene_symbols[rank_genes_groups_stacked_violin] [32mPASSED[0m[31m [ 70%][0m | |
2021-07-06T06:29:43.4066208Z scanpy/tests/test_plotting.py::test_plot_rank_genes_groups_gene_symbols[rank_genes_groups_tracksplot] [32mPASSED[0m[31m [ 70%][0m | |
2021-07-06T06:29:45.3513622Z scanpy/tests/test_plotting.py::test_rank_genes_groups_plots_n_genes_vs_var_names[rank_genes_groups_dotplot] [32mPASSED[0m[31m [ 70%][0m | |
2021-07-06T06:29:47.1308116Z scanpy/tests/test_plotting.py::test_rank_genes_groups_plots_n_genes_vs_var_names[rank_genes_groups_heatmap] [32mPASSED[0m[31m [ 70%][0m | |
2021-07-06T06:29:49.1931492Z scanpy/tests/test_plotting.py::test_rank_genes_groups_plots_n_genes_vs_var_names[rank_genes_groups_matrixplot] [32mPASSED[0m[31m [ 70%][0m | |
2021-07-06T06:29:52.1788379Z scanpy/tests/test_plotting.py::test_rank_genes_groups_plots_n_genes_vs_var_names[rank_genes_groups_stacked_violin] [32mPASSED[0m[31m [ 70%][0m | |
2021-07-06T06:29:56.5981282Z scanpy/tests/test_plotting.py::test_rank_genes_groups_plots_n_genes_vs_var_names[rank_genes_groups_tracksplot] [32mPASSED[0m[31m [ 70%][0m | |
2021-07-06T06:29:57.0376117Z scanpy/tests/test_plotting.py::test_genes_symbols[heatmap-heatmap] [32mPASSED[0m[31m [ 71%][0m | |
2021-07-06T06:29:57.7800913Z scanpy/tests/test_plotting.py::test_genes_symbols[dotplot-dotplot] [32mPASSED[0m[31m [ 71%][0m | |
2021-07-06T06:29:58.1547198Z scanpy/tests/test_plotting.py::test_genes_symbols[matrixplot-matrixplot] [32mPASSED[0m[31m [ 71%][0m | |
2021-07-06T06:29:59.1645143Z scanpy/tests/test_plotting.py::test_genes_symbols[stacked_violin-stacked_violin] [32mPASSED[0m[31m [ 71%][0m | |
2021-07-06T06:30:00.2653397Z scanpy/tests/test_plotting.py::test_genes_symbols[tracksplot-tracksplot] [32mPASSED[0m[31m [ 71%][0m | |
2021-07-06T06:30:01.7514928Z scanpy/tests/test_plotting.py::test_scatterplots[pca-fn0] [31mERROR[0m[31m [ 71%][0m | |
2021-07-06T06:30:02.4965754Z scanpy/tests/test_plotting.py::test_scatterplots[pca_with_fonts-fn1] [31mERROR[0m[31m [ 71%][0m | |
2021-07-06T06:30:03.2723698Z scanpy/tests/test_plotting.py::test_scatterplots[3dprojection-fn2] [31mERROR[0m[31m [ 71%][0m | |
2021-07-06T06:30:03.9049632Z scanpy/tests/test_plotting.py::test_scatterplots[multipanel-fn3] [31mERROR[0m[31m [ 72%][0m | |
2021-07-06T06:30:04.5322762Z scanpy/tests/test_plotting.py::test_scatterplots[multipanel_vcenter-fn4] [31mERROR[0m[31m [ 72%][0m | |
2021-07-06T06:30:05.2788078Z scanpy/tests/test_plotting.py::test_scatterplots[pca_sparse_layer-fn5] [31mERROR[0m[31m [ 72%][0m | |
2021-07-06T06:30:05.8240858Z scanpy/tests/test_plotting.py::test_scatterplots[tsne-fn6] [33mXFAIL[0m (sl...)[31m [ 72%][0m | |
2021-07-06T06:30:06.5564668Z scanpy/tests/test_plotting.py::test_scatterplots[umap_nocolor-umap] [31mERROR[0m[31m [ 72%][0m | |
2021-07-06T06:30:07.3127074Z scanpy/tests/test_plotting.py::test_scatterplots[umap-fn8] [31mERROR[0m[31m [ 72%][0m | |
2021-07-06T06:30:08.0670233Z scanpy/tests/test_plotting.py::test_scatterplots[umap_gene_expr-fn9] [31mERROR[0m[31m [ 72%][0m | |
2021-07-06T06:30:08.8127921Z scanpy/tests/test_plotting.py::test_scatterplots[umap_layer-fn10] [31mERROR[0m[31m [ 73%][0m | |
2021-07-06T06:30:09.3348354Z scanpy/tests/test_plotting.py::test_scatterplots[umap_with_edges-fn11] [31mERROR[0m[31m [ 73%][0m | |
2021-07-06T06:30:10.0868170Z scanpy/tests/test_plotting.py::test_scatterplots[umap_symbols-fn12] [31mERROR[0m[31m [ 73%][0m | |
2021-07-06T06:30:10.3525002Z scanpy/tests/test_plotting.py::test_scatter_embedding_groups_and_size [32mPASSED[0m[31m [ 73%][0m | |
2021-07-06T06:30:13.9997546Z scanpy/tests/test_plotting.py::test_scatter_embedding_add_outline_vmin_vmax_norm [32mPASSED[0m[31m [ 73%][0m | |
2021-07-06T06:30:16.2247074Z scanpy/tests/test_plotting.py::test_timeseries [32mPASSED[0m[31m [ 73%][0m | |
2021-07-06T06:30:16.6604720Z scanpy/tests/test_plotting.py::test_scatter_raw [32mPASSED[0m[31m [ 73%][0m | |
2021-07-06T06:30:16.7460333Z scanpy/tests/test_plotting.py::test_scatter_specify_layer_and_raw [32mPASSED[0m[31m [ 73%][0m | |
2021-07-06T06:30:19.1933788Z scanpy/tests/test_plotting.py::test_rankings [32mPASSED[0m[31m [ 74%][0m | |
2021-07-06T06:30:21.7361703Z scanpy/tests/test_plotting.py::test_scatter_rep [32mPASSED[0m[31m [ 74%][0m | |
2021-07-06T06:30:23.7448818Z scanpy/tests/test_plotting.py::test_paga [32mPASSED[0m[31m [ 74%][0m | |
2021-07-06T06:30:24.4699014Z scanpy/tests/test_plotting.py::test_paga_path [32mPASSED[0m[31m [ 74%][0m | |
2021-07-06T06:30:25.0906583Z scanpy/tests/test_plotting.py::test_paga_compare [32mPASSED[0m[31m [ 74%][0m | |
2021-07-06T06:30:29.9480059Z scanpy/tests/test_plotting.py::test_no_copy [32mPASSED[0m[31m [ 74%][0m | |
2021-07-06T06:30:30.4580471Z scanpy/tests/test_plotting.py::test_groupby_index [32mPASSED[0m[31m [ 74%][0m | |
2021-07-06T06:30:31.2694072Z scanpy/tests/test_plotting.py::test_groupby_list [32mPASSED[0m[31m [ 75%][0m | |
2021-07-06T06:30:31.3800566Z scanpy/tests/test_plotting.py::test_color_cycler [32mPASSED[0m[31m [ 75%][0m | |
2021-07-06T06:30:31.3974051Z scanpy/tests/test_preprocessing.py::test_log1p [32mPASSED[0m[31m [ 75%][0m | |
2021-07-06T06:30:31.4737216Z scanpy/tests/test_preprocessing.py::test_log1p_rep[<lambda>-None-int64] [32mPASSED[0m[31m [ 75%][0m | |
2021-07-06T06:30:31.5545353Z scanpy/tests/test_preprocessing.py::test_log1p_rep[<lambda>-None-float32] [32mPASSED[0m[31m [ 75%][0m | |
2021-07-06T06:30:31.6236444Z scanpy/tests/test_preprocessing.py::test_log1p_rep[<lambda>-None-float64] [32mPASSED[0m[31m [ 75%][0m | |
2021-07-06T06:30:31.6983111Z scanpy/tests/test_preprocessing.py::test_log1p_rep[<lambda>-2-int64] [32mPASSED[0m[31m [ 75%][0m | |
2021-07-06T06:30:31.7675825Z scanpy/tests/test_preprocessing.py::test_log1p_rep[<lambda>-2-float32] [32mPASSED[0m[31m [ 76%][0m | |
2021-07-06T06:30:31.8395916Z scanpy/tests/test_preprocessing.py::test_log1p_rep[<lambda>-2-float64] [32mPASSED[0m[31m [ 76%][0m | |
2021-07-06T06:30:31.9157503Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csr_matrix-None-int64] [32mPASSED[0m[31m [ 76%][0m | |
2021-07-06T06:30:31.9908378Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csr_matrix-None-float32] [32mPASSED[0m[31m [ 76%][0m | |
2021-07-06T06:30:32.0701034Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csr_matrix-None-float64] [32mPASSED[0m[31m [ 76%][0m | |
2021-07-06T06:30:32.1524249Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csr_matrix-2-int64] [32mPASSED[0m[31m [ 76%][0m | |
2021-07-06T06:30:32.2355432Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csr_matrix-2-float32] [32mPASSED[0m[31m [ 76%][0m | |
2021-07-06T06:30:32.3141606Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csr_matrix-2-float64] [32mPASSED[0m[31m [ 76%][0m | |
2021-07-06T06:30:32.3945509Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csc_matrix-None-int64] [32mPASSED[0m[31m [ 77%][0m | |
2021-07-06T06:30:32.4726965Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csc_matrix-None-float32] [32mPASSED[0m[31m [ 77%][0m | |
2021-07-06T06:30:32.5453909Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csc_matrix-None-float64] [32mPASSED[0m[31m [ 77%][0m | |
2021-07-06T06:30:32.6194142Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csc_matrix-2-int64] [32mPASSED[0m[31m [ 77%][0m | |
2021-07-06T06:30:32.6921098Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csc_matrix-2-float32] [32mPASSED[0m[31m [ 77%][0m | |
2021-07-06T06:30:32.7658289Z scanpy/tests/test_preprocessing.py::test_log1p_rep[csc_matrix-2-float64] [32mPASSED[0m[31m [ 77%][0m | |
2021-07-06T06:30:33.2042149Z scanpy/tests/test_preprocessing.py::test_mean_var_sparse [32mPASSED[0m[31m [ 77%][0m | |
2021-07-06T06:30:33.2289943Z scanpy/tests/test_preprocessing.py::test_normalize_per_cell [32mPASSED[0m[31m [ 78%][0m | |
2021-07-06T06:30:33.2350372Z scanpy/tests/test_preprocessing.py::test_subsample [32mPASSED[0m[31m [ 78%][0m | |
2021-07-06T06:30:33.2396912Z scanpy/tests/test_preprocessing.py::test_subsample_copy [32mPASSED[0m[31m [ 78%][0m | |
2021-07-06T06:30:33.3335259Z scanpy/tests/test_preprocessing.py::test_scale [32mPASSED[0m[31m [ 78%][0m | |
2021-07-06T06:30:33.4330074Z scanpy/tests/test_preprocessing.py::test_scale_rep[<lambda>-True] [32mPASSED[0m[31m [ 78%][0m | |
2021-07-06T06:30:33.5134276Z scanpy/tests/test_preprocessing.py::test_scale_rep[<lambda>-False] [32mPASSED[0m[31m [ 78%][0m | |
2021-07-06T06:30:33.6017753Z scanpy/tests/test_preprocessing.py::test_scale_rep[csr_matrix-True] [32mPASSED[0m[31m [ 78%][0m | |
2021-07-06T06:30:33.6840237Z scanpy/tests/test_preprocessing.py::test_scale_rep[csr_matrix-False] [32mPASSED[0m[31m [ 78%][0m | |
2021-07-06T06:30:33.7751760Z scanpy/tests/test_preprocessing.py::test_scale_rep[csc_matrix-True] [32mPASSED[0m[31m [ 79%][0m | |
2021-07-06T06:30:33.8606401Z scanpy/tests/test_preprocessing.py::test_scale_rep[csc_matrix-False] [32mPASSED[0m[31m [ 79%][0m | |
2021-07-06T06:30:33.8665578Z scanpy/tests/test_preprocessing.py::test_scale_array[<lambda>-True] [32mPASSED[0m[31m [ 79%][0m | |
2021-07-06T06:30:33.8726140Z scanpy/tests/test_preprocessing.py::test_scale_array[<lambda>-False] [32mPASSED[0m[31m [ 79%][0m | |
2021-07-06T06:30:33.8819897Z scanpy/tests/test_preprocessing.py::test_scale_array[csr_matrix-True] [32mPASSED[0m[31m [ 79%][0m | |
2021-07-06T06:30:33.8904395Z scanpy/tests/test_preprocessing.py::test_scale_array[csr_matrix-False] [32mPASSED[0m[31m [ 79%][0m | |
2021-07-06T06:30:33.8992378Z scanpy/tests/test_preprocessing.py::test_scale_array[csc_matrix-True] [32mPASSED[0m[31m [ 79%][0m | |
2021-07-06T06:30:33.9067481Z scanpy/tests/test_preprocessing.py::test_scale_array[csc_matrix-False] [32mPASSED[0m[31m [ 80%][0m | |
2021-07-06T06:30:34.5225267Z scanpy/tests/test_preprocessing.py::test_recipe_plotting [32mPASSED[0m[31m [ 80%][0m | |
2021-07-06T06:30:45.7953920Z scanpy/tests/test_preprocessing.py::test_regress_out_ordinal [32mPASSED[0m[31m [ 80%][0m | |
2021-07-06T06:30:52.3831769Z scanpy/tests/test_preprocessing.py::test_regress_out_view [32mPASSED[0m[31m [ 80%][0m | |
2021-07-06T06:30:52.6559105Z scanpy/tests/test_preprocessing.py::test_regress_out_categorical [32mPASSED[0m[31m [ 80%][0m | |
2021-07-06T06:30:52.7244429Z scanpy/tests/test_preprocessing.py::test_regress_out_constants [32mPASSED[0m[31m [ 80%][0m | |
2021-07-06T06:30:53.0189203Z scanpy/tests/test_preprocessing.py::test_regress_out_constants_equivalent [32mPASSED[0m[31m [ 80%][0m | |
2021-07-06T06:30:56.3278588Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[<lambda>-True-int64] [32mPASSED[0m[31m [ 81%][0m | |
2021-07-06T06:30:57.1516807Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[<lambda>-True-float32] [32mPASSED[0m[31m [ 81%][0m | |
2021-07-06T06:30:57.9801592Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[<lambda>-True-float64] [32mPASSED[0m[31m [ 81%][0m | |
2021-07-06T06:30:58.0826006Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[<lambda>-False-int64] [32mPASSED[0m[31m [ 81%][0m | |
2021-07-06T06:30:58.1884981Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[<lambda>-False-float32] [32mPASSED[0m[31m [ 81%][0m | |
2021-07-06T06:30:58.2906131Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[<lambda>-False-float64] [32mPASSED[0m[31m [ 81%][0m | |
2021-07-06T06:30:58.3892949Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csr_matrix-True-int64] [32mPASSED[0m[31m [ 81%][0m | |
2021-07-06T06:30:58.4870803Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csr_matrix-True-float32] [32mPASSED[0m[31m [ 81%][0m | |
2021-07-06T06:30:58.5836276Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csr_matrix-True-float64] [32mPASSED[0m[31m [ 82%][0m | |
2021-07-06T06:30:58.6879775Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csr_matrix-False-int64] [32mPASSED[0m[31m [ 82%][0m | |
2021-07-06T06:30:58.7947181Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csr_matrix-False-float32] [32mPASSED[0m[31m [ 82%][0m | |
2021-07-06T06:30:58.9060597Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csr_matrix-False-float64] [32mPASSED[0m[31m [ 82%][0m | |
2021-07-06T06:30:59.0053152Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csc_matrix-True-int64] [32mPASSED[0m[31m [ 82%][0m | |
2021-07-06T06:30:59.1081123Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csc_matrix-True-float32] [32mPASSED[0m[31m [ 82%][0m | |
2021-07-06T06:30:59.2092419Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csc_matrix-True-float64] [32mPASSED[0m[31m [ 82%][0m | |
2021-07-06T06:30:59.3132989Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csc_matrix-False-int64] [32mPASSED[0m[31m [ 83%][0m | |
2021-07-06T06:30:59.4203029Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csc_matrix-False-float32] [32mPASSED[0m[31m [ 83%][0m | |
2021-07-06T06:30:59.5293083Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell[csc_matrix-False-float64] [32mPASSED[0m[31m [ 83%][0m | |
2021-07-06T06:30:59.6251325Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[<lambda>-True-int64] [32mPASSED[0m[31m [ 83%][0m | |
2021-07-06T06:30:59.7115178Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[<lambda>-True-float32] [32mPASSED[0m[31m [ 83%][0m | |
2021-07-06T06:30:59.7897579Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[<lambda>-True-float64] [32mPASSED[0m[31m [ 83%][0m | |
2021-07-06T06:30:59.8891457Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[<lambda>-False-int64] [32mPASSED[0m[31m [ 83%][0m | |
2021-07-06T06:30:59.9896017Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[<lambda>-False-float32] [32mPASSED[0m[31m [ 84%][0m | |
2021-07-06T06:31:00.0895233Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[<lambda>-False-float64] [32mPASSED[0m[31m [ 84%][0m | |
2021-07-06T06:31:00.1764058Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csr_matrix-True-int64] [32mPASSED[0m[31m [ 84%][0m | |
2021-07-06T06:31:00.2684999Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csr_matrix-True-float32] [32mPASSED[0m[31m [ 84%][0m | |
2021-07-06T06:31:00.3612092Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csr_matrix-True-float64] [32mPASSED[0m[31m [ 84%][0m | |
2021-07-06T06:31:00.4573341Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csr_matrix-False-int64] [32mPASSED[0m[31m [ 84%][0m | |
2021-07-06T06:31:00.5543792Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csr_matrix-False-float32] [32mPASSED[0m[31m [ 84%][0m | |
2021-07-06T06:31:00.6521047Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csr_matrix-False-float64] [32mPASSED[0m[31m [ 84%][0m | |
2021-07-06T06:31:00.7468336Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csc_matrix-True-int64] [32mPASSED[0m[31m [ 85%][0m | |
2021-07-06T06:31:00.8340457Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csc_matrix-True-float32] [32mPASSED[0m[31m [ 85%][0m | |
2021-07-06T06:31:00.9190108Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csc_matrix-True-float64] [32mPASSED[0m[31m [ 85%][0m | |
2021-07-06T06:31:01.0110751Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csc_matrix-False-int64] [32mPASSED[0m[31m [ 85%][0m | |
2021-07-06T06:31:01.1036050Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csc_matrix-False-float32] [32mPASSED[0m[31m [ 85%][0m | |
2021-07-06T06:31:01.2009848Z scanpy/tests/test_preprocessing.py::test_downsample_counts_per_cell_multiple_targets[csc_matrix-False-float64] [32mPASSED[0m[31m [ 85%][0m | |
2021-07-06T06:31:01.2333682Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[<lambda>-True-int64] [32mPASSED[0m[31m [ 85%][0m | |
2021-07-06T06:31:01.2689236Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[<lambda>-True-float32] [32mPASSED[0m[31m [ 86%][0m | |
2021-07-06T06:31:01.3039804Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[<lambda>-True-float64] [32mPASSED[0m[31m [ 86%][0m | |
2021-07-06T06:31:01.3583410Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[<lambda>-False-int64] [32mPASSED[0m[31m [ 86%][0m | |
2021-07-06T06:31:01.4133486Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[<lambda>-False-float32] [32mPASSED[0m[31m [ 86%][0m | |
2021-07-06T06:31:01.4649309Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[<lambda>-False-float64] [32mPASSED[0m[31m [ 86%][0m | |
2021-07-06T06:31:01.4965866Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csr_matrix-True-int64] [32mPASSED[0m[31m [ 86%][0m | |
2021-07-06T06:31:01.5306519Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csr_matrix-True-float32] [32mPASSED[0m[31m [ 86%][0m | |
2021-07-06T06:31:01.5633471Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csr_matrix-True-float64] [32mPASSED[0m[31m [ 86%][0m | |
2021-07-06T06:31:01.6174406Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csr_matrix-False-int64] [32mPASSED[0m[31m [ 87%][0m | |
2021-07-06T06:31:01.6816164Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csr_matrix-False-float32] [32mPASSED[0m[31m [ 87%][0m | |
2021-07-06T06:31:01.7386515Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csr_matrix-False-float64] [32mPASSED[0m[31m [ 87%][0m | |
2021-07-06T06:31:01.7742843Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csc_matrix-True-int64] [32mPASSED[0m[31m [ 87%][0m | |
2021-07-06T06:31:01.8068499Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csc_matrix-True-float32] [32mPASSED[0m[31m [ 87%][0m | |
2021-07-06T06:31:01.8412536Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csc_matrix-True-float64] [32mPASSED[0m[31m [ 87%][0m | |
2021-07-06T06:31:01.9033439Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csc_matrix-False-int64] [32mPASSED[0m[31m [ 87%][0m | |
2021-07-06T06:31:01.9594942Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csc_matrix-False-float32] [32mPASSED[0m[31m [ 88%][0m | |
2021-07-06T06:31:02.0188893Z scanpy/tests/test_preprocessing.py::test_downsample_total_counts[csc_matrix-False-float64] [32mPASSED[0m[31m [ 88%][0m | |
2021-07-06T06:31:02.2465196Z scanpy/tests/test_preprocessing.py::test_recipe_weinreb [32mPASSED[0m[31m [ 88%][0m | |
2021-07-06T06:31:02.7739406Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_log1p[direct] [32mPASSED[0m[31m [ 88%][0m | |
2021-07-06T06:31:03.2877989Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_log1p[dask] [32mPASSED[0m[31m [ 88%][0m | |
2021-07-06T06:31:03.7484979Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_normalize_per_cell[direct] [32mPASSED[0m[31m [ 88%][0m | |
2021-07-06T06:31:04.2992694Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_normalize_per_cell[dask] [32mPASSED[0m[31m [ 88%][0m | |
2021-07-06T06:31:04.7225944Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_normalize_total[direct] [32mPASSED[0m[31m [ 89%][0m | |
2021-07-06T06:31:05.1660453Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_normalize_total[dask] [32mPASSED[0m[31m [ 89%][0m | |
2021-07-06T06:31:05.6281125Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_filter_cells[direct] [32mPASSED[0m[31m [ 89%][0m | |
2021-07-06T06:31:06.1443934Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_filter_cells[dask] [32mPASSED[0m[31m [ 89%][0m | |
2021-07-06T06:31:06.5527899Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_filter_genes[direct] [32mPASSED[0m[31m [ 89%][0m | |
2021-07-06T06:31:06.9561873Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_filter_genes[dask] [32mPASSED[0m[31m [ 89%][0m | |
2021-07-06T06:31:07.6255533Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_write_zarr[direct] [32mPASSED[0m[31m [ 89%][0m | |
2021-07-06T06:31:08.2993160Z scanpy/tests/test_preprocessing_distributed.py::TestPreprocessingDistributed::test_write_zarr[dask] [32mPASSED[0m[31m [ 89%][0m | |
2021-07-06T06:31:08.3063441Z scanpy/tests/test_qc_metrics.py::test_proportions[dense] [32mPASSED[0m[31m [ 90%][0m | |
2021-07-06T06:31:08.3124079Z scanpy/tests/test_qc_metrics.py::test_proportions[sparse] [32mPASSED[0m[31m [ 90%][0m | |
2021-07-06T06:31:08.3351345Z scanpy/tests/test_qc_metrics.py::test_segments_binary [32mPASSED[0m[31m [ 90%][0m | |
2021-07-06T06:31:08.3518616Z scanpy/tests/test_qc_metrics.py::test_top_segments[asarray] [32mPASSED[0m[31m [ 90%][0m | |
2021-07-06T06:31:16.0111496Z scanpy/tests/test_qc_metrics.py::test_top_segments[csr_matrix] [31mFAILED[0m[31m [ 90%][0m | |
2021-07-06T06:31:18.5410379Z scanpy/tests/test_qc_metrics.py::test_top_segments[csc_matrix] [31mFAILED[0m[31m [ 90%][0m | |
2021-07-06T06:31:21.0825832Z scanpy/tests/test_qc_metrics.py::test_top_segments[coo_matrix] [31mFAILED[0m[31m [ 90%][0m | |
2021-07-06T06:31:27.2748909Z scanpy/tests/test_qc_metrics.py::test_qc_metrics [31mFAILED[0m[31m [ 91%][0m | |
2021-07-06T06:31:27.4206705Z scanpy/tests/test_qc_metrics.py::test_qc_metrics_format[asarray] [32mPASSED[0m[31m [ 91%][0m | |
2021-07-06T06:31:30.1227418Z scanpy/tests/test_qc_metrics.py::test_qc_metrics_format[csr_matrix] [31mFAILED[0m[31m [ 91%][0m | |
2021-07-06T06:31:32.4752220Z scanpy/tests/test_qc_metrics.py::test_qc_metrics_format[csc_matrix] [31mFAILED[0m[31m [ 91%][0m | |
2021-07-06T06:31:35.1070228Z scanpy/tests/test_qc_metrics.py::test_qc_metrics_format[coo_matrix] [31mFAILED[0m[31m [ 91%][0m | |
2021-07-06T06:31:35.2485426Z scanpy/tests/test_qc_metrics.py::test_qc_metrics_percentage [32mPASSED[0m[31m [ 91%][0m | |
2021-07-06T06:31:37.7940832Z scanpy/tests/test_qc_metrics.py::test_layer_raw [31mFAILED[0m[31m [ 91%][0m | |
2021-07-06T06:31:40.3465971Z scanpy/tests/test_qc_metrics.py::test_inner_methods [31mFAILED[0m[31m [ 92%][0m | |
2021-07-06T06:31:40.3478241Z scanpy/tests/test_queries.py::test_enrich [33mSKIPPED[0m (need --internet-t...)[31m [ 92%][0m | |
2021-07-06T06:31:40.3540161Z scanpy/tests/test_queries.py::test_mito_genes [33mSKIPPED[0m (need --intern...)[31m [ 92%][0m | |
2021-07-06T06:31:40.4451196Z scanpy/tests/test_rank_genes_groups.py::test_results_dense [32mPASSED[0m[31m [ 92%][0m | |
2021-07-06T06:31:40.5411027Z scanpy/tests/test_rank_genes_groups.py::test_results_sparse [32mPASSED[0m[31m [ 92%][0m | |
2021-07-06T06:31:40.7321594Z scanpy/tests/test_rank_genes_groups.py::test_results_layers [32mPASSED[0m[31m [ 92%][0m | |
2021-07-06T06:31:40.8186968Z scanpy/tests/test_rank_genes_groups.py::test_singlets [32mPASSED[0m[31m [ 92%][0m | |
2021-07-06T06:31:40.9061676Z scanpy/tests/test_rank_genes_groups.py::test_emptycat [32mPASSED[0m[31m [ 92%][0m | |
2021-07-06T06:31:41.1837945Z scanpy/tests/test_rank_genes_groups.py::test_wilcoxon_symmetry [32mPASSED[0m[31m [ 93%][0m | |
2021-07-06T06:31:41.5935259Z scanpy/tests/test_rank_genes_groups.py::test_wilcoxon_tie_correction[True] [32mPASSED[0m[31m [ 93%][0m | |
2021-07-06T06:31:42.1804984Z scanpy/tests/test_rank_genes_groups.py::test_wilcoxon_tie_correction[False] [32mPASSED[0m[31m [ 93%][0m | |
2021-07-06T06:31:43.4469148Z scanpy/tests/test_rank_genes_groups_logreg.py::test_rank_genes_groups_with_renamed_categories [31mFAILED[0m[31m [ 93%][0m | |
2021-07-06T06:31:44.6897712Z scanpy/tests/test_rank_genes_groups_logreg.py::test_rank_genes_groups_with_renamed_categories_use_rep [31mFAILED[0m[31m [ 93%][0m | |
2021-07-06T06:31:44.7642342Z scanpy/tests/test_read_10x.py::test_read_10x[None-mtx_path0-h5_path0] [32mPASSED[0m[31m [ 93%][0m | |
2021-07-06T06:31:44.9892516Z scanpy/tests/test_read_10x.py::test_read_10x[None-mtx_path1-h5_path1] [32mPASSED[0m[31m [ 93%][0m | |
2021-07-06T06:31:45.0605008Z scanpy/tests/test_read_10x.py::test_read_10x[prefix_-mtx_path0-h5_path0] [32mPASSED[0m[31m [ 94%][0m | |
2021-07-06T06:31:45.3008634Z scanpy/tests/test_read_10x.py::test_read_10x[prefix_-mtx_path1-h5_path1] [32mPASSED[0m[31m [ 94%][0m | |
2021-07-06T06:31:45.3361894Z scanpy/tests/test_read_10x.py::test_read_10x_h5_v1 [32mPASSED[0m[31m [ 94%][0m | |
2021-07-06T06:31:45.4000459Z scanpy/tests/test_read_10x.py::test_read_10x_h5 [32mPASSED[0m[31m [ 94%][0m | |
2021-07-06T06:31:45.4209562Z scanpy/tests/test_read_10x.py::test_error_10x_h5_legacy [32mPASSED[0m[31m [ 94%][0m | |
2021-07-06T06:31:45.4473654Z scanpy/tests/test_read_10x.py::test_error_missing_genome [32mPASSED[0m[31m [ 94%][0m | |
2021-07-06T06:31:45.4882302Z scanpy/tests/test_read_10x.py::test_read_visium_counts [32mPASSED[0m[31m [ 94%][0m | |
2021-07-06T06:31:45.5438609Z scanpy/tests/test_read_10x.py::test_10x_h5_gex [32mPASSED[0m[31m [ 94%][0m | |
2021-07-06T06:31:45.5456971Z scanpy/tests/test_readwrite.py::test_slugify[path0] [32mPASSED[0m[31m [ 95%][0m | |
2021-07-06T06:31:45.5479049Z scanpy/tests/test_readwrite.py::test_slugify[path1] [32mPASSED[0m[31m [ 95%][0m | |
2021-07-06T06:31:45.5497908Z scanpy/tests/test_readwrite.py::test_slugify[path2] [32mPASSED[0m[31m [ 95%][0m | |
2021-07-06T06:31:45.5518158Z scanpy/tests/test_readwrite.py::test_slugify[path3] [32mPASSED[0m[31m [ 95%][0m | |
2021-07-06T06:31:45.5537304Z scanpy/tests/test_readwrite.py::test_slugify[path4] [32mPASSED[0m[31m [ 95%][0m | |
2021-07-06T06:31:45.5556167Z scanpy/tests/test_readwrite.py::test_slugify[path5] [32mPASSED[0m[31m [ 95%][0m | |
2021-07-06T06:31:45.5712667Z scanpy/tests/test_scaling.py::test_scale[float32-array] [32mPASSED[0m[31m [ 95%][0m | |
2021-07-06T06:31:45.5920510Z scanpy/tests/test_scaling.py::test_scale[float32-csr_matrix] [32mPASSED[0m[31m [ 96%][0m | |
2021-07-06T06:31:45.6106169Z scanpy/tests/test_scaling.py::test_scale[int64-array] [32mPASSED[0m[31m [ 96%][0m | |
2021-07-06T06:31:45.6360657Z scanpy/tests/test_scaling.py::test_scale[int64-csr_matrix] [32mPASSED[0m[31m [ 96%][0m | |
2021-07-06T06:31:48.5186273Z scanpy/tests/test_score_genes.py::test_score_with_reference [32mPASSED[0m[31m [ 96%][0m | |
2021-07-06T06:31:48.5727577Z scanpy/tests/test_score_genes.py::test_add_score [32mPASSED[0m[31m [ 96%][0m | |
2021-07-06T06:31:48.5813830Z scanpy/tests/test_score_genes.py::test_sparse_nanmean [32mPASSED[0m[31m [ 96%][0m | |
2021-07-06T06:31:48.5833655Z scanpy/tests/test_score_genes.py::test_sparse_nanmean_on_dense_matrix [32mPASSED[0m[31m [ 96%][0m | |
2021-07-06T06:31:48.6501583Z scanpy/tests/test_score_genes.py::test_score_genes_sparse_vs_dense [32mPASSED[0m[31m [ 97%][0m | |
2021-07-06T06:31:48.7087465Z scanpy/tests/test_score_genes.py::test_score_genes_deplete [32mPASSED[0m[31m [ 97%][0m | |
2021-07-06T06:31:48.7728377Z scanpy/tests/test_score_genes.py::test_npnanmean_vs_sparsemean [32mPASSED[0m[31m [ 97%][0m | |
2021-07-06T06:31:48.8068042Z scanpy/tests/test_score_genes.py::test_missing_genes [32mPASSED[0m[31m [ 97%][0m | |
2021-07-06T06:31:48.8496645Z scanpy/tests/test_score_genes.py::test_one_gene [32mPASSED[0m[31m [ 97%][0m | |
2021-07-06T06:31:48.8974845Z scanpy/tests/test_sim.py::test_sim_toggleswitch [32mPASSED[0m[31m [ 97%][0m | |
2021-07-06T06:31:48.8994671Z scanpy/tests/test_utils.py::test_descend_classes_and_funcs [32mPASSED[0m[31m [ 97%][0m | |
2021-07-06T06:31:48.9050249Z scanpy/tests/test_utils.py::test_check_nonnegative_integers [32mPASSED[0m[31m [ 97%][0m | |
2021-07-06T06:31:48.9075144Z scanpy/tests/test_utils.py::test_is_constant[asarray] [32mPASSED[0m[31m [ 98%][0m | |
2021-07-06T06:31:49.1942764Z scanpy/tests/test_utils.py::test_is_constant[csr_matrix] [32mPASSED[0m[31m [ 98%][0m | |
2021-07-06T06:31:49.1981293Z scanpy/tests/test_utils.py::test_is_constant[csc_matrix] [32mPASSED[0m[31m [ 98%][0m | |
2021-07-06T06:31:57.7694436Z scanpy/tests/external/test_harmony_integrate.py::test_harmony_integrate [32mPASSED[0m[31m [ 98%][0m | |
2021-07-06T06:31:58.1575665Z scanpy/tests/external/test_hashsolo.py::test_cell_demultiplexing [32mPASSED[0m[31m [ 98%][0m | |
2021-07-06T06:31:58.1745771Z scanpy/tests/external/test_magic.py::test_magic_default [32mPASSED[0m[31m [ 98%][0m | |
2021-07-06T06:31:58.1900355Z scanpy/tests/external/test_magic.py::test_magic_pca_only [32mPASSED[0m[31m [ 98%][0m | |
2021-07-06T06:31:58.2028352Z scanpy/tests/external/test_magic.py::test_magic_copy [32mPASSED[0m[31m [ 99%][0m | |
2021-07-06T06:31:58.5780199Z scanpy/tests/external/test_scanorama_integrate.py::test_scanorama_integrate [32mPASSED[0m[31m [ 99%][0m | |
2021-07-06T06:32:03.1951699Z scanpy/tests/external/test_scrublet.py::test_scrublet [32mPASSED[0m[31m [ 99%][0m | |
2021-07-06T06:32:04.3085757Z scanpy/tests/external/test_scrublet.py::test_scrublet_dense [32mPASSED[0m[31m [ 99%][0m | |
2021-07-06T06:32:07.8846343Z scanpy/tests/external/test_scrublet.py::test_scrublet_params [32mPASSED[0m[31m [ 99%][0m | |
2021-07-06T06:32:08.8283664Z scanpy/tests/external/test_scrublet.py::test_scrublet_simulate_doublets [32mPASSED[0m[31m [ 99%][0m | |
2021-07-06T06:32:10.9056664Z scanpy/tests/notebooks/test_paga_paul15_subsampled.py::test_paga_paul15_subsampled [31mFAILED[0m[31m [ 99%][0m | |
2021-07-06T06:32:25.2438961Z scanpy/tests/notebooks/test_pbmc3k.py::test_pbmc3k [31mFAILED[0m[31m [100%][0m | |
2021-07-06T06:32:25.2439869Z | |
2021-07-06T06:32:25.2440494Z ==================================== ERRORS ==================================== | |
2021-07-06T06:32:25.2441517Z [31m[1m____________________ ERROR at setup of test_representation _____________________[0m | |
2021-07-06T06:32:25.2442042Z | |
2021-07-06T06:32:25.2443397Z fmt_ = 'lowering "{inst}" at {loc}', args = () | |
2021-07-06T06:32:25.2444954Z kwargs = {'inst': id=0[LoopNest(index_variable = parfor_index.31, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/host...c': Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)} | |
2021-07-06T06:32:25.2446538Z errcls = functools.partial(<class 'numba.core.errors.LoweringError'>, loc=Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)) | |
2021-07-06T06:32:25.2447909Z loc = Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None) | |
2021-07-06T06:32:25.2450963Z newerr = LoweringError('Failed in nopython mode pipeline (step: nopython mode backend)\nNo threading layer could be loaded.\nHI...or_index.31, umap_.py:404)" at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)') | |
2021-07-06T06:32:25.2451895Z tb = None | |
2021-07-06T06:32:25.2452130Z | |
2021-07-06T06:32:25.2452489Z @contextlib.contextmanager | |
2021-07-06T06:32:25.2453144Z def new_error_context(fmt_, *args, **kwargs): | |
2021-07-06T06:32:25.2453595Z """ | |
2021-07-06T06:32:25.2454080Z A contextmanager that prepend contextual information to any exception | |
2021-07-06T06:32:25.2454946Z raised within. If the exception type is not an instance of NumbaError, | |
2021-07-06T06:32:25.2455557Z it will be wrapped into a InternalError. The exception class can be | |
2021-07-06T06:32:25.2456145Z changed by providing a "errcls_" keyword argument with the exception | |
2021-07-06T06:32:25.2456824Z constructor. | |
2021-07-06T06:32:25.2457176Z | |
2021-07-06T06:32:25.2457639Z The first argument is a message that describes the context. It can be a | |
2021-07-06T06:32:25.2458351Z format string. If there are additional arguments, it will be used as | |
2021-07-06T06:32:25.2459249Z ``fmt_.format(*args, **kwargs)`` to produce the final message string. | |
2021-07-06T06:32:25.2459682Z """ | |
2021-07-06T06:32:25.2460339Z errcls = kwargs.pop('errcls_', InternalError) | |
2021-07-06T06:32:25.2460777Z | |
2021-07-06T06:32:25.2461524Z loc = kwargs.get('loc', None) | |
2021-07-06T06:32:25.2462430Z if loc is not None and not loc.filename.startswith(_numba_path): | |
2021-07-06T06:32:25.2463334Z loc_info.update(kwargs) | |
2021-07-06T06:32:25.2463922Z | |
2021-07-06T06:32:25.2464300Z try: | |
2021-07-06T06:32:25.2465384Z > yield | |
2021-07-06T06:32:25.2465665Z | |
2021-07-06T06:32:25.2466494Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/errors.py[0m:744: | |
2021-07-06T06:32:25.2467209Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2467570Z | |
2021-07-06T06:32:25.2467991Z self = <numba.core.lowering.Lower object at 0x7f16abaca350> | |
2021-07-06T06:32:25.2468857Z block = <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (401)> | |
2021-07-06T06:32:25.2469297Z | |
2021-07-06T06:32:25.2469721Z def lower_block(self, block): | |
2021-07-06T06:32:25.2471798Z """ | |
2021-07-06T06:32:25.2472256Z Lower the given block. | |
2021-07-06T06:32:25.2472830Z """ | |
2021-07-06T06:32:25.2473209Z self.pre_block(block) | |
2021-07-06T06:32:25.2473847Z for inst in block.body: | |
2021-07-06T06:32:25.2474414Z self.loc = inst.loc | |
2021-07-06T06:32:25.2476349Z defaulterrcls = partial(LoweringError, loc=self.loc) | |
2021-07-06T06:32:25.2477477Z with new_error_context('lowering "{inst}" at {loc}', inst=inst, | |
2021-07-06T06:32:25.2480632Z loc=self.loc, errcls_=defaulterrcls): | |
2021-07-06T06:32:25.2481335Z > self.lower_inst(inst) | |
2021-07-06T06:32:25.2481702Z | |
2021-07-06T06:32:25.2482581Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:230: | |
2021-07-06T06:32:25.2483387Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2483817Z | |
2021-07-06T06:32:25.2484410Z self = <numba.core.lowering.Lower object at 0x7f16abaca350> | |
2021-07-06T06:32:25.2485970Z inst = id=0[LoopNest(index_variable = parfor_index.31, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)>}Var(parfor_index.31, umap_.py:404) | |
2021-07-06T06:32:25.2487637Z | |
2021-07-06T06:32:25.2488302Z def lower_inst(self, inst): | |
2021-07-06T06:32:25.2488962Z # Set debug location for all subsequent LL instructions | |
2021-07-06T06:32:25.2489602Z self.debuginfo.mark_location(self.builder, self.loc) | |
2021-07-06T06:32:25.2490210Z self.debug_print(str(inst)) | |
2021-07-06T06:32:25.2490774Z if isinstance(inst, ir.Assign): | |
2021-07-06T06:32:25.2492407Z ty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.2493015Z val = self.lower_assign(ty, inst) | |
2021-07-06T06:32:25.2493609Z self.storevar(val, inst.target.name) | |
2021-07-06T06:32:25.2494119Z | |
2021-07-06T06:32:25.2494648Z elif isinstance(inst, ir.Branch): | |
2021-07-06T06:32:25.2495391Z cond = self.loadvar(inst.cond.name) | |
2021-07-06T06:32:25.2497130Z tr = self.blkmap[inst.truebr] | |
2021-07-06T06:32:25.2498175Z fl = self.blkmap[inst.falsebr] | |
2021-07-06T06:32:25.2498701Z | |
2021-07-06T06:32:25.2499212Z condty = self.typeof(inst.cond.name) | |
2021-07-06T06:32:25.2499869Z pred = self.context.cast(self.builder, cond, condty, types.boolean) | |
2021-07-06T06:32:25.2500583Z assert pred.type == Type.int(1), ("cond is not i1: %s" % pred.type) | |
2021-07-06T06:32:25.2501255Z self.builder.cbranch(pred, tr, fl) | |
2021-07-06T06:32:25.2501756Z | |
2021-07-06T06:32:25.2502537Z elif isinstance(inst, ir.Jump): | |
2021-07-06T06:32:25.2503109Z target = self.blkmap[inst.target] | |
2021-07-06T06:32:25.2503660Z self.builder.branch(target) | |
2021-07-06T06:32:25.2504126Z | |
2021-07-06T06:32:25.2505712Z elif isinstance(inst, ir.Return): | |
2021-07-06T06:32:25.2508740Z if self.generator_info: | |
2021-07-06T06:32:25.2509344Z # StopIteration | |
2021-07-06T06:32:25.2509866Z self.genlower.return_from_generator(self) | |
2021-07-06T06:32:25.2510338Z return | |
2021-07-06T06:32:25.2510796Z val = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.2511465Z oty = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.2511949Z ty = self.fndesc.restype | |
2021-07-06T06:32:25.2512426Z if isinstance(ty, types.Optional): | |
2021-07-06T06:32:25.2512947Z # If returning an optional type | |
2021-07-06T06:32:25.2513500Z self.call_conv.return_optional_value(self.builder, ty, oty, val) | |
2021-07-06T06:32:25.2514010Z return | |
2021-07-06T06:32:25.2515176Z assert ty == oty, ( | |
2021-07-06T06:32:25.2516695Z "type '{}' does not match return type '{}'".format(oty, ty)) | |
2021-07-06T06:32:25.2517329Z retval = self.context.get_return_value(self.builder, ty, val) | |
2021-07-06T06:32:25.2517903Z self.call_conv.return_value(self.builder, retval) | |
2021-07-06T06:32:25.2518332Z | |
2021-07-06T06:32:25.2518803Z elif isinstance(inst, ir.StaticSetItem): | |
2021-07-06T06:32:25.2519309Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2519795Z assert signature is not None | |
2021-07-06T06:32:25.2520228Z try: | |
2021-07-06T06:32:25.2520972Z impl = self.context.get_function('static_setitem', signature) | |
2021-07-06T06:32:25.2522385Z except NotImplementedError: | |
2021-07-06T06:32:25.2522959Z return self.lower_setitem(inst.target, inst.index_var, | |
2021-07-06T06:32:25.2523508Z inst.value, signature) | |
2021-07-06T06:32:25.2523992Z else: | |
2021-07-06T06:32:25.2524443Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.2524967Z value = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.2525461Z valuety = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.2526006Z value = self.context.cast(self.builder, value, valuety, | |
2021-07-06T06:32:25.2526563Z signature.args[2]) | |
2021-07-06T06:32:25.2527117Z return impl(self.builder, (target, inst.index, value)) | |
2021-07-06T06:32:25.2527589Z | |
2021-07-06T06:32:25.2528006Z elif isinstance(inst, ir.Print): | |
2021-07-06T06:32:25.2528464Z self.lower_print(inst) | |
2021-07-06T06:32:25.2528861Z | |
2021-07-06T06:32:25.2529689Z elif isinstance(inst, ir.SetItem): | |
2021-07-06T06:32:25.2530697Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2531231Z assert signature is not None | |
2021-07-06T06:32:25.2531770Z return self.lower_setitem(inst.target, inst.index, inst.value, | |
2021-07-06T06:32:25.2532291Z signature) | |
2021-07-06T06:32:25.2532715Z | |
2021-07-06T06:32:25.2533129Z elif isinstance(inst, ir.StoreMap): | |
2021-07-06T06:32:25.2533640Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2534104Z assert signature is not None | |
2021-07-06T06:32:25.2562435Z return self.lower_setitem(inst.dct, inst.key, inst.value, signature) | |
2021-07-06T06:32:25.2562836Z | |
2021-07-06T06:32:25.2563152Z elif isinstance(inst, ir.DelItem): | |
2021-07-06T06:32:25.2563547Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.2563909Z index = self.loadvar(inst.index.name) | |
2021-07-06T06:32:25.2564212Z | |
2021-07-06T06:32:25.2564500Z targetty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.2564864Z indexty = self.typeof(inst.index.name) | |
2021-07-06T06:32:25.2565165Z | |
2021-07-06T06:32:25.2566272Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2566727Z assert signature is not None | |
2021-07-06T06:32:25.2566998Z | |
2021-07-06T06:32:25.2567274Z op = operator.delitem | |
2021-07-06T06:32:25.2567637Z fnop = self.context.typing_context.resolve_value_type(op) | |
2021-07-06T06:32:25.2568032Z callsig = fnop.get_call_type( | |
2021-07-06T06:32:25.2568414Z self.context.typing_context, signature.args, {}, | |
2021-07-06T06:32:25.2568739Z ) | |
2021-07-06T06:32:25.2569428Z impl = self.context.get_function(fnop, callsig) | |
2021-07-06T06:32:25.2569720Z | |
2021-07-06T06:32:25.2570185Z assert targetty == signature.args[0] | |
2021-07-06T06:32:25.2570568Z index = self.context.cast(self.builder, index, indexty, | |
2021-07-06T06:32:25.2570980Z signature.args[1]) | |
2021-07-06T06:32:25.2571275Z | |
2021-07-06T06:32:25.2571582Z return impl(self.builder, (target, index)) | |
2021-07-06T06:32:25.2571873Z | |
2021-07-06T06:32:25.2572173Z elif isinstance(inst, ir.Del): | |
2021-07-06T06:32:25.2572508Z self.delvar(inst.value) | |
2021-07-06T06:32:25.2572768Z | |
2021-07-06T06:32:25.2573076Z elif isinstance(inst, ir.SetAttr): | |
2021-07-06T06:32:25.2573446Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.2574275Z value = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.2574655Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2574974Z | |
2021-07-06T06:32:25.2575258Z targetty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.2575637Z valuety = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.2575976Z assert signature is not None | |
2021-07-06T06:32:25.2576315Z assert signature.args[0] == targetty | |
2021-07-06T06:32:25.2576712Z impl = self.context.get_setattr(inst.attr, signature) | |
2021-07-06T06:32:25.2577019Z | |
2021-07-06T06:32:25.2577302Z # Convert argument to match | |
2021-07-06T06:32:25.2577670Z value = self.context.cast(self.builder, value, valuety, | |
2021-07-06T06:32:25.2578085Z signature.args[1]) | |
2021-07-06T06:32:25.2578536Z | |
2021-07-06T06:32:25.2578831Z return impl(self.builder, (target, value)) | |
2021-07-06T06:32:25.2579114Z | |
2021-07-06T06:32:25.2579401Z elif isinstance(inst, ir.StaticRaise): | |
2021-07-06T06:32:25.2579770Z self.lower_static_raise(inst) | |
2021-07-06T06:32:25.2580032Z | |
2021-07-06T06:32:25.2580530Z elif isinstance(inst, ir.StaticTryRaise): | |
2021-07-06T06:32:25.2580902Z self.lower_static_try_raise(inst) | |
2021-07-06T06:32:25.2581197Z | |
2021-07-06T06:32:25.2581424Z else: | |
2021-07-06T06:32:25.2581788Z for _class, func in lower_extensions.items(): | |
2021-07-06T06:32:25.2582201Z if isinstance(inst, _class): | |
2021-07-06T06:32:25.2582755Z > func(self, inst) | |
2021-07-06T06:32:25.2582911Z | |
2021-07-06T06:32:25.2583774Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:443: | |
2021-07-06T06:32:25.2584319Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2585073Z | |
2021-07-06T06:32:25.2585440Z lowerer = <numba.core.lowering.Lower object at 0x7f16abaca350> | |
2021-07-06T06:32:25.2587229Z parfor = id=0[LoopNest(index_variable = parfor_index.31, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)>}Var(parfor_index.31, umap_.py:404) | |
2021-07-06T06:32:25.2587782Z | |
2021-07-06T06:32:25.2588098Z def _lower_parfor_parallel(lowerer, parfor): | |
2021-07-06T06:32:25.2588489Z """Lowerer that handles LLVM code generation for parfor. | |
2021-07-06T06:32:25.2588863Z This function lowers a parfor IR node to LLVM. | |
2021-07-06T06:32:25.2589246Z The general approach is as follows: | |
2021-07-06T06:32:25.2589833Z 1) The code from the parfor's init block is lowered normally | |
2021-07-06T06:32:25.2590427Z in the context of the current function. | |
2021-07-06T06:32:25.2590825Z 2) The body of the parfor is transformed into a gufunc function. | |
2021-07-06T06:32:25.2591281Z 3) Code is inserted into the main function that calls do_scheduling | |
2021-07-06T06:32:25.2591716Z to divide the iteration space for each thread, allocates | |
2021-07-06T06:32:25.2592159Z reduction arrays, calls the gufunc function, and then invokes | |
2021-07-06T06:32:25.2593497Z the reduction function across the reduction arrays to produce | |
2021-07-06T06:32:25.2593919Z the final reduction values. | |
2021-07-06T06:32:25.2594198Z """ | |
2021-07-06T06:32:25.2594527Z from numba.np.ufunc.parallel import get_thread_count | |
2021-07-06T06:32:25.2594830Z | |
2021-07-06T06:32:25.2595085Z ensure_parallel_support() | |
2021-07-06T06:32:25.2595438Z typingctx = lowerer.context.typing_context | |
2021-07-06T06:32:25.2596103Z targetctx = lowerer.context | |
2021-07-06T06:32:25.2596819Z # We copy the typemap here because for race condition variable we'll | |
2021-07-06T06:32:25.2597281Z # update their type to array so they can be updated by the gufunc. | |
2021-07-06T06:32:25.2597693Z orig_typemap = lowerer.fndesc.typemap | |
2021-07-06T06:32:25.2598109Z # replace original typemap with copy and restore the original at the end. | |
2021-07-06T06:32:25.2598551Z lowerer.fndesc.typemap = copy.copy(orig_typemap) | |
2021-07-06T06:32:25.2598917Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2599474Z print("lowerer.fndesc", lowerer.fndesc, type(lowerer.fndesc)) | |
2021-07-06T06:32:25.2599841Z typemap = lowerer.fndesc.typemap | |
2021-07-06T06:32:25.2600338Z varmap = lowerer.varmap | |
2021-07-06T06:32:25.2600756Z | |
2021-07-06T06:32:25.2601018Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2601591Z print("_lower_parfor_parallel") | |
2021-07-06T06:32:25.2602053Z parfor.dump() | |
2021-07-06T06:32:25.2602307Z | |
2021-07-06T06:32:25.2602556Z loc = parfor.init_block.loc | |
2021-07-06T06:32:25.2602878Z scope = parfor.init_block.scope | |
2021-07-06T06:32:25.2603313Z | |
2021-07-06T06:32:25.2603588Z # produce instructions for init_block | |
2021-07-06T06:32:25.2603953Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2604354Z print("init_block = ", parfor.init_block, " ", type(parfor.init_block)) | |
2021-07-06T06:32:25.2604806Z for instr in parfor.init_block.body: | |
2021-07-06T06:32:25.2605177Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2605563Z print("lower init_block instr = ", instr) | |
2021-07-06T06:32:25.2605913Z lowerer.lower_inst(instr) | |
2021-07-06T06:32:25.2606194Z | |
2021-07-06T06:32:25.2606470Z for racevar in parfor.races: | |
2021-07-06T06:32:25.2606838Z if racevar not in varmap: | |
2021-07-06T06:32:25.2607177Z rvtyp = typemap[racevar] | |
2021-07-06T06:32:25.2607516Z rv = ir.Var(scope, racevar, loc) | |
2021-07-06T06:32:25.2608709Z lowerer._alloca_var(rv.name, rvtyp) | |
2021-07-06T06:32:25.2609065Z | |
2021-07-06T06:32:25.2609549Z alias_map = {} | |
2021-07-06T06:32:25.2609974Z arg_aliases = {} | |
2021-07-06T06:32:25.2610521Z numba.parfors.parfor.find_potential_aliases_parfor(parfor, parfor.params, typemap, | |
2021-07-06T06:32:25.2611328Z lowerer.func_ir, alias_map, arg_aliases) | |
2021-07-06T06:32:25.2611742Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2612240Z print("alias_map", alias_map) | |
2021-07-06T06:32:25.2616941Z print("arg_aliases", arg_aliases) | |
2021-07-06T06:32:25.2617244Z | |
2021-07-06T06:32:25.2617585Z # run get_parfor_outputs() and get_parfor_reductions() before gufunc creation | |
2021-07-06T06:32:25.2618072Z # since Jumps are modified so CFG of loop_body dict will become invalid | |
2021-07-06T06:32:25.2618463Z assert parfor.params is not None | |
2021-07-06T06:32:25.2618751Z | |
2021-07-06T06:32:25.2619067Z parfor_output_arrays = numba.parfors.parfor.get_parfor_outputs( | |
2021-07-06T06:32:25.2619454Z parfor, parfor.params) | |
2021-07-06T06:32:25.2619844Z parfor_redvars, parfor_reddict = numba.parfors.parfor.get_parfor_reductions( | |
2021-07-06T06:32:25.2620336Z lowerer.func_ir, parfor, parfor.params, lowerer.fndesc.calltypes) | |
2021-07-06T06:32:25.2620731Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2621265Z print("parfor_redvars:", parfor_redvars) | |
2021-07-06T06:32:25.2621669Z print("parfor_reddict:", parfor_reddict) | |
2021-07-06T06:32:25.2621991Z | |
2021-07-06T06:32:25.2622395Z # init reduction array allocation here. | |
2021-07-06T06:32:25.2622732Z nredvars = len(parfor_redvars) | |
2021-07-06T06:32:25.2623041Z redarrs = {} | |
2021-07-06T06:32:25.2623321Z if nredvars > 0: | |
2021-07-06T06:32:25.2623701Z # reduction arrays outer dimension equal to thread count | |
2021-07-06T06:32:25.2624084Z thread_count = get_thread_count() | |
2021-07-06T06:32:25.2624442Z scope = parfor.init_block.scope | |
2021-07-06T06:32:25.2624933Z loc = parfor.init_block.loc | |
2021-07-06T06:32:25.2625344Z pfbdr = ParforLoweringBuilder(lowerer=lowerer, scope=scope, loc=loc) | |
2021-07-06T06:32:25.2625686Z | |
2021-07-06T06:32:25.2625960Z # For each reduction variable... | |
2021-07-06T06:32:25.2626333Z for i in range(nredvars): | |
2021-07-06T06:32:25.2626876Z redvar_typ = lowerer.fndesc.typemap[parfor_redvars[i]] | |
2021-07-06T06:32:25.2627289Z redvar = ir.Var(scope, parfor_redvars[i], loc) | |
2021-07-06T06:32:25.2627677Z redarrvar_typ = redtyp_to_redarraytype(redvar_typ) | |
2021-07-06T06:32:25.2628056Z reddtype = redarrvar_typ.dtype | |
2021-07-06T06:32:25.2628402Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2628847Z print("redvar_typ", redvar_typ, redarrvar_typ, reddtype, types.DType(reddtype)) | |
2021-07-06T06:32:25.2629198Z | |
2021-07-06T06:32:25.2629498Z # If this is reduction over an array, | |
2021-07-06T06:32:25.2630404Z # the reduction array has just one added per-worker dimension. | |
2021-07-06T06:32:25.2631066Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.2631660Z redarrdim = redvar_typ.ndim + 1 | |
2021-07-06T06:32:25.2632010Z else: | |
2021-07-06T06:32:25.2632307Z redarrdim = 1 | |
2021-07-06T06:32:25.2632563Z | |
2021-07-06T06:32:25.2633089Z # Reduction array is created and initialized to the initial reduction value. | |
2021-07-06T06:32:25.2633615Z | |
2021-07-06T06:32:25.2634344Z # First create a var for the numpy empty ufunc. | |
2021-07-06T06:32:25.2634821Z glbl_np_empty = pfbdr.bind_global_function( | |
2021-07-06T06:32:25.2635196Z fobj=np.empty, | |
2021-07-06T06:32:25.2635533Z ftype=get_np_ufunc_typ(np.empty), | |
2021-07-06T06:32:25.2635877Z args=( | |
2021-07-06T06:32:25.2636217Z types.UniTuple(types.intp, redarrdim), | |
2021-07-06T06:32:25.2637350Z types.DType(reddtype), | |
2021-07-06T06:32:25.2638681Z ), | |
2021-07-06T06:32:25.2638945Z ) | |
2021-07-06T06:32:25.2639201Z | |
2021-07-06T06:32:25.2639564Z # Create var for outer dimension size of reduction array equal to number of threads. | |
2021-07-06T06:32:25.2640052Z num_threads_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.2640409Z cval=thread_count, | |
2021-07-06T06:32:25.2640743Z typ=types.intp, | |
2021-07-06T06:32:25.2641757Z name='num_threads', | |
2021-07-06T06:32:25.2642240Z ) | |
2021-07-06T06:32:25.2642466Z | |
2021-07-06T06:32:25.2642736Z size_var_list = [num_threads_var] | |
2021-07-06T06:32:25.2643213Z | |
2021-07-06T06:32:25.2643507Z # If this is a reduction over an array... | |
2021-07-06T06:32:25.2643954Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.2644420Z # Add code to get the shape of the array being reduced over. | |
2021-07-06T06:32:25.2645894Z redshape_var = pfbdr.assign( | |
2021-07-06T06:32:25.2646293Z rhs=ir.Expr.getattr(redvar, "shape", loc), | |
2021-07-06T06:32:25.2646879Z typ=types.UniTuple(types.intp, redvar_typ.ndim), | |
2021-07-06T06:32:25.2647433Z name="redarr_shape", | |
2021-07-06T06:32:25.2647745Z ) | |
2021-07-06T06:32:25.2647973Z | |
2021-07-06T06:32:25.2648345Z # Add the dimension sizes of the array being reduced over to the tuple of sizes pass to empty. | |
2021-07-06T06:32:25.2649015Z for j in range(redvar_typ.ndim): | |
2021-07-06T06:32:25.2649406Z onedimvar = pfbdr.assign( | |
2021-07-06T06:32:25.2650162Z rhs=ir.Expr.static_getitem(redshape_var, j, None, loc), | |
2021-07-06T06:32:25.2650717Z typ=types.intp, | |
2021-07-06T06:32:25.2651244Z name="redshapeonedim", | |
2021-07-06T06:32:25.2651570Z ) | |
2021-07-06T06:32:25.2651914Z size_var_list.append(onedimvar) | |
2021-07-06T06:32:25.2652209Z | |
2021-07-06T06:32:25.2652603Z # Empty call takes tuple of sizes. Create here and fill in outer dimension (num threads). | |
2021-07-06T06:32:25.2653059Z size_var = pfbdr.make_tuple_variable( | |
2021-07-06T06:32:25.2653733Z size_var_list, name='tuple_size_var', | |
2021-07-06T06:32:25.2654069Z ) | |
2021-07-06T06:32:25.2654300Z | |
2021-07-06T06:32:25.2654624Z # Add call to empty passing the size var tuple. | |
2021-07-06T06:32:25.2655037Z empty_call = pfbdr.call(glbl_np_empty, args=[size_var]) | |
2021-07-06T06:32:25.2655374Z | |
2021-07-06T06:32:25.2655644Z redarr_var = pfbdr.assign( | |
2021-07-06T06:32:25.2656040Z rhs=empty_call, typ=redarrvar_typ, name="redarr", | |
2021-07-06T06:32:25.2656376Z ) | |
2021-07-06T06:32:25.2656632Z | |
2021-07-06T06:32:25.2657256Z # Remember mapping of original reduction array to the newly created per-worker reduction array. | |
2021-07-06T06:32:25.2657752Z redarrs[redvar.name] = redarr_var | |
2021-07-06T06:32:25.2658037Z | |
2021-07-06T06:32:25.2658340Z init_val = parfor_reddict[parfor_redvars[i]][0] | |
2021-07-06T06:32:25.2659518Z if init_val is not None: | |
2021-07-06T06:32:25.2659962Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.2660453Z # Create an array of identity values for the reduction. | |
2021-07-06T06:32:25.2660879Z # First, create a variable for np.full. | |
2021-07-06T06:32:25.2661303Z full_func_node = pfbdr.bind_global_function( | |
2021-07-06T06:32:25.2661675Z fobj=np.full, | |
2021-07-06T06:32:25.2662056Z ftype=get_np_ufunc_typ(np.full), | |
2021-07-06T06:32:25.2662568Z args=( | |
2021-07-06T06:32:25.2662962Z types.UniTuple(types.intp, redvar_typ.ndim), | |
2021-07-06T06:32:25.2663351Z reddtype, | |
2021-07-06T06:32:25.2663705Z types.DType(reddtype), | |
2021-07-06T06:32:25.2664058Z ), | |
2021-07-06T06:32:25.2664341Z ) | |
2021-07-06T06:32:25.2664810Z | |
2021-07-06T06:32:25.2665127Z # Then create a var with the identify value. | |
2021-07-06T06:32:25.2665562Z init_val_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.2666366Z cval=init_val, | |
2021-07-06T06:32:25.2667142Z typ=reddtype, | |
2021-07-06T06:32:25.2667498Z name="init_val", | |
2021-07-06T06:32:25.2667826Z ) | |
2021-07-06T06:32:25.2668069Z | |
2021-07-06T06:32:25.2668443Z # Then, call np.full with the shape of the reduction array and the identity value. | |
2021-07-06T06:32:25.2668928Z full_call = pfbdr.call( | |
2021-07-06T06:32:25.2669325Z full_func_node, args=[redshape_var, init_val_var], | |
2021-07-06T06:32:25.2669934Z ) | |
2021-07-06T06:32:25.2670178Z | |
2021-07-06T06:32:25.2670475Z redtoset = pfbdr.assign( | |
2021-07-06T06:32:25.2670818Z rhs=full_call, | |
2021-07-06T06:32:25.2671171Z typ=redvar_typ, | |
2021-07-06T06:32:25.2671508Z name="redtoset", | |
2021-07-06T06:32:25.2671833Z ) | |
2021-07-06T06:32:25.2672123Z else: | |
2021-07-06T06:32:25.2672472Z redtoset = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.2672859Z cval=init_val, | |
2021-07-06T06:32:25.2673190Z typ=reddtype, | |
2021-07-06T06:32:25.2673546Z name="redtoset", | |
2021-07-06T06:32:25.2673860Z ) | |
2021-07-06T06:32:25.2674159Z else: | |
2021-07-06T06:32:25.2674460Z redtoset = redvar | |
2021-07-06T06:32:25.2674744Z | |
2021-07-06T06:32:25.2675059Z if config.DEBUG_ARRAY_OPT_RUNTIME: | |
2021-07-06T06:32:25.2675546Z res_print_str = "res_print1 for redvar " + str(redvar) + ":" | |
2021-07-06T06:32:25.2676057Z strconsttyp = types.StringLiteral(res_print_str) | |
2021-07-06T06:32:25.2676377Z | |
2021-07-06T06:32:25.2676687Z lhs = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.2677053Z cval=res_print_str, | |
2021-07-06T06:32:25.2677459Z typ=strconsttyp, | |
2021-07-06T06:32:25.2677805Z name="str_const", | |
2021-07-06T06:32:25.2678134Z ) | |
2021-07-06T06:32:25.2678377Z | |
2021-07-06T06:32:25.2678698Z res_print = ir.Print(args=[lhs, redvar], | |
2021-07-06T06:32:25.2679109Z vararg=None, loc=loc) | |
2021-07-06T06:32:25.2679544Z lowerer.fndesc.calltypes[res_print] = signature(types.none, | |
2021-07-06T06:32:25.2680036Z typemap[lhs.name], | |
2021-07-06T06:32:25.2680507Z typemap[redvar.name]) | |
2021-07-06T06:32:25.2680959Z print("res_print_redvar", res_print) | |
2021-07-06T06:32:25.2681338Z lowerer.lower_inst(res_print) | |
2021-07-06T06:32:25.2681795Z | |
2021-07-06T06:32:25.2681994Z | |
2021-07-06T06:32:25.2682979Z # For each thread, initialize the per-worker reduction array to the current reduction array value. | |
2021-07-06T06:32:25.2683481Z for j in range(thread_count): | |
2021-07-06T06:32:25.2683888Z index_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.2684410Z cval=j, typ=types.uintp, name="index_var", | |
2021-07-06T06:32:25.2684769Z ) | |
2021-07-06T06:32:25.2685127Z pfbdr.setitem(obj=redarr_var, index=index_var, val=redtoset) | |
2021-07-06T06:32:25.2685484Z | |
2021-07-06T06:32:25.2685819Z # compile parfor body as a separate function to be used with GUFuncWrapper | |
2021-07-06T06:32:25.2686210Z flags = copy.copy(parfor.flags) | |
2021-07-06T06:32:25.2686760Z flags.set('error_model', 'numpy') | |
2021-07-06T06:32:25.2687366Z # Can't get here unless flags.set('auto_parallel', ParallelOptions(True)) | |
2021-07-06T06:32:25.2687998Z index_var_typ = typemap[parfor.loop_nests[0].index_variable.name] | |
2021-07-06T06:32:25.2688420Z # index variables should have the same type, check rest of indices | |
2021-07-06T06:32:25.2688827Z for l in parfor.loop_nests[1:]: | |
2021-07-06T06:32:25.2689199Z assert typemap[l.index_variable.name] == index_var_typ | |
2021-07-06T06:32:25.2690345Z numba.parfors.parfor.sequential_parfor_lowering = True | |
2021-07-06T06:32:25.2690678Z try: | |
2021-07-06T06:32:25.2690941Z (func, | |
2021-07-06T06:32:25.2691350Z func_args, | |
2021-07-06T06:32:25.2691612Z func_sig, | |
2021-07-06T06:32:25.2691899Z redargstartdim, | |
2021-07-06T06:32:25.2692178Z func_arg_types, | |
2021-07-06T06:32:25.2692535Z exp_name_to_tuple_var) = _create_gufunc_for_parfor_body( | |
2021-07-06T06:32:25.2692949Z lowerer, parfor, typemap, typingctx, targetctx, flags, {}, | |
2021-07-06T06:32:25.2693369Z bool(alias_map), index_var_typ, parfor.races) | |
2021-07-06T06:32:25.2693687Z finally: | |
2021-07-06T06:32:25.2694034Z numba.parfors.parfor.sequential_parfor_lowering = False | |
2021-07-06T06:32:25.2694523Z | |
2021-07-06T06:32:25.2694797Z # get the shape signature | |
2021-07-06T06:32:25.2695726Z func_args = ['sched'] + func_args | |
2021-07-06T06:32:25.2696088Z num_reductions = len(parfor_redvars) | |
2021-07-06T06:32:25.2696708Z num_inputs = len(func_args) - len(parfor_output_arrays) - num_reductions | |
2021-07-06T06:32:25.2698062Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2698506Z print("func_args = ", func_args) | |
2021-07-06T06:32:25.2698851Z print("num_inputs = ", num_inputs) | |
2021-07-06T06:32:25.2699241Z print("parfor_outputs = ", parfor_output_arrays) | |
2021-07-06T06:32:25.2699623Z print("parfor_redvars = ", parfor_redvars) | |
2021-07-06T06:32:25.2700015Z print("num_reductions = ", num_reductions) | |
2021-07-06T06:32:25.2700375Z gu_signature = _create_shape_signature( | |
2021-07-06T06:32:25.2700726Z parfor.get_shape_classes, | |
2021-07-06T06:32:25.2701023Z num_inputs, | |
2021-07-06T06:32:25.2701299Z num_reductions, | |
2021-07-06T06:32:25.2701597Z func_args, | |
2021-07-06T06:32:25.2701872Z redargstartdim, | |
2021-07-06T06:32:25.2702179Z func_sig, | |
2021-07-06T06:32:25.2702611Z parfor.races, | |
2021-07-06T06:32:25.2702891Z typemap) | |
2021-07-06T06:32:25.2703181Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2703547Z print("gu_signature = ", gu_signature) | |
2021-07-06T06:32:25.2703820Z | |
2021-07-06T06:32:25.2704136Z # call the func in parallel by wrapping it with ParallelGUFuncBuilder | |
2021-07-06T06:32:25.2704739Z loop_ranges = [(l.start, l.stop, l.step) for l in parfor.loop_nests] | |
2021-07-06T06:32:25.2705136Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2705499Z print("loop_nests = ", parfor.loop_nests) | |
2021-07-06T06:32:25.2705848Z print("loop_ranges = ", loop_ranges) | |
2021-07-06T06:32:25.2706177Z call_parallel_gufunc( | |
2021-07-06T06:32:25.2706444Z lowerer, | |
2021-07-06T06:32:25.2706709Z func, | |
2021-07-06T06:32:25.2706963Z gu_signature, | |
2021-07-06T06:32:25.2707225Z func_sig, | |
2021-07-06T06:32:25.2707659Z func_args, | |
2021-07-06T06:32:25.2707925Z func_arg_types, | |
2021-07-06T06:32:25.2708214Z loop_ranges, | |
2021-07-06T06:32:25.2708482Z parfor_redvars, | |
2021-07-06T06:32:25.2708778Z parfor_reddict, | |
2021-07-06T06:32:25.2709221Z redarrs, | |
2021-07-06T06:32:25.2709515Z parfor.init_block, | |
2021-07-06T06:32:25.2709801Z index_var_typ, | |
2021-07-06T06:32:25.2710078Z parfor.races, | |
2021-07-06T06:32:25.2710388Z > exp_name_to_tuple_var) | |
2021-07-06T06:32:25.2710543Z | |
2021-07-06T06:32:25.2711426Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/parfors/parfor_lowering.py[0m:306: | |
2021-07-06T06:32:25.2711980Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2712211Z | |
2021-07-06T06:32:25.2712526Z lowerer = <numba.core.lowering.Lower object at 0x7f16abaca350> | |
2021-07-06T06:32:25.2713213Z cres = CompileResult(typing_context=<numba.core.typing.context.Context object at 0x7f16c9149250>, target_context=<numba.core....ollection object at 0x7f16aba24810>}, reload_init=[<function _reload_parfors at 0x7f16c92247a0>], referenced_envs=None) | |
2021-07-06T06:32:25.2714203Z gu_signature = ([('b',), ('a',)], []) | |
2021-07-06T06:32:25.2714760Z outer_sig = (array(uint64, 1d, C), array(int32, 1d, C)) -> none | |
2021-07-06T06:32:25.2715391Z expr_args = ['sched', 'rows'], expr_arg_types = [array(int32, 1d, C)] | |
2021-07-06T06:32:25.2715856Z loop_ranges = [(0, Var($28load_attr.11, umap_.py:404), 1)], redvars = [] | |
2021-07-06T06:32:25.2716264Z reddict = {}, redarrdict = {} | |
2021-07-06T06:32:25.2716923Z init_block = <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)> | |
2021-07-06T06:32:25.2717445Z index_var_typ = uint64, races = set(), exp_name_to_tuple_var = {} | |
2021-07-06T06:32:25.2717651Z | |
2021-07-06T06:32:25.2717997Z def call_parallel_gufunc(lowerer, cres, gu_signature, outer_sig, expr_args, expr_arg_types, | |
2021-07-06T06:32:25.2718542Z loop_ranges, redvars, reddict, redarrdict, init_block, index_var_typ, races, | |
2021-07-06T06:32:25.2719020Z exp_name_to_tuple_var): | |
2021-07-06T06:32:25.2719509Z ''' | |
2021-07-06T06:32:25.2719848Z Adds the call to the gufunc function from the main function. | |
2021-07-06T06:32:25.2720325Z ''' | |
2021-07-06T06:32:25.2720606Z context = lowerer.context | |
2021-07-06T06:32:25.2720908Z builder = lowerer.builder | |
2021-07-06T06:32:25.2721184Z | |
2021-07-06T06:32:25.2721492Z from numba.np.ufunc.parallel import (build_gufunc_wrapper, | |
2021-07-06T06:32:25.2721894Z get_thread_count, | |
2021-07-06T06:32:25.2722244Z _launch_threads) | |
2021-07-06T06:32:25.2722553Z | |
2021-07-06T06:32:25.2722825Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2723177Z print("make_parallel_loop") | |
2021-07-06T06:32:25.2723553Z print("outer_sig = ", outer_sig.args, outer_sig.return_type, | |
2021-07-06T06:32:25.2724124Z outer_sig.recvr, outer_sig.pysig) | |
2021-07-06T06:32:25.2724469Z print("loop_ranges = ", loop_ranges) | |
2021-07-06T06:32:25.2724800Z print("expr_args", expr_args) | |
2021-07-06T06:32:25.2725149Z print("expr_arg_types", expr_arg_types) | |
2021-07-06T06:32:25.2725492Z print("gu_signature", gu_signature) | |
2021-07-06T06:32:25.2725775Z | |
2021-07-06T06:32:25.2726029Z # Build the wrapper for GUFunc | |
2021-07-06T06:32:25.2726582Z args, return_type = sigutils.normalize_signature(outer_sig) | |
2021-07-06T06:32:25.2727007Z llvm_func = cres.library.get_function(cres.fndesc.llvm_func_name) | |
2021-07-06T06:32:25.2727390Z sin, sout = gu_signature | |
2021-07-06T06:32:25.2727646Z | |
2021-07-06T06:32:25.2727975Z # These are necessary for build_gufunc_wrapper to find external symbols | |
2021-07-06T06:32:25.2728359Z > _launch_threads() | |
2021-07-06T06:32:25.2728593Z | |
2021-07-06T06:32:25.2729291Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/parfors/parfor_lowering.py[0m:1442: | |
2021-07-06T06:32:25.2729849Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2730079Z | |
2021-07-06T06:32:25.2730348Z def _launch_threads(): | |
2021-07-06T06:32:25.2730688Z if not _backend_init_process_lock: | |
2021-07-06T06:32:25.2731054Z _set_init_process_lock() | |
2021-07-06T06:32:25.2731317Z | |
2021-07-06T06:32:25.2731620Z with _backend_init_process_lock: | |
2021-07-06T06:32:25.2731992Z with _backend_init_thread_lock: | |
2021-07-06T06:32:25.2732341Z global _is_initialized | |
2021-07-06T06:32:25.2732691Z if _is_initialized: | |
2021-07-06T06:32:25.2733006Z return | |
2021-07-06T06:32:25.2733272Z | |
2021-07-06T06:32:25.2733578Z def select_known_backend(backend): | |
2021-07-06T06:32:25.2733937Z """ | |
2021-07-06T06:32:25.2734298Z Loads a specific threading layer backend based on string | |
2021-07-06T06:32:25.2734672Z """ | |
2021-07-06T06:32:25.2735048Z lib = None | |
2021-07-06T06:32:25.2735396Z if backend.startswith("tbb"): | |
2021-07-06T06:32:25.2735776Z try: | |
2021-07-06T06:32:25.2736725Z # check if TBB is present and compatible | |
2021-07-06T06:32:25.2737596Z _check_tbb_version_compatible() | |
2021-07-06T06:32:25.2737952Z # now try and load the backend | |
2021-07-06T06:32:25.2738358Z from numba.np.ufunc import tbbpool as lib | |
2021-07-06T06:32:25.2738742Z except ImportError: | |
2021-07-06T06:32:25.2739089Z pass | |
2021-07-06T06:32:25.2739801Z elif backend.startswith("omp"): | |
2021-07-06T06:32:25.2740237Z # TODO: Check that if MKL is present that it is a version | |
2021-07-06T06:32:25.2740682Z # that understands GNU OMP might be present | |
2021-07-06T06:32:25.2741050Z try: | |
2021-07-06T06:32:25.2741409Z from numba.np.ufunc import omppool as lib | |
2021-07-06T06:32:25.2741793Z except ImportError: | |
2021-07-06T06:32:25.2742324Z pass | |
2021-07-06T06:32:25.2742692Z elif backend.startswith("workqueue"): | |
2021-07-06T06:32:25.2743136Z from numba.np.ufunc import workqueue as lib | |
2021-07-06T06:32:25.2743494Z else: | |
2021-07-06T06:32:25.2743926Z msg = "Unknown value specified for threading layer: %s" | |
2021-07-06T06:32:25.2744375Z raise ValueError(msg % backend) | |
2021-07-06T06:32:25.2749843Z return lib | |
2021-07-06T06:32:25.2750120Z | |
2021-07-06T06:32:25.2750449Z def select_from_backends(backends): | |
2021-07-06T06:32:25.2750807Z """ | |
2021-07-06T06:32:25.2751170Z Selects from presented backends and returns the first working | |
2021-07-06T06:32:25.2751569Z """ | |
2021-07-06T06:32:25.2751851Z lib = None | |
2021-07-06T06:32:25.2752209Z for backend in backends: | |
2021-07-06T06:32:25.2752598Z lib = select_known_backend(backend) | |
2021-07-06T06:32:25.2753002Z if lib is not None: | |
2021-07-06T06:32:25.2753347Z break | |
2021-07-06T06:32:25.2753668Z else: | |
2021-07-06T06:32:25.2754677Z backend = '' | |
2021-07-06T06:32:25.2755091Z return lib, backend | |
2021-07-06T06:32:25.2755384Z | |
2021-07-06T06:32:25.2755674Z t = str(config.THREADING_LAYER).lower() | |
2021-07-06T06:32:25.2756368Z namedbackends = ['tbb', 'omp', 'workqueue'] | |
2021-07-06T06:32:25.2756685Z | |
2021-07-06T06:32:25.2757151Z lib = None | |
2021-07-06T06:32:25.2757449Z err_helpers = dict() | |
2021-07-06T06:32:25.2758093Z err_helpers['TBB'] = ("Intel TBB is required, try:\n" | |
2021-07-06T06:32:25.2758562Z "$ conda/pip install tbb") | |
2021-07-06T06:32:25.2759241Z err_helpers['OSX_OMP'] = ("Intel OpenMP is required, try:\n" | |
2021-07-06T06:32:25.2759934Z "$ conda/pip install intel-openmp") | |
2021-07-06T06:32:25.2760492Z requirements = [] | |
2021-07-06T06:32:25.2760742Z | |
2021-07-06T06:32:25.2761031Z def raise_with_hint(required): | |
2021-07-06T06:32:25.2761441Z errmsg = "No threading layer could be loaded.\n%s" | |
2021-07-06T06:32:25.2761823Z hintmsg = "HINT:\n%s" | |
2021-07-06T06:32:25.2762555Z if len(required) == 0: | |
2021-07-06T06:32:25.2763041Z hint = '' | |
2021-07-06T06:32:25.2763404Z if len(required) == 1: | |
2021-07-06T06:32:25.2763784Z hint = hintmsg % err_helpers[required[0]] | |
2021-07-06T06:32:25.2764529Z if len(required) > 1: | |
2021-07-06T06:32:25.2766130Z options = '\nOR\n'.join([err_helpers[x] for x in required]) | |
2021-07-06T06:32:25.2767975Z hint = hintmsg % ("One of:\n%s" % options) | |
2021-07-06T06:32:25.2768413Z raise ValueError(errmsg % hint) | |
2021-07-06T06:32:25.2768700Z | |
2021-07-06T06:32:25.2769002Z if t in namedbackends: | |
2021-07-06T06:32:25.2769410Z # Try and load the specific named backend | |
2021-07-06T06:32:25.2769808Z lib = select_known_backend(t) | |
2021-07-06T06:32:25.2770149Z if not lib: | |
2021-07-06T06:32:25.2770559Z # something is missing preventing a valid backend from | |
2021-07-06T06:32:25.2770988Z # loading, set requirements for hinting | |
2021-07-06T06:32:25.2771675Z if t == 'tbb': | |
2021-07-06T06:32:25.2772226Z requirements.append('TBB') | |
2021-07-06T06:32:25.2772827Z elif t == 'omp' and _IS_OSX: | |
2021-07-06T06:32:25.2773901Z requirements.append('OSX_OMP') | |
2021-07-06T06:32:25.2774678Z libname = t | |
2021-07-06T06:32:25.2775384Z elif t in ['threadsafe', 'forksafe', 'safe']: | |
2021-07-06T06:32:25.2775821Z # User wants a specific behaviour... | |
2021-07-06T06:32:25.2776359Z available = ['tbb'] | |
2021-07-06T06:32:25.2776864Z requirements.append('TBB') | |
2021-07-06T06:32:25.2777241Z if t == "safe": | |
2021-07-06T06:32:25.2777645Z # "safe" is TBB, which is fork and threadsafe everywhere | |
2021-07-06T06:32:25.2778037Z pass | |
2021-07-06T06:32:25.2778371Z elif t == "threadsafe": | |
2021-07-06T06:32:25.2778766Z if _IS_OSX: | |
2021-07-06T06:32:25.2779470Z requirements.append('OSX_OMP') | |
2021-07-06T06:32:25.2779875Z # omp is threadsafe everywhere | |
2021-07-06T06:32:25.2780569Z available.append('omp') | |
2021-07-06T06:32:25.2780938Z elif t == "forksafe": | |
2021-07-06T06:32:25.2781378Z # everywhere apart from linux (GNU OpenMP) has a guaranteed | |
2021-07-06T06:32:25.2781849Z # forksafe OpenMP, as OpenMP has better performance, prefer | |
2021-07-06T06:32:25.2782283Z # this to workqueue | |
2021-07-06T06:32:25.2782636Z if not _IS_LINUX: | |
2021-07-06T06:32:25.2783192Z available.append('omp') | |
2021-07-06T06:32:25.2784311Z if _IS_OSX: | |
2021-07-06T06:32:25.2786094Z requirements.append('OSX_OMP') | |
2021-07-06T06:32:25.2786542Z # workqueue is forksafe everywhere | |
2021-07-06T06:32:25.2787353Z available.append('workqueue') | |
2021-07-06T06:32:25.2787734Z else: # unreachable | |
2021-07-06T06:32:25.2788139Z msg = "No threading layer available for purpose %s" | |
2021-07-06T06:32:25.2788556Z raise ValueError(msg % t) | |
2021-07-06T06:32:25.2788907Z # select amongst available | |
2021-07-06T06:32:25.2789302Z lib, libname = select_from_backends(available) | |
2021-07-06T06:32:25.2789852Z elif t == 'default': | |
2021-07-06T06:32:25.2790441Z # If default is supplied, try them in order, tbb, omp, | |
2021-07-06T06:32:25.2790797Z # workqueue | |
2021-07-06T06:32:25.2791164Z lib, libname = select_from_backends(namedbackends) | |
2021-07-06T06:32:25.2791527Z if not lib: | |
2021-07-06T06:32:25.2791882Z # set requirements for hinting | |
2021-07-06T06:32:25.2792411Z requirements.append('TBB') | |
2021-07-06T06:32:25.2793705Z if _IS_OSX: | |
2021-07-06T06:32:25.2794569Z requirements.append('OSX_OMP') | |
2021-07-06T06:32:25.2795306Z else: | |
2021-07-06T06:32:25.2796131Z msg = "The threading layer requested '%s' is unknown to Numba." | |
2021-07-06T06:32:25.2796547Z raise ValueError(msg % t) | |
2021-07-06T06:32:25.2796842Z | |
2021-07-06T06:32:25.2797120Z # No lib found, raise and hint | |
2021-07-06T06:32:25.2797465Z if not lib: | |
2021-07-06T06:32:25.2797800Z > raise_with_hint(requirements) | |
2021-07-06T06:32:25.2797980Z | |
2021-07-06T06:32:25.2798637Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/np/ufunc/parallel.py[0m:499: | |
2021-07-06T06:32:25.2799171Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2799433Z | |
2021-07-06T06:32:25.2801265Z required = ['TBB'] | |
2021-07-06T06:32:25.2801429Z | |
2021-07-06T06:32:25.2802482Z def raise_with_hint(required): | |
2021-07-06T06:32:25.2802880Z errmsg = "No threading layer could be loaded.\n%s" | |
2021-07-06T06:32:25.2804517Z hintmsg = "HINT:\n%s" | |
2021-07-06T06:32:25.2806274Z if len(required) == 0: | |
2021-07-06T06:32:25.2807251Z hint = '' | |
2021-07-06T06:32:25.2807615Z if len(required) == 1: | |
2021-07-06T06:32:25.2807963Z hint = hintmsg % err_helpers[required[0]] | |
2021-07-06T06:32:25.2808328Z if len(required) > 1: | |
2021-07-06T06:32:25.2808904Z options = '\nOR\n'.join([err_helpers[x] for x in required]) | |
2021-07-06T06:32:25.2809977Z hint = hintmsg % ("One of:\n%s" % options) | |
2021-07-06T06:32:25.2810429Z > raise ValueError(errmsg % hint) | |
2021-07-06T06:32:25.2811142Z [1m[31mE ValueError: No threading layer could be loaded.[0m | |
2021-07-06T06:32:25.2811690Z [1m[31mE HINT:[0m | |
2021-07-06T06:32:25.2812230Z [1m[31mE Intel TBB is required, try:[0m | |
2021-07-06T06:32:25.2812792Z [1m[31mE $ conda/pip install tbb[0m | |
2021-07-06T06:32:25.2812975Z | |
2021-07-06T06:32:25.2813641Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/np/ufunc/parallel.py[0m:444: ValueError | |
2021-07-06T06:32:25.2813962Z | |
2021-07-06T06:32:25.2815250Z [33mDuring handling of the above exception, another exception occurred:[0m | |
2021-07-06T06:32:25.2815527Z | |
2021-07-06T06:32:25.2815790Z @pytest.fixture | |
2021-07-06T06:32:25.2816057Z def adatas(): | |
2021-07-06T06:32:25.2816383Z pbmc = sc.datasets.pbmc68k_reduced() | |
2021-07-06T06:32:25.2816689Z n_split = 500 | |
2021-07-06T06:32:25.2817102Z adata_ref = sc.AnnData(pbmc.X[:n_split, :], obs=pbmc.obs.iloc[:n_split]) | |
2021-07-06T06:32:25.2817575Z adata_new = sc.AnnData(pbmc.X[n_split:, :]) | |
2021-07-06T06:32:25.2817906Z | |
2021-07-06T06:32:25.2818153Z sc.pp.pca(adata_ref) | |
2021-07-06T06:32:25.2818594Z > sc.pp.neighbors(adata_ref) | |
2021-07-06T06:32:25.2818768Z | |
2021-07-06T06:32:25.2819443Z [1m[31mscanpy/tests/test_ingest.py[0m:34: | |
2021-07-06T06:32:25.2819881Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2820474Z [1m[31mscanpy/neighbors/__init__.py[0m:147: in neighbors | |
2021-07-06T06:32:25.2820841Z random_state=random_state, | |
2021-07-06T06:32:25.2821372Z [1m[31mscanpy/neighbors/__init__.py[0m:812: in compute_neighbors | |
2021-07-06T06:32:25.2821718Z self.n_neighbors, | |
2021-07-06T06:32:25.2822282Z [1m[31mscanpy/neighbors/__init__.py[0m:398: in _compute_connectivities_umap | |
2021-07-06T06:32:25.2822681Z local_connectivity=local_connectivity, | |
2021-07-06T06:32:25.2823611Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py[0m:568: in fuzzy_simplicial_set | |
2021-07-06T06:32:25.2824118Z knn_indices, knn_dists, sigmas, rhos, return_dists | |
2021-07-06T06:32:25.2825143Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:439: in _compile_for_args | |
2021-07-06T06:32:25.2825775Z raise e | |
2021-07-06T06:32:25.2826823Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:372: in _compile_for_args | |
2021-07-06T06:32:25.2827335Z return_val = self.compile(tuple(argtypes)) | |
2021-07-06T06:32:25.2828075Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:909: in compile | |
2021-07-06T06:32:25.2828576Z cres = self._compiler.compile(args, return_type) | |
2021-07-06T06:32:25.2829320Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:79: in compile | |
2021-07-06T06:32:25.2829829Z status, retval = self._compile_cached(args, return_type) | |
2021-07-06T06:32:25.2830600Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:93: in _compile_cached | |
2021-07-06T06:32:25.2831115Z retval = self._compile_core(args, return_type) | |
2021-07-06T06:32:25.2832407Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:111: in _compile_core | |
2021-07-06T06:32:25.2832913Z pipeline_class=self.pipeline_class) | |
2021-07-06T06:32:25.2834057Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:606: in compile_extra | |
2021-07-06T06:32:25.2834613Z return pipeline.compile_extra(func) | |
2021-07-06T06:32:25.2835452Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:353: in compile_extra | |
2021-07-06T06:32:25.2835939Z return self._compile_bytecode() | |
2021-07-06T06:32:25.2836676Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:415: in _compile_bytecode | |
2021-07-06T06:32:25.2837155Z return self._compile_core() | |
2021-07-06T06:32:25.2837869Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:395: in _compile_core | |
2021-07-06T06:32:25.2838321Z raise e | |
2021-07-06T06:32:25.2839144Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:386: in _compile_core | |
2021-07-06T06:32:25.2839612Z pm.run(self.state) | |
2021-07-06T06:32:25.2840274Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_machinery.py[0m:339: in run | |
2021-07-06T06:32:25.2840928Z raise patched_exception | |
2021-07-06T06:32:25.2842012Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_machinery.py[0m:330: in run | |
2021-07-06T06:32:25.2842585Z self._runPass(idx, pass_inst, state) | |
2021-07-06T06:32:25.2843420Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_lock.py[0m:35: in _acquire_compile_lock | |
2021-07-06T06:32:25.2843937Z return func(*args, **kwargs) | |
2021-07-06T06:32:25.2845668Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_machinery.py[0m:289: in _runPass | |
2021-07-06T06:32:25.2846267Z mutated |= check(pss.run_pass, internal_state) | |
2021-07-06T06:32:25.2847040Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_machinery.py[0m:262: in check | |
2021-07-06T06:32:25.2847548Z mangled = func(compiler_state) | |
2021-07-06T06:32:25.2848248Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/typed_passes.py[0m:463: in run_pass | |
2021-07-06T06:32:25.2848749Z NativeLowering().run_pass(state) | |
2021-07-06T06:32:25.2849606Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/typed_passes.py[0m:384: in run_pass | |
2021-07-06T06:32:25.2850273Z lower.lower() | |
2021-07-06T06:32:25.2851122Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:136: in lower | |
2021-07-06T06:32:25.2851788Z self.lower_normal_function(self.fndesc) | |
2021-07-06T06:32:25.2852682Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:190: in lower_normal_function | |
2021-07-06T06:32:25.2853358Z entry_block_tail = self.lower_function_body() | |
2021-07-06T06:32:25.2854303Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:216: in lower_function_body | |
2021-07-06T06:32:25.2854798Z self.lower_block(block) | |
2021-07-06T06:32:25.2855482Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:230: in lower_block | |
2021-07-06T06:32:25.2855960Z self.lower_inst(inst) | |
2021-07-06T06:32:25.2856580Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/contextlib.py[0m:130: in __exit__ | |
2021-07-06T06:32:25.2857025Z self.gen.throw(type, value, traceback) | |
2021-07-06T06:32:25.2857440Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2857675Z | |
2021-07-06T06:32:25.2858132Z fmt_ = 'lowering "{inst}" at {loc}', args = () | |
2021-07-06T06:32:25.2859232Z kwargs = {'inst': id=0[LoopNest(index_variable = parfor_index.31, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/host...c': Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)} | |
2021-07-06T06:32:25.2860652Z errcls = functools.partial(<class 'numba.core.errors.LoweringError'>, loc=Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)) | |
2021-07-06T06:32:25.2862565Z loc = Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None) | |
2021-07-06T06:32:25.2863854Z newerr = LoweringError('Failed in nopython mode pipeline (step: nopython mode backend)\nNo threading layer could be loaded.\nHI...or_index.31, umap_.py:404)" at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)') | |
2021-07-06T06:32:25.2864801Z tb = None | |
2021-07-06T06:32:25.2864976Z | |
2021-07-06T06:32:25.2865227Z @contextlib.contextmanager | |
2021-07-06T06:32:25.2865577Z def new_error_context(fmt_, *args, **kwargs): | |
2021-07-06T06:32:25.2865926Z """ | |
2021-07-06T06:32:25.2866266Z A contextmanager that prepend contextual information to any exception | |
2021-07-06T06:32:25.2866736Z raised within. If the exception type is not an instance of NumbaError, | |
2021-07-06T06:32:25.2867186Z it will be wrapped into a InternalError. The exception class can be | |
2021-07-06T06:32:25.2867990Z changed by providing a "errcls_" keyword argument with the exception | |
2021-07-06T06:32:25.2868814Z constructor. | |
2021-07-06T06:32:25.2869097Z | |
2021-07-06T06:32:25.2869431Z The first argument is a message that describes the context. It can be a | |
2021-07-06T06:32:25.2869900Z format string. If there are additional arguments, it will be used as | |
2021-07-06T06:32:25.2870712Z ``fmt_.format(*args, **kwargs)`` to produce the final message string. | |
2021-07-06T06:32:25.2871296Z """ | |
2021-07-06T06:32:25.2871913Z errcls = kwargs.pop('errcls_', InternalError) | |
2021-07-06T06:32:25.2872230Z | |
2021-07-06T06:32:25.2872682Z loc = kwargs.get('loc', None) | |
2021-07-06T06:32:25.2873103Z if loc is not None and not loc.filename.startswith(_numba_path): | |
2021-07-06T06:32:25.2873532Z loc_info.update(kwargs) | |
2021-07-06T06:32:25.2873792Z | |
2021-07-06T06:32:25.2874037Z try: | |
2021-07-06T06:32:25.2874291Z yield | |
2021-07-06T06:32:25.2874581Z except NumbaError as e: | |
2021-07-06T06:32:25.2874955Z e.add_context(_format_msg(fmt_, args, kwargs)) | |
2021-07-06T06:32:25.2875272Z raise | |
2021-07-06T06:32:25.2875575Z except Exception as e: | |
2021-07-06T06:32:25.2875955Z newerr = errcls(e).add_context(_format_msg(fmt_, args, kwargs)) | |
2021-07-06T06:32:25.2876419Z tb = sys.exc_info()[2] if numba.core.config.FULL_TRACEBACKS else None | |
2021-07-06T06:32:25.2876924Z > raise newerr.with_traceback(tb) | |
2021-07-06T06:32:25.2877707Z [1m[31mE numba.core.errors.LoweringError: Failed in nopython mode pipeline (step: nopython mode backend)[0m | |
2021-07-06T06:32:25.2878952Z [1m[31mE No threading layer could be loaded.[0m | |
2021-07-06T06:32:25.2879672Z [1m[31mE HINT:[0m | |
2021-07-06T06:32:25.2880229Z [1m[31mE Intel TBB is required, try:[0m | |
2021-07-06T06:32:25.2880804Z [1m[31mE $ conda/pip install tbb[0m | |
2021-07-06T06:32:25.2881275Z [1m[31mE [0m | |
2021-07-06T06:32:25.2882152Z [1m[31mE File "../../../../../opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py", line 404:[0m | |
2021-07-06T06:32:25.2882853Z [1m[31mE def compute_membership_strengths([0m | |
2021-07-06T06:32:25.2883359Z [1m[31mE <source elided>[0m | |
2021-07-06T06:32:25.2884009Z [1m[31mE [0m | |
2021-07-06T06:32:25.2884737Z [1m[31mE rows = np.zeros(knn_indices.size, dtype=np.int32)[0m | |
2021-07-06T06:32:25.2885277Z [1m[31mE ^[0m | |
2021-07-06T06:32:25.2885698Z [1m[31mE [0m | |
2021-07-06T06:32:25.2887257Z [1m[31mE During: lowering "id=0[LoopNest(index_variable = parfor_index.31, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)>}Var(parfor_index.31, umap_.py:404)" at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)[0m | |
2021-07-06T06:32:25.2888046Z | |
2021-07-06T06:32:25.2888708Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/errors.py[0m:751: LoweringError | |
2021-07-06T06:32:25.2889443Z ---------------------------- Captured stderr setup ----------------------------- | |
2021-07-06T06:32:25.2889825Z computing PCA | |
2021-07-06T06:32:25.2890072Z with n_comps=50 | |
2021-07-06T06:32:25.2890366Z finished (0:00:00) | |
2021-07-06T06:32:25.2890647Z computing neighbors | |
2021-07-06T06:32:25.2891083Z using 'X_pca' with n_pcs = 50 | |
2021-07-06T06:32:25.2893288Z [31m[1m_______________________ ERROR at setup of test_neighbors _______________________[0m | |
2021-07-06T06:32:25.2893584Z | |
2021-07-06T06:32:25.2894095Z fmt_ = 'lowering "{inst}" at {loc}', args = () | |
2021-07-06T06:32:25.2895194Z kwargs = {'inst': id=4[LoopNest(index_variable = parfor_index.212, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hos...c': Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)} | |
2021-07-06T06:32:25.2896492Z errcls = functools.partial(<class 'numba.core.errors.LoweringError'>, loc=Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)) | |
2021-07-06T06:32:25.2897442Z loc = Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None) | |
2021-07-06T06:32:25.2898696Z newerr = LoweringError('Failed in nopython mode pipeline (step: nopython mode backend)\nNo threading layer could be loaded.\nHI...r_index.212, umap_.py:404)" at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)') | |
2021-07-06T06:32:25.2899572Z tb = None | |
2021-07-06T06:32:25.2899708Z | |
2021-07-06T06:32:25.2899953Z @contextlib.contextmanager | |
2021-07-06T06:32:25.2900303Z def new_error_context(fmt_, *args, **kwargs): | |
2021-07-06T06:32:25.2900644Z """ | |
2021-07-06T06:32:25.2900983Z A contextmanager that prepend contextual information to any exception | |
2021-07-06T06:32:25.2901453Z raised within. If the exception type is not an instance of NumbaError, | |
2021-07-06T06:32:25.2901902Z it will be wrapped into a InternalError. The exception class can be | |
2021-07-06T06:32:25.2902365Z changed by providing a "errcls_" keyword argument with the exception | |
2021-07-06T06:32:25.2902718Z constructor. | |
2021-07-06T06:32:25.2902973Z | |
2021-07-06T06:32:25.2903311Z The first argument is a message that describes the context. It can be a | |
2021-07-06T06:32:25.2903780Z format string. If there are additional arguments, it will be used as | |
2021-07-06T06:32:25.2904308Z ``fmt_.format(*args, **kwargs)`` to produce the final message string. | |
2021-07-06T06:32:25.2906284Z """ | |
2021-07-06T06:32:25.2907059Z errcls = kwargs.pop('errcls_', InternalError) | |
2021-07-06T06:32:25.2907354Z | |
2021-07-06T06:32:25.2907784Z loc = kwargs.get('loc', None) | |
2021-07-06T06:32:25.2908450Z if loc is not None and not loc.filename.startswith(_numba_path): | |
2021-07-06T06:32:25.2908880Z loc_info.update(kwargs) | |
2021-07-06T06:32:25.2909139Z | |
2021-07-06T06:32:25.2909386Z try: | |
2021-07-06T06:32:25.2909637Z > yield | |
2021-07-06T06:32:25.2909766Z | |
2021-07-06T06:32:25.2910402Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/errors.py[0m:744: | |
2021-07-06T06:32:25.2910925Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2911165Z | |
2021-07-06T06:32:25.2911479Z self = <numba.core.lowering.Lower object at 0x7f16ad673b10> | |
2021-07-06T06:32:25.2912184Z block = <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (401)> | |
2021-07-06T06:32:25.2912485Z | |
2021-07-06T06:32:25.2912756Z def lower_block(self, block): | |
2021-07-06T06:32:25.2913475Z """ | |
2021-07-06T06:32:25.2913768Z Lower the given block. | |
2021-07-06T06:32:25.2914030Z """ | |
2021-07-06T06:32:25.2914310Z self.pre_block(block) | |
2021-07-06T06:32:25.2914618Z for inst in block.body: | |
2021-07-06T06:32:25.2914950Z self.loc = inst.loc | |
2021-07-06T06:32:25.2915300Z defaulterrcls = partial(LoweringError, loc=self.loc) | |
2021-07-06T06:32:25.2915984Z with new_error_context('lowering "{inst}" at {loc}', inst=inst, | |
2021-07-06T06:32:25.2916470Z loc=self.loc, errcls_=defaulterrcls): | |
2021-07-06T06:32:25.2916908Z > self.lower_inst(inst) | |
2021-07-06T06:32:25.2917068Z | |
2021-07-06T06:32:25.2917683Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:230: | |
2021-07-06T06:32:25.2918234Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2918463Z | |
2021-07-06T06:32:25.2919115Z self = <numba.core.lowering.Lower object at 0x7f16ad673b10> | |
2021-07-06T06:32:25.2921693Z inst = id=4[LoopNest(index_variable = parfor_index.212, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)>}Var(parfor_index.212, umap_.py:404) | |
2021-07-06T06:32:25.2922652Z | |
2021-07-06T06:32:25.2923006Z def lower_inst(self, inst): | |
2021-07-06T06:32:25.2923377Z # Set debug location for all subsequent LL instructions | |
2021-07-06T06:32:25.2924103Z self.debuginfo.mark_location(self.builder, self.loc) | |
2021-07-06T06:32:25.2924812Z self.debug_print(str(inst)) | |
2021-07-06T06:32:25.2925138Z if isinstance(inst, ir.Assign): | |
2021-07-06T06:32:25.2926725Z ty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.2927162Z val = self.lower_assign(ty, inst) | |
2021-07-06T06:32:25.2927536Z self.storevar(val, inst.target.name) | |
2021-07-06T06:32:25.2927818Z | |
2021-07-06T06:32:25.2928128Z elif isinstance(inst, ir.Branch): | |
2021-07-06T06:32:25.2928488Z cond = self.loadvar(inst.cond.name) | |
2021-07-06T06:32:25.2928848Z tr = self.blkmap[inst.truebr] | |
2021-07-06T06:32:25.2929179Z fl = self.blkmap[inst.falsebr] | |
2021-07-06T06:32:25.2929450Z | |
2021-07-06T06:32:25.2929751Z condty = self.typeof(inst.cond.name) | |
2021-07-06T06:32:25.2930151Z pred = self.context.cast(self.builder, cond, condty, types.boolean) | |
2021-07-06T06:32:25.2930654Z assert pred.type == Type.int(1), ("cond is not i1: %s" % pred.type) | |
2021-07-06T06:32:25.2931092Z self.builder.cbranch(pred, tr, fl) | |
2021-07-06T06:32:25.2931388Z | |
2021-07-06T06:32:25.2931673Z elif isinstance(inst, ir.Jump): | |
2021-07-06T06:32:25.2932230Z target = self.blkmap[inst.target] | |
2021-07-06T06:32:25.2932564Z self.builder.branch(target) | |
2021-07-06T06:32:25.2932848Z | |
2021-07-06T06:32:25.2933137Z elif isinstance(inst, ir.Return): | |
2021-07-06T06:32:25.2933496Z if self.generator_info: | |
2021-07-06T06:32:25.2933836Z # StopIteration | |
2021-07-06T06:32:25.2934174Z self.genlower.return_from_generator(self) | |
2021-07-06T06:32:25.2934519Z return | |
2021-07-06T06:32:25.2934827Z val = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.2935193Z oty = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.2935521Z ty = self.fndesc.restype | |
2021-07-06T06:32:25.2936298Z if isinstance(ty, types.Optional): | |
2021-07-06T06:32:25.2936673Z # If returning an optional type | |
2021-07-06T06:32:25.2937079Z self.call_conv.return_optional_value(self.builder, ty, oty, val) | |
2021-07-06T06:32:25.2937621Z return | |
2021-07-06T06:32:25.2938068Z assert ty == oty, ( | |
2021-07-06T06:32:25.2938772Z "type '{}' does not match return type '{}'".format(oty, ty)) | |
2021-07-06T06:32:25.2939386Z retval = self.context.get_return_value(self.builder, ty, val) | |
2021-07-06T06:32:25.2940027Z self.call_conv.return_value(self.builder, retval) | |
2021-07-06T06:32:25.2940332Z | |
2021-07-06T06:32:25.2940654Z elif isinstance(inst, ir.StaticSetItem): | |
2021-07-06T06:32:25.2941037Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2941403Z assert signature is not None | |
2021-07-06T06:32:25.2941702Z try: | |
2021-07-06T06:32:25.2942263Z impl = self.context.get_function('static_setitem', signature) | |
2021-07-06T06:32:25.2942701Z except NotImplementedError: | |
2021-07-06T06:32:25.2943101Z return self.lower_setitem(inst.target, inst.index_var, | |
2021-07-06T06:32:25.2943536Z inst.value, signature) | |
2021-07-06T06:32:25.2943876Z else: | |
2021-07-06T06:32:25.2944216Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.2944756Z value = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.2945156Z valuety = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.2945555Z value = self.context.cast(self.builder, value, valuety, | |
2021-07-06T06:32:25.2945987Z signature.args[2]) | |
2021-07-06T06:32:25.2947037Z return impl(self.builder, (target, inst.index, value)) | |
2021-07-06T06:32:25.2947459Z | |
2021-07-06T06:32:25.2947927Z elif isinstance(inst, ir.Print): | |
2021-07-06T06:32:25.2948253Z self.lower_print(inst) | |
2021-07-06T06:32:25.2948679Z | |
2021-07-06T06:32:25.2949111Z elif isinstance(inst, ir.SetItem): | |
2021-07-06T06:32:25.2949477Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2949797Z assert signature is not None | |
2021-07-06T06:32:25.2950367Z return self.lower_setitem(inst.target, inst.index, inst.value, | |
2021-07-06T06:32:25.2950751Z signature) | |
2021-07-06T06:32:25.2951040Z | |
2021-07-06T06:32:25.2951324Z elif isinstance(inst, ir.StoreMap): | |
2021-07-06T06:32:25.2951700Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2952033Z assert signature is not None | |
2021-07-06T06:32:25.2952406Z return self.lower_setitem(inst.dct, inst.key, inst.value, signature) | |
2021-07-06T06:32:25.2952747Z | |
2021-07-06T06:32:25.2953028Z elif isinstance(inst, ir.DelItem): | |
2021-07-06T06:32:25.2953400Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.2954155Z index = self.loadvar(inst.index.name) | |
2021-07-06T06:32:25.2954483Z | |
2021-07-06T06:32:25.2954759Z targetty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.2955132Z indexty = self.typeof(inst.index.name) | |
2021-07-06T06:32:25.2955555Z | |
2021-07-06T06:32:25.2955829Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2957084Z assert signature is not None | |
2021-07-06T06:32:25.2957532Z | |
2021-07-06T06:32:25.2957973Z op = operator.delitem | |
2021-07-06T06:32:25.2958335Z fnop = self.context.typing_context.resolve_value_type(op) | |
2021-07-06T06:32:25.2959323Z callsig = fnop.get_call_type( | |
2021-07-06T06:32:25.2959932Z self.context.typing_context, signature.args, {}, | |
2021-07-06T06:32:25.2960277Z ) | |
2021-07-06T06:32:25.2960610Z impl = self.context.get_function(fnop, callsig) | |
2021-07-06T06:32:25.2960929Z | |
2021-07-06T06:32:25.2961209Z assert targetty == signature.args[0] | |
2021-07-06T06:32:25.2961591Z index = self.context.cast(self.builder, index, indexty, | |
2021-07-06T06:32:25.2962018Z signature.args[1]) | |
2021-07-06T06:32:25.2962311Z | |
2021-07-06T06:32:25.2962623Z return impl(self.builder, (target, index)) | |
2021-07-06T06:32:25.2962914Z | |
2021-07-06T06:32:25.2963213Z elif isinstance(inst, ir.Del): | |
2021-07-06T06:32:25.2963547Z self.delvar(inst.value) | |
2021-07-06T06:32:25.2963824Z | |
2021-07-06T06:32:25.2964112Z elif isinstance(inst, ir.SetAttr): | |
2021-07-06T06:32:25.2964480Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.2964855Z value = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.2965209Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.2965509Z | |
2021-07-06T06:32:25.2966127Z targetty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.2966508Z valuety = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.2967010Z assert signature is not None | |
2021-07-06T06:32:25.2967392Z assert signature.args[0] == targetty | |
2021-07-06T06:32:25.2967756Z impl = self.context.get_setattr(inst.attr, signature) | |
2021-07-06T06:32:25.2968424Z | |
2021-07-06T06:32:25.2968857Z # Convert argument to match | |
2021-07-06T06:32:25.2969948Z value = self.context.cast(self.builder, value, valuety, | |
2021-07-06T06:32:25.2970390Z signature.args[1]) | |
2021-07-06T06:32:25.2970683Z | |
2021-07-06T06:32:25.2970990Z return impl(self.builder, (target, value)) | |
2021-07-06T06:32:25.2971279Z | |
2021-07-06T06:32:25.2971596Z elif isinstance(inst, ir.StaticRaise): | |
2021-07-06T06:32:25.2971956Z self.lower_static_raise(inst) | |
2021-07-06T06:32:25.2972243Z | |
2021-07-06T06:32:25.2972547Z elif isinstance(inst, ir.StaticTryRaise): | |
2021-07-06T06:32:25.2972919Z self.lower_static_try_raise(inst) | |
2021-07-06T06:32:25.2973215Z | |
2021-07-06T06:32:25.2973443Z else: | |
2021-07-06T06:32:25.2973965Z for _class, func in lower_extensions.items(): | |
2021-07-06T06:32:25.2974378Z if isinstance(inst, _class): | |
2021-07-06T06:32:25.2974755Z > func(self, inst) | |
2021-07-06T06:32:25.2974913Z | |
2021-07-06T06:32:25.2975667Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:443: | |
2021-07-06T06:32:25.2976222Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.2976452Z | |
2021-07-06T06:32:25.2976744Z lowerer = <numba.core.lowering.Lower object at 0x7f16ad673b10> | |
2021-07-06T06:32:25.2978840Z parfor = id=4[LoopNest(index_variable = parfor_index.212, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)>}Var(parfor_index.212, umap_.py:404) | |
2021-07-06T06:32:25.2979427Z | |
2021-07-06T06:32:25.2979795Z def _lower_parfor_parallel(lowerer, parfor): | |
2021-07-06T06:32:25.2980228Z """Lowerer that handles LLVM code generation for parfor. | |
2021-07-06T06:32:25.2980637Z This function lowers a parfor IR node to LLVM. | |
2021-07-06T06:32:25.2981169Z The general approach is as follows: | |
2021-07-06T06:32:25.2981826Z 1) The code from the parfor's init block is lowered normally | |
2021-07-06T06:32:25.2982228Z in the context of the current function. | |
2021-07-06T06:32:25.2982634Z 2) The body of the parfor is transformed into a gufunc function. | |
2021-07-06T06:32:25.2983139Z 3) Code is inserted into the main function that calls do_scheduling | |
2021-07-06T06:32:25.2983565Z to divide the iteration space for each thread, allocates | |
2021-07-06T06:32:25.2984004Z reduction arrays, calls the gufunc function, and then invokes | |
2021-07-06T06:32:25.2984435Z the reduction function across the reduction arrays to produce | |
2021-07-06T06:32:25.2985065Z the final reduction values. | |
2021-07-06T06:32:25.2985346Z """ | |
2021-07-06T06:32:25.2985685Z from numba.np.ufunc.parallel import get_thread_count | |
2021-07-06T06:32:25.2985989Z | |
2021-07-06T06:32:25.2986261Z ensure_parallel_support() | |
2021-07-06T06:32:25.2986598Z typingctx = lowerer.context.typing_context | |
2021-07-06T06:32:25.2986933Z targetctx = lowerer.context | |
2021-07-06T06:32:25.2987569Z # We copy the typemap here because for race condition variable we'll | |
2021-07-06T06:32:25.2988470Z # update their type to array so they can be updated by the gufunc. | |
2021-07-06T06:32:25.2989279Z orig_typemap = lowerer.fndesc.typemap | |
2021-07-06T06:32:25.2989714Z # replace original typemap with copy and restore the original at the end. | |
2021-07-06T06:32:25.2990159Z lowerer.fndesc.typemap = copy.copy(orig_typemap) | |
2021-07-06T06:32:25.2990520Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2990926Z print("lowerer.fndesc", lowerer.fndesc, type(lowerer.fndesc)) | |
2021-07-06T06:32:25.2991306Z typemap = lowerer.fndesc.typemap | |
2021-07-06T06:32:25.2991986Z varmap = lowerer.varmap | |
2021-07-06T06:32:25.2992316Z | |
2021-07-06T06:32:25.2992616Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2992968Z print("_lower_parfor_parallel") | |
2021-07-06T06:32:25.2993276Z parfor.dump() | |
2021-07-06T06:32:25.2993539Z | |
2021-07-06T06:32:25.2993799Z loc = parfor.init_block.loc | |
2021-07-06T06:32:25.2994135Z scope = parfor.init_block.scope | |
2021-07-06T06:32:25.2994401Z | |
2021-07-06T06:32:25.2994694Z # produce instructions for init_block | |
2021-07-06T06:32:25.2995036Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2995457Z print("init_block = ", parfor.init_block, " ", type(parfor.init_block)) | |
2021-07-06T06:32:25.2995884Z for instr in parfor.init_block.body: | |
2021-07-06T06:32:25.2996253Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.2996638Z print("lower init_block instr = ", instr) | |
2021-07-06T06:32:25.2997150Z lowerer.lower_inst(instr) | |
2021-07-06T06:32:25.2997432Z | |
2021-07-06T06:32:25.2997708Z for racevar in parfor.races: | |
2021-07-06T06:32:25.2998078Z if racevar not in varmap: | |
2021-07-06T06:32:25.2998424Z rvtyp = typemap[racevar] | |
2021-07-06T06:32:25.2998781Z rv = ir.Var(scope, racevar, loc) | |
2021-07-06T06:32:25.2999137Z lowerer._alloca_var(rv.name, rvtyp) | |
2021-07-06T06:32:25.2999597Z | |
2021-07-06T06:32:25.2999826Z alias_map = {} | |
2021-07-06T06:32:25.3000087Z arg_aliases = {} | |
2021-07-06T06:32:25.3000629Z numba.parfors.parfor.find_potential_aliases_parfor(parfor, parfor.params, typemap, | |
2021-07-06T06:32:25.3001074Z lowerer.func_ir, alias_map, arg_aliases) | |
2021-07-06T06:32:25.3001467Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3001779Z print("alias_map", alias_map) | |
2021-07-06T06:32:25.3002285Z print("arg_aliases", arg_aliases) | |
2021-07-06T06:32:25.3002813Z | |
2021-07-06T06:32:25.3003169Z # run get_parfor_outputs() and get_parfor_reductions() before gufunc creation | |
2021-07-06T06:32:25.3003634Z # since Jumps are modified so CFG of loop_body dict will become invalid | |
2021-07-06T06:32:25.3004130Z assert parfor.params is not None | |
2021-07-06T06:32:25.3004400Z | |
2021-07-06T06:32:25.3004716Z parfor_output_arrays = numba.parfors.parfor.get_parfor_outputs( | |
2021-07-06T06:32:25.3005102Z parfor, parfor.params) | |
2021-07-06T06:32:25.3005488Z parfor_redvars, parfor_reddict = numba.parfors.parfor.get_parfor_reductions( | |
2021-07-06T06:32:25.3005962Z lowerer.func_ir, parfor, parfor.params, lowerer.fndesc.calltypes) | |
2021-07-06T06:32:25.3006355Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3006742Z print("parfor_redvars:", parfor_redvars) | |
2021-07-06T06:32:25.3007142Z print("parfor_reddict:", parfor_reddict) | |
2021-07-06T06:32:25.3007464Z | |
2021-07-06T06:32:25.3007747Z # init reduction array allocation here. | |
2021-07-06T06:32:25.3008099Z nredvars = len(parfor_redvars) | |
2021-07-06T06:32:25.3008391Z redarrs = {} | |
2021-07-06T06:32:25.3008676Z if nredvars > 0: | |
2021-07-06T06:32:25.3009054Z # reduction arrays outer dimension equal to thread count | |
2021-07-06T06:32:25.3009747Z thread_count = get_thread_count() | |
2021-07-06T06:32:25.3010080Z scope = parfor.init_block.scope | |
2021-07-06T06:32:25.3010386Z loc = parfor.init_block.loc | |
2021-07-06T06:32:25.3010766Z pfbdr = ParforLoweringBuilder(lowerer=lowerer, scope=scope, loc=loc) | |
2021-07-06T06:32:25.3011075Z | |
2021-07-06T06:32:25.3011527Z # For each reduction variable... | |
2021-07-06T06:32:25.3011861Z for i in range(nredvars): | |
2021-07-06T06:32:25.3012250Z redvar_typ = lowerer.fndesc.typemap[parfor_redvars[i]] | |
2021-07-06T06:32:25.3012647Z redvar = ir.Var(scope, parfor_redvars[i], loc) | |
2021-07-06T06:32:25.3013040Z redarrvar_typ = redtyp_to_redarraytype(redvar_typ) | |
2021-07-06T06:32:25.3013423Z reddtype = redarrvar_typ.dtype | |
2021-07-06T06:32:25.3013772Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3014216Z print("redvar_typ", redvar_typ, redarrvar_typ, reddtype, types.DType(reddtype)) | |
2021-07-06T06:32:25.3014567Z | |
2021-07-06T06:32:25.3014861Z # If this is reduction over an array, | |
2021-07-06T06:32:25.3016179Z # the reduction array has just one added per-worker dimension. | |
2021-07-06T06:32:25.3016679Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.3017096Z redarrdim = redvar_typ.ndim + 1 | |
2021-07-06T06:32:25.3017492Z else: | |
2021-07-06T06:32:25.3017787Z redarrdim = 1 | |
2021-07-06T06:32:25.3018060Z | |
2021-07-06T06:32:25.3018410Z # Reduction array is created and initialized to the initial reduction value. | |
2021-07-06T06:32:25.3018863Z | |
2021-07-06T06:32:25.3019186Z # First create a var for the numpy empty ufunc. | |
2021-07-06T06:32:25.3019581Z glbl_np_empty = pfbdr.bind_global_function( | |
2021-07-06T06:32:25.3019952Z fobj=np.empty, | |
2021-07-06T06:32:25.3020438Z ftype=get_np_ufunc_typ(np.empty), | |
2021-07-06T06:32:25.3020953Z args=( | |
2021-07-06T06:32:25.3021294Z types.UniTuple(types.intp, redarrdim), | |
2021-07-06T06:32:25.3021682Z types.DType(reddtype), | |
2021-07-06T06:32:25.3021988Z ), | |
2021-07-06T06:32:25.3022248Z ) | |
2021-07-06T06:32:25.3022498Z | |
2021-07-06T06:32:25.3022860Z # Create var for outer dimension size of reduction array equal to number of threads. | |
2021-07-06T06:32:25.3023335Z num_threads_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3023693Z cval=thread_count, | |
2021-07-06T06:32:25.3024029Z typ=types.intp, | |
2021-07-06T06:32:25.3025079Z name='num_threads', | |
2021-07-06T06:32:25.3026266Z ) | |
2021-07-06T06:32:25.3026646Z | |
2021-07-06T06:32:25.3026948Z size_var_list = [num_threads_var] | |
2021-07-06T06:32:25.3027231Z | |
2021-07-06T06:32:25.3027525Z # If this is a reduction over an array... | |
2021-07-06T06:32:25.3028328Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.3028932Z # Add code to get the shape of the array being reduced over. | |
2021-07-06T06:32:25.3029342Z redshape_var = pfbdr.assign( | |
2021-07-06T06:32:25.3029709Z rhs=ir.Expr.getattr(redvar, "shape", loc), | |
2021-07-06T06:32:25.3030131Z typ=types.UniTuple(types.intp, redvar_typ.ndim), | |
2021-07-06T06:32:25.3030502Z name="redarr_shape", | |
2021-07-06T06:32:25.3031021Z ) | |
2021-07-06T06:32:25.3031267Z | |
2021-07-06T06:32:25.3032070Z # Add the dimension sizes of the array being reduced over to the tuple of sizes pass to empty. | |
2021-07-06T06:32:25.3032573Z for j in range(redvar_typ.ndim): | |
2021-07-06T06:32:25.3032958Z onedimvar = pfbdr.assign( | |
2021-07-06T06:32:25.3033385Z rhs=ir.Expr.static_getitem(redshape_var, j, None, loc), | |
2021-07-06T06:32:25.3033785Z typ=types.intp, | |
2021-07-06T06:32:25.3034151Z name="redshapeonedim", | |
2021-07-06T06:32:25.3034469Z ) | |
2021-07-06T06:32:25.3034814Z size_var_list.append(onedimvar) | |
2021-07-06T06:32:25.3035105Z | |
2021-07-06T06:32:25.3035496Z # Empty call takes tuple of sizes. Create here and fill in outer dimension (num threads). | |
2021-07-06T06:32:25.3035953Z size_var = pfbdr.make_tuple_variable( | |
2021-07-06T06:32:25.3036629Z size_var_list, name='tuple_size_var', | |
2021-07-06T06:32:25.3036966Z ) | |
2021-07-06T06:32:25.3037216Z | |
2021-07-06T06:32:25.3037521Z # Add call to empty passing the size var tuple. | |
2021-07-06T06:32:25.3037940Z empty_call = pfbdr.call(glbl_np_empty, args=[size_var]) | |
2021-07-06T06:32:25.3038300Z | |
2021-07-06T06:32:25.3038569Z redarr_var = pfbdr.assign( | |
2021-07-06T06:32:25.3038965Z rhs=empty_call, typ=redarrvar_typ, name="redarr", | |
2021-07-06T06:32:25.3039302Z ) | |
2021-07-06T06:32:25.3039550Z | |
2021-07-06T06:32:25.3040166Z # Remember mapping of original reduction array to the newly created per-worker reduction array. | |
2021-07-06T06:32:25.3040656Z redarrs[redvar.name] = redarr_var | |
2021-07-06T06:32:25.3040940Z | |
2021-07-06T06:32:25.3041393Z init_val = parfor_reddict[parfor_redvars[i]][0] | |
2021-07-06T06:32:25.3041781Z if init_val is not None: | |
2021-07-06T06:32:25.3042295Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.3042769Z # Create an array of identity values for the reduction. | |
2021-07-06T06:32:25.3043187Z # First, create a variable for np.full. | |
2021-07-06T06:32:25.3043596Z full_func_node = pfbdr.bind_global_function( | |
2021-07-06T06:32:25.3043955Z fobj=np.full, | |
2021-07-06T06:32:25.3044325Z ftype=get_np_ufunc_typ(np.full), | |
2021-07-06T06:32:25.3044661Z args=( | |
2021-07-06T06:32:25.3045038Z types.UniTuple(types.intp, redvar_typ.ndim), | |
2021-07-06T06:32:25.3045411Z reddtype, | |
2021-07-06T06:32:25.3045768Z types.DType(reddtype), | |
2021-07-06T06:32:25.3046290Z ), | |
2021-07-06T06:32:25.3046595Z ) | |
2021-07-06T06:32:25.3046846Z | |
2021-07-06T06:32:25.3047157Z # Then create a var with the identify value. | |
2021-07-06T06:32:25.3047589Z init_val_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3048030Z cval=init_val, | |
2021-07-06T06:32:25.3048381Z typ=reddtype, | |
2021-07-06T06:32:25.3048717Z name="init_val", | |
2021-07-06T06:32:25.3049043Z ) | |
2021-07-06T06:32:25.3049520Z | |
2021-07-06T06:32:25.3049896Z # Then, call np.full with the shape of the reduction array and the identity value. | |
2021-07-06T06:32:25.3050378Z full_call = pfbdr.call( | |
2021-07-06T06:32:25.3050766Z full_func_node, args=[redshape_var, init_val_var], | |
2021-07-06T06:32:25.3051135Z ) | |
2021-07-06T06:32:25.3051370Z | |
2021-07-06T06:32:25.3051833Z redtoset = pfbdr.assign( | |
2021-07-06T06:32:25.3052181Z rhs=full_call, | |
2021-07-06T06:32:25.3052533Z typ=redvar_typ, | |
2021-07-06T06:32:25.3052868Z name="redtoset", | |
2021-07-06T06:32:25.3053199Z ) | |
2021-07-06T06:32:25.3053487Z else: | |
2021-07-06T06:32:25.3053850Z redtoset = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3054214Z cval=init_val, | |
2021-07-06T06:32:25.3054543Z typ=reddtype, | |
2021-07-06T06:32:25.3054893Z name="redtoset", | |
2021-07-06T06:32:25.3055201Z ) | |
2021-07-06T06:32:25.3055654Z else: | |
2021-07-06T06:32:25.3055944Z redtoset = redvar | |
2021-07-06T06:32:25.3056214Z | |
2021-07-06T06:32:25.3056516Z if config.DEBUG_ARRAY_OPT_RUNTIME: | |
2021-07-06T06:32:25.3057003Z res_print_str = "res_print1 for redvar " + str(redvar) + ":" | |
2021-07-06T06:32:25.3057483Z strconsttyp = types.StringLiteral(res_print_str) | |
2021-07-06T06:32:25.3057811Z | |
2021-07-06T06:32:25.3058090Z lhs = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3058444Z cval=res_print_str, | |
2021-07-06T06:32:25.3058792Z typ=strconsttyp, | |
2021-07-06T06:32:25.3059291Z name="str_const", | |
2021-07-06T06:32:25.3059596Z ) | |
2021-07-06T06:32:25.3059820Z | |
2021-07-06T06:32:25.3060122Z res_print = ir.Print(args=[lhs, redvar], | |
2021-07-06T06:32:25.3060499Z vararg=None, loc=loc) | |
2021-07-06T06:32:25.3060921Z lowerer.fndesc.calltypes[res_print] = signature(types.none, | |
2021-07-06T06:32:25.3061353Z typemap[lhs.name], | |
2021-07-06T06:32:25.3061808Z typemap[redvar.name]) | |
2021-07-06T06:32:25.3062506Z print("res_print_redvar", res_print) | |
2021-07-06T06:32:25.3063088Z lowerer.lower_inst(res_print) | |
2021-07-06T06:32:25.3063362Z | |
2021-07-06T06:32:25.3063554Z | |
2021-07-06T06:32:25.3064190Z # For each thread, initialize the per-worker reduction array to the current reduction array value. | |
2021-07-06T06:32:25.3065384Z for j in range(thread_count): | |
2021-07-06T06:32:25.3065946Z index_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3066317Z cval=j, typ=types.uintp, name="index_var", | |
2021-07-06T06:32:25.3066649Z ) | |
2021-07-06T06:32:25.3067344Z pfbdr.setitem(obj=redarr_var, index=index_var, val=redtoset) | |
2021-07-06T06:32:25.3067697Z | |
2021-07-06T06:32:25.3068032Z # compile parfor body as a separate function to be used with GUFuncWrapper | |
2021-07-06T06:32:25.3068450Z flags = copy.copy(parfor.flags) | |
2021-07-06T06:32:25.3068984Z flags.set('error_model', 'numpy') | |
2021-07-06T06:32:25.3069584Z # Can't get here unless flags.set('auto_parallel', ParallelOptions(True)) | |
2021-07-06T06:32:25.3071334Z index_var_typ = typemap[parfor.loop_nests[0].index_variable.name] | |
2021-07-06T06:32:25.3071791Z # index variables should have the same type, check rest of indices | |
2021-07-06T06:32:25.3072218Z for l in parfor.loop_nests[1:]: | |
2021-07-06T06:32:25.3072605Z assert typemap[l.index_variable.name] == index_var_typ | |
2021-07-06T06:32:25.3073026Z numba.parfors.parfor.sequential_parfor_lowering = True | |
2021-07-06T06:32:25.3073350Z try: | |
2021-07-06T06:32:25.3073619Z (func, | |
2021-07-06T06:32:25.3073883Z func_args, | |
2021-07-06T06:32:25.3074170Z func_sig, | |
2021-07-06T06:32:25.3074448Z redargstartdim, | |
2021-07-06T06:32:25.3074734Z func_arg_types, | |
2021-07-06T06:32:25.3075121Z exp_name_to_tuple_var) = _create_gufunc_for_parfor_body( | |
2021-07-06T06:32:25.3075547Z lowerer, parfor, typemap, typingctx, targetctx, flags, {}, | |
2021-07-06T06:32:25.3075986Z bool(alias_map), index_var_typ, parfor.races) | |
2021-07-06T06:32:25.3076474Z finally: | |
2021-07-06T06:32:25.3076821Z numba.parfors.parfor.sequential_parfor_lowering = False | |
2021-07-06T06:32:25.3077121Z | |
2021-07-06T06:32:25.3077386Z # get the shape signature | |
2021-07-06T06:32:25.3077957Z func_args = ['sched'] + func_args | |
2021-07-06T06:32:25.3078315Z num_reductions = len(parfor_redvars) | |
2021-07-06T06:32:25.3078892Z num_inputs = len(func_args) - len(parfor_output_arrays) - num_reductions | |
2021-07-06T06:32:25.3079287Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3079636Z print("func_args = ", func_args) | |
2021-07-06T06:32:25.3079966Z print("num_inputs = ", num_inputs) | |
2021-07-06T06:32:25.3081383Z print("parfor_outputs = ", parfor_output_arrays) | |
2021-07-06T06:32:25.3081800Z print("parfor_redvars = ", parfor_redvars) | |
2021-07-06T06:32:25.3082193Z print("num_reductions = ", num_reductions) | |
2021-07-06T06:32:25.3082557Z gu_signature = _create_shape_signature( | |
2021-07-06T06:32:25.3082911Z parfor.get_shape_classes, | |
2021-07-06T06:32:25.3083962Z num_inputs, | |
2021-07-06T06:32:25.3084282Z num_reductions, | |
2021-07-06T06:32:25.3084561Z func_args, | |
2021-07-06T06:32:25.3084838Z redargstartdim, | |
2021-07-06T06:32:25.3085132Z func_sig, | |
2021-07-06T06:32:25.3085403Z parfor.races, | |
2021-07-06T06:32:25.3085690Z typemap) | |
2021-07-06T06:32:25.3085991Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3086359Z print("gu_signature = ", gu_signature) | |
2021-07-06T06:32:25.3086645Z | |
2021-07-06T06:32:25.3086989Z # call the func in parallel by wrapping it with ParallelGUFuncBuilder | |
2021-07-06T06:32:25.3087608Z loop_ranges = [(l.start, l.stop, l.step) for l in parfor.loop_nests] | |
2021-07-06T06:32:25.3088000Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3088381Z print("loop_nests = ", parfor.loop_nests) | |
2021-07-06T06:32:25.3088741Z print("loop_ranges = ", loop_ranges) | |
2021-07-06T06:32:25.3089080Z call_parallel_gufunc( | |
2021-07-06T06:32:25.3089353Z lowerer, | |
2021-07-06T06:32:25.3089629Z func, | |
2021-07-06T06:32:25.3089893Z gu_signature, | |
2021-07-06T06:32:25.3090181Z func_sig, | |
2021-07-06T06:32:25.3090801Z func_args, | |
2021-07-06T06:32:25.3091078Z func_arg_types, | |
2021-07-06T06:32:25.3091375Z loop_ranges, | |
2021-07-06T06:32:25.3091652Z parfor_redvars, | |
2021-07-06T06:32:25.3091953Z parfor_reddict, | |
2021-07-06T06:32:25.3092223Z redarrs, | |
2021-07-06T06:32:25.3092520Z parfor.init_block, | |
2021-07-06T06:32:25.3092808Z index_var_typ, | |
2021-07-06T06:32:25.3093108Z parfor.races, | |
2021-07-06T06:32:25.3093400Z > exp_name_to_tuple_var) | |
2021-07-06T06:32:25.3093555Z | |
2021-07-06T06:32:25.3094427Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/parfors/parfor_lowering.py[0m:306: | |
2021-07-06T06:32:25.3094983Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3095212Z | |
2021-07-06T06:32:25.3096263Z lowerer = <numba.core.lowering.Lower object at 0x7f16ad673b10> | |
2021-07-06T06:32:25.3096974Z cres = CompileResult(typing_context=<numba.core.typing.context.Context object at 0x7f16c9149250>, target_context=<numba.core....ollection object at 0x7f16b3be3e90>}, reload_init=[<function _reload_parfors at 0x7f16c92247a0>], referenced_envs=None) | |
2021-07-06T06:32:25.3097928Z gu_signature = ([('b',), ('a',)], []) | |
2021-07-06T06:32:25.3098491Z outer_sig = (array(uint64, 1d, C), array(int32, 1d, C)) -> none | |
2021-07-06T06:32:25.3099122Z expr_args = ['sched', 'rows'], expr_arg_types = [array(int32, 1d, C)] | |
2021-07-06T06:32:25.3099597Z loop_ranges = [(0, Var($28load_attr.11, umap_.py:404), 1)], redvars = [] | |
2021-07-06T06:32:25.3100174Z reddict = {}, redarrdict = {} | |
2021-07-06T06:32:25.3101295Z init_block = <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)> | |
2021-07-06T06:32:25.3101826Z index_var_typ = uint64, races = set(), exp_name_to_tuple_var = {} | |
2021-07-06T06:32:25.3102027Z | |
2021-07-06T06:32:25.3102361Z def call_parallel_gufunc(lowerer, cres, gu_signature, outer_sig, expr_args, expr_arg_types, | |
2021-07-06T06:32:25.3103057Z loop_ranges, redvars, reddict, redarrdict, init_block, index_var_typ, races, | |
2021-07-06T06:32:25.3103539Z exp_name_to_tuple_var): | |
2021-07-06T06:32:25.3104192Z ''' | |
2021-07-06T06:32:25.3104664Z Adds the call to the gufunc function from the main function. | |
2021-07-06T06:32:25.3105169Z ''' | |
2021-07-06T06:32:25.3105805Z context = lowerer.context | |
2021-07-06T06:32:25.3106117Z builder = lowerer.builder | |
2021-07-06T06:32:25.3106365Z | |
2021-07-06T06:32:25.3106662Z from numba.np.ufunc.parallel import (build_gufunc_wrapper, | |
2021-07-06T06:32:25.3107053Z get_thread_count, | |
2021-07-06T06:32:25.3107389Z _launch_threads) | |
2021-07-06T06:32:25.3107677Z | |
2021-07-06T06:32:25.3107939Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3108280Z print("make_parallel_loop") | |
2021-07-06T06:32:25.3108640Z print("outer_sig = ", outer_sig.args, outer_sig.return_type, | |
2021-07-06T06:32:25.3109201Z outer_sig.recvr, outer_sig.pysig) | |
2021-07-06T06:32:25.3109559Z print("loop_ranges = ", loop_ranges) | |
2021-07-06T06:32:25.3109915Z print("expr_args", expr_args) | |
2021-07-06T06:32:25.3110261Z print("expr_arg_types", expr_arg_types) | |
2021-07-06T06:32:25.3110614Z print("gu_signature", gu_signature) | |
2021-07-06T06:32:25.3111068Z | |
2021-07-06T06:32:25.3111333Z # Build the wrapper for GUFunc | |
2021-07-06T06:32:25.3111716Z args, return_type = sigutils.normalize_signature(outer_sig) | |
2021-07-06T06:32:25.3112146Z llvm_func = cres.library.get_function(cres.fndesc.llvm_func_name) | |
2021-07-06T06:32:25.3112533Z sin, sout = gu_signature | |
2021-07-06T06:32:25.3112789Z | |
2021-07-06T06:32:25.3113136Z # These are necessary for build_gufunc_wrapper to find external symbols | |
2021-07-06T06:32:25.3113503Z > _launch_threads() | |
2021-07-06T06:32:25.3113641Z | |
2021-07-06T06:32:25.3114346Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/parfors/parfor_lowering.py[0m:1442: | |
2021-07-06T06:32:25.3114895Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3115124Z | |
2021-07-06T06:32:25.3115395Z def _launch_threads(): | |
2021-07-06T06:32:25.3115736Z if not _backend_init_process_lock: | |
2021-07-06T06:32:25.3116105Z _set_init_process_lock() | |
2021-07-06T06:32:25.3116368Z | |
2021-07-06T06:32:25.3116673Z with _backend_init_process_lock: | |
2021-07-06T06:32:25.3117149Z with _backend_init_thread_lock: | |
2021-07-06T06:32:25.3117519Z global _is_initialized | |
2021-07-06T06:32:25.3118023Z if _is_initialized: | |
2021-07-06T06:32:25.3118324Z return | |
2021-07-06T06:32:25.3118578Z | |
2021-07-06T06:32:25.3118872Z def select_known_backend(backend): | |
2021-07-06T06:32:25.3119217Z """ | |
2021-07-06T06:32:25.3119561Z Loads a specific threading layer backend based on string | |
2021-07-06T06:32:25.3119926Z """ | |
2021-07-06T06:32:25.3120199Z lib = None | |
2021-07-06T06:32:25.3120552Z if backend.startswith("tbb"): | |
2021-07-06T06:32:25.3120899Z try: | |
2021-07-06T06:32:25.3121251Z # check if TBB is present and compatible | |
2021-07-06T06:32:25.3121847Z _check_tbb_version_compatible() | |
2021-07-06T06:32:25.3122237Z # now try and load the backend | |
2021-07-06T06:32:25.3122663Z from numba.np.ufunc import tbbpool as lib | |
2021-07-06T06:32:25.3123063Z except ImportError: | |
2021-07-06T06:32:25.3123421Z pass | |
2021-07-06T06:32:25.3123927Z elif backend.startswith("omp"): | |
2021-07-06T06:32:25.3124371Z # TODO: Check that if MKL is present that it is a version | |
2021-07-06T06:32:25.3124801Z # that understands GNU OMP might be present | |
2021-07-06T06:32:25.3125171Z try: | |
2021-07-06T06:32:25.3125527Z from numba.np.ufunc import omppool as lib | |
2021-07-06T06:32:25.3125929Z except ImportError: | |
2021-07-06T06:32:25.3126255Z pass | |
2021-07-06T06:32:25.3127344Z elif backend.startswith("workqueue"): | |
2021-07-06T06:32:25.3127814Z from numba.np.ufunc import workqueue as lib | |
2021-07-06T06:32:25.3128170Z else: | |
2021-07-06T06:32:25.3128763Z msg = "Unknown value specified for threading layer: %s" | |
2021-07-06T06:32:25.3129215Z raise ValueError(msg % backend) | |
2021-07-06T06:32:25.3129572Z return lib | |
2021-07-06T06:32:25.3130028Z | |
2021-07-06T06:32:25.3130332Z def select_from_backends(backends): | |
2021-07-06T06:32:25.3131048Z """ | |
2021-07-06T06:32:25.3131417Z Selects from presented backends and returns the first working | |
2021-07-06T06:32:25.3131958Z """ | |
2021-07-06T06:32:25.3154517Z lib = None | |
2021-07-06T06:32:25.3154926Z for backend in backends: | |
2021-07-06T06:32:25.3155321Z lib = select_known_backend(backend) | |
2021-07-06T06:32:25.3155910Z if lib is not None: | |
2021-07-06T06:32:25.3156254Z break | |
2021-07-06T06:32:25.3156583Z else: | |
2021-07-06T06:32:25.3157221Z backend = '' | |
2021-07-06T06:32:25.3157580Z return lib, backend | |
2021-07-06T06:32:25.3157849Z | |
2021-07-06T06:32:25.3158140Z t = str(config.THREADING_LAYER).lower() | |
2021-07-06T06:32:25.3158736Z namedbackends = ['tbb', 'omp', 'workqueue'] | |
2021-07-06T06:32:25.3159048Z | |
2021-07-06T06:32:25.3159311Z lib = None | |
2021-07-06T06:32:25.3159764Z err_helpers = dict() | |
2021-07-06T06:32:25.3160356Z err_helpers['TBB'] = ("Intel TBB is required, try:\n" | |
2021-07-06T06:32:25.3160799Z "$ conda/pip install tbb") | |
2021-07-06T06:32:25.3161453Z err_helpers['OSX_OMP'] = ("Intel OpenMP is required, try:\n" | |
2021-07-06T06:32:25.3162123Z "$ conda/pip install intel-openmp") | |
2021-07-06T06:32:25.3162750Z requirements = [] | |
2021-07-06T06:32:25.3163125Z | |
2021-07-06T06:32:25.3163428Z def raise_with_hint(required): | |
2021-07-06T06:32:25.3164006Z errmsg = "No threading layer could be loaded.\n%s" | |
2021-07-06T06:32:25.3164572Z hintmsg = "HINT:\n%s" | |
2021-07-06T06:32:25.3164963Z if len(required) == 0: | |
2021-07-06T06:32:25.3165487Z hint = '' | |
2021-07-06T06:32:25.3166008Z if len(required) == 1: | |
2021-07-06T06:32:25.3166578Z hint = hintmsg % err_helpers[required[0]] | |
2021-07-06T06:32:25.3166987Z if len(required) > 1: | |
2021-07-06T06:32:25.3167606Z options = '\nOR\n'.join([err_helpers[x] for x in required]) | |
2021-07-06T06:32:25.3168110Z hint = hintmsg % ("One of:\n%s" % options) | |
2021-07-06T06:32:25.3168683Z raise ValueError(errmsg % hint) | |
2021-07-06T06:32:25.3168975Z | |
2021-07-06T06:32:25.3169745Z if t in namedbackends: | |
2021-07-06T06:32:25.3170136Z # Try and load the specific named backend | |
2021-07-06T06:32:25.3170525Z lib = select_known_backend(t) | |
2021-07-06T06:32:25.3171769Z if not lib: | |
2021-07-06T06:32:25.3172256Z # something is missing preventing a valid backend from | |
2021-07-06T06:32:25.3172684Z # loading, set requirements for hinting | |
2021-07-06T06:32:25.3173363Z if t == 'tbb': | |
2021-07-06T06:32:25.3173918Z requirements.append('TBB') | |
2021-07-06T06:32:25.3174519Z elif t == 'omp' and _IS_OSX: | |
2021-07-06T06:32:25.3175103Z requirements.append('OSX_OMP') | |
2021-07-06T06:32:25.3175473Z libname = t | |
2021-07-06T06:32:25.3176045Z elif t in ['threadsafe', 'forksafe', 'safe']: | |
2021-07-06T06:32:25.3176472Z # User wants a specific behaviour... | |
2021-07-06T06:32:25.3177893Z available = ['tbb'] | |
2021-07-06T06:32:25.3178431Z requirements.append('TBB') | |
2021-07-06T06:32:25.3178812Z if t == "safe": | |
2021-07-06T06:32:25.3179213Z # "safe" is TBB, which is fork and threadsafe everywhere | |
2021-07-06T06:32:25.3179605Z pass | |
2021-07-06T06:32:25.3179937Z elif t == "threadsafe": | |
2021-07-06T06:32:25.3180318Z if _IS_OSX: | |
2021-07-06T06:32:25.3180868Z requirements.append('OSX_OMP') | |
2021-07-06T06:32:25.3181278Z # omp is threadsafe everywhere | |
2021-07-06T06:32:25.3181806Z available.append('omp') | |
2021-07-06T06:32:25.3182194Z elif t == "forksafe": | |
2021-07-06T06:32:25.3182617Z # everywhere apart from linux (GNU OpenMP) has a guaranteed | |
2021-07-06T06:32:25.3183258Z # forksafe OpenMP, as OpenMP has better performance, prefer | |
2021-07-06T06:32:25.3183688Z # this to workqueue | |
2021-07-06T06:32:25.3184040Z if not _IS_LINUX: | |
2021-07-06T06:32:25.3184812Z available.append('omp') | |
2021-07-06T06:32:25.3185196Z if _IS_OSX: | |
2021-07-06T06:32:25.3185774Z requirements.append('OSX_OMP') | |
2021-07-06T06:32:25.3186170Z # workqueue is forksafe everywhere | |
2021-07-06T06:32:25.3186739Z available.append('workqueue') | |
2021-07-06T06:32:25.3187113Z else: # unreachable | |
2021-07-06T06:32:25.3187527Z msg = "No threading layer available for purpose %s" | |
2021-07-06T06:32:25.3187926Z raise ValueError(msg % t) | |
2021-07-06T06:32:25.3188302Z # select amongst available | |
2021-07-06T06:32:25.3188679Z lib, libname = select_from_backends(available) | |
2021-07-06T06:32:25.3189224Z elif t == 'default': | |
2021-07-06T06:32:25.3189770Z # If default is supplied, try them in order, tbb, omp, | |
2021-07-06T06:32:25.3190139Z # workqueue | |
2021-07-06T06:32:25.3191289Z lib, libname = select_from_backends(namedbackends) | |
2021-07-06T06:32:25.3191670Z if not lib: | |
2021-07-06T06:32:25.3192043Z # set requirements for hinting | |
2021-07-06T06:32:25.3192688Z requirements.append('TBB') | |
2021-07-06T06:32:25.3193081Z if _IS_OSX: | |
2021-07-06T06:32:25.3193626Z requirements.append('OSX_OMP') | |
2021-07-06T06:32:25.3193992Z else: | |
2021-07-06T06:32:25.3194568Z msg = "The threading layer requested '%s' is unknown to Numba." | |
2021-07-06T06:32:25.3194998Z raise ValueError(msg % t) | |
2021-07-06T06:32:25.3195298Z | |
2021-07-06T06:32:25.3195577Z # No lib found, raise and hint | |
2021-07-06T06:32:25.3195930Z if not lib: | |
2021-07-06T06:32:25.3196264Z > raise_with_hint(requirements) | |
2021-07-06T06:32:25.3196445Z | |
2021-07-06T06:32:25.3197097Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/np/ufunc/parallel.py[0m:499: | |
2021-07-06T06:32:25.3197630Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3197879Z | |
2021-07-06T06:32:25.3198248Z required = ['TBB'] | |
2021-07-06T06:32:25.3198384Z | |
2021-07-06T06:32:25.3198679Z def raise_with_hint(required): | |
2021-07-06T06:32:25.3199046Z errmsg = "No threading layer could be loaded.\n%s" | |
2021-07-06T06:32:25.3199995Z hintmsg = "HINT:\n%s" | |
2021-07-06T06:32:25.3200337Z if len(required) == 0: | |
2021-07-06T06:32:25.3200860Z hint = '' | |
2021-07-06T06:32:25.3201375Z if len(required) == 1: | |
2021-07-06T06:32:25.3201722Z hint = hintmsg % err_helpers[required[0]] | |
2021-07-06T06:32:25.3202086Z if len(required) > 1: | |
2021-07-06T06:32:25.3202665Z options = '\nOR\n'.join([err_helpers[x] for x in required]) | |
2021-07-06T06:32:25.3203451Z hint = hintmsg % ("One of:\n%s" % options) | |
2021-07-06T06:32:25.3204185Z > raise ValueError(errmsg % hint) | |
2021-07-06T06:32:25.3204783Z [1m[31mE ValueError: No threading layer could be loaded.[0m | |
2021-07-06T06:32:25.3205313Z [1m[31mE HINT:[0m | |
2021-07-06T06:32:25.3205853Z [1m[31mE Intel TBB is required, try:[0m | |
2021-07-06T06:32:25.3206394Z [1m[31mE $ conda/pip install tbb[0m | |
2021-07-06T06:32:25.3206568Z | |
2021-07-06T06:32:25.3207241Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/np/ufunc/parallel.py[0m:444: ValueError | |
2021-07-06T06:32:25.3207558Z | |
2021-07-06T06:32:25.3208107Z [33mDuring handling of the above exception, another exception occurred:[0m | |
2021-07-06T06:32:25.3208556Z | |
2021-07-06T06:32:25.3208794Z @pytest.fixture | |
2021-07-06T06:32:25.3209058Z def adatas(): | |
2021-07-06T06:32:25.3209798Z pbmc = sc.datasets.pbmc68k_reduced() | |
2021-07-06T06:32:25.3210115Z n_split = 500 | |
2021-07-06T06:32:25.3210534Z adata_ref = sc.AnnData(pbmc.X[:n_split, :], obs=pbmc.obs.iloc[:n_split]) | |
2021-07-06T06:32:25.3211008Z adata_new = sc.AnnData(pbmc.X[n_split:, :]) | |
2021-07-06T06:32:25.3211343Z | |
2021-07-06T06:32:25.3211592Z sc.pp.pca(adata_ref) | |
2021-07-06T06:32:25.3211909Z > sc.pp.neighbors(adata_ref) | |
2021-07-06T06:32:25.3212066Z | |
2021-07-06T06:32:25.3212588Z [1m[31mscanpy/tests/test_ingest.py[0m:34: | |
2021-07-06T06:32:25.3213030Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3213649Z [1m[31mscanpy/neighbors/__init__.py[0m:147: in neighbors | |
2021-07-06T06:32:25.3214029Z random_state=random_state, | |
2021-07-06T06:32:25.3214592Z [1m[31mscanpy/neighbors/__init__.py[0m:812: in compute_neighbors | |
2021-07-06T06:32:25.3214972Z self.n_neighbors, | |
2021-07-06T06:32:25.3215536Z [1m[31mscanpy/neighbors/__init__.py[0m:398: in _compute_connectivities_umap | |
2021-07-06T06:32:25.3216074Z local_connectivity=local_connectivity, | |
2021-07-06T06:32:25.3216835Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py[0m:568: in fuzzy_simplicial_set | |
2021-07-06T06:32:25.3217342Z knn_indices, knn_dists, sigmas, rhos, return_dists | |
2021-07-06T06:32:25.3218117Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:439: in _compile_for_args | |
2021-07-06T06:32:25.3218568Z raise e | |
2021-07-06T06:32:25.3219266Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:372: in _compile_for_args | |
2021-07-06T06:32:25.3219773Z return_val = self.compile(tuple(argtypes)) | |
2021-07-06T06:32:25.3220691Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:909: in compile | |
2021-07-06T06:32:25.3221173Z cres = self._compiler.compile(args, return_type) | |
2021-07-06T06:32:25.3221894Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:79: in compile | |
2021-07-06T06:32:25.3222385Z status, retval = self._compile_cached(args, return_type) | |
2021-07-06T06:32:25.3223322Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:93: in _compile_cached | |
2021-07-06T06:32:25.3224257Z retval = self._compile_core(args, return_type) | |
2021-07-06T06:32:25.3225314Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/dispatcher.py[0m:111: in _compile_core | |
2021-07-06T06:32:25.3225813Z pipeline_class=self.pipeline_class) | |
2021-07-06T06:32:25.3226737Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:606: in compile_extra | |
2021-07-06T06:32:25.3227218Z return pipeline.compile_extra(func) | |
2021-07-06T06:32:25.3227925Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:353: in compile_extra | |
2021-07-06T06:32:25.3228391Z return self._compile_bytecode() | |
2021-07-06T06:32:25.3229093Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:415: in _compile_bytecode | |
2021-07-06T06:32:25.3229552Z return self._compile_core() | |
2021-07-06T06:32:25.3230239Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:395: in _compile_core | |
2021-07-06T06:32:25.3230658Z raise e | |
2021-07-06T06:32:25.3231293Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler.py[0m:386: in _compile_core | |
2021-07-06T06:32:25.3231752Z pm.run(self.state) | |
2021-07-06T06:32:25.3232411Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_machinery.py[0m:339: in run | |
2021-07-06T06:32:25.3233242Z raise patched_exception | |
2021-07-06T06:32:25.3233973Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_machinery.py[0m:330: in run | |
2021-07-06T06:32:25.3234489Z self._runPass(idx, pass_inst, state) | |
2021-07-06T06:32:25.3235230Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_lock.py[0m:35: in _acquire_compile_lock | |
2021-07-06T06:32:25.3235741Z return func(*args, **kwargs) | |
2021-07-06T06:32:25.3236454Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_machinery.py[0m:289: in _runPass | |
2021-07-06T06:32:25.3237039Z mutated |= check(pss.run_pass, internal_state) | |
2021-07-06T06:32:25.3237790Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/compiler_machinery.py[0m:262: in check | |
2021-07-06T06:32:25.3238850Z mangled = func(compiler_state) | |
2021-07-06T06:32:25.3239536Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/typed_passes.py[0m:463: in run_pass | |
2021-07-06T06:32:25.3240318Z NativeLowering().run_pass(state) | |
2021-07-06T06:32:25.3241183Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/typed_passes.py[0m:384: in run_pass | |
2021-07-06T06:32:25.3241638Z lower.lower() | |
2021-07-06T06:32:25.3242271Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:136: in lower | |
2021-07-06T06:32:25.3242752Z self.lower_normal_function(self.fndesc) | |
2021-07-06T06:32:25.3243464Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:190: in lower_normal_function | |
2021-07-06T06:32:25.3243978Z entry_block_tail = self.lower_function_body() | |
2021-07-06T06:32:25.3245136Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:216: in lower_function_body | |
2021-07-06T06:32:25.3245622Z self.lower_block(block) | |
2021-07-06T06:32:25.3246284Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:230: in lower_block | |
2021-07-06T06:32:25.3246936Z self.lower_inst(inst) | |
2021-07-06T06:32:25.3247695Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/contextlib.py[0m:130: in __exit__ | |
2021-07-06T06:32:25.3248141Z self.gen.throw(type, value, traceback) | |
2021-07-06T06:32:25.3248522Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3248744Z | |
2021-07-06T06:32:25.3249648Z fmt_ = 'lowering "{inst}" at {loc}', args = () | |
2021-07-06T06:32:25.3251277Z kwargs = {'inst': id=4[LoopNest(index_variable = parfor_index.212, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hos...c': Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)} | |
2021-07-06T06:32:25.3252584Z errcls = functools.partial(<class 'numba.core.errors.LoweringError'>, loc=Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)) | |
2021-07-06T06:32:25.3253545Z loc = Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None) | |
2021-07-06T06:32:25.3254798Z newerr = LoweringError('Failed in nopython mode pipeline (step: nopython mode backend)\nNo threading layer could be loaded.\nHI...r_index.212, umap_.py:404)" at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)') | |
2021-07-06T06:32:25.3255507Z tb = None | |
2021-07-06T06:32:25.3255641Z | |
2021-07-06T06:32:25.3255888Z @contextlib.contextmanager | |
2021-07-06T06:32:25.3256238Z def new_error_context(fmt_, *args, **kwargs): | |
2021-07-06T06:32:25.3256578Z """ | |
2021-07-06T06:32:25.3256917Z A contextmanager that prepend contextual information to any exception | |
2021-07-06T06:32:25.3257388Z raised within. If the exception type is not an instance of NumbaError, | |
2021-07-06T06:32:25.3257993Z it will be wrapped into a InternalError. The exception class can be | |
2021-07-06T06:32:25.3258467Z changed by providing a "errcls_" keyword argument with the exception | |
2021-07-06T06:32:25.3258821Z constructor. | |
2021-07-06T06:32:25.3259075Z | |
2021-07-06T06:32:25.3259409Z The first argument is a message that describes the context. It can be a | |
2021-07-06T06:32:25.3259876Z format string. If there are additional arguments, it will be used as | |
2021-07-06T06:32:25.3260324Z ``fmt_.format(*args, **kwargs)`` to produce the final message string. | |
2021-07-06T06:32:25.3260680Z """ | |
2021-07-06T06:32:25.3261192Z errcls = kwargs.pop('errcls_', InternalError) | |
2021-07-06T06:32:25.3261494Z | |
2021-07-06T06:32:25.3261934Z loc = kwargs.get('loc', None) | |
2021-07-06T06:32:25.3262352Z if loc is not None and not loc.filename.startswith(_numba_path): | |
2021-07-06T06:32:25.3262787Z loc_info.update(kwargs) | |
2021-07-06T06:32:25.3263046Z | |
2021-07-06T06:32:25.3263290Z try: | |
2021-07-06T06:32:25.3263543Z yield | |
2021-07-06T06:32:25.3263932Z except NumbaError as e: | |
2021-07-06T06:32:25.3264309Z e.add_context(_format_msg(fmt_, args, kwargs)) | |
2021-07-06T06:32:25.3264877Z raise | |
2021-07-06T06:32:25.3265189Z except Exception as e: | |
2021-07-06T06:32:25.3265571Z newerr = errcls(e).add_context(_format_msg(fmt_, args, kwargs)) | |
2021-07-06T06:32:25.3266039Z tb = sys.exc_info()[2] if numba.core.config.FULL_TRACEBACKS else None | |
2021-07-06T06:32:25.3266438Z > raise newerr.with_traceback(tb) | |
2021-07-06T06:32:25.3267262Z [1m[31mE numba.core.errors.LoweringError: Failed in nopython mode pipeline (step: nopython mode backend)[0m | |
2021-07-06T06:32:25.3267989Z [1m[31mE No threading layer could be loaded.[0m | |
2021-07-06T06:32:25.3268530Z [1m[31mE HINT:[0m | |
2021-07-06T06:32:25.3269083Z [1m[31mE Intel TBB is required, try:[0m | |
2021-07-06T06:32:25.3269658Z [1m[31mE $ conda/pip install tbb[0m | |
2021-07-06T06:32:25.3270130Z [1m[31mE [0m | |
2021-07-06T06:32:25.3270864Z [1m[31mE File "../../../../../opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py", line 404:[0m | |
2021-07-06T06:32:25.3271593Z [1m[31mE def compute_membership_strengths([0m | |
2021-07-06T06:32:25.3272934Z [1m[31mE <source elided>[0m | |
2021-07-06T06:32:25.3274726Z [1m[31mE [0m | |
2021-07-06T06:32:25.3276033Z [1m[31mE rows = np.zeros(knn_indices.size, dtype=np.int32)[0m | |
2021-07-06T06:32:25.3276626Z [1m[31mE ^[0m | |
2021-07-06T06:32:25.3277063Z [1m[31mE [0m | |
2021-07-06T06:32:25.3278463Z [1m[31mE During: lowering "id=4[LoopNest(index_variable = parfor_index.212, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)>}Var(parfor_index.212, umap_.py:404)" at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)[0m | |
2021-07-06T06:32:25.3279274Z | |
2021-07-06T06:32:25.3279949Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/errors.py[0m:751: LoweringError | |
2021-07-06T06:32:25.3280686Z ---------------------------- Captured stderr setup ----------------------------- | |
2021-07-06T06:32:25.3281072Z computing PCA | |
2021-07-06T06:32:25.3281323Z with n_comps=50 | |
2021-07-06T06:32:25.3281617Z finished (0:00:00) | |
2021-07-06T06:32:25.3281892Z computing neighbors | |
2021-07-06T06:32:25.3282329Z using 'X_pca' with n_pcs = 50 | |
2021-07-06T06:32:25.3282976Z [31m[1m_________________ ERROR at setup of test_neighbors_defaults[3] _________________[0m | |
2021-07-06T06:32:25.3283234Z | |
2021-07-06T06:32:25.3283696Z fmt_ = 'lowering "{inst}" at {loc}', args = () | |
2021-07-06T06:32:25.3284790Z kwargs = {'inst': id=8[LoopNest(index_variable = parfor_index.393, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hos...c': Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)} | |
2021-07-06T06:32:25.3286325Z errcls = functools.partial(<class 'numba.core.errors.LoweringError'>, loc=Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None)) | |
2021-07-06T06:32:25.3287271Z loc = Loc(filename=/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py, line=404, col=None) | |
2021-07-06T06:32:25.3288523Z newerr = LoweringError('Failed in nopython mode pipeline (step: nopython mode backend)\nNo threading layer could be loaded.\nHI...r_index.393, umap_.py:404)" at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)') | |
2021-07-06T06:32:25.3289566Z tb = None | |
2021-07-06T06:32:25.3289701Z | |
2021-07-06T06:32:25.3289946Z @contextlib.contextmanager | |
2021-07-06T06:32:25.3290297Z def new_error_context(fmt_, *args, **kwargs): | |
2021-07-06T06:32:25.3290644Z """ | |
2021-07-06T06:32:25.3290987Z A contextmanager that prepend contextual information to any exception | |
2021-07-06T06:32:25.3291574Z raised within. If the exception type is not an instance of NumbaError, | |
2021-07-06T06:32:25.3292026Z it will be wrapped into a InternalError. The exception class can be | |
2021-07-06T06:32:25.3292490Z changed by providing a "errcls_" keyword argument with the exception | |
2021-07-06T06:32:25.3292844Z constructor. | |
2021-07-06T06:32:25.3293102Z | |
2021-07-06T06:32:25.3293433Z The first argument is a message that describes the context. It can be a | |
2021-07-06T06:32:25.3293903Z format string. If there are additional arguments, it will be used as | |
2021-07-06T06:32:25.3294351Z ``fmt_.format(*args, **kwargs)`` to produce the final message string. | |
2021-07-06T06:32:25.3294708Z """ | |
2021-07-06T06:32:25.3295217Z errcls = kwargs.pop('errcls_', InternalError) | |
2021-07-06T06:32:25.3295527Z | |
2021-07-06T06:32:25.3295970Z loc = kwargs.get('loc', None) | |
2021-07-06T06:32:25.3296390Z if loc is not None and not loc.filename.startswith(_numba_path): | |
2021-07-06T06:32:25.3296827Z loc_info.update(kwargs) | |
2021-07-06T06:32:25.3297088Z | |
2021-07-06T06:32:25.3297335Z try: | |
2021-07-06T06:32:25.3297586Z > yield | |
2021-07-06T06:32:25.3297713Z | |
2021-07-06T06:32:25.3299976Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/errors.py[0m:744: | |
2021-07-06T06:32:25.3301694Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3301951Z | |
2021-07-06T06:32:25.3302485Z self = <numba.core.lowering.Lower object at 0x7f16ad3bf7d0> | |
2021-07-06T06:32:25.3303291Z block = <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (401)> | |
2021-07-06T06:32:25.3303600Z | |
2021-07-06T06:32:25.3303875Z def lower_block(self, block): | |
2021-07-06T06:32:25.3304178Z """ | |
2021-07-06T06:32:25.3304457Z Lower the given block. | |
2021-07-06T06:32:25.3304909Z """ | |
2021-07-06T06:32:25.3305621Z self.pre_block(block) | |
2021-07-06T06:32:25.3305968Z for inst in block.body: | |
2021-07-06T06:32:25.3306303Z self.loc = inst.loc | |
2021-07-06T06:32:25.3306652Z defaulterrcls = partial(LoweringError, loc=self.loc) | |
2021-07-06T06:32:25.3307399Z with new_error_context('lowering "{inst}" at {loc}', inst=inst, | |
2021-07-06T06:32:25.3307888Z loc=self.loc, errcls_=defaulterrcls): | |
2021-07-06T06:32:25.3308320Z > self.lower_inst(inst) | |
2021-07-06T06:32:25.3308482Z | |
2021-07-06T06:32:25.3309777Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:230: | |
2021-07-06T06:32:25.3310388Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3310620Z | |
2021-07-06T06:32:25.3311081Z self = <numba.core.lowering.Lower object at 0x7f16ad3bf7d0> | |
2021-07-06T06:32:25.3312278Z inst = id=8[LoopNest(index_variable = parfor_index.393, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)>}Var(parfor_index.393, umap_.py:404) | |
2021-07-06T06:32:25.3312846Z | |
2021-07-06T06:32:25.3313138Z def lower_inst(self, inst): | |
2021-07-06T06:32:25.3313505Z # Set debug location for all subsequent LL instructions | |
2021-07-06T06:32:25.3313902Z self.debuginfo.mark_location(self.builder, self.loc) | |
2021-07-06T06:32:25.3314346Z self.debug_print(str(inst)) | |
2021-07-06T06:32:25.3314683Z if isinstance(inst, ir.Assign): | |
2021-07-06T06:32:25.3315058Z ty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.3315404Z val = self.lower_assign(ty, inst) | |
2021-07-06T06:32:25.3315771Z self.storevar(val, inst.target.name) | |
2021-07-06T06:32:25.3316052Z | |
2021-07-06T06:32:25.3317013Z elif isinstance(inst, ir.Branch): | |
2021-07-06T06:32:25.3317452Z cond = self.loadvar(inst.cond.name) | |
2021-07-06T06:32:25.3317816Z tr = self.blkmap[inst.truebr] | |
2021-07-06T06:32:25.3318365Z fl = self.blkmap[inst.falsebr] | |
2021-07-06T06:32:25.3318639Z | |
2021-07-06T06:32:25.3318938Z condty = self.typeof(inst.cond.name) | |
2021-07-06T06:32:25.3319341Z pred = self.context.cast(self.builder, cond, condty, types.boolean) | |
2021-07-06T06:32:25.3319846Z assert pred.type == Type.int(1), ("cond is not i1: %s" % pred.type) | |
2021-07-06T06:32:25.3320278Z self.builder.cbranch(pred, tr, fl) | |
2021-07-06T06:32:25.3320576Z | |
2021-07-06T06:32:25.3321222Z elif isinstance(inst, ir.Jump): | |
2021-07-06T06:32:25.3321814Z target = self.blkmap[inst.target] | |
2021-07-06T06:32:25.3322147Z self.builder.branch(target) | |
2021-07-06T06:32:25.3322430Z | |
2021-07-06T06:32:25.3322722Z elif isinstance(inst, ir.Return): | |
2021-07-06T06:32:25.3323092Z if self.generator_info: | |
2021-07-06T06:32:25.3323432Z # StopIteration | |
2021-07-06T06:32:25.3323770Z self.genlower.return_from_generator(self) | |
2021-07-06T06:32:25.3324122Z return | |
2021-07-06T06:32:25.3324429Z val = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.3324794Z oty = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.3325122Z ty = self.fndesc.restype | |
2021-07-06T06:32:25.3325647Z if isinstance(ty, types.Optional): | |
2021-07-06T06:32:25.3326006Z # If returning an optional type | |
2021-07-06T06:32:25.3326567Z self.call_conv.return_optional_value(self.builder, ty, oty, val) | |
2021-07-06T06:32:25.3327093Z return | |
2021-07-06T06:32:25.3327543Z assert ty == oty, ( | |
2021-07-06T06:32:25.3328238Z "type '{}' does not match return type '{}'".format(oty, ty)) | |
2021-07-06T06:32:25.3328695Z retval = self.context.get_return_value(self.builder, ty, val) | |
2021-07-06T06:32:25.3329137Z self.call_conv.return_value(self.builder, retval) | |
2021-07-06T06:32:25.3329440Z | |
2021-07-06T06:32:25.3329768Z elif isinstance(inst, ir.StaticSetItem): | |
2021-07-06T06:32:25.3330150Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.3330512Z assert signature is not None | |
2021-07-06T06:32:25.3330807Z try: | |
2021-07-06T06:32:25.3331411Z impl = self.context.get_function('static_setitem', signature) | |
2021-07-06T06:32:25.3331852Z except NotImplementedError: | |
2021-07-06T06:32:25.3332245Z return self.lower_setitem(inst.target, inst.index_var, | |
2021-07-06T06:32:25.3332678Z inst.value, signature) | |
2021-07-06T06:32:25.3333708Z else: | |
2021-07-06T06:32:25.3334088Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.3334782Z value = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.3335409Z valuety = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.3335807Z value = self.context.cast(self.builder, value, valuety, | |
2021-07-06T06:32:25.3336245Z signature.args[2]) | |
2021-07-06T06:32:25.3336648Z return impl(self.builder, (target, inst.index, value)) | |
2021-07-06T06:32:25.3336983Z | |
2021-07-06T06:32:25.3337271Z elif isinstance(inst, ir.Print): | |
2021-07-06T06:32:25.3337610Z self.lower_print(inst) | |
2021-07-06T06:32:25.3337886Z | |
2021-07-06T06:32:25.3338175Z elif isinstance(inst, ir.SetItem): | |
2021-07-06T06:32:25.3338562Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.3338903Z assert signature is not None | |
2021-07-06T06:32:25.3339300Z return self.lower_setitem(inst.target, inst.index, inst.value, | |
2021-07-06T06:32:25.3339695Z signature) | |
2021-07-06T06:32:25.3339998Z | |
2021-07-06T06:32:25.3340295Z elif isinstance(inst, ir.StoreMap): | |
2021-07-06T06:32:25.3340684Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.3341116Z assert signature is not None | |
2021-07-06T06:32:25.3341507Z return self.lower_setitem(inst.dct, inst.key, inst.value, signature) | |
2021-07-06T06:32:25.3341863Z | |
2021-07-06T06:32:25.3342153Z elif isinstance(inst, ir.DelItem): | |
2021-07-06T06:32:25.3342532Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.3342872Z index = self.loadvar(inst.index.name) | |
2021-07-06T06:32:25.3343173Z | |
2021-07-06T06:32:25.3343457Z targetty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.3343836Z indexty = self.typeof(inst.index.name) | |
2021-07-06T06:32:25.3344119Z | |
2021-07-06T06:32:25.3344402Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.3344905Z assert signature is not None | |
2021-07-06T06:32:25.3345175Z | |
2021-07-06T06:32:25.3345460Z op = operator.delitem | |
2021-07-06T06:32:25.3345822Z fnop = self.context.typing_context.resolve_value_type(op) | |
2021-07-06T06:32:25.3346220Z callsig = fnop.get_call_type( | |
2021-07-06T06:32:25.3346586Z self.context.typing_context, signature.args, {}, | |
2021-07-06T06:32:25.3346927Z ) | |
2021-07-06T06:32:25.3347240Z impl = self.context.get_function(fnop, callsig) | |
2021-07-06T06:32:25.3347559Z | |
2021-07-06T06:32:25.3347838Z assert targetty == signature.args[0] | |
2021-07-06T06:32:25.3348950Z index = self.context.cast(self.builder, index, indexty, | |
2021-07-06T06:32:25.3349392Z signature.args[1]) | |
2021-07-06T06:32:25.3349688Z | |
2021-07-06T06:32:25.3349995Z return impl(self.builder, (target, index)) | |
2021-07-06T06:32:25.3350438Z | |
2021-07-06T06:32:25.3350911Z elif isinstance(inst, ir.Del): | |
2021-07-06T06:32:25.3351249Z self.delvar(inst.value) | |
2021-07-06T06:32:25.3351545Z | |
2021-07-06T06:32:25.3351834Z elif isinstance(inst, ir.SetAttr): | |
2021-07-06T06:32:25.3352201Z target = self.loadvar(inst.target.name) | |
2021-07-06T06:32:25.3352592Z value = self.loadvar(inst.value.name) | |
2021-07-06T06:32:25.3352949Z signature = self.fndesc.calltypes[inst] | |
2021-07-06T06:32:25.3353258Z | |
2021-07-06T06:32:25.3353543Z targetty = self.typeof(inst.target.name) | |
2021-07-06T06:32:25.3353928Z valuety = self.typeof(inst.value.name) | |
2021-07-06T06:32:25.3354269Z assert signature is not None | |
2021-07-06T06:32:25.3354633Z assert signature.args[0] == targetty | |
2021-07-06T06:32:25.3355161Z impl = self.context.get_setattr(inst.attr, signature) | |
2021-07-06T06:32:25.3355482Z | |
2021-07-06T06:32:25.3355901Z # Convert argument to match | |
2021-07-06T06:32:25.3356266Z value = self.context.cast(self.builder, value, valuety, | |
2021-07-06T06:32:25.3356846Z signature.args[1]) | |
2021-07-06T06:32:25.3357292Z | |
2021-07-06T06:32:25.3357765Z return impl(self.builder, (target, value)) | |
2021-07-06T06:32:25.3358061Z | |
2021-07-06T06:32:25.3359156Z elif isinstance(inst, ir.StaticRaise): | |
2021-07-06T06:32:25.3359581Z self.lower_static_raise(inst) | |
2021-07-06T06:32:25.3359883Z | |
2021-07-06T06:32:25.3360189Z elif isinstance(inst, ir.StaticTryRaise): | |
2021-07-06T06:32:25.3360561Z self.lower_static_try_raise(inst) | |
2021-07-06T06:32:25.3360856Z | |
2021-07-06T06:32:25.3361083Z else: | |
2021-07-06T06:32:25.3361445Z for _class, func in lower_extensions.items(): | |
2021-07-06T06:32:25.3361858Z if isinstance(inst, _class): | |
2021-07-06T06:32:25.3362225Z > func(self, inst) | |
2021-07-06T06:32:25.3362383Z | |
2021-07-06T06:32:25.3363138Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/core/lowering.py[0m:443: | |
2021-07-06T06:32:25.3363712Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3363942Z | |
2021-07-06T06:32:25.3364237Z lowerer = <numba.core.lowering.Lower object at 0x7f16ad3bf7d0> | |
2021-07-06T06:32:25.3365547Z parfor = id=8[LoopNest(index_variable = parfor_index.393, range = (0, $28load_attr.11, 1))]{352: <ir.Block at /opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/umap/umap_.py (404)>}Var(parfor_index.393, umap_.py:404) | |
2021-07-06T06:32:25.3366114Z | |
2021-07-06T06:32:25.3366442Z def _lower_parfor_parallel(lowerer, parfor): | |
2021-07-06T06:32:25.3366849Z """Lowerer that handles LLVM code generation for parfor. | |
2021-07-06T06:32:25.3367256Z This function lowers a parfor IR node to LLVM. | |
2021-07-06T06:32:25.3376247Z The general approach is as follows: | |
2021-07-06T06:32:25.3377085Z 1) The code from the parfor's init block is lowered normally | |
2021-07-06T06:32:25.3377500Z in the context of the current function. | |
2021-07-06T06:32:25.3377916Z 2) The body of the parfor is transformed into a gufunc function. | |
2021-07-06T06:32:25.3378376Z 3) Code is inserted into the main function that calls do_scheduling | |
2021-07-06T06:32:25.3378813Z to divide the iteration space for each thread, allocates | |
2021-07-06T06:32:25.3380199Z reduction arrays, calls the gufunc function, and then invokes | |
2021-07-06T06:32:25.3380822Z the reduction function across the reduction arrays to produce | |
2021-07-06T06:32:25.3381223Z the final reduction values. | |
2021-07-06T06:32:25.3381500Z """ | |
2021-07-06T06:32:25.3381831Z from numba.np.ufunc.parallel import get_thread_count | |
2021-07-06T06:32:25.3382136Z | |
2021-07-06T06:32:25.3382409Z ensure_parallel_support() | |
2021-07-06T06:32:25.3382740Z typingctx = lowerer.context.typing_context | |
2021-07-06T06:32:25.3383093Z targetctx = lowerer.context | |
2021-07-06T06:32:25.3383786Z # We copy the typemap here because for race condition variable we'll | |
2021-07-06T06:32:25.3384262Z # update their type to array so they can be updated by the gufunc. | |
2021-07-06T06:32:25.3384852Z orig_typemap = lowerer.fndesc.typemap | |
2021-07-06T06:32:25.3385266Z # replace original typemap with copy and restore the original at the end. | |
2021-07-06T06:32:25.3385706Z lowerer.fndesc.typemap = copy.copy(orig_typemap) | |
2021-07-06T06:32:25.3386071Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3386477Z print("lowerer.fndesc", lowerer.fndesc, type(lowerer.fndesc)) | |
2021-07-06T06:32:25.3386860Z typemap = lowerer.fndesc.typemap | |
2021-07-06T06:32:25.3387190Z varmap = lowerer.varmap | |
2021-07-06T06:32:25.3387641Z | |
2021-07-06T06:32:25.3387936Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3388277Z print("_lower_parfor_parallel") | |
2021-07-06T06:32:25.3388586Z parfor.dump() | |
2021-07-06T06:32:25.3388851Z | |
2021-07-06T06:32:25.3389110Z loc = parfor.init_block.loc | |
2021-07-06T06:32:25.3389625Z scope = parfor.init_block.scope | |
2021-07-06T06:32:25.3390051Z | |
2021-07-06T06:32:25.3390495Z # produce instructions for init_block | |
2021-07-06T06:32:25.3390820Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3391212Z print("init_block = ", parfor.init_block, " ", type(parfor.init_block)) | |
2021-07-06T06:32:25.3391610Z for instr in parfor.init_block.body: | |
2021-07-06T06:32:25.3391976Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3392319Z print("lower init_block instr = ", instr) | |
2021-07-06T06:32:25.3392823Z lowerer.lower_inst(instr) | |
2021-07-06T06:32:25.3393105Z | |
2021-07-06T06:32:25.3393382Z for racevar in parfor.races: | |
2021-07-06T06:32:25.3393751Z if racevar not in varmap: | |
2021-07-06T06:32:25.3394089Z rvtyp = typemap[racevar] | |
2021-07-06T06:32:25.3394446Z rv = ir.Var(scope, racevar, loc) | |
2021-07-06T06:32:25.3394804Z lowerer._alloca_var(rv.name, rvtyp) | |
2021-07-06T06:32:25.3395111Z | |
2021-07-06T06:32:25.3395348Z alias_map = {} | |
2021-07-06T06:32:25.3395618Z arg_aliases = {} | |
2021-07-06T06:32:25.3396111Z numba.parfors.parfor.find_potential_aliases_parfor(parfor, parfor.params, typemap, | |
2021-07-06T06:32:25.3396592Z lowerer.func_ir, alias_map, arg_aliases) | |
2021-07-06T06:32:25.3397014Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3397801Z print("alias_map", alias_map) | |
2021-07-06T06:32:25.3398181Z print("arg_aliases", arg_aliases) | |
2021-07-06T06:32:25.3398455Z | |
2021-07-06T06:32:25.3398812Z # run get_parfor_outputs() and get_parfor_reductions() before gufunc creation | |
2021-07-06T06:32:25.3399274Z # since Jumps are modified so CFG of loop_body dict will become invalid | |
2021-07-06T06:32:25.3399681Z assert parfor.params is not None | |
2021-07-06T06:32:25.3399950Z | |
2021-07-06T06:32:25.3400657Z parfor_output_arrays = numba.parfors.parfor.get_parfor_outputs( | |
2021-07-06T06:32:25.3401080Z parfor, parfor.params) | |
2021-07-06T06:32:25.3401467Z parfor_redvars, parfor_reddict = numba.parfors.parfor.get_parfor_reductions( | |
2021-07-06T06:32:25.3401944Z lowerer.func_ir, parfor, parfor.params, lowerer.fndesc.calltypes) | |
2021-07-06T06:32:25.3402336Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3402726Z print("parfor_redvars:", parfor_redvars) | |
2021-07-06T06:32:25.3403124Z print("parfor_reddict:", parfor_reddict) | |
2021-07-06T06:32:25.3403447Z | |
2021-07-06T06:32:25.3403731Z # init reduction array allocation here. | |
2021-07-06T06:32:25.3404082Z nredvars = len(parfor_redvars) | |
2021-07-06T06:32:25.3404372Z redarrs = {} | |
2021-07-06T06:32:25.3404652Z if nredvars > 0: | |
2021-07-06T06:32:25.3405028Z # reduction arrays outer dimension equal to thread count | |
2021-07-06T06:32:25.3405408Z thread_count = get_thread_count() | |
2021-07-06T06:32:25.3406092Z scope = parfor.init_block.scope | |
2021-07-06T06:32:25.3406916Z loc = parfor.init_block.loc | |
2021-07-06T06:32:25.3407304Z pfbdr = ParforLoweringBuilder(lowerer=lowerer, scope=scope, loc=loc) | |
2021-07-06T06:32:25.3409287Z | |
2021-07-06T06:32:25.3409613Z # For each reduction variable... | |
2021-07-06T06:32:25.3409960Z for i in range(nredvars): | |
2021-07-06T06:32:25.3410367Z redvar_typ = lowerer.fndesc.typemap[parfor_redvars[i]] | |
2021-07-06T06:32:25.3410777Z redvar = ir.Var(scope, parfor_redvars[i], loc) | |
2021-07-06T06:32:25.3411181Z redarrvar_typ = redtyp_to_redarraytype(redvar_typ) | |
2021-07-06T06:32:25.3411579Z reddtype = redarrvar_typ.dtype | |
2021-07-06T06:32:25.3411937Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3412400Z print("redvar_typ", redvar_typ, redarrvar_typ, reddtype, types.DType(reddtype)) | |
2021-07-06T06:32:25.3412764Z | |
2021-07-06T06:32:25.3413242Z # If this is reduction over an array, | |
2021-07-06T06:32:25.3413988Z # the reduction array has just one added per-worker dimension. | |
2021-07-06T06:32:25.3414503Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.3414920Z redarrdim = redvar_typ.ndim + 1 | |
2021-07-06T06:32:25.3415265Z else: | |
2021-07-06T06:32:25.3415561Z redarrdim = 1 | |
2021-07-06T06:32:25.3415836Z | |
2021-07-06T06:32:25.3416185Z # Reduction array is created and initialized to the initial reduction value. | |
2021-07-06T06:32:25.3417281Z | |
2021-07-06T06:32:25.3417630Z # First create a var for the numpy empty ufunc. | |
2021-07-06T06:32:25.3418024Z glbl_np_empty = pfbdr.bind_global_function( | |
2021-07-06T06:32:25.3418391Z fobj=np.empty, | |
2021-07-06T06:32:25.3418727Z ftype=get_np_ufunc_typ(np.empty), | |
2021-07-06T06:32:25.3419085Z args=( | |
2021-07-06T06:32:25.3419424Z types.UniTuple(types.intp, redarrdim), | |
2021-07-06T06:32:25.3419967Z types.DType(reddtype), | |
2021-07-06T06:32:25.3420763Z ), | |
2021-07-06T06:32:25.3421595Z ) | |
2021-07-06T06:32:25.3422083Z | |
2021-07-06T06:32:25.3422434Z # Create var for outer dimension size of reduction array equal to number of threads. | |
2021-07-06T06:32:25.3422898Z num_threads_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3423542Z cval=thread_count, | |
2021-07-06T06:32:25.3424208Z typ=types.intp, | |
2021-07-06T06:32:25.3425176Z name='num_threads', | |
2021-07-06T06:32:25.3425520Z ) | |
2021-07-06T06:32:25.3425931Z | |
2021-07-06T06:32:25.3426230Z size_var_list = [num_threads_var] | |
2021-07-06T06:32:25.3426515Z | |
2021-07-06T06:32:25.3426808Z # If this is a reduction over an array... | |
2021-07-06T06:32:25.3427267Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.3427733Z # Add code to get the shape of the array being reduced over. | |
2021-07-06T06:32:25.3428164Z redshape_var = pfbdr.assign( | |
2021-07-06T06:32:25.3428546Z rhs=ir.Expr.getattr(redvar, "shape", loc), | |
2021-07-06T06:32:25.3428984Z typ=types.UniTuple(types.intp, redvar_typ.ndim), | |
2021-07-06T06:32:25.3429900Z name="redarr_shape", | |
2021-07-06T06:32:25.3430212Z ) | |
2021-07-06T06:32:25.3430625Z | |
2021-07-06T06:32:25.3431029Z # Add the dimension sizes of the array being reduced over to the tuple of sizes pass to empty. | |
2021-07-06T06:32:25.3431523Z for j in range(redvar_typ.ndim): | |
2021-07-06T06:32:25.3431929Z onedimvar = pfbdr.assign( | |
2021-07-06T06:32:25.3432339Z rhs=ir.Expr.static_getitem(redshape_var, j, None, loc), | |
2021-07-06T06:32:25.3432747Z typ=types.intp, | |
2021-07-06T06:32:25.3433112Z name="redshapeonedim", | |
2021-07-06T06:32:25.3433583Z ) | |
2021-07-06T06:32:25.3434505Z size_var_list.append(onedimvar) | |
2021-07-06T06:32:25.3434777Z | |
2021-07-06T06:32:25.3435140Z # Empty call takes tuple of sizes. Create here and fill in outer dimension (num threads). | |
2021-07-06T06:32:25.3435564Z size_var = pfbdr.make_tuple_variable( | |
2021-07-06T06:32:25.3436130Z size_var_list, name='tuple_size_var', | |
2021-07-06T06:32:25.3436439Z ) | |
2021-07-06T06:32:25.3436671Z | |
2021-07-06T06:32:25.3436953Z # Add call to empty passing the size var tuple. | |
2021-07-06T06:32:25.3437336Z empty_call = pfbdr.call(glbl_np_empty, args=[size_var]) | |
2021-07-06T06:32:25.3437650Z | |
2021-07-06T06:32:25.3437900Z redarr_var = pfbdr.assign( | |
2021-07-06T06:32:25.3438421Z rhs=empty_call, typ=redarrvar_typ, name="redarr", | |
2021-07-06T06:32:25.3438733Z ) | |
2021-07-06T06:32:25.3438970Z | |
2021-07-06T06:32:25.3439566Z # Remember mapping of original reduction array to the newly created per-worker reduction array. | |
2021-07-06T06:32:25.3440021Z redarrs[redvar.name] = redarr_var | |
2021-07-06T06:32:25.3440284Z | |
2021-07-06T06:32:25.3440583Z init_val = parfor_reddict[parfor_redvars[i]][0] | |
2021-07-06T06:32:25.3440938Z if init_val is not None: | |
2021-07-06T06:32:25.3441695Z if isinstance(redvar_typ, types.npytypes.Array): | |
2021-07-06T06:32:25.3442182Z # Create an array of identity values for the reduction. | |
2021-07-06T06:32:25.3442609Z # First, create a variable for np.full. | |
2021-07-06T06:32:25.3443034Z full_func_node = pfbdr.bind_global_function( | |
2021-07-06T06:32:25.3443411Z fobj=np.full, | |
2021-07-06T06:32:25.3443789Z ftype=get_np_ufunc_typ(np.full), | |
2021-07-06T06:32:25.3444238Z args=( | |
2021-07-06T06:32:25.3444632Z types.UniTuple(types.intp, redvar_typ.ndim), | |
2021-07-06T06:32:25.3445018Z reddtype, | |
2021-07-06T06:32:25.3445388Z types.DType(reddtype), | |
2021-07-06T06:32:25.3445723Z ), | |
2021-07-06T06:32:25.3446033Z ) | |
2021-07-06T06:32:25.3446276Z | |
2021-07-06T06:32:25.3446587Z # Then create a var with the identify value. | |
2021-07-06T06:32:25.3447017Z init_val_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3447387Z cval=init_val, | |
2021-07-06T06:32:25.3447734Z typ=reddtype, | |
2021-07-06T06:32:25.3448066Z name="init_val", | |
2021-07-06T06:32:25.3448396Z ) | |
2021-07-06T06:32:25.3448639Z | |
2021-07-06T06:32:25.3449031Z # Then, call np.full with the shape of the reduction array and the identity value. | |
2021-07-06T06:32:25.3449486Z full_call = pfbdr.call( | |
2021-07-06T06:32:25.3449900Z full_func_node, args=[redshape_var, init_val_var], | |
2021-07-06T06:32:25.3450269Z ) | |
2021-07-06T06:32:25.3450510Z | |
2021-07-06T06:32:25.3450806Z redtoset = pfbdr.assign( | |
2021-07-06T06:32:25.3451147Z rhs=full_call, | |
2021-07-06T06:32:25.3451496Z typ=redvar_typ, | |
2021-07-06T06:32:25.3451832Z name="redtoset", | |
2021-07-06T06:32:25.3452321Z ) | |
2021-07-06T06:32:25.3452779Z else: | |
2021-07-06T06:32:25.3453147Z redtoset = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3453518Z cval=init_val, | |
2021-07-06T06:32:25.3453847Z typ=reddtype, | |
2021-07-06T06:32:25.3454198Z name="redtoset", | |
2021-07-06T06:32:25.3454511Z ) | |
2021-07-06T06:32:25.3454811Z else: | |
2021-07-06T06:32:25.3455112Z redtoset = redvar | |
2021-07-06T06:32:25.3455395Z | |
2021-07-06T06:32:25.3455710Z if config.DEBUG_ARRAY_OPT_RUNTIME: | |
2021-07-06T06:32:25.3456217Z res_print_str = "res_print1 for redvar " + str(redvar) + ":" | |
2021-07-06T06:32:25.3456709Z strconsttyp = types.StringLiteral(res_print_str) | |
2021-07-06T06:32:25.3457047Z | |
2021-07-06T06:32:25.3457337Z lhs = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3457700Z cval=res_print_str, | |
2021-07-06T06:32:25.3458215Z typ=strconsttyp, | |
2021-07-06T06:32:25.3458723Z name="str_const", | |
2021-07-06T06:32:25.3459138Z ) | |
2021-07-06T06:32:25.3459380Z | |
2021-07-06T06:32:25.3459702Z res_print = ir.Print(args=[lhs, redvar], | |
2021-07-06T06:32:25.3460114Z vararg=None, loc=loc) | |
2021-07-06T06:32:25.3460571Z lowerer.fndesc.calltypes[res_print] = signature(types.none, | |
2021-07-06T06:32:25.3461036Z typemap[lhs.name], | |
2021-07-06T06:32:25.3461523Z typemap[redvar.name]) | |
2021-07-06T06:32:25.3461956Z print("res_print_redvar", res_print) | |
2021-07-06T06:32:25.3462359Z lowerer.lower_inst(res_print) | |
2021-07-06T06:32:25.3462649Z | |
2021-07-06T06:32:25.3463011Z | |
2021-07-06T06:32:25.3463676Z # For each thread, initialize the per-worker reduction array to the current reduction array value. | |
2021-07-06T06:32:25.3464780Z for j in range(thread_count): | |
2021-07-06T06:32:25.3465192Z index_var = pfbdr.make_const_variable( | |
2021-07-06T06:32:25.3465702Z cval=j, typ=types.uintp, name="index_var", | |
2021-07-06T06:32:25.3466065Z ) | |
2021-07-06T06:32:25.3466425Z pfbdr.setitem(obj=redarr_var, index=index_var, val=redtoset) | |
2021-07-06T06:32:25.3466778Z | |
2021-07-06T06:32:25.3467110Z # compile parfor body as a separate function to be used with GUFuncWrapper | |
2021-07-06T06:32:25.3467521Z flags = copy.copy(parfor.flags) | |
2021-07-06T06:32:25.3468060Z flags.set('error_model', 'numpy') | |
2021-07-06T06:32:25.3468666Z # Can't get here unless flags.set('auto_parallel', ParallelOptions(True)) | |
2021-07-06T06:32:25.3469156Z index_var_typ = typemap[parfor.loop_nests[0].index_variable.name] | |
2021-07-06T06:32:25.3469592Z # index variables should have the same type, check rest of indices | |
2021-07-06T06:32:25.3470386Z for l in parfor.loop_nests[1:]: | |
2021-07-06T06:32:25.3470929Z assert typemap[l.index_variable.name] == index_var_typ | |
2021-07-06T06:32:25.3471710Z numba.parfors.parfor.sequential_parfor_lowering = True | |
2021-07-06T06:32:25.3472023Z try: | |
2021-07-06T06:32:25.3472469Z (func, | |
2021-07-06T06:32:25.3473068Z func_args, | |
2021-07-06T06:32:25.3473355Z func_sig, | |
2021-07-06T06:32:25.3473632Z redargstartdim, | |
2021-07-06T06:32:25.3473920Z func_arg_types, | |
2021-07-06T06:32:25.3474294Z exp_name_to_tuple_var) = _create_gufunc_for_parfor_body( | |
2021-07-06T06:32:25.3475780Z lowerer, parfor, typemap, typingctx, targetctx, flags, {}, | |
2021-07-06T06:32:25.3476307Z bool(alias_map), index_var_typ, parfor.races) | |
2021-07-06T06:32:25.3476640Z finally: | |
2021-07-06T06:32:25.3476999Z numba.parfors.parfor.sequential_parfor_lowering = False | |
2021-07-06T06:32:25.3477324Z | |
2021-07-06T06:32:25.3477598Z # get the shape signature | |
2021-07-06T06:32:25.3478204Z func_args = ['sched'] + func_args | |
2021-07-06T06:32:25.3478587Z num_reductions = len(parfor_redvars) | |
2021-07-06T06:32:25.3479188Z num_inputs = len(func_args) - len(parfor_output_arrays) - num_reductions | |
2021-07-06T06:32:25.3479764Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3480094Z print("func_args = ", func_args) | |
2021-07-06T06:32:25.3480424Z print("num_inputs = ", num_inputs) | |
2021-07-06T06:32:25.3480991Z print("parfor_outputs = ", parfor_output_arrays) | |
2021-07-06T06:32:25.3481549Z print("parfor_redvars = ", parfor_redvars) | |
2021-07-06T06:32:25.3482108Z print("num_reductions = ", num_reductions) | |
2021-07-06T06:32:25.3482471Z gu_signature = _create_shape_signature( | |
2021-07-06T06:32:25.3482827Z parfor.get_shape_classes, | |
2021-07-06T06:32:25.3483121Z num_inputs, | |
2021-07-06T06:32:25.3483611Z num_reductions, | |
2021-07-06T06:32:25.3483890Z func_args, | |
2021-07-06T06:32:25.3484164Z redargstartdim, | |
2021-07-06T06:32:25.3484631Z func_sig, | |
2021-07-06T06:32:25.3485075Z parfor.races, | |
2021-07-06T06:32:25.3485369Z typemap) | |
2021-07-06T06:32:25.3485844Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3486385Z print("gu_signature = ", gu_signature) | |
2021-07-06T06:32:25.3486816Z | |
2021-07-06T06:32:25.3487158Z # call the func in parallel by wrapping it with ParallelGUFuncBuilder | |
2021-07-06T06:32:25.3488369Z loop_ranges = [(l.start, l.stop, l.step) for l in parfor.loop_nests] | |
2021-07-06T06:32:25.3488996Z if config.DEBUG_ARRAY_OPT: | |
2021-07-06T06:32:25.3489355Z print("loop_nests = ", parfor.loop_nests) | |
2021-07-06T06:32:25.3489715Z print("loop_ranges = ", loop_ranges) | |
2021-07-06T06:32:25.3490220Z call_parallel_gufunc( | |
2021-07-06T06:32:25.3490676Z lowerer, | |
2021-07-06T06:32:25.3491702Z func, | |
2021-07-06T06:32:25.3491988Z gu_signature, | |
2021-07-06T06:32:25.3492290Z func_sig, | |
2021-07-06T06:32:25.3492712Z func_args, | |
2021-07-06T06:32:25.3493014Z func_arg_types, | |
2021-07-06T06:32:25.3493296Z loop_ranges, | |
2021-07-06T06:32:25.3493573Z parfor_redvars, | |
2021-07-06T06:32:25.3493878Z parfor_reddict, | |
2021-07-06T06:32:25.3494151Z redarrs, | |
2021-07-06T06:32:25.3494446Z parfor.init_block, | |
2021-07-06T06:32:25.3494732Z index_var_typ, | |
2021-07-06T06:32:25.3495027Z parfor.races, | |
2021-07-06T06:32:25.3495318Z > exp_name_to_tuple_var) | |
2021-07-06T06:32:25.3495473Z | |
2021-07-06T06:32:25.3496261Z [1m[31m/opt/hostedtoolcache/Python/3.7.10/x64/lib/python3.7/site-packages/numba/parfors/parfor_lowering.py[0m:306: | |
2021-07-06T06:32:25.3496816Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-06T06:32:25.3497054Z | |
2021-07-06T06:32:25.3497370Z lowerer = <numba.core.lowering.Lower object at 0x7f16ad3bf7d0> | |
2021-07-06T06:32:25.3498202Z cres = CompileResult(typing_context=<numba.core.typing.context.Context object at 0x7f16c9149250>, target_context=<numba.core....ollection object at 0x7f16abaacb50>}, reload_init=[<function _reload_parfors at 0x7f16c92247a0>], referenced_envs=None) | |
2021-07-06T06:32:25.3499031Z gu_signature = ([('b',), ('a',)], []) | |
2021-07-06T06:32:25.3499560Z outer_sig = (array(uint64, 1d, C), array(int32, 1d, C)) -> none | |
2021-07-06T06:32:25.3500166Z expr_args = ['sched', 'rows'], expr_arg_types = [array(int32, 1d, C)] | |