{"receipt_id":"agent1-1","seq":1,"branch_id":"agent1","kind":"command","cmd":"git ls-files -z","path":null,"exit_code":0,"stdout_tail":".github/workflows/lint.yml\u0000.github/workflows/test.yml\u0000.github/workflows/upload-to-pypi.yml\u0000.gitignore\u0000.pre-commit-config.yaml\u0000.readthedocs.yaml\u0000CHANGELOG.rst\u0000LICENSE\u0000README.rst\u0000ci/matplotlibrc\u0000doc/Makefile\u0000doc/api.rst\u0000doc/changelog.rst\u0000doc/conf.py\u0000doc/formats.ipynb\u0000doc/index.rst\u0000doc/make.bat\u0000doc/requirements.txt\u0000examples/README.txt\u0000examples/plot_customize_after_plot.py\u0000examples/plot_diabetes.py\u0000examples/plot_discrete.py\u0000examples/plot_generated.py\u0000examples/plot_hide.py\u0000examples/plot_highlight.py\u0000examples/plot_missingness.py\u0000examples/plot_sizing.py\u0000examples/plot_theming.py\u0000examples/plot_vertical.py\u0000pyproject.toml\u0000setup.cfg\u0000setup.py\u0000upsetplot/__init__.py\u0000upsetplot/data.py\u0000upsetplot/plotting.py\u0000upsetplot/reformat.py\u0000upsetplot/tests/__init__.py\u0000upsetplot/tests/test_data.py\u0000upsetplot/tests/test_examples.py\u0000upsetplot/tests/test_reformat.py\u0000upsetplot/tests/test_upsetplot.py\u0000upsetplot/util.py\u0000","stderr_tail":"","stdout_sha256":"6cef7c6863d847be4af85157442ac17be01e692fc63bed882c8863fc884df7ca","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-1.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:08:18.767047Z","duration_s":0.0038669999999999998,"timed_out":false,"image_before":"faf1535f-498a-442d-bd8b-a6755937309b","image_after":"4bdc7cef-31af-4ce6-bf61-82ae02f60470","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-2","seq":2,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-f7695e1fbb304b61b771634c2683c171/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-f7695e1fbb304b61b771634c2683c171/incoming/80cf35977588c8dddd581a4ef1e2899e6aec7e4c1cac312f83a9e17fd657778f /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"80cf35977588c8dddd581a4ef1e2899e6aec7e4c1cac312f83a9e17fd657778f","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-2.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:08:32.190219Z","duration_s":0.005371,"timed_out":false,"image_before":"4bdc7cef-31af-4ce6-bf61-82ae02f60470","image_after":"c9cf1d30-0970-4451-9091-e4242f2158db","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-3","seq":3,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-784bd3a07a0147e195610288f14015a5/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-784bd3a07a0147e195610288f14015a5/incoming/73b18b656723f58cb6a5cb0c5915abcd83984ea11445da0538096bef1790cd6e /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"73b18b656723f58cb6a5cb0c5915abcd83984ea11445da0538096bef1790cd6e","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-3.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:08:41.581796Z","duration_s":0.005241,"timed_out":false,"image_before":"c9cf1d30-0970-4451-9091-e4242f2158db","image_after":"3605c8bb-781e-4036-a840-6add8637038b","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-4","seq":4,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-a97ae058c16f4fcc9122c5a99f37cd9e/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-a97ae058c16f4fcc9122c5a99f37cd9e/incoming/03e5bf94b289315a6ac928c88f0da9e3e150c44a36b2f964e1bd68ae94dbe0ac /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"03e5bf94b289315a6ac928c88f0da9e3e150c44a36b2f964e1bd68ae94dbe0ac","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-4.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:09:11.652802Z","duration_s":0.004928999999999999,"timed_out":false,"image_before":"3605c8bb-781e-4036-a840-6add8637038b","image_after":"b9593150-5de4-42e4-91b8-b24edcbc6277","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-5","seq":5,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-5a7d4eb62e1a408baadf4cff3e30cbe6/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-5a7d4eb62e1a408baadf4cff3e30cbe6/receipts_pytest.py upsetplot/tests/test_upsetplot.py::test_filter_subsets -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-5.xml","path":null,"exit_code":1,"stdout_tail":"rt len(subset_intersections) < len(intersections)\n>       assert_series_equal(upset_filtered.intersections, subset_intersections)\n\ndata       =                    index     value\ncat0  cat1  cat2                  \nTrue  True  False      0  1.235461\n      False False      1  0.821389\n      True  False      2  0.967079\n            True       3  1.773347\n            False      4  1.674779\n...                  ...       ...\nFalse True  False   4995  1.147737\n            False   4996  1.368000\n      False False   4997  0.327888\nTrue  True  False   4998  1.598400\n            True    4999  2.419338\n\n[5000 rows x 2 columns]\ndf         =                    index     value  _bin\ncat1  cat0  cat2                        \nTrue  True  False      0  1.235461     4\nFalse True  False      1  0.821389     2\nTrue  True  False      2  0.967079     4\n            True       3  1.773347     7\n            False      4  1.674779     4\n...                  ...       ...   ...\n      False False   4995  1.147737     1\n            False   4996  1.368000     1\nFalse False False   4997  0.327888     0\nTrue  True  False   4998  1.598400     4\n            True    4999  2.419338     7\n\n[5000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nFalse  False  False     220\nTrue   False  False     884\nFalse  True   False     335\n       False  True      143\nTrue   True   False    1547\n       False  True      623\nFalse  True   True      258\nTrue   True   True      990\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'degree'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     4\n           False      2  0.967079     4\n           True       3  1.773347     7\n           False      4  1.674779     4\n           True       7  1.977476     7\n...                 ...       ...   ...\n           False   4994  1.438863     4\n     False False   4995  1.147737     1\n           False   4996  1.368000     1\n     True  False   4998  1.598400     4\n           True    4999  2.419338     7\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  False  False     884\n      True   False    1547\n             True      990\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7fffe708a590>\nupset_full = <upsetplot.plotting.UpSet object at 0x7fffe708b850>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:824: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npandas/_libs/testing.pyx:55: in pandas._libs.testing.assert_almost_equal\n    ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n>   ???\nE   AssertionError: MultiIndex level [0] are different\nE   \nE   MultiIndex level [0] values are different (66.66667 %)\nE   [left]:  Index([False, True, False], dtype='bool', name='cat1')\nE   [right]: Index([True, True, True], dtype='bool', name='cat1')\nE   At positional index 0, first diff: False != True\n\n\npandas/_libs/testing.pyx:173: AssertionError\n==================================== PASSES ====================================\n------------ generated xml file: /opt/receipts/reports/agent1-5.xml ------------\n================================ tests coverage ================================\n_______________ coverage: platform linux, python 3.10.19-final-0 _______________\n\nName                                Stmts   Miss  Cover\n-------------------------------------------------------\nupsetplot/__init__.py                   7      0   100%\nupsetplot/data.py                     103     81    21%\nupsetplot/plotting.py                 368    284    23%\nupsetplot/reformat.py                 122     48    61%\nupsetplot/tests/__init__.py             0      0   100%\nupsetplot/tests/test_data.py           91     91     0%\nupsetplot/tests/test_examples.py       13     13     0%\nupsetplot/tests/test_reformat.py       17     17     0%\nupsetplot/tests/test_upsetplot.py     476    383    20%\nupsetplot/util.py                      29     22    24%\n-------------------------------------------------------\nTOTAL                                1226    939    23%\n=========================== short test summary info ============================\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1] - AssertionError: DataFrame are different\n\nDataFrame shape mismatch\n[left]:  (5000, 2)\n[right]: (3421, 2)\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1] - AssertionError: MultiIndex level [0] are different\n\nMultiIndex level [0] values are different (66.66667 %)\n[left]:  Index([False, True, False], dtype='bool', name='cat1')\n[right]: Index([True, True, True], dtype='bool', name='cat1')\nAt positional index 0, first diff: False != True\n========================= 2 failed, 10 passed in 2.73s =========================\n","stderr_tail":"","stdout_sha256":"80c52083a2fb7f96aa457f6a1baf3465bc45038613782359c0331b4797357a81","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-5.log","tree_digest":"5494b0a04b07511fbdb777e5c4c513ba20bb8767b7b6aea748ed805e99e21a80","tree_download_s":2.2362688339781016,"started_at":"2026-10-03T17:09:14.497504Z","duration_s":3.4930649999999996,"timed_out":false,"image_before":"b9593150-5de4-42e4-91b8-b24edcbc6277","image_after":"0569f6d5-7562-43c9-9ab0-38900a993988","junit":{"passed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]"],"failed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]":"[...]9  2.419338\n\n[5000 rows x 2 columns]\ndf         =                    index     value  _bin\ncat1  cat0  cat2                        \nTrue  True  False      0  1.235461     0\nFalse True  False      1  0.821389     4\nTrue  True  False      2  0.967079     0\n            True       3  1.773347     1\n            False      4  1.674779     0\n...                  ...       ...   ...\n      False False   4995  1.147737     2\n            False   4996  1.368000     2\nFalse False False   4997  0.327888     6\nTrue  True  False   4998  1.598400     0\n            True    4999  2.419338     1\n\n[5000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nTrue   True   False    1547\n              True      990\n       False  False     884\n              True      623\nFalse  True   False     335\n              True      258\n       False  False     220\n              True      143\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'cardinality'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     0\n           False      2  0.967079     0\n           True       3  1.773347     1\n           False      4  1.674779     0\n           True       7  1.977476     1\n...                 ...       ...   ...\n           False   4994  1.438863     0\n     False False   4995  1.147737     2\n           False   4996  1.368000     2\n     True  False   4998  1.598400     0\n           True    4999  2.419338     1\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  True   False    1547\n             True      990\n      False  False     884\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7ffff7547940>\nupset_full = <upsetplot.plotting.UpSet object at 0x7ffff75456c0>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:825: AssertionError","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]":"[...]000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nFalse  False  False     220\nTrue   False  False     884\nFalse  True   False     335\n       False  True      143\nTrue   True   False    1547\n       False  True      623\nFalse  True   True      258\nTrue   True   True      990\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'degree'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     4\n           False      2  0.967079     4\n           True       3  1.773347     7\n           False      4  1.674779     4\n           True       7  1.977476     7\n...                 ...       ...   ...\n           False   4994  1.438863     4\n     False False   4995  1.147737     1\n           False   4996  1.368000     1\n     True  False   4998  1.598400     4\n           True    4999  2.419338     7\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  False  False     884\n      True   False    1547\n             True      990\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7fffe708a590>\nupset_full = <upsetplot.plotting.UpSet object at 0x7fffe708b850>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:824: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npandas/_libs/testing.pyx:55: in pandas._libs.testing.assert_almost_equal\n    ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n>   ???\nE   AssertionError: MultiIndex level [0] are different\nE   \nE   MultiIndex level [0] values are different (66.66667 %)\nE   [left]:  Index([False, True, False], dtype='bool', name='cat1')\nE   [right]: Index([True, True, True], dtype='bool', name='cat1')\nE   At positional index 0, first diff: False != True\n\n\npandas/_libs/testing.pyx:173: AssertionError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-6","seq":6,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-ed67a0ce6144454280a63b100a792eef/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-ed67a0ce6144454280a63b100a792eef/incoming/eca5bb7c74605f45f8fd3dfbdc0dbd2b4faf1992103ae338f2c3e3808c875e26 /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"eca5bb7c74605f45f8fd3dfbdc0dbd2b4faf1992103ae338f2c3e3808c875e26","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-6.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:09:33.128212Z","duration_s":0.0048649999999999995,"timed_out":false,"image_before":"0569f6d5-7562-43c9-9ab0-38900a993988","image_after":"1feaf524-d0a6-4489-99da-ca89c46f2b45","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-7","seq":7,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-945143a0242340c1839eae857583cb10/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-945143a0242340c1839eae857583cb10/receipts_pytest.py upsetplot/tests/test_upsetplot.py::test_filter_subsets -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-7.xml","path":null,"exit_code":1,"stdout_tail":"ssert len(subset_intersections) < len(intersections)\n>       assert_series_equal(upset_filtered.intersections, subset_intersections)\n\ndata       =                    index     value\ncat0  cat1  cat2                  \nTrue  True  False      0  1.235461\n      False False      1  0.821389\n      True  False      2  0.967079\n            True       3  1.773347\n            False      4  1.674779\n...                  ...       ...\nFalse True  False   4995  1.147737\n            False   4996  1.368000\n      False False   4997  0.327888\nTrue  True  False   4998  1.598400\n            True    4999  2.419338\n\n[5000 rows x 2 columns]\ndf         =                    index     value  _bin\ncat1  cat0  cat2                        \nTrue  True  False      0  1.235461     4\nFalse True  False      1  0.821389     2\nTrue  True  False      2  0.967079     4\n            True       3  1.773347     7\n            False      4  1.674779     4\n...                  ...       ...   ...\n      False False   4995  1.147737     1\n            False   4996  1.368000     1\nFalse False False   4997  0.327888     0\nTrue  True  False   4998  1.598400     4\n            True    4999  2.419338     7\n\n[5000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nFalse  False  False     220\nTrue   False  False     884\nFalse  True   False     335\n       False  True      143\nTrue   True   False    1547\n       False  True      623\nFalse  True   True      258\nTrue   True   True      990\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'degree'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     4\n           False      2  0.967079     4\n           True       3  1.773347     7\n           False      4  1.674779     4\n           True       7  1.977476     7\n...                 ...       ...   ...\n           False   4994  1.438863     4\n     False False   4995  1.147737     1\n           False   4996  1.368000     1\n     True  False   4998  1.598400     4\n           True    4999  2.419338     7\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  False  False     884\n      True   False    1547\n             True      990\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7fffe6f887f0>\nupset_full = <upsetplot.plotting.UpSet object at 0x7fffe6f8b070>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:824: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npandas/_libs/testing.pyx:55: in pandas._libs.testing.assert_almost_equal\n    ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n>   ???\nE   AssertionError: MultiIndex level [0] are different\nE   \nE   MultiIndex level [0] values are different (66.66667 %)\nE   [left]:  Index([False, True, False], dtype='bool', name='cat1')\nE   [right]: Index([True, True, True], dtype='bool', name='cat1')\nE   At positional index 0, first diff: False != True\n\n\npandas/_libs/testing.pyx:173: AssertionError\n==================================== PASSES ====================================\n------------ generated xml file: /opt/receipts/reports/agent1-7.xml ------------\n================================ tests coverage ================================\n_______________ coverage: platform linux, python 3.10.19-final-0 _______________\n\nName                                Stmts   Miss  Cover\n-------------------------------------------------------\nupsetplot/__init__.py                   7      0   100%\nupsetplot/data.py                     103     81    21%\nupsetplot/plotting.py                 369    284    23%\nupsetplot/reformat.py                 122     48    61%\nupsetplot/tests/__init__.py             0      0   100%\nupsetplot/tests/test_data.py           91     91     0%\nupsetplot/tests/test_examples.py       13     13     0%\nupsetplot/tests/test_reformat.py       17     17     0%\nupsetplot/tests/test_upsetplot.py     476    383    20%\nupsetplot/util.py                      29     22    24%\n-------------------------------------------------------\nTOTAL                                1227    939    23%\n=========================== short test summary info ============================\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1] - AssertionError: DataFrame are different\n\nDataFrame shape mismatch\n[left]:  (0, 2)\n[right]: (3421, 2)\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1] - AssertionError: MultiIndex level [0] are different\n\nMultiIndex level [0] values are different (66.66667 %)\n[left]:  Index([False, True, False], dtype='bool', name='cat1')\n[right]: Index([True, True, True], dtype='bool', name='cat1')\nAt positional index 0, first diff: False != True\n========================= 2 failed, 10 passed in 2.68s =========================\n","stderr_tail":"","stdout_sha256":"01c7ade8eb224db02afea406632dd21ed2fac1e352449d253f2eda569009cd8a","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-7.log","tree_digest":"c1b55bb86a4dcb87a1aa6cd586c233614ed8b9f3e33730af8b426fe8dc35a7da","tree_download_s":1.8369797908235341,"started_at":"2026-10-03T17:09:36.201940Z","duration_s":3.400636,"timed_out":false,"image_before":"1feaf524-d0a6-4489-99da-ca89c46f2b45","image_after":"e46e0d9c-051e-4d89-9c7b-1502ddd21b35","junit":{"passed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]"],"failed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]":"[...]9  2.419338\n\n[5000 rows x 2 columns]\ndf         =                    index     value  _bin\ncat1  cat0  cat2                        \nTrue  True  False      0  1.235461     0\nFalse True  False      1  0.821389     4\nTrue  True  False      2  0.967079     0\n            True       3  1.773347     1\n            False      4  1.674779     0\n...                  ...       ...   ...\n      False False   4995  1.147737     2\n            False   4996  1.368000     2\nFalse False False   4997  0.327888     6\nTrue  True  False   4998  1.598400     0\n            True    4999  2.419338     1\n\n[5000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nTrue   True   False    1547\n              True      990\n       False  False     884\n              True      623\nFalse  True   False     335\n              True      258\n       False  False     220\n              True      143\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'cardinality'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     0\n           False      2  0.967079     0\n           True       3  1.773347     1\n           False      4  1.674779     0\n           True       7  1.977476     1\n...                 ...       ...   ...\n           False   4994  1.438863     0\n     False False   4995  1.147737     2\n           False   4996  1.368000     2\n     True  False   4998  1.598400     0\n           True    4999  2.419338     1\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  True   False    1547\n             True      990\n      False  False     884\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7ffff7545720>\nupset_full = <upsetplot.plotting.UpSet object at 0x7fffe57d1ba0>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:825: AssertionError","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]":"[...]000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nFalse  False  False     220\nTrue   False  False     884\nFalse  True   False     335\n       False  True      143\nTrue   True   False    1547\n       False  True      623\nFalse  True   True      258\nTrue   True   True      990\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'degree'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     4\n           False      2  0.967079     4\n           True       3  1.773347     7\n           False      4  1.674779     4\n           True       7  1.977476     7\n...                 ...       ...   ...\n           False   4994  1.438863     4\n     False False   4995  1.147737     1\n           False   4996  1.368000     1\n     True  False   4998  1.598400     4\n           True    4999  2.419338     7\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  False  False     884\n      True   False    1547\n             True      990\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7fffe6f887f0>\nupset_full = <upsetplot.plotting.UpSet object at 0x7fffe6f8b070>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:824: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npandas/_libs/testing.pyx:55: in pandas._libs.testing.assert_almost_equal\n    ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n>   ???\nE   AssertionError: MultiIndex level [0] are different\nE   \nE   MultiIndex level [0] values are different (66.66667 %)\nE   [left]:  Index([False, True, False], dtype='bool', name='cat1')\nE   [right]: Index([True, True, True], dtype='bool', name='cat1')\nE   At positional index 0, first diff: False != True\n\n\npandas/_libs/testing.pyx:173: AssertionError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-8","seq":8,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-9a9cf122f05342e08536980524baa61a/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-9a9cf122f05342e08536980524baa61a/incoming/36b10ce2936dda23b05e63120942385367ad55a14f7a044bf4f34028aa1551a8 /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"36b10ce2936dda23b05e63120942385367ad55a14f7a044bf4f34028aa1551a8","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-8.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:09:56.434160Z","duration_s":0.005247,"timed_out":false,"image_before":"e46e0d9c-051e-4d89-9c7b-1502ddd21b35","image_after":"9e126dd2-10b5-4591-9996-425275c3d559","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-9","seq":9,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-0306b6760bd4401d8b5edc08109d3414/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-0306b6760bd4401d8b5edc08109d3414/receipts_pytest.py upsetplot/tests/test_upsetplot.py::test_filter_subsets -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-9.xml","path":null,"exit_code":1,"stdout_tail":"      ...\nFalse True  False   4995  1.147737\n            False   4996  1.368000\n      False False   4997  0.327888\nTrue  True  False   4998  1.598400\n            True    4999  2.419338\n\n[5000 rows x 2 columns]\n        element_size = 32\n        facecolor  = 'black'\n        g          = 1.0\n        include_empty_subsets = False\n        intersection_plot_elements = 6\n        lightness  = np.float64(1.0)\n        mapping    = {(False, False, False): 0, (False, True, False): 2, (True, False, False): 1}\n        mask       = cat1   cat0   cat2 \nTrue   True   False    False\nFalse  True   False    False\nTrue   True   False    False\n              True     False\n              False    False\n                       ...  \n       False  False    False\n              False    False\nFalse  False  False    False\nTrue   True   False    False\n              True     False\nLength: 5000, dtype: bool\n        max_degree = None\n        max_subset_rank = 3\n        max_subset_size = None\n        min_degree = None\n        min_subset_size = None\n        orientation = 'horizontal'\n        orig_data  =                    index     value\ncat1  cat0  cat2                  \nTrue  True  False      0  1.235461\nFalse True  False      1  0.821389\nTrue  True  False      2  0.967079\n            True       3  1.773347\n            False      4  1.674779\n...                  ...       ...\n      False False   4995  1.147737\n            False   4996  1.368000\nFalse False False   4997  0.327888\nTrue  True  False   4998  1.598400\n            True    4999  2.419338\n\n[5000 rows x 2 columns]\n        other_dots_color = 0.18\n        r          = 1.0\n        self       = <upsetplot.plotting.UpSet object at 0x7fffe53e3370>\n        shading_color = 0.05\n        show_counts = ''\n        show_percentages = False\n        sort_by    = 'degree'\n        sort_categories_by = 'cardinality'\n        subset_size = 'auto'\n        subset_tuples = MultiIndex([(False, False, False),\n            ( True, False, False),\n            (False,  True, False)],\n           names=['cat1', 'cat0', 'cat2'])\n        sum_over   = None\n        totals_plot_elements = 2\n        with_lines = True\n/usr/local/lib/python3.10/site-packages/pandas/core/frame.py:4312: in __setitem__\n    self._set_item_frame_value(key, value)\n        key        = '_bin'\n        self       = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: []\n        value      = Empty DataFrame\nColumns: [index, value]\nIndex: []\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: [], key = '_bin'\nvalue = Empty DataFrame\nColumns: [index, value]\nIndex: []\n\n    def _set_item_frame_value(self, key, value: DataFrame) -> None:\n        self._ensure_valid_index(value)\n    \n        # align columns\n        if key in self.columns:\n            loc = self.columns.get_loc(key)\n            cols = self.columns[loc]\n            len_cols = 1 if is_scalar(cols) or isinstance(cols, tuple) else len(cols)\n            if len_cols != len(value.columns):\n>               raise ValueError(\"Columns must be same length as key\")\nE               ValueError: Columns must be same length as key\n\ncols       = '_bin'\nkey        = '_bin'\nlen_cols   = 1\nloc        = 2\nself       = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: []\nvalue      = Empty DataFrame\nColumns: [index, value]\nIndex: []\n\n/usr/local/lib/python3.10/site-packages/pandas/core/frame.py:4440: ValueError\n==================================== PASSES ====================================\n------------ generated xml file: /opt/receipts/reports/agent1-9.xml ------------\n================================ tests coverage ================================\n_______________ coverage: platform linux, python 3.10.19-final-0 _______________\n\nName                                Stmts   Miss  Cover\n-------------------------------------------------------\nupsetplot/__init__.py                   7      0   100%\nupsetplot/data.py                     103     81    21%\nupsetplot/plotting.py                 374    284    24%\nupsetplot/reformat.py                 122     48    61%\nupsetplot/tests/__init__.py             0      0   100%\nupsetplot/tests/test_data.py           91     91     0%\nupsetplot/tests/test_examples.py       13     13     0%\nupsetplot/tests/test_reformat.py       17     17     0%\nupsetplot/tests/test_upsetplot.py     476    383    20%\nupsetplot/util.py                      29     22    24%\n-------------------------------------------------------\nTOTAL                                1232    939    24%\n=========================== short test summary info ============================\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1] - ValueError: Columns must be same length as key\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1] - ValueError: Columns must be same length as key\n========================= 2 failed, 10 passed in 3.16s =========================\n","stderr_tail":"","stdout_sha256":"4b953192642e589cf4d1b862a28c4fa4a4bcd93302e5eeb93c0b51b953ad8c64","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-9.log","tree_digest":"1ffbb48a915466c8b832a940b5b529bf70203d475eee2edb976563d578076db5","tree_download_s":1.584926167037338,"started_at":"2026-10-03T17:09:59.581432Z","duration_s":3.8921650000000003,"timed_out":false,"image_before":"9e126dd2-10b5-4591-9996-425275c3d559","image_after":"923cdd1a-c6de-46ba-8363-206a2de1a6e0","junit":{"passed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]"],"failed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]":"[...]888\nTrue  True  False   4998  1.598400\n            True    4999  2.419338\n\n[5000 rows x 2 columns]\n        other_dots_color = 0.18\n        r          = 1.0\n        self       = <upsetplot.plotting.UpSet object at 0x7ffff7545750>\n        shading_color = 0.05\n        show_counts = ''\n        show_percentages = False\n        sort_by    = 'cardinality'\n        sort_categories_by = 'cardinality'\n        subset_size = 'auto'\n        subset_tuples = MultiIndex([(True,  True, False),\n            (True,  True,  True),\n            (True, False, False)],\n           names=['cat1', 'cat0', 'cat2'])\n        sum_over   = None\n        totals_plot_elements = 2\n        with_lines = True\n/usr/local/lib/python3.10/site-packages/pandas/core/frame.py:4312: in __setitem__\n    self._set_item_frame_value(key, value)\n        key        = '_bin'\n        self       = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: []\n        value      = Empty DataFrame\nColumns: [index, value]\nIndex: []\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: [], key = '_bin'\nvalue = Empty DataFrame\nColumns: [index, value]\nIndex: []\n\n    def _set_item_frame_value(self, key, value: DataFrame) -> None:\n        self._ensure_valid_index(value)\n    \n        # align columns\n        if key in self.columns:\n            loc = self.columns.get_loc(key)\n            cols = self.columns[loc]\n            len_cols = 1 if is_scalar(cols) or isinstance(cols, tuple) else len(cols)\n            if len_cols != len(value.columns):\n>               raise ValueError(\"Columns must be same length as key\")\nE               ValueError: Columns must be same length as key\n\ncols       = '_bin'\nkey        = '_bin'\nlen_cols   = 1\nloc        = 2\nself       = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: []\nvalue      = Empty DataFrame\nColumns: [index, value]\nIndex: []\n\n/usr/local/lib/python3.10/site-packages/pandas/core/frame.py:4440: ValueError","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]":"[...]27888\nTrue  True  False   4998  1.598400\n            True    4999  2.419338\n\n[5000 rows x 2 columns]\n        other_dots_color = 0.18\n        r          = 1.0\n        self       = <upsetplot.plotting.UpSet object at 0x7fffe53e3370>\n        shading_color = 0.05\n        show_counts = ''\n        show_percentages = False\n        sort_by    = 'degree'\n        sort_categories_by = 'cardinality'\n        subset_size = 'auto'\n        subset_tuples = MultiIndex([(False, False, False),\n            ( True, False, False),\n            (False,  True, False)],\n           names=['cat1', 'cat0', 'cat2'])\n        sum_over   = None\n        totals_plot_elements = 2\n        with_lines = True\n/usr/local/lib/python3.10/site-packages/pandas/core/frame.py:4312: in __setitem__\n    self._set_item_frame_value(key, value)\n        key        = '_bin'\n        self       = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: []\n        value      = Empty DataFrame\nColumns: [index, value]\nIndex: []\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: [], key = '_bin'\nvalue = Empty DataFrame\nColumns: [index, value]\nIndex: []\n\n    def _set_item_frame_value(self, key, value: DataFrame) -> None:\n        self._ensure_valid_index(value)\n    \n        # align columns\n        if key in self.columns:\n            loc = self.columns.get_loc(key)\n            cols = self.columns[loc]\n            len_cols = 1 if is_scalar(cols) or isinstance(cols, tuple) else len(cols)\n            if len_cols != len(value.columns):\n>               raise ValueError(\"Columns must be same length as key\")\nE               ValueError: Columns must be same length as key\n\ncols       = '_bin'\nkey        = '_bin'\nlen_cols   = 1\nloc        = 2\nself       = Empty DataFrame\nColumns: [index, value, _bin]\nIndex: []\nvalue      = Empty DataFrame\nColumns: [index, value]\nIndex: []\n\n/usr/local/lib/python3.10/site-packages/pandas/core/frame.py:4440: ValueError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-10","seq":10,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-99076b1ba8f14a1fbbb90889744aa02d/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-99076b1ba8f14a1fbbb90889744aa02d/incoming/61ba182c2b8a5f732be941799ea59e7b110ef25727a0bd273a970ebb6de56d33 /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"61ba182c2b8a5f732be941799ea59e7b110ef25727a0bd273a970ebb6de56d33","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-10.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:10:19.601410Z","duration_s":0.00476,"timed_out":false,"image_before":"923cdd1a-c6de-46ba-8363-206a2de1a6e0","image_after":"76e03086-268d-4baf-aac6-74c68712bc6c","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-11","seq":11,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-9fd5ec143fa94b08b4c7a2580fd6e3e4/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-9fd5ec143fa94b08b4c7a2580fd6e3e4/incoming/a5ffdd0faa9f803b65c49d0fb25c35501574a13a60965f94684d8f4fe6588529 /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"a5ffdd0faa9f803b65c49d0fb25c35501574a13a60965f94684d8f4fe6588529","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-11.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:10:28.177148Z","duration_s":0.0048980000000000004,"timed_out":false,"image_before":"76e03086-268d-4baf-aac6-74c68712bc6c","image_after":"8c3d4624-4404-44a3-9f51-ae92adf23b46","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-12","seq":12,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-bd489ea01f534e5ba04404393211f05e/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-bd489ea01f534e5ba04404393211f05e/incoming/6f741d02600afe70bc727e93c94f785215910cd1341d0875f49eca621d8c379a /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"6f741d02600afe70bc727e93c94f785215910cd1341d0875f49eca621d8c379a","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-12.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:10:45.217240Z","duration_s":0.005093,"timed_out":false,"image_before":"8c3d4624-4404-44a3-9f51-ae92adf23b46","image_after":"a9504021-628b-4463-b6e0-dcc887855def","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-13","seq":13,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-ec60adb997874e7d9419be674f4ebd52/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-ec60adb997874e7d9419be674f4ebd52/receipts_pytest.py upsetplot/tests/test_upsetplot.py::test_filter_subsets -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-13.xml","path":null,"exit_code":1,"stdout_tail":"list(expected.keys()))\n        ]\n        subset_df = df[df.index.isin(list(expected.keys()))]\n        assert len(subset_intersections) < len(intersections)\n>       assert_series_equal(upset_filtered.intersections, subset_intersections)\n\ndata       =                    index     value\ncat0  cat1  cat2                  \nTrue  True  False      0  1.235461\n      False False      1  0.821389\n      True  False      2  0.967079\n            True       3  1.773347\n            False      4  1.674779\n...                  ...       ...\nFalse True  False   4995  1.147737\n            False   4996  1.368000\n      False False   4997  0.327888\nTrue  True  False   4998  1.598400\n            True    4999  2.419338\n\n[5000 rows x 2 columns]\ndf         =                    index     value  _bin\ncat1  cat0  cat2                        \nTrue  True  False      0  1.235461     4\nFalse True  False      1  0.821389     2\nTrue  True  False      2  0.967079     4\n            True       3  1.773347     7\n            False      4  1.674779     4\n...                  ...       ...   ...\n      False False   4995  1.147737     1\n            False   4996  1.368000     1\nFalse False False   4997  0.327888     0\nTrue  True  False   4998  1.598400     4\n            True    4999  2.419338     7\n\n[5000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nFalse  False  False     220\nTrue   False  False     884\nFalse  True   False     335\n       False  True      143\nTrue   True   False    1547\n       False  True      623\nFalse  True   True      258\nTrue   True   True      990\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'degree'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     4\n           False      2  0.967079     4\n           True       3  1.773347     7\n           False      4  1.674779     4\n           True       7  1.977476     7\n...                 ...       ...   ...\n           False   4994  1.438863     4\n     False False   4995  1.147737     1\n           False   4996  1.368000     1\n     True  False   4998  1.598400     4\n           True    4999  2.419338     7\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  False  False     884\n      True   False    1547\n             True      990\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7fffe5ac67a0>\nupset_full = <upsetplot.plotting.UpSet object at 0x7fffe5ac57e0>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:824: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npandas/_libs/testing.pyx:55: in pandas._libs.testing.assert_almost_equal\n    ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n>   ???\nE   AssertionError: MultiIndex level [0] are different\nE   \nE   MultiIndex level [0] values are different (66.66667 %)\nE   [left]:  Index([False, True, False], dtype='bool', name='cat1')\nE   [right]: Index([True, True, True], dtype='bool', name='cat1')\nE   At positional index 0, first diff: False != True\n\n\npandas/_libs/testing.pyx:173: AssertionError\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-13.xml ------------\n================================ tests coverage ================================\n_______________ coverage: platform linux, python 3.10.19-final-0 _______________\n\nName                                Stmts   Miss  Cover\n-------------------------------------------------------\nupsetplot/__init__.py                   7      0   100%\nupsetplot/data.py                     103     81    21%\nupsetplot/plotting.py                 371    284    23%\nupsetplot/reformat.py                 122     48    61%\nupsetplot/tests/__init__.py             0      0   100%\nupsetplot/tests/test_data.py           91     91     0%\nupsetplot/tests/test_examples.py       13     13     0%\nupsetplot/tests/test_reformat.py       17     17     0%\nupsetplot/tests/test_upsetplot.py     476    383    20%\nupsetplot/util.py                      29     22    24%\n-------------------------------------------------------\nTOTAL                                1229    939    24%\n=========================== short test summary info ============================\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1] - AssertionError: MultiIndex level [0] are different\n\nMultiIndex level [0] values are different (66.66667 %)\n[left]:  Index([False, True, False], dtype='bool', name='cat1')\n[right]: Index([True, True, True], dtype='bool', name='cat1')\nAt positional index 0, first diff: False != True\n========================= 1 failed, 11 passed in 2.65s =========================\n","stderr_tail":"","stdout_sha256":"3cb4deca59c4c1e9b97a35562a3bac7e48b4d002410f9d191838aa9d0a0a8811","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-13.log","tree_digest":"c5353297b0eca02053c716d1bcaa6a5beca3bf4b88bd40dfffc18a892126cf5c","tree_download_s":4.579137125052512,"started_at":"2026-10-03T17:10:48.203752Z","duration_s":3.37778,"timed_out":false,"image_before":"a9504021-628b-4463-b6e0-dcc887855def","image_after":"fead317e-aa3f-473e-a85e-83ebdf67de9f","junit":{"passed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]"],"failed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]":"[...]000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nFalse  False  False     220\nTrue   False  False     884\nFalse  True   False     335\n       False  True      143\nTrue   True   False    1547\n       False  True      623\nFalse  True   True      258\nTrue   True   True      990\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'degree'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     4\n           False      2  0.967079     4\n           True       3  1.773347     7\n           False      4  1.674779     4\n           True       7  1.977476     7\n...                 ...       ...   ...\n           False   4994  1.438863     4\n     False False   4995  1.147737     1\n           False   4996  1.368000     1\n     True  False   4998  1.598400     4\n           True    4999  2.419338     7\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  False  False     884\n      True   False    1547\n             True      990\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7fffe5ac67a0>\nupset_full = <upsetplot.plotting.UpSet object at 0x7fffe5ac57e0>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:824: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npandas/_libs/testing.pyx:55: in pandas._libs.testing.assert_almost_equal\n    ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n>   ???\nE   AssertionError: MultiIndex level [0] are different\nE   \nE   MultiIndex level [0] values are different (66.66667 %)\nE   [left]:  Index([False, True, False], dtype='bool', name='cat1')\nE   [right]: Index([True, True, True], dtype='bool', name='cat1')\nE   At positional index 0, first diff: False != True\n\n\npandas/_libs/testing.pyx:173: AssertionError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-14","seq":14,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-5e407c24f6c24407b3537f0967f1b0d5/bin/busybox sh -c 'mkdir -p /UpSetPlot/upsetplot && cp /opt/receipts-5e407c24f6c24407b3537f0967f1b0d5/incoming/a86834b26d0dfd58cc4b09d9da8ec270a585bed2a99c2087fbb52c26ca08bacc /UpSetPlot/upsetplot/plotting.py'","path":"upsetplot/plotting.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"a86834b26d0dfd58cc4b09d9da8ec270a585bed2a99c2087fbb52c26ca08bacc","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-14.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:11:19.329904Z","duration_s":0.004918,"timed_out":false,"image_before":"fead317e-aa3f-473e-a85e-83ebdf67de9f","image_after":"75d614e6-6eee-4040-a4df-65b1e54531d2","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-15","seq":15,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-d47c7f9d942e4037828f97b7f96dca26/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-d47c7f9d942e4037828f97b7f96dca26/receipts_pytest.py upsetplot/tests/test_upsetplot.py::test_filter_subsets -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-15.xml","path":null,"exit_code":1,"stdout_tail":"n(list(expected.keys()))\n        ]\n        subset_df = df[df.index.isin(list(expected.keys()))]\n        assert len(subset_intersections) < len(intersections)\n>       assert_series_equal(upset_filtered.intersections, subset_intersections)\n\ndata       =                    index     value\ncat0  cat1  cat2                  \nTrue  True  False      0  1.235461\n      False False      1  0.821389\n      True  False      2  0.967079\n            True       3  1.773347\n            False      4  1.674779\n...                  ...       ...\nFalse True  False   4995  1.147737\n            False   4996  1.368000\n      False False   4997  0.327888\nTrue  True  False   4998  1.598400\n            True    4999  2.419338\n\n[5000 rows x 2 columns]\ndf         =                    index     value  _bin\ncat1  cat0  cat2                        \nTrue  True  False      0  1.235461     4\nFalse True  False      1  0.821389     2\nTrue  True  False      2  0.967079     4\n            True       3  1.773347     7\n            False      4  1.674779     4\n...                  ...       ...   ...\n      False False   4995  1.147737     1\n            False   4996  1.368000     1\nFalse False False   4997  0.327888     0\nTrue  True  False   4998  1.598400     4\n            True    4999  2.419338     7\n\n[5000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nFalse  False  False     220\nTrue   False  False     884\nFalse  True   False     335\n       False  True      143\nTrue   True   False    1547\n       False  True      623\nFalse  True   True      258\nTrue   True   True      990\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'degree'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     4\n           False      2  0.967079     4\n           True       3  1.773347     7\n           False      4  1.674779     4\n           True       7  1.977476     7\n...                 ...       ...   ...\n           False   4994  1.438863     4\n     False False   4995  1.147737     1\n           False   4996  1.368000     1\n     True  False   4998  1.598400     4\n           True    4999  2.419338     7\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  False  False     884\n      True   False    1547\n             True      990\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7fffe83ee890>\nupset_full = <upsetplot.plotting.UpSet object at 0x7ffff6def310>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:824: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npandas/_libs/testing.pyx:55: in pandas._libs.testing.assert_almost_equal\n    ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n>   ???\nE   AssertionError: MultiIndex level [0] are different\nE   \nE   MultiIndex level [0] values are different (33.33333 %)\nE   [left]:  Index([True, False, True], dtype='bool', name='cat1')\nE   [right]: Index([True, True, True], dtype='bool', name='cat1')\nE   At positional index 1, first diff: False != True\n\n\npandas/_libs/testing.pyx:173: AssertionError\n==================================== PASSES ====================================\n----------- generated xml file: /opt/receipts/reports/agent1-15.xml ------------\n================================ tests coverage ================================\n_______________ coverage: platform linux, python 3.10.19-final-0 _______________\n\nName                                Stmts   Miss  Cover\n-------------------------------------------------------\nupsetplot/__init__.py                   7      0   100%\nupsetplot/data.py                     103     81    21%\nupsetplot/plotting.py                 376    284    24%\nupsetplot/reformat.py                 122     48    61%\nupsetplot/tests/__init__.py             0      0   100%\nupsetplot/tests/test_data.py           91     91     0%\nupsetplot/tests/test_examples.py       13     13     0%\nupsetplot/tests/test_reformat.py       17     17     0%\nupsetplot/tests/test_upsetplot.py     476    383    20%\nupsetplot/util.py                      29     22    24%\n-------------------------------------------------------\nTOTAL                                1234    939    24%\n=========================== short test summary info ============================\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]\nPASSED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1] - AssertionError: MultiIndex level [0] are different\n\nMultiIndex level [0] values are different (33.33333 %)\n[left]:  Index([True, False, True], dtype='bool', name='cat1')\n[right]: Index([True, True, True], dtype='bool', name='cat1')\nAt positional index 1, first diff: False != True\n========================= 1 failed, 11 passed in 2.68s =========================\n","stderr_tail":"","stdout_sha256":"deb55c07f31b773d73e270c602767c26a3bb71b896d3c100ad65939e8c164410","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-15.log","tree_digest":"76f5161d9e42f266ce5f7db5d82a8a4521aec9b0dda0841bd298ee3ee9f55d34","tree_download_s":2.959039666922763,"started_at":"2026-10-03T17:11:23.092189Z","duration_s":3.403095,"timed_out":false,"image_before":"75d614e6-6eee-4040-a4df-65b1e54531d2","image_after":"d724d65d-a201-4b49-89fe-dc1cbf1d8d5b","junit":{"passed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params1-expected1]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[cardinality-filter_params5-expected5]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params0-expected0]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params2-expected2]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params3-expected3]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params4-expected4]","upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params5-expected5]"],"failed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"upsetplot/tests/test_upsetplot.py::test_filter_subsets[degree-filter_params1-expected1]":"[...]5000 rows x 3 columns]\nexpected   = {(True, False, False): 884, (True, True, False): 1547, (True, True, True): 990}\nfilter_params = {'max_subset_rank': 3}\nintersections = cat1   cat0   cat2 \nFalse  False  False     220\nTrue   False  False     884\nFalse  True   False     335\n       False  True      143\nTrue   True   False    1547\n       False  True      623\nFalse  True   True      258\nTrue   True   True      990\nName: size, dtype: int64\nkey        = (True, True, True)\nsort_by    = 'degree'\nsubset_df  =                   index     value  _bin\ncat1 cat0  cat2                        \nTrue True  False      0  1.235461     4\n           False      2  0.967079     4\n           True       3  1.773347     7\n           False      4  1.674779     4\n           True       7  1.977476     7\n...                 ...       ...   ...\n           False   4994  1.438863     4\n     False False   4995  1.147737     1\n           False   4996  1.368000     1\n     True  False   4998  1.598400     4\n           True    4999  2.419338     7\n\n[3421 rows x 3 columns]\nsubset_intersections = cat1  cat0   cat2 \nTrue  False  False     884\n      True   False    1547\n             True      990\nName: size, dtype: int64\nupset_filtered = <upsetplot.plotting.UpSet object at 0x7fffe83ee890>\nupset_full = <upsetplot.plotting.UpSet object at 0x7ffff6def310>\nvalue      = 990\n\nupsetplot/tests/test_upsetplot.py:824: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npandas/_libs/testing.pyx:55: in pandas._libs.testing.assert_almost_equal\n    ???\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n>   ???\nE   AssertionError: MultiIndex level [0] are different\nE   \nE   MultiIndex level [0] values are different (33.33333 %)\nE   [left]:  Index([True, False, True], dtype='bool', name='cat1')\nE   [right]: Index([True, True, True], dtype='bool', name='cat1')\nE   At positional index 1, first diff: False != True\n\n\npandas/_libs/testing.pyx:173: AssertionError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-16","seq":16,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-788cde3cad0e40588b2ac6161cda56c5/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-788cde3cad0e40588b2ac6161cda56c5/receipts_pytest.py upsetplot/tests/test_upsetplot.py::test_filter_subsets_max_subset_rank_tie -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-16.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nrootdir: /UpSetPlot\nconfigfile: setup.cfg\nplugins: cov-7.0.0\ncollecting ... collected 1 item\n\nupsetplot/tests/test_upsetplot.py::test_filter_subsets_max_subset_rank_tie FAILED [100%]\n\n=================================== FAILURES ===================================\n___________________ test_filter_subsets_max_subset_rank_tie ____________________\n\n    def test_filter_subsets_max_subset_rank_tie():\n        data = generate_samples(seed=0, n_samples=5, n_categories=3)\n        tested_non_tie = False\n        tested_tie = True\n        full = UpSet(data, subset_size=\"count\").intersections\n        prev = None\n        for max_rank in range(1, 5):\n            cur = UpSet(data, subset_size=\"count\", max_subset_rank=max_rank).intersections\n            if prev is not None:\n                if cur.shape[0] > prev.shape[0]:\n                    # check we add rows only when they are new\n>                   assert cur.min() < prev.min()\nE                   assert np.int64(1) < np.int64(1)\nE                    +  where np.int64(1) = min()\nE                    +    where min = cat1  cat0   cat2 \\nTrue  False  False    2\\n      True   True     1\\nName: size, dtype: int64.min\nE                    +  and   np.int64(1) = min()\nE                    +    where min = cat1  cat0  cat2\\nTrue  True  True    1\\nName: size, dtype: int64.min\n\ncur        = cat1  cat0   cat2 \nTrue  False  False    2\n      True   True     1\nName: size, dtype: int64\ndata       =                    index     value\ncat0  cat1  cat2                  \nFalse False False      0  1.554445\nTrue  True  True       1  2.532559\nFalse True  False      2  1.637462\n      False False      3  1.015454\n      True  False      4  1.235598\nfull       = cat1   cat0   cat2 \nFalse  False  False    2\nTrue   False  False    2\n       True   True     1\nName: size, dtype: int64\nmax_rank   = 2\nprev       = cat1  cat0  cat2\nTrue  True  True    1\nName: size, dtype: int64\ntested_non_tie = False\ntested_tie = True\n\nupsetplot/tests/test_upsetplot.py:844: AssertionError\n----------- generated xml file: /opt/receipts/reports/agent1-16.xml ------------\n================================ tests coverage ================================\n_______________ coverage: platform linux, python 3.10.19-final-0 _______________\n\nName                                Stmts   Miss  Cover\n-------------------------------------------------------\nupsetplot/__init__.py                   7      0   100%\nupsetplot/data.py                     103     81    21%\nupsetplot/plotting.py                 376    286    24%\nupsetplot/reformat.py                 122     57    53%\nupsetplot/tests/__init__.py             0      0   100%\nupsetplot/tests/test_data.py           91     91     0%\nupsetplot/tests/test_examples.py       13     13     0%\nupsetplot/tests/test_reformat.py       17     17     0%\nupsetplot/tests/test_upsetplot.py     476    386    19%\nupsetplot/util.py                      29     22    24%\n-------------------------------------------------------\nTOTAL                                1234    953    23%\n=========================== short test summary info ============================\nFAILED upsetplot/tests/test_upsetplot.py::test_filter_subsets_max_subset_rank_tie - assert np.int64(1) < np.int64(1)\n +  where np.int64(1) = min()\n +    where min = cat1  cat0   cat2 \\nTrue  False  False    2\\n      True   True     1\\nName: size, dtype: int64.min\n +  and   np.int64(1) = min()\n +    where min = cat1  cat0  cat2\\nTrue  True  True    1\\nName: size, dtype: int64.min\n============================== 1 failed in 2.37s ===============================\n","stderr_tail":"","stdout_sha256":"8c64091f3e752253d78e5451e915a35e5ec53875af00d3bdc0ee4bb9e3b3447c","log_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/logs/agent1/agent1-16.log","tree_digest":"9d1c7f1d40ec8d4b6b3eb2e6329b781345efe2c346f39bf5f485e4d74b1bba96","tree_download_s":2.3945721660275012,"started_at":"2026-10-03T17:11:37.882512Z","duration_s":3.1141140000000003,"timed_out":false,"image_before":"d724d65d-a201-4b49-89fe-dc1cbf1d8d5b","image_after":"43eecafe-bf79-4a58-8710-89a7d19e64ba","junit":{"passed":[],"failed":["upsetplot/tests/test_upsetplot.py::test_filter_subsets_max_subset_rank_tie"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"upsetplot/tests/test_upsetplot.py::test_filter_subsets_max_subset_rank_tie":"assert np.int64(1) < np.int64(1)\n +  where np.int64(1) = min()\n +    where min = cat1  cat0   cat2 \\nTrue  False  False    2\\n      True   True     1\\nName: size, dtype: int64.min\n +  and   np.int64(1) = min()\n +    where min = cat1  cat0  cat2\\nTrue  True  True    1\\nName: size, dtype: int64.min\ndef test_filter_subsets_max_subset_rank_tie():\n        data = generate_samples(seed=0, n_samples=5, n_categories=3)\n        tested_non_tie = False\n        tested_tie = True\n        full = UpSet(data, subset_size=\"count\").intersections\n        prev = None\n        for max_rank in range(1, 5):\n            cur = UpSet(data, subset_size=\"count\", max_subset_rank=max_rank).intersections\n            if prev is not None:\n                if cur.shape[0] > prev.shape[0]:\n                    # check we add rows only when they are new\n>                   assert cur.min() < prev.min()\nE                   assert np.int64(1) < np.int64(1)\nE                    +  where np.int64(1) = min()\nE                    +    where min = cat1  cat0   cat2 \\nTrue  False  False    2\\n      True   True     1\\nName: size, dtype: int64.min\nE                    +  and   np.int64(1) = min()\nE                    +    where min = cat1  cat0  cat2\\nTrue  True  True    1\\nName: size, dtype: int64.min\n\ncur        = cat1  cat0   cat2 \nTrue  False  False    2\n      True   True     1\nName: size, dtype: int64\ndata       =                    index     value\ncat0  cat1  cat2                  \nFalse False False      0  1.554445\nTrue  True  True       1  2.532559\nFalse True  False      2  1.637462\n      False False      3  1.015454\n      True  False      4  1.235598\nfull       = cat1   cat0   cat2 \nFalse  False  False    2\nTrue   False  False    2\n       True   True     1\nName: size, dtype: int64\nmax_rank   = 2\nprev       = cat1  cat0  cat2\nTrue  True  True    1\nName: size, dtype: int64\ntested_non_tie = False\ntested_tie = True\n\nupsetplot/tests/test_upsetplot.py:844: AssertionError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-17","seq":17,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-162aad540933433f8c2f85acb9460c1d: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames 42a696e1cad5ba0dfb8e3627b68b05608ab466ce","path":null,"exit_code":0,"stdout_tail":"diff --git a/upsetplot/plotting.py b/upsetplot/plotting.py\nindex 0451215..3249e25 100644\n--- a/upsetplot/plotting.py\n+++ b/upsetplot/plotting.py\n@@ -32,6 +32,7 @@ def _process_data(\n     max_degree=None,\n     reverse=False,\n     include_empty_subsets=False,\n+    subset_rank_limit=None,\n ):\n     results = query(\n         df,\n@@ -71,6 +72,23 @@ def _process_data(\n     if reverse:\n         agg = agg[::-1]\n \n+    if subset_rank_limit is not None:\n+        # Determine whether to take head or tail based on sort_by\n+        if sort_by == 'degree':\n+            # Assume query returns ascending degree; we want highest degree -> take tail\n+            agg_slice = agg.iloc[-subset_rank_limit:]\n+            # Compute offset of first kept row\n+            start_idx = len(agg) - subset_rank_limit\n+        else:\n+            agg_slice = agg.iloc[:subset_rank_limit]\n+            start_idx = 0\n+        agg = agg_slice\n+        # Keep rows where _bin falls within kept slice\n+        keep_mask = (df[\"_bin\"] >= start_idx) & (df[\"_bin\"] < start_idx + subset_rank_limit)\n+        df = df[keep_mask].copy()\n+        # Remap _bin to new sequential order\n+        df[\"_bin\"] = df[\"_bin\"].map({old: new - start_idx for new, old in enumerate(range(start_idx, start_idx + subset_rank_limit))})\n+\n     return results.total, df, agg, results.category_totals\n \n \n@@ -208,6 +226,13 @@ class UpSet:\n         Maximum degree of a subset to be shown in the plot.\n \n         .. versionadded:: 0.5\n+\n+    max_subset_rank : int, optional\n+        Maximum number of subsets to be shown in the plot, ordered by\n+        ``sort_by``. Only the top ``max_subset_rank`` intersections will\n+        be displayed.\n+\n+        .. versionadded:: 0.12\n     facecolor : 'auto' or matplotlib color or float\n         Color for bar charts and active dots. Defaults to black if\n         axes.facecolor is a light color, otherwise white.\n@@ -282,6 +307,7 @@ class UpSet:\n         show_counts=\"\",\n         show_percentages=False,\n         include_empty_subsets=False,\n+        max_subset_rank=None,\n     ):\n         self._horizontal = orientation == \"horizontal\"\n         self._reorient = _identity if self._horizontal else _transpose\n@@ -328,6 +354,7 @@ class UpSet:\n             max_degree=max_degree,\n             reverse=not self._horizontal,\n             include_empty_subsets=include_empty_subsets,\n+            subset_rank_limit=max_subset_rank,\n         )\n         self.subset_styles = [\n             {\"facecolor\": facecolor} for i in range(len(self.intersections))\n","stderr_tail":"","stdout_sha256":"02203f5c37b0cf5a84d9fdce3415594a83f9ae52263c01b43fba626f7dcfd9b3","log_path":null,"tree_digest":"9d1c7f1d40ec8d4b6b3eb2e6329b781345efe2c346f39bf5f485e4d74b1bba96","tree_download_s":1.8252239162102342,"started_at":"2026-10-03T17:11:52.636086Z","duration_s":0.02524662483483553,"timed_out":false,"image_before":"43eecafe-bf79-4a58-8710-89a7d19e64ba","image_after":"43eecafe-bf79-4a58-8710-89a7d19e64ba","junit":null,"diff":{"files":[{"path":"upsetplot/plotting.py","added":27,"deleted":0,"category":"source","status":"modified"}],"patch_sha256":"02203f5c37b0cf5a84d9fdce3415594a83f9ae52263c01b43fba626f7dcfd9b3","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/artifacts/agent1/agent1-17.patch"},"patch_sha256":"02203f5c37b0cf5a84d9fdce3415594a83f9ae52263c01b43fba626f7dcfd9b3","dropped_paths":[],"snapshot_sha":"42a696e1cad5ba0dfb8e3627b68b05608ab466ce"}
{"receipt_id":"agent1-18","seq":18,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-00359301042e4606808d51a325ede76b: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames 42a696e1cad5ba0dfb8e3627b68b05608ab466ce","path":null,"exit_code":0,"stdout_tail":"diff --git a/upsetplot/plotting.py b/upsetplot/plotting.py\nindex 0451215..3249e25 100644\n--- a/upsetplot/plotting.py\n+++ b/upsetplot/plotting.py\n@@ -32,6 +32,7 @@ def _process_data(\n     max_degree=None,\n     reverse=False,\n     include_empty_subsets=False,\n+    subset_rank_limit=None,\n ):\n     results = query(\n         df,\n@@ -71,6 +72,23 @@ def _process_data(\n     if reverse:\n         agg = agg[::-1]\n \n+    if subset_rank_limit is not None:\n+        # Determine whether to take head or tail based on sort_by\n+        if sort_by == 'degree':\n+            # Assume query returns ascending degree; we want highest degree -> take tail\n+            agg_slice = agg.iloc[-subset_rank_limit:]\n+            # Compute offset of first kept row\n+            start_idx = len(agg) - subset_rank_limit\n+        else:\n+            agg_slice = agg.iloc[:subset_rank_limit]\n+            start_idx = 0\n+        agg = agg_slice\n+        # Keep rows where _bin falls within kept slice\n+        keep_mask = (df[\"_bin\"] >= start_idx) & (df[\"_bin\"] < start_idx + subset_rank_limit)\n+        df = df[keep_mask].copy()\n+        # Remap _bin to new sequential order\n+        df[\"_bin\"] = df[\"_bin\"].map({old: new - start_idx for new, old in enumerate(range(start_idx, start_idx + subset_rank_limit))})\n+\n     return results.total, df, agg, results.category_totals\n \n \n@@ -208,6 +226,13 @@ class UpSet:\n         Maximum degree of a subset to be shown in the plot.\n \n         .. versionadded:: 0.5\n+\n+    max_subset_rank : int, optional\n+        Maximum number of subsets to be shown in the plot, ordered by\n+        ``sort_by``. Only the top ``max_subset_rank`` intersections will\n+        be displayed.\n+\n+        .. versionadded:: 0.12\n     facecolor : 'auto' or matplotlib color or float\n         Color for bar charts and active dots. Defaults to black if\n         axes.facecolor is a light color, otherwise white.\n@@ -282,6 +307,7 @@ class UpSet:\n         show_counts=\"\",\n         show_percentages=False,\n         include_empty_subsets=False,\n+        max_subset_rank=None,\n     ):\n         self._horizontal = orientation == \"horizontal\"\n         self._reorient = _identity if self._horizontal else _transpose\n@@ -328,6 +354,7 @@ class UpSet:\n             max_degree=max_degree,\n             reverse=not self._horizontal,\n             include_empty_subsets=include_empty_subsets,\n+            subset_rank_limit=max_subset_rank,\n         )\n         self.subset_styles = [\n             {\"facecolor\": facecolor} for i in range(len(self.intersections))\n","stderr_tail":"","stdout_sha256":"02203f5c37b0cf5a84d9fdce3415594a83f9ae52263c01b43fba626f7dcfd9b3","log_path":null,"tree_digest":"9d1c7f1d40ec8d4b6b3eb2e6329b781345efe2c346f39bf5f485e4d74b1bba96","tree_download_s":2.8729731249623,"started_at":"2026-10-03T17:12:32.336699Z","duration_s":0.029177374904975295,"timed_out":false,"image_before":"43eecafe-bf79-4a58-8710-89a7d19e64ba","image_after":"43eecafe-bf79-4a58-8710-89a7d19e64ba","junit":null,"diff":{"files":[{"path":"upsetplot/plotting.py","added":27,"deleted":0,"category":"source","status":"modified"}],"patch_sha256":"02203f5c37b0cf5a84d9fdce3415594a83f9ae52263c01b43fba626f7dcfd9b3","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/jnothman__upsetplot-253/runs/pilot-jnothman__upsetplot-253-e2569d546a/artifacts/agent1/agent1-18.patch"},"patch_sha256":"02203f5c37b0cf5a84d9fdce3415594a83f9ae52263c01b43fba626f7dcfd9b3","dropped_paths":[],"snapshot_sha":"42a696e1cad5ba0dfb8e3627b68b05608ab466ce"}
