Skip to content

FEAT-#1200: pivot_table implementation #1669

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Sep 24, 2020

Conversation

dchigarev
Copy link
Collaborator

@dchigarev dchigarev commented Jun 27, 2020

What do these changes do?

@dchigarev dchigarev marked this pull request as draft June 27, 2020 16:41
@modin-bot
Copy link

modin-bot commented Jun 27, 2020

TeamCity Python test results bot

Tests PASSed

Tests Logs
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
collected 114 items

modin/pandas/test/test_io.py .................sX..........s............. [ 37%]
........s............................s..s.X.....s..................ss..  [100%]

----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml


=========== 104 passed, 8 skipped, 2 xpassed, 124 warnings in 43.94s ===========
Closing remaining open files:test_write_modin.hdf...donetest_write_pandas.hdf...done
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I / gw8 I / gw9 I / gw10 I / gw11 I / gw12 I / gw13 I / gw14 I / gw15 I / gw16 I / gw17 I / gw18 I / gw19 I / gw20 I / gw21 I / gw22 I / gw23 I / gw24 I / gw25 I / gw26 I / gw27 I / gw28 I / gw29 I / gw30 I / gw31 I / gw32 I / gw33 I / gw34 I / gw35 I / gw36 I / gw37 I / gw38 I / gw39 I / gw40 I / gw41 I / gw42 I / gw43 I / gw44 I / gw45 I / gw46 I / gw47 I
gw0 [5465] / gw1 [5465] / gw2 [5465] / gw3 [5465] / gw4 [5465] / gw5 [5465] / gw6 [5465] / gw7 [5465] / gw8 [5465] / gw9 [5465] / gw10 [5465] / gw11 [5465] / gw12 [5465] / gw13 [5465] / gw14 [5465] / gw15 [5465] / gw16 [5465] / gw17 [5465] / gw18 [5465] / gw19 [5465] / gw20 [5465] / gw21 [5465] / gw22 [5465] / gw23 [5465] / gw24 [5465] / gw25 [5465] / gw26 [5465] / gw27 [5465] / gw28 [5465] / gw29 [5465] / gw30 [5465] / gw31 [5465] / gw32 [5465] / gw33 [5465] / gw34 [5465] / gw35 [5465] / gw36 [5465] / gw37 [5465] / gw38 [5465] / gw39 [5465] / gw40 [5465] / gw41 [5465] / gw42 [5465] / gw43 [5465] / gw44 [5465] / gw45 [5465] / gw46 [5465] / gw47 [5465]

......................................................................... [  1%]
........................................................................ [  2%]
........................................................................ [  3%]
........................................................................ [  5%]
........................................................................ [  6%]
................................................................x....... [  7%]
.....................................................X.................. [  9%]
.........X...X..............XX...................X...........X.......... [ 10%]
........X.X..................x..X.............X.........X...........x... [ 11%]
...x.X.....X.X.X.....XX...................x......X..X................... [ 13%]
.....X..X..x.......X..............................X.........X......X.x.. [ 14%]
......s.x.........XX....X..........x......X..X..X....X...........X....X. [ 15%]
..x.....XXx..............X........X...X........X.....X...X.X.......s.... [ 17%]
...x....xxX..X..Xx....X......XX...X.......X...X.........x.....X.X.....X. [ 18%]
..xX..XX........s..................X.xX......X.x................X....X.X [ 19%]
....................xXX...X....X.x..........x.............x.....X....... [ 21%]
x...........x.........xx..XX....x.XX.xX..x.......................X...X.x [ 22%]
....x...x....x.X...x................x.....x......X....X.x.....x......... [ 23%]
x.....X....X......xXxx.................X.x....X..X.XX...X............X.. [ 25%]
X.....................XX.....xX..X...x...X...X.X..........XX.XX...X..xX. [ 26%]
.....x.XX..X........X....X.X...............X.X....X............XXX...... [ 27%]
...XX.........X.X..XX.x..X.....X.....X............X....x....X...XXXs.... [ 29%]
X.........................XX.....x.....X......X...X..................... [ 30%]
....X...Xx...xx............x...X....................x................... [ 31%]
..x...............x....x.................................xx.......x..... [ 32%]
.........x....x...............s......x....X............................. [ 34%]
.............x...xx..............................X.......X.X............ [ 35%]
.....x................x.........s..x.................................... [ 36%]
..................X..........................x.......................... [ 38%]
..................x.........................x........................... [ 39%]
.x...................................................................... [ 40%]
................X................................................x...... [ 42%]
.....................................................X.................. [ 43%]
..........................X......................xx.........xx.......... [ 44%]
.............X.......................................................... [ 46%]
.....................X.................................................. [ 47%]
........................................X............X.................. [ 48%]
...............................................................X.....sss [ 50%]
ssssssssss.............................................................. [ 51%]
................x...........................................sssssssss.s. [ 52%]
.................s...sssssssssss.s.......................x............... [ 54%]
..................x..................................................... [ 55%]
......................x.....................................x........... [ 56%]
....................................x............x...................... [ 58%]
........................x......x................................x....... [ 59%]
............X.........x..x..x................................X.......... [ 60%]
........x.......Xx............................X....x.....ss.X........... [ 61%]
..X..............X.x.X...........X.s.....x.x...................x....x... [ 63%]
.......X...x...........x..........................................xx.... [ 64%]
...........................................x......................X...... [ 65%]
........................................................................ [ 67%]
..................................................................X...... [ 68%]
...........X................................x........................... [ 69%]
........................................................................ [ 71%]
......................................................................... [ 72%]
..................................................................X........ [ 73%]
........................................................................ [ 75%]
...................................s...............s..........s....s.... [ 76%]
..s............s....s......s........s.......ss..s......s........s....x.. [ 77%]
....s.x........s.x......s.x....sx...s.....x....s......s.......s..s...... [ 79%]
.............x......s.............x.........................x............. [ 80%]
...x...X...X......x.X......X............X..X...X..X..........X.XXX..X... [ 81%]
.X...XXx.....X.X..X..X.....................Xx.XX..X.........X..X........ [ 83%]
.........X....XXx.....X.....X..x.....X......X......X.....X....X.......x. [ 84%]
...........................X.................................x.X......... [ 85%]
....X...................X............................................... [ 87%]
.......X.....x.........X.......X.....................X...........X...... [ 88%]
....................X....x..............XX..........X.x.xx.x........x..x [ 89%]
...........x...x.......X........X..x...x......x..XxX.................... [ 91%]
..............X.......................................................... [ 92%]
..x..................................................................... [ 93%]
x.xx..x....x..x..x.....x.......x................x.x...x................. [ 95%]
.x................x...x......................x..x....................... [ 96%]
........................................................................ [ 97%]
........................................................................ [ 99%]
.....................................................                    [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
fatal: bad object HEAD


----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml

= 5020 passed, 69 skipped, 156 xfailed, 220 xpassed, 12006 warnings in 93.74s (0:01:33) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
collected 114 items

modin/pandas/test/test_io.py .................sX..........s............. [ 37%]
........s............................s..s.X.....s..................ss..  [100%]

----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml


=========== 104 passed, 8 skipped, 2 xpassed, 124 warnings in 43.94s ===========
Closing remaining open files:test_write_modin.hdf...donetest_write_pandas.hdf...done
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I / gw8 I / gw9 I / gw10 I / gw11 I / gw12 I / gw13 I / gw14 I / gw15 I / gw16 I / gw17 I / gw18 I / gw19 I / gw20 I / gw21 I / gw22 I / gw23 I / gw24 I / gw25 I / gw26 I / gw27 I / gw28 I / gw29 I / gw30 I / gw31 I / gw32 I / gw33 I / gw34 I / gw35 I / gw36 I / gw37 I / gw38 I / gw39 I / gw40 I / gw41 I / gw42 I / gw43 I / gw44 I / gw45 I / gw46 I / gw47 I
gw0 [5465] / gw1 [5465] / gw2 [5465] / gw3 [5465] / gw4 [5465] / gw5 [5465] / gw6 [5465] / gw7 [5465] / gw8 [5465] / gw9 [5465] / gw10 [5465] / gw11 [5465] / gw12 [5465] / gw13 [5465] / gw14 [5465] / gw15 [5465] / gw16 [5465] / gw17 [5465] / gw18 [5465] / gw19 [5465] / gw20 [5465] / gw21 [5465] / gw22 [5465] / gw23 [5465] / gw24 [5465] / gw25 [5465] / gw26 [5465] / gw27 [5465] / gw28 [5465] / gw29 [5465] / gw30 [5465] / gw31 [5465] / gw32 [5465] / gw33 [5465] / gw34 [5465] / gw35 [5465] / gw36 [5465] / gw37 [5465] / gw38 [5465] / gw39 [5465] / gw40 [5465] / gw41 [5465] / gw42 [5465] / gw43 [5465] / gw44 [5465] / gw45 [5465] / gw46 [5465] / gw47 [5465]

......................................................................... [  1%]
........................................................................ [  2%]
........................................................................ [  3%]
........................................................................ [  5%]
........................................................................ [  6%]
................................................................x....... [  7%]
.....................................................X.................. [  9%]
.........X...X..............XX...................X...........X.......... [ 10%]
........X.X..................x..X.............X.........X...........x... [ 11%]
...x.X.....X.X.X.....XX...................x......X..X................... [ 13%]
.....X..X..x.......X..............................X.........X......X.x.. [ 14%]
......s.x.........XX....X..........x......X..X..X....X...........X....X. [ 15%]
..x.....XXx..............X........X...X........X.....X...X.X.......s.... [ 17%]
...x....xxX..X..Xx....X......XX...X.......X...X.........x.....X.X.....X. [ 18%]
..xX..XX........s..................X.xX......X.x................X....X.X [ 19%]
....................xXX...X....X.x..........x.............x.....X....... [ 21%]
x...........x.........xx..XX....x.XX.xX..x.......................X...X.x [ 22%]
....x...x....x.X...x................x.....x......X....X.x.....x......... [ 23%]
x.....X....X......xXxx.................X.x....X..X.XX...X............X.. [ 25%]
X.....................XX.....xX..X...x...X...X.X..........XX.XX...X..xX. [ 26%]
.....x.XX..X........X....X.X...............X.X....X............XXX...... [ 27%]
...XX.........X.X..XX.x..X.....X.....X............X....x....X...XXXs.... [ 29%]
X.........................XX.....x.....X......X...X..................... [ 30%]
....X...Xx...xx............x...X....................x................... [ 31%]
..x...............x....x.................................xx.......x..... [ 32%]
.........x....x...............s......x....X............................. [ 34%]
.............x...xx..............................X.......X.X............ [ 35%]
.....x................x.........s..x.................................... [ 36%]
..................X..........................x.......................... [ 38%]
..................x.........................x........................... [ 39%]
.x...................................................................... [ 40%]
................X................................................x...... [ 42%]
.....................................................X.................. [ 43%]
..........................X......................xx.........xx.......... [ 44%]
.............X.......................................................... [ 46%]
.....................X.................................................. [ 47%]
........................................X............X.................. [ 48%]
...............................................................X.....sss [ 50%]
ssssssssss.............................................................. [ 51%]
................x...........................................sssssssss.s. [ 52%]
.................s...sssssssssss.s.......................x............... [ 54%]
..................x..................................................... [ 55%]
......................x.....................................x........... [ 56%]
....................................x............x...................... [ 58%]
........................x......x................................x....... [ 59%]
............X.........x..x..x................................X.......... [ 60%]
........x.......Xx............................X....x.....ss.X........... [ 61%]
..X..............X.x.X...........X.s.....x.x...................x....x... [ 63%]
.......X...x...........x..........................................xx.... [ 64%]
...........................................x......................X...... [ 65%]
........................................................................ [ 67%]
..................................................................X...... [ 68%]
...........X................................x........................... [ 69%]
........................................................................ [ 71%]
......................................................................... [ 72%]
..................................................................X........ [ 73%]
........................................................................ [ 75%]
...................................s...............s..........s....s.... [ 76%]
..s............s....s......s........s.......ss..s......s........s....x.. [ 77%]
....s.x........s.x......s.x....sx...s.....x....s......s.......s..s...... [ 79%]
.............x......s.............x.........................x............. [ 80%]
...x...X...X......x.X......X............X..X...X..X..........X.XXX..X... [ 81%]
.X...XXx.....X.X..X..X.....................Xx.XX..X.........X..X........ [ 83%]
.........X....XXx.....X.....X..x.....X......X......X.....X....X.......x. [ 84%]
...........................X.................................x.X......... [ 85%]
....X...................X............................................... [ 87%]
.......X.....x.........X.......X.....................X...........X...... [ 88%]
....................X....x..............XX..........X.x.xx.x........x..x [ 89%]
...........x...x.......X........X..x...x......x..XxX.................... [ 91%]
..............X.......................................................... [ 92%]
..x..................................................................... [ 93%]
x.xx..x....x..x..x.....x.......x................x.x...x................. [ 95%]
.x................x...x......................x..x....................... [ 96%]
........................................................................ [ 97%]
........................................................................ [ 99%]
.....................................................                    [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
fatal: bad object HEAD


----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml

= 5020 passed, 69 skipped, 156 xfailed, 220 xpassed, 12006 warnings in 93.74s (0:01:33) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.

@modin-bot
Copy link

modin-bot commented Jun 27, 2020

TeamCity Ray test results bot

Tests PASSed

Tests Logs
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
collected 114 items

modin/pandas/test/test_io.py .................sx..........s............. [ 37%]
.....................................s..s.X.....s..................ss..  [100%]

----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml


= 105 passed, 7 skipped, 1 xfailed, 1 xpassed, 96 warnings in 78.67s (0:01:18) =
Closing remaining open files:test_write_pandas.hdf...donetest_write_modin.hdf...done
�[2m�[36m(pid=1454)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=1454)�[0m fatal: bad object HEAD
�[2m�[36m(pid=1493)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=1493)�[0m fatal: bad object HEAD
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I / gw8 I / gw9 I / gw10 I / gw11 I / gw12 I / gw13 I / gw14 I / gw15 I / gw16 I / gw17 I / gw18 I / gw19 I / gw20 I / gw21 I / gw22 I / gw23 I / gw24 I / gw25 I / gw26 I / gw27 I / gw28 I / gw29 I / gw30 I / gw31 I / gw32 I / gw33 I / gw34 I / gw35 I / gw36 I / gw37 I / gw38 I / gw39 I / gw40 I / gw41 I / gw42 I / gw43 I / gw44 I / gw45 I / gw46 I / gw47 I
gw0 [5465] / gw1 [5465] / gw2 [5465] / gw3 [5465] / gw4 [5465] / gw5 [5465] / gw6 [5465] / gw7 [5465] / gw8 [5465] / gw9 [5465] / gw10 [5465] / gw11 [5465] / gw12 [5465] / gw13 [5465] / gw14 [5465] / gw15 [5465] / gw16 [5465] / gw17 [5465] / gw18 [5465] / gw19 [5465] / gw20 [5465] / gw21 [5465] / gw22 [5465] / gw23 [5465] / gw24 [5465] / gw25 [5465] / gw26 [5465] / gw27 [5465] / gw28 [5465] / gw29 [5465] / gw30 [5465] / gw31 [5465] / gw32 [5465] / gw33 [5465] / gw34 [5465] / gw35 [5465] / gw36 [5465] / gw37 [5465] / gw38 [5465] / gw39 [5465] / gw40 [5465] / gw41 [5465] / gw42 [5465] / gw43 [5465] / gw44 [5465] / gw45 [5465] / gw46 [5465] / gw47 [5465]

........................................................................ [  1%]
......................................................................... [  2%]
........................................................................ [  3%]
........................................................................ [  5%]
........................................................................ [  6%]
........................................................................ [  7%]
..........................................x.....................s....... [  9%]
.X..................................X..............X..x.....X........... [ 10%]
...X....s........................................X..X................... [ 11%]
..........X..........X..........X.............XX...........X.....X...... [ 13%]
....x.x...X...XX...........X.....................X...X.......X..XXX..X... [ 14%]
xX...x.x..........XX....x.X.x....X..........x...xx.xx.XX.xXXXX...X.XXxX. [ 15%]
.X..Xx.XxXX..X.X.....XX......xx.....x............x...xx...x....x.......x [ 17%]
x..XX....XX...X...X...x..Xx....X...X...xX.XXxX.X.XX...X.....X.X.Xx.x..X. [ 18%]
.............x......X................Xx....X..........X...xX.X.......... [ 19%]
.........�[2m�[36m(pid=6358)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=6358)�[0m fatal: bad object HEAD
.x...............Xx.....X....................................... [ 21%]
....................X...............x......................x..........Xx [ 22%]
........X...�[2m�[36m(pid=4514)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4514)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4514)�[0m 
�[2m�[36m(pid=4514)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4514)�[0m 
�[2m�[36m(pid=4514)�[0m becomes:
�[2m�[36m(pid=4514)�[0m 
�[2m�[36m(pid=4514)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4514)�[0m 
....�[2m�[36m(pid=4809)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4809)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4809)�[0m 
�[2m�[36m(pid=4809)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4809)�[0m 
�[2m�[36m(pid=4809)�[0m becomes:
�[2m�[36m(pid=4809)�[0m 
�[2m�[36m(pid=4809)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4809)�[0m 
.....X..X......X...........xx....................X...... [ 23%]
.......�[2m�[36m(pid=4443)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4443)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m becomes:
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4443)�[0m 
......x.......................................................... [ 25%]
..................X.....X..........................................X.... [ 26%]
.X....................................X.......X......................... [ 27%]
.......X...............X...................X............................ [ 29%]
................X......X............X...........x.x..................... [ 30%]
...xx...........X............................X.x.........X............... [ 31%]
.X..........xXx..................XX...X.....x....xXX..................... [ 32%]
........X...............x.................x.........................x.... [ 34%]
...XX........................x........................X.................. [ 35%]
..................x..............................x..................x... [ 37%]
......X...X...X...........X...................X.XX...................x... [ 38%]
...........x............x.......................x.....x................. [ 39%]
...............x..x..........................x.........X...........x.... [ 40%]
......................X.......................................x......... [ 42%]
............x.........s....................x.........XXX..X..X....X..... [ 43%]
............................x..............................X...x........ [ 44%]
....................................X................................... [ 46%]
.........................sss..ss...sss.....ssss...sss..sss.ss....sss..s. [ 47%]
.............ss...sss.ss.................�[2m�[36m(pid=4443)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4443)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", base=2)
.�[2m�[36m(pid=4443)�[0m .
.�[2m�[36m(pid=4443)�[0m becomes:
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4443)�[0m 
...�[2m�[36m(pid=2795)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=2795)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=2795)�[0m 
�[2m�[36m(pid=2795)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=2795)�[0m .
�[2m�[36m(pid=2795)�[0m becomes:
�[2m�[36m(pid=2795)�[0m 
�[2m�[36m(pid=2795)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=2795)�[0m 
.......................�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=3233)�[0m 
.�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=3233)�[0m 
 [ 48%]
...............s....�[2m�[36m(pid=4443)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4443)�[0m The new arguments that you should use are 'offset' or 'origin'.....s
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m becomes:
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=2795)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated..
�[2m�[36m(pid=2795)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=2795)�[0m 
�[2m�[36m(pid=2795)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=2795)�[0m 
�[2m�[36m(pid=2795)�[0m becomes:...................................�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=3233)�[0m 
........... [ 50%]
......�[2m�[36m(pid=953)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=953)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=953)�[0m 
..�[2m�[36m(pid=953)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=953)�[0m 
�[2m�[36m(pid=953)�[0m becomes:
�[2m�[36m(pid=953)�[0m 
�[2m�[36m(pid=953)�[0m >>> df.resample(freq="3s", offset="2s")�[2m�[36m(pid=4443)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4443)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m becomes:
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4443)�[0m 

�[2m�[36m(pid=953)�[0m 
.....�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=3233)�[0m 
............................�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
.�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m ..

�[2m�[36m(pid=3233)�[0m 
...........................�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
.
�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=3233)�[0m 
. [ 51%]
.�[2m�[36m(pid=953)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=953)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=953)�[0m 
.
.........x...x.....................................x....x............. [ 52%]
.s..ss..............x................................................... [ 54%]
.............................................X.......................... [ 55%]
....X................................................................X.. [ 56%]
.....X.......x....x...X.....X....x....ss.x.............................. [ 58%]
........................................................................ [ 59%]
........................................................................ [ 60%]
.........................................X.....x.............x.......... [ 62%]
...X.............................X..........x......................x....X [ 63%]
.Xx...x.X.XXXXX....X.X...X.............................................. [ 64%]
....x..........x......s......................X........................... [ 66%]
...................x..............x........................X............. [ 67%]
........................................................................ [ 68%]
s...................................x.......X..........x................ [ 70%]
...................................x.................................... [ 71%]
.............................�[2m�[36m(pid=6751)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=6751)�[0m fatal: bad object HEAD
............................................ [ 72%]
........................................................................ [ 74%]
............s..................s.............s.......s.......s...s..s... [ 75%]
....x.s......s....x........ss...x..........s.xs...sx.........x.....s...s [ 76%]
s...x....s...s..s...................x..s.....s.............x..........x. [ 77%]
..........s....s......xX.....XX...X...XX......X..........XX..X.X.XX.X.X. [ 79%]
Xx....X.X..X..X.....XXX.x.....X...xX....X.........X..XX..........X.....X [ 80%]
...X..........XxxXXX....x............XX......X..........x..X.X............ [ 81%]
......X...x..X...X...................................X................... [ 83%]
..........................X..................X.........X................ [ 84%]
...........x...........x.....X..................X.....X..........X...... [ 85%]
...................................x...x....x...x.........x.....x.Xx.... [ 87%]
..x..................s....x...x...................x...x....X............ [ 88%]
.............................................................X.......... [ 89%]
........................................................................ [ 91%]
..X.......................................................x.......x..... [ 92%]
...............x.............sx....X.......X...............XXXX.Xx...�[2m�[36m(pid=3233)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.x. [ 93%]
xxx..xxxxx.x.XXXXXX..xxxx.x......�[2m�[36m(pid=6373)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=6373)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
...............�[2m�[36m(pid=5644)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.x...............x...�[2m�[36m(pid=3028)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=3028)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
..x [ 95%]
..................�[2m�[36m(pid=4443)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.....�[2m�[36m(pid=6261)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
..........�[2m�[36m(pid=6261)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
...�[2m�[36m(pid=5408)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.......x...�[2m�[36m(pid=1372)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
........�[2m�[36m(pid=6622)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=6622)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
........x........ [ 96%]
....................�[2m�[36m(pid=5722)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
....................�[2m�[36m(pid=1253)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=1253)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
..............�[2m�[36m(pid=5478)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=5478)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.............�[2m�[36m(pid=5702)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
..... [ 97%]
..........�[2m�[36m(pid=2533)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.....�[2m�[36m(pid=6373)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.....�[2m�[36m(pid=6680)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.................................................... [ 99%]
................................�[2m�[36m(pid=6753)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=6753)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=6753)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
x................                        [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
fatal: bad object HEAD
�[2m�[36m(pid=389)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=389)�[0m fatal: bad object HEAD


----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml

= 5020 passed, 69 skipped, 156 xfailed, 220 xpassed, 11246 warnings in 108.77s (0:01:48) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
collected 114 items

modin/pandas/test/test_io.py .................sx..........s............. [ 37%]
.....................................s..s.X.....s..................ss..  [100%]

----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml


= 105 passed, 7 skipped, 1 xfailed, 1 xpassed, 96 warnings in 78.67s (0:01:18) =
Closing remaining open files:test_write_pandas.hdf...donetest_write_modin.hdf...done
�[2m�[36m(pid=1454)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=1454)�[0m fatal: bad object HEAD
�[2m�[36m(pid=1493)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=1493)�[0m fatal: bad object HEAD
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I / gw8 I / gw9 I / gw10 I / gw11 I / gw12 I / gw13 I / gw14 I / gw15 I / gw16 I / gw17 I / gw18 I / gw19 I / gw20 I / gw21 I / gw22 I / gw23 I / gw24 I / gw25 I / gw26 I / gw27 I / gw28 I / gw29 I / gw30 I / gw31 I / gw32 I / gw33 I / gw34 I / gw35 I / gw36 I / gw37 I / gw38 I / gw39 I / gw40 I / gw41 I / gw42 I / gw43 I / gw44 I / gw45 I / gw46 I / gw47 I
gw0 [5465] / gw1 [5465] / gw2 [5465] / gw3 [5465] / gw4 [5465] / gw5 [5465] / gw6 [5465] / gw7 [5465] / gw8 [5465] / gw9 [5465] / gw10 [5465] / gw11 [5465] / gw12 [5465] / gw13 [5465] / gw14 [5465] / gw15 [5465] / gw16 [5465] / gw17 [5465] / gw18 [5465] / gw19 [5465] / gw20 [5465] / gw21 [5465] / gw22 [5465] / gw23 [5465] / gw24 [5465] / gw25 [5465] / gw26 [5465] / gw27 [5465] / gw28 [5465] / gw29 [5465] / gw30 [5465] / gw31 [5465] / gw32 [5465] / gw33 [5465] / gw34 [5465] / gw35 [5465] / gw36 [5465] / gw37 [5465] / gw38 [5465] / gw39 [5465] / gw40 [5465] / gw41 [5465] / gw42 [5465] / gw43 [5465] / gw44 [5465] / gw45 [5465] / gw46 [5465] / gw47 [5465]

........................................................................ [  1%]
......................................................................... [  2%]
........................................................................ [  3%]
........................................................................ [  5%]
........................................................................ [  6%]
........................................................................ [  7%]
..........................................x.....................s....... [  9%]
.X..................................X..............X..x.....X........... [ 10%]
...X....s........................................X..X................... [ 11%]
..........X..........X..........X.............XX...........X.....X...... [ 13%]
....x.x...X...XX...........X.....................X...X.......X..XXX..X... [ 14%]
xX...x.x..........XX....x.X.x....X..........x...xx.xx.XX.xXXXX...X.XXxX. [ 15%]
.X..Xx.XxXX..X.X.....XX......xx.....x............x...xx...x....x.......x [ 17%]
x..XX....XX...X...X...x..Xx....X...X...xX.XXxX.X.XX...X.....X.X.Xx.x..X. [ 18%]
.............x......X................Xx....X..........X...xX.X.......... [ 19%]
.........�[2m�[36m(pid=6358)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=6358)�[0m fatal: bad object HEAD
.x...............Xx.....X....................................... [ 21%]
....................X...............x......................x..........Xx [ 22%]
........X...�[2m�[36m(pid=4514)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4514)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4514)�[0m 
�[2m�[36m(pid=4514)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4514)�[0m 
�[2m�[36m(pid=4514)�[0m becomes:
�[2m�[36m(pid=4514)�[0m 
�[2m�[36m(pid=4514)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4514)�[0m 
....�[2m�[36m(pid=4809)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4809)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4809)�[0m 
�[2m�[36m(pid=4809)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4809)�[0m 
�[2m�[36m(pid=4809)�[0m becomes:
�[2m�[36m(pid=4809)�[0m 
�[2m�[36m(pid=4809)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4809)�[0m 
.....X..X......X...........xx....................X...... [ 23%]
.......�[2m�[36m(pid=4443)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4443)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m becomes:
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4443)�[0m 
......x.......................................................... [ 25%]
..................X.....X..........................................X.... [ 26%]
.X....................................X.......X......................... [ 27%]
.......X...............X...................X............................ [ 29%]
................X......X............X...........x.x..................... [ 30%]
...xx...........X............................X.x.........X............... [ 31%]
.X..........xXx..................XX...X.....x....xXX..................... [ 32%]
........X...............x.................x.........................x.... [ 34%]
...XX........................x........................X.................. [ 35%]
..................x..............................x..................x... [ 37%]
......X...X...X...........X...................X.XX...................x... [ 38%]
...........x............x.......................x.....x................. [ 39%]
...............x..x..........................x.........X...........x.... [ 40%]
......................X.......................................x......... [ 42%]
............x.........s....................x.........XXX..X..X....X..... [ 43%]
............................x..............................X...x........ [ 44%]
....................................X................................... [ 46%]
.........................sss..ss...sss.....ssss...sss..sss.ss....sss..s. [ 47%]
.............ss...sss.ss.................�[2m�[36m(pid=4443)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4443)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", base=2)
.�[2m�[36m(pid=4443)�[0m .
.�[2m�[36m(pid=4443)�[0m becomes:
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4443)�[0m 
...�[2m�[36m(pid=2795)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=2795)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=2795)�[0m 
�[2m�[36m(pid=2795)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=2795)�[0m .
�[2m�[36m(pid=2795)�[0m becomes:
�[2m�[36m(pid=2795)�[0m 
�[2m�[36m(pid=2795)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=2795)�[0m 
.......................�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=3233)�[0m 
.�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=3233)�[0m 
 [ 48%]
...............s....�[2m�[36m(pid=4443)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4443)�[0m The new arguments that you should use are 'offset' or 'origin'.....s
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m becomes:
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=2795)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated..
�[2m�[36m(pid=2795)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=2795)�[0m 
�[2m�[36m(pid=2795)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=2795)�[0m 
�[2m�[36m(pid=2795)�[0m becomes:...................................�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=3233)�[0m 
........... [ 50%]
......�[2m�[36m(pid=953)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=953)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=953)�[0m 
..�[2m�[36m(pid=953)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=953)�[0m 
�[2m�[36m(pid=953)�[0m becomes:
�[2m�[36m(pid=953)�[0m 
�[2m�[36m(pid=953)�[0m >>> df.resample(freq="3s", offset="2s")�[2m�[36m(pid=4443)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=4443)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m becomes:
�[2m�[36m(pid=4443)�[0m 
�[2m�[36m(pid=4443)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=4443)�[0m 

�[2m�[36m(pid=953)�[0m 
.....�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=3233)�[0m 
............................�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
.�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m ..

�[2m�[36m(pid=3233)�[0m 
...........................�[2m�[36m(pid=3233)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=3233)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", base=2)
.
�[2m�[36m(pid=3233)�[0m becomes:
�[2m�[36m(pid=3233)�[0m 
�[2m�[36m(pid=3233)�[0m >>> df.resample(freq="3s", offset="2s")
�[2m�[36m(pid=3233)�[0m 
. [ 51%]
.�[2m�[36m(pid=953)�[0m FutureWarning: 'base' in .resample() and in Grouper() is deprecated.
�[2m�[36m(pid=953)�[0m The new arguments that you should use are 'offset' or 'origin'.
�[2m�[36m(pid=953)�[0m 
.
.........x...x.....................................x....x............. [ 52%]
.s..ss..............x................................................... [ 54%]
.............................................X.......................... [ 55%]
....X................................................................X.. [ 56%]
.....X.......x....x...X.....X....x....ss.x.............................. [ 58%]
........................................................................ [ 59%]
........................................................................ [ 60%]
.........................................X.....x.............x.......... [ 62%]
...X.............................X..........x......................x....X [ 63%]
.Xx...x.X.XXXXX....X.X...X.............................................. [ 64%]
....x..........x......s......................X........................... [ 66%]
...................x..............x........................X............. [ 67%]
........................................................................ [ 68%]
s...................................x.......X..........x................ [ 70%]
...................................x.................................... [ 71%]
.............................�[2m�[36m(pid=6751)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=6751)�[0m fatal: bad object HEAD
............................................ [ 72%]
........................................................................ [ 74%]
............s..................s.............s.......s.......s...s..s... [ 75%]
....x.s......s....x........ss...x..........s.xs...sx.........x.....s...s [ 76%]
s...x....s...s..s...................x..s.....s.............x..........x. [ 77%]
..........s....s......xX.....XX...X...XX......X..........XX..X.X.XX.X.X. [ 79%]
Xx....X.X..X..X.....XXX.x.....X...xX....X.........X..XX..........X.....X [ 80%]
...X..........XxxXXX....x............XX......X..........x..X.X............ [ 81%]
......X...x..X...X...................................X................... [ 83%]
..........................X..................X.........X................ [ 84%]
...........x...........x.....X..................X.....X..........X...... [ 85%]
...................................x...x....x...x.........x.....x.Xx.... [ 87%]
..x..................s....x...x...................x...x....X............ [ 88%]
.............................................................X.......... [ 89%]
........................................................................ [ 91%]
..X.......................................................x.......x..... [ 92%]
...............x.............sx....X.......X...............XXXX.Xx...�[2m�[36m(pid=3233)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.x. [ 93%]
xxx..xxxxx.x.XXXXXX..xxxx.x......�[2m�[36m(pid=6373)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=6373)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
...............�[2m�[36m(pid=5644)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.x...............x...�[2m�[36m(pid=3028)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=3028)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
..x [ 95%]
..................�[2m�[36m(pid=4443)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.....�[2m�[36m(pid=6261)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
..........�[2m�[36m(pid=6261)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
...�[2m�[36m(pid=5408)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.......x...�[2m�[36m(pid=1372)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
........�[2m�[36m(pid=6622)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=6622)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
........x........ [ 96%]
....................�[2m�[36m(pid=5722)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
....................�[2m�[36m(pid=1253)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=1253)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
..............�[2m�[36m(pid=5478)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=5478)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.............�[2m�[36m(pid=5702)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
..... [ 97%]
..........�[2m�[36m(pid=2533)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.....�[2m�[36m(pid=6373)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.....�[2m�[36m(pid=6680)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
.................................................... [ 99%]
................................�[2m�[36m(pid=6753)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=6753)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
�[2m�[36m(pid=6753)�[0m FutureWarning: The `squeeze` parameter is deprecated and will be removed in a future version.
x................                        [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
fatal: bad object HEAD
�[2m�[36m(pid=389)�[0m error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
�[2m�[36m(pid=389)�[0m fatal: bad object HEAD


----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml

= 5020 passed, 69 skipped, 156 xfailed, 220 xpassed, 11246 warnings in 108.77s (0:01:48) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.

@modin-bot
Copy link

modin-bot commented Jun 27, 2020

TeamCity Dask test results bot

Tests PASSed

Tests Logs
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
collected 114 items

modin/pandas/test/test_io.py .................sx..........s............. [ 37%]
.....................................s..s.X.....s..................ss..  [100%]

----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml


= 105 passed, 7 skipped, 1 xfailed, 1 xpassed, 107 warnings in 79.23s (0:01:19) =
Closing remaining open files:test_write_pandas.hdf...donetest_write_modin.hdf...done
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I / gw8 I / gw9 I / gw10 I / gw11 I / gw12 I / gw13 I / gw14 I / gw15 I / gw16 I / gw17 I / gw18 I / gw19 I / gw20 I / gw21 I / gw22 I / gw23 I / gw24 I / gw25 I / gw26 I / gw27 I / gw28 I / gw29 I / gw30 I / gw31 I / gw32 I / gw33 I / gw34 I / gw35 I / gw36 I / gw37 I / gw38 I / gw39 I / gw40 I / gw41 I / gw42 I / gw43 I / gw44 I / gw45 I / gw46 I / gw47 I
gw0 [5465] / gw1 [5465] / gw2 [5465] / gw3 [5465] / gw4 [5465] / gw5 [5465] / gw6 [5465] / gw7 [5465] / gw8 [5465] / gw9 [5465] / gw10 [5465] / gw11 [5465] / gw12 [5465] / gw13 [5465] / gw14 [5465] / gw15 [5465] / gw16 [5465] / gw17 [5465] / gw18 [5465] / gw19 [5465] / gw20 [5465] / gw21 [5465] / gw22 [5465] / gw23 [5465] / gw24 [5465] / gw25 [5465] / gw26 [5465] / gw27 [5465] / gw28 [5465] / gw29 [5465] / gw30 [5465] / gw31 [5465] / gw32 [5465] / gw33 [5465] / gw34 [5465] / gw35 [5465] / gw36 [5465] / gw37 [5465] / gw38 [5465] / gw39 [5465] / gw40 [5465] / gw41 [5465] / gw42 [5465] / gw43 [5465] / gw44 [5465] / gw45 [5465] / gw46 [5465] / gw47 [5465]

........................................................................ [  1%]
........................................................................ [  2%]
........................................................................ [  3%]
........................................................................ [  5%]
........................................................................ [  6%]
........................................................................ [  7%]
............................s.....................x..................... [  9%]
X.................................................X...............X..... [ 10%]
...x................X.X............X.....X................X....X........ [ 11%]
...............s....x....XX.X........X............................XX.... [ 13%]
...............X.X..X.....X........X..............x..XX.........x....... [ 14%]
X....................X....................X..Xx...........X.............X [ 15%]
....x.......X...X.x...x.....x.X......X.........X.X................x..... [ 17%]
.........X.x....xX.....XX....X.....X...x..X.......XX.....X....x......X.. [ 18%]
...............xx.X.......X.........x.......x............xxX..x...X..... [ 19%]
X....X........X..X..x..X....XX.............xx.........x....xX......XXX.. [ 21%]
..X........X.........X.x....X..............X.X..X......x................ [ 22%]
...X...............x................x....X....................x......... [ 23%]
..............X.x..............................x........................ [ 25%]
....................x..........x.......................X................ [ 26%]
.......X...X.......X............x.................X..................... [ 27%]
...........x.x..........x.....X....X..X......X.X.X.........X....X........ [ 29%]
...X...........XX........X........................X..................... [ 30%]
.....X..................x.....................................x......... [ 31%]
.........Xx....................................x.......x.X.x........X.... [ 32%]
...........................................................x....x....... [ 34%]
X............................................x..............x.......x.... [ 35%]
......X.........X........X........x..X.X.........X...X.X..............X. [ 36%]
..x..........XX.......X....X..............X.........X...X..X............ [ 38%]
..............................X..x...........X......X...........X.....X. [ 39%]
...........X..x....x....X....X.......x.........xx....x.............x.... [ 40%]
............X...x......................X...x...x............x........... [ 42%]
ssXsss..ss.s.ss...s...X....X...x...X...xX.............X.....X............. [ 43%]
.........x...x..............x...............x.....x....X.........X.x.... [ 44%]
..x......X.......X..xX..X...X.....X...X....s..........x....s.s.sss.ss.s. [ 46%]
xssss.........x......................x.......X.......X..X..X...X...X.... [ 47%]
.......................x.......X................x........................ [ 48%]
.........x....................................................s.......... [ 50%]
..................................x.....x............................... [ 51%]
......................X...........x.x................................... [ 52%]
........................................x................x............x... [ 54%]
.......x............x..........x..X............sss.s.ssss..sssss...s.... [ 55%]
..X...........x.........x............................................... [ 56%]
...............X............................X........................... [ 58%]
........................................................................ [ 59%]
........................................................................ [ 60%]
........................................................................ [ 62%]
......X.........x...ss....X...x..............................x.X........ [ 63%]
.xx........X.....x.........................................X............. [ 64%]
...............X......X................................X................ [ 66%]
.......x..................x..............................X.............. [ 67%]
..............X.........X............................................... [ 68%]
.......................................................x................ [ 70%]
...x..............x..................................................... [ 71%]
......................................................................... [ 72%]
........................................................................ [ 73%]
.....................................................................s.. [ 75%]
........................s...s...................x..s...s..s.s.....s..... [ 76%]
..s..x............s....sx...x..s.x.......s.s........s....sx.x.s.......sx [ 77%]
..........s...s............sx...XX.......X.s........X....s....X.......X. [ 79%]
.X.x.XX.....XXx..sx.......X..X........X.XX.X..X.X.x.X.........X....X..x. [ 80%]
...x.XX...XX..X..X......X....X.X.x.....X......Xx.....X...x...X....X.X... [ 81%]
.X...X.........X...x.....x.X.X....x............X........................ [ 83%]
..........X.........................................X........x........... [ 84%]
...........................x........X....................X.........XX... [ 85%]
.....................................................X...............x.. [ 87%]
........Xx..........X.X...x.....sx.........................x........x... [ 88%]
.x..........x....X.................X......x....X.x...................... [ 89%]
.......................s................................................ [ 91%]
.X......X..........x.......x........X................................... [ 92%]
..X...................................................x.x......x........ [ 93%]
...............................x.......X.......................xx....... [ 95%]
x.x...x..............x........x....x........x..........x................ [ 96%]
.xx..................................................................... [ 97%]
........................................................................ [ 99%]
....................................................                     [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
fatal: bad object HEAD
UserWarning: The Dask Engine for Modin is experimental.


----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml

= 5020 passed, 69 skipped, 156 xfailed, 220 xpassed, 11138 warnings in 124.62s (0:02:04) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
collected 114 items

modin/pandas/test/test_io.py .................sx..........s............. [ 37%]
.....................................s..s.X.....s..................ss..  [100%]

----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml


= 105 passed, 7 skipped, 1 xfailed, 1 xpassed, 107 warnings in 79.23s (0:01:19) =
Closing remaining open files:test_write_pandas.hdf...donetest_write_modin.hdf...done
============================= test session starts ==============================
platform linux -- Python 3.8.5, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
benchmark: 3.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /modin, configfile: setup.cfg
plugins: benchmark-3.2.3, cov-2.10.1, forked-1.2.0, xdist-2.1.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I / gw6 I / gw7 I / gw8 I / gw9 I / gw10 I / gw11 I / gw12 I / gw13 I / gw14 I / gw15 I / gw16 I / gw17 I / gw18 I / gw19 I / gw20 I / gw21 I / gw22 I / gw23 I / gw24 I / gw25 I / gw26 I / gw27 I / gw28 I / gw29 I / gw30 I / gw31 I / gw32 I / gw33 I / gw34 I / gw35 I / gw36 I / gw37 I / gw38 I / gw39 I / gw40 I / gw41 I / gw42 I / gw43 I / gw44 I / gw45 I / gw46 I / gw47 I
gw0 [5465] / gw1 [5465] / gw2 [5465] / gw3 [5465] / gw4 [5465] / gw5 [5465] / gw6 [5465] / gw7 [5465] / gw8 [5465] / gw9 [5465] / gw10 [5465] / gw11 [5465] / gw12 [5465] / gw13 [5465] / gw14 [5465] / gw15 [5465] / gw16 [5465] / gw17 [5465] / gw18 [5465] / gw19 [5465] / gw20 [5465] / gw21 [5465] / gw22 [5465] / gw23 [5465] / gw24 [5465] / gw25 [5465] / gw26 [5465] / gw27 [5465] / gw28 [5465] / gw29 [5465] / gw30 [5465] / gw31 [5465] / gw32 [5465] / gw33 [5465] / gw34 [5465] / gw35 [5465] / gw36 [5465] / gw37 [5465] / gw38 [5465] / gw39 [5465] / gw40 [5465] / gw41 [5465] / gw42 [5465] / gw43 [5465] / gw44 [5465] / gw45 [5465] / gw46 [5465] / gw47 [5465]

........................................................................ [  1%]
........................................................................ [  2%]
........................................................................ [  3%]
........................................................................ [  5%]
........................................................................ [  6%]
........................................................................ [  7%]
............................s.....................x..................... [  9%]
X.................................................X...............X..... [ 10%]
...x................X.X............X.....X................X....X........ [ 11%]
...............s....x....XX.X........X............................XX.... [ 13%]
...............X.X..X.....X........X..............x..XX.........x....... [ 14%]
X....................X....................X..Xx...........X.............X [ 15%]
....x.......X...X.x...x.....x.X......X.........X.X................x..... [ 17%]
.........X.x....xX.....XX....X.....X...x..X.......XX.....X....x......X.. [ 18%]
...............xx.X.......X.........x.......x............xxX..x...X..... [ 19%]
X....X........X..X..x..X....XX.............xx.........x....xX......XXX.. [ 21%]
..X........X.........X.x....X..............X.X..X......x................ [ 22%]
...X...............x................x....X....................x......... [ 23%]
..............X.x..............................x........................ [ 25%]
....................x..........x.......................X................ [ 26%]
.......X...X.......X............x.................X..................... [ 27%]
...........x.x..........x.....X....X..X......X.X.X.........X....X........ [ 29%]
...X...........XX........X........................X..................... [ 30%]
.....X..................x.....................................x......... [ 31%]
.........Xx....................................x.......x.X.x........X.... [ 32%]
...........................................................x....x....... [ 34%]
X............................................x..............x.......x.... [ 35%]
......X.........X........X........x..X.X.........X...X.X..............X. [ 36%]
..x..........XX.......X....X..............X.........X...X..X............ [ 38%]
..............................X..x...........X......X...........X.....X. [ 39%]
...........X..x....x....X....X.......x.........xx....x.............x.... [ 40%]
............X...x......................X...x...x............x........... [ 42%]
ssXsss..ss.s.ss...s...X....X...x...X...xX.............X.....X............. [ 43%]
.........x...x..............x...............x.....x....X.........X.x.... [ 44%]
..x......X.......X..xX..X...X.....X...X....s..........x....s.s.sss.ss.s. [ 46%]
xssss.........x......................x.......X.......X..X..X...X...X.... [ 47%]
.......................x.......X................x........................ [ 48%]
.........x....................................................s.......... [ 50%]
..................................x.....x............................... [ 51%]
......................X...........x.x................................... [ 52%]
........................................x................x............x... [ 54%]
.......x............x..........x..X............sss.s.ssss..sssss...s.... [ 55%]
..X...........x.........x............................................... [ 56%]
...............X............................X........................... [ 58%]
........................................................................ [ 59%]
........................................................................ [ 60%]
........................................................................ [ 62%]
......X.........x...ss....X...x..............................x.X........ [ 63%]
.xx........X.....x.........................................X............. [ 64%]
...............X......X................................X................ [ 66%]
.......x..................x..............................X.............. [ 67%]
..............X.........X............................................... [ 68%]
.......................................................x................ [ 70%]
...x..............x..................................................... [ 71%]
......................................................................... [ 72%]
........................................................................ [ 73%]
.....................................................................s.. [ 75%]
........................s...s...................x..s...s..s.s.....s..... [ 76%]
..s..x............s....sx...x..s.x.......s.s........s....sx.x.s.......sx [ 77%]
..........s...s............sx...XX.......X.s........X....s....X.......X. [ 79%]
.X.x.XX.....XXx..sx.......X..X........X.XX.X..X.X.x.X.........X....X..x. [ 80%]
...x.XX...XX..X..X......X....X.X.x.....X......Xx.....X...x...X....X.X... [ 81%]
.X...X.........X...x.....x.X.X....x............X........................ [ 83%]
..........X.........................................X........x........... [ 84%]
...........................x........X....................X.........XX... [ 85%]
.....................................................X...............x.. [ 87%]
........Xx..........X.X...x.....sx.........................x........x... [ 88%]
.x..........x....X.................X......x....X.x...................... [ 89%]
.......................s................................................ [ 91%]
.X......X..........x.......x........X................................... [ 92%]
..X...................................................x.x......x........ [ 93%]
...............................x.......X.......................xx....... [ 95%]
x.x...x..............x........x....x........x..........x................ [ 96%]
.xx..................................................................... [ 97%]
........................................................................ [ 99%]
....................................................                     [100%]error: object directory /localdisk/tc_agent/system/git/git-CE4319E5.git/objects does not exist; check .git/objects/info/alternates.
fatal: bad object HEAD
UserWarning: The Dask Engine for Modin is experimental.


----------- coverage: platform linux, python 3.8.5-final-0 -----------
Coverage XML written to file coverage.xml

= 5020 passed, 69 skipped, 156 xfailed, 220 xpassed, 11138 warnings in 124.62s (0:02:04) =
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.

@codecov
Copy link

codecov bot commented Jun 29, 2020

Codecov Report

Merging #1669 into master will increase coverage by 3.42%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1669      +/-   ##
==========================================
+ Coverage   82.66%   86.09%   +3.42%     
==========================================
  Files         117      117              
  Lines       13044    13092      +48     
==========================================
+ Hits        10783    11271     +488     
+ Misses       2261     1821     -440     
Impacted Files Coverage Δ
...ngines/dask/pandas_on_dask/frame/axis_partition.py 100.00% <ø> (+3.44%) ⬆️
.../engines/ray/pandas_on_ray/frame/axis_partition.py 100.00% <ø> (ø)
modin/backends/base/query_compiler.py 99.41% <100.00%> (+<0.01%) ⬆️
modin/backends/pandas/query_compiler.py 97.26% <100.00%> (+0.07%) ⬆️
modin/engines/base/frame/axis_partition.py 81.48% <100.00%> (+2.75%) ⬆️
modin/engines/base/frame/data.py 94.00% <100.00%> (+0.03%) ⬆️
modin/engines/base/frame/partition_manager.py 89.52% <100.00%> (+0.36%) ⬆️
modin/pandas/dataframe.py 90.40% <100.00%> (+0.01%) ⬆️
modin/experimental/pandas/numpy_wrap.py 89.61% <0.00%> (+6.49%) ⬆️
... and 8 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update dbc7445...90ae94d. Read the comment docs.

@dchigarev
Copy link
Collaborator Author

@devin-petersohn I've faced with some problems trying to group by on columns, that have NaN values in my pivot_table implementation. The problem is that get_indices seems to be losing some index meta-information that further required for proper unstack result (get_indices called by _apply_full_axis which called by groupby_agg). Look at that reproduce:

if __name__ == "__main__":
    import modin.pandas as pd
    import pandas
    import numpy as np

    pd.DEFAULT_NPARTITIONS = 4

    data1 = {
        "NaN_col1": [None] + np.arange(255).tolist(),
        "NaN_col2": np.arange(128).tolist() + [None] + np.arange(127).tolist(),
        "Data_Col": np.arange(256),
    }

    df = pd.DataFrame(data1)

    mask = [df["NaN_col1"]._to_pandas(), df["NaN_col2"]._to_pandas()]

    qc = df._query_compiler.groupby_agg(
        by=mask,
        axis=0,
        agg_func=lambda df: df.agg(np.mean),
        groupby_args={},
        agg_args={},
    )                                                                 # Output:
    pandas_res = df._to_pandas().groupby(by=mask).agg(np.mean)        #
								      #
    print("md.index == pd.index", all(qc.index == pandas_res.index))  # md.index == pd.index True
								      #
    print("md_len:", len(qc.index.levels[0]))                         # md_len: 254
    print("pd_len:", len(pandas_res.index.levels[0]))		      # pd_len: 255
								      #
    print("127 in md.levels", 127 in qc.index.levels[0])	      # 127 in md.levels False
    print("127 in pd.levels", 127 in pandas_res.index.levels[0])      # 127 in pd.levels True

Indices itself seems to be equals, but the levels does not.

There is nothing special about groupby_agg, it works correctly, if we'll set breakpoint here (in case of Ray execution engine) we'll be able to see a place where information about levels loses:

-> return new_idx[0].append(new_idx[1:]) if len(new_idx) else new_idx
(Pdb) len(new_idx[0].levels[0])				# levels of original indices seems correct
255
(Pdb) len(new_idx[0].append(new_idx[1:]).levels[0])     # but after appending, information about levels are missing
254

It looks like append is not working well in that case. I've briefly searched through Pandas Index documentation and didn't find any alternatives of append. There is join and union but both of them didn't give desired result.

For now, I've let pivot_table defaulting to pandas if any of columns to group by has NaN values.
@devin-petersohn Any ideas how to keep that meta information? Or should we leave it default to pandas in that case?

@dchigarev dchigarev marked this pull request as ready for review July 9, 2020 12:50
@dchigarev dchigarev added the Blocked ❌ A pull request that is blocked label Jul 9, 2020
@anmyachev anmyachev added the P1 Important tasks that we should complete soon label Jul 20, 2020
@anmyachev anmyachev added this to the 0.8.0 milestone Jul 20, 2020
@dchigarev dchigarev changed the title pivot_table implementation [FEATURE] pivot_table implementation Jul 22, 2020
@dchigarev dchigarev force-pushed the pivot-table branch 2 times, most recently from 47e15c2 to ac5105c Compare July 23, 2020 09:57
@dchigarev
Copy link
Collaborator Author

The issue described in that comment was fixed by creating the correct index manually in case of NaN groups. I guess that now the full functionality of pivot_table was implemented in ac5105c.

Note that this implementation based on using unstack function that will be implemented in #1649 (for now it's default_to_pandas).

Also, that branch requires fixes from #1727, so that branch also contains from #1727 to make CI green, after #1727 will be merged that branch should be rebased.

Inserting multiple columns (margins in the pivoted frame) were implemented with _sorted_multi_insert assuming that fast sort_index will be implemented soon, it also could be optimized after merging #1773, that will allow to insert distributed columns in a parallel way.

For now @devin-petersohn I need your review

Copy link
Collaborator

@devin-petersohn devin-petersohn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's revisit this once stack and unstack are finished.

@dchigarev dchigarev force-pushed the pivot-table branch 2 times, most recently from 604cbc3 to ab899a3 Compare July 29, 2020 18:47
@dchigarev dchigarev mentioned this pull request Jul 29, 2020
5 tasks
@dchigarev dchigarev force-pushed the pivot-table branch 2 times, most recently from d390177 to 6330984 Compare July 30, 2020 09:45
@devin-petersohn devin-petersohn modified the milestones: 0.8.0, 0.8.1 Aug 2, 2020
@dchigarev dchigarev removed Ready for review Blocked ❌ A pull request that is blocked labels Aug 31, 2020
@YarShev
Copy link
Collaborator

YarShev commented Sep 22, 2020

in continuous of this message:

@YarShev noticed, that columns is not the only axis, on which the result of pivot_table could be different from pandas. In some cases, pandas transposes the result of pivot_tabel, so columns (unsorted in case of modin) became indices (which still be unsorted in modin).

So this is how current pivot_table implementation in Modin differs from Pandas:

  1. If Modin pivot_tables obtains parameters with that properties: index is None and len(columns) > 1 then the resulted frame will have unsorted indices (when pandas produces frame with sorted one)
  2. With all other parameters, Modin pivot_table produces frame with unsorted columns (when pandas produces frame with sorted one)

We're getting these mismatches because of the limitations of applying pivot_table, described in the previous comment.

So we should decide what's more important for us, time that we saved when we are not sorting one of the axis, or sorted columns at the pivot_table result.

@devin-petersohn @YarShev what are your thoughts?

If we want to have a parallel implementation of pivot_table for the upcoming release, we can merge this implementation after review done. However, I think we do many assumptions related to incorrect order of rows and columns. That's why this implementation should be prioritized as P1 in order to fix this for future releases. @devin-petersohn , what do you think?

@YarShev
Copy link
Collaborator

YarShev commented Sep 22, 2020

One more question. @dchigarev , what problems are occurred if we do row partitions instead of column partitions?

@dchigarev
Copy link
Collaborator Author

dchigarev commented Sep 22, 2020

One more question. @dchigarev , what problems are occurred if we do row partitions instead of column partitions?

pivot_table aggregates columns data, so under the hood it's doing something like this:

df.groupby(by=[index]+[columns]).aggregate(aggfunc).unstack(level=[columns])

which requires us to have the whole column at the same place to aggregate it. We also can't apply an aggregation function to every row partition and then for their results, because we can obtain a function, that is not associative (for example mean), which means that a*b*c*d != (a*b)*(c*d). That is why we must apply pivot_table to the columns partitions.

@devin-petersohn
Copy link
Collaborator

If we want to have a parallel implementation of pivot_table for the upcoming release, we can merge this implementation after review done. However, I think we do many assumptions related to incorrect order of rows and columns. That's why this implementation should be prioritized as P1 in order to fix this for future releases. @devin-petersohn , what do you think?

Yes, I agree with this.

Copy link
Collaborator

@devin-petersohn devin-petersohn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @YarShev that we can merge this after the comments, and raise a new issue for next release. We should probably warn the user about the order of the columns mismatching and say that it will be fixed in a future release.

Copy link
Collaborator

@devin-petersohn devin-petersohn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am okay with the changes as-is. @YarShev feel free to merge if you have no other comments.

Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
… axis

Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
@YarShev
Copy link
Collaborator

YarShev commented Sep 23, 2020

@dchigarev , please, answer rest comments. After that we will merge the PR if there are no objections.

Signed-off-by: Dmitry Chigarev <dmitry.chigarev@intel.com>
@YarShev
Copy link
Collaborator

YarShev commented Sep 24, 2020

@dchigarev , thanks, LGTM! Please, create an issue to fix the problem related to mismatching of rows and columns in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 Important tasks that we should complete soon Ready for review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pivot_table function implementation
5 participants