diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 95d1413e8de..ee1f36e637c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,78 +19,166 @@ jobs: - run: git remote add upstream https://github.com/modin-project/modin.git - run: git fetch upstream - run: npx commitlint --from upstream/master --to HEAD --verbose + lint-black: name: lint (black) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - uses: actions/setup-python@v2 with: python-version: "3.7.x" architecture: "x64" - run: pip install black - run: black --check --diff modin/ + lint-flake8: name: lint (flake8) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - uses: actions/setup-python@v2 with: python-version: "3.7.x" architecture: "x64" - run: pip install flake8 flake8-print - run: flake8 --enable=T modin + + prepare-cache: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: ["ubuntu-latest", "windows-latest"] + python-version: ["3.6", "3.7", "3.8"] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + - name: Cache pip if Ubuntu + if: startsWith(runner.os, 'Linux') + uses: actions/cache@v1 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - name: Cache pip if Windows + if: startsWith(runner.os, 'Windows') + uses: actions/cache@v1 + with: + path: ~\AppData\Local\pip\Cache + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 + with: + python-version: ${{matrix.python-version}} + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + auto-update-conda: true + - shell: bash -l {0} + run: pip install ray==0.8.6 + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list + test-api: + needs: prepare-cache runs-on: ubuntu-latest name: test api steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 with: - python-version: "3.7.x" - architecture: "x64" + path: ~/.cache/pip + key: ${{ runner.os }}-python-3.7-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 + with: + activate-environment: modin + environment-file: environment.yml + python-version: 3.7 + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Conda environment + # `shell: bash -l {0}` - special way to activate modin environment + shell: bash -l {0} + run: | + conda info + conda list - run: sudo apt update && sudo apt install -y libhdf5-dev - - run: pip install -r requirements.txt - - run: python -m pytest modin/pandas/test/test_api.py + - name: Api tests + shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_api.py + test-headers: + needs: prepare-cache runs-on: ubuntu-latest name: test-headers steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 with: - python-version: "3.7.x" - architecture: "x64" - - run: pip install -r requirements.txt - - run: python -m pytest modin/test/test_headers.py + path: ~/.cache/pip + key: ${{ runner.os }}-python-3.6-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 + with: + activate-environment: modin + environment-file: environment.yml + python-version: 3.6 + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list + - name: Headers tests + shell: bash -l {0} + run: python -m pytest modin/test/test_headers.py + test-internals: + needs: [lint-commit, lint-flake8, lint-black, test-api, test-headers] runs-on: ubuntu-latest name: test-internals steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 with: - python-version: "3.6.x" - architecture: "x64" - - run: pip install -r requirements.txt - - run: python -m pytest modin/test/test_publisher.py modin/data_management/test/test_dispatcher.py + path: ~/.cache/pip + key: ${{ runner.os }}-python-3.6-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 + with: + activate-environment: modin + environment-file: environment.yml + python-version: 3.6 + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list + - name: Internals tests + shell: bash -l {0} + run: python -m pytest modin/test/test_publisher.py modin/data_management/test/test_dispatcher.py + test-all: needs: [lint-commit, lint-flake8, lint-black, test-api, test-headers] runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.6.x", "3.7.x"] + python-version: ["3.6", "3.7", "3.8"] engine: ["python", "ray", "dask"] part: ["Reduction_A", "Reduction_B", "Binary", "MapMetadata", "UDF", "Default", "Window", "Indexing", "Iter", "JoinSort", 3] env: @@ -98,36 +186,59 @@ jobs: MODIN_MEMORY: 1000000000 name: test (${{matrix.engine}}, part ${{matrix.part}}, python ${{matrix.python-version}}) steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 with: + activate-environment: modin + environment-file: environment.yml python-version: ${{matrix.python-version}} - architecture: "x64" + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list - name: Install HDF5 if: matrix.part == 3 run: sudo apt update && sudo apt install -y libhdf5-dev - - run: pip install -r requirements.txt - - run: bash run-tests.sh ${{matrix.engine}} -k "TestDataFrame${{matrix.part}}" + - shell: bash -l {0} + run: pytest modin/pandas/test/ -k "TestDataFrame${{matrix.part}}" if: matrix.part != 3 - - run: python -m pytest modin/pandas/test/test_series.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_series.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_rolling.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_rolling.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_concat.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_concat.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_groupby.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_groupby.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_reshape.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_reshape.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_general.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_general.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_io.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_io.py if: matrix.part == 3 - - run: python -m pytest modin/experimental/pandas/test/test_io_exp.py + - shell: bash -l {0} + run: python -m pytest modin/experimental/pandas/test/test_io_exp.py if: matrix.part == 3 - - run: bash <(curl -s https://codecov.io/bash) + - shell: bash -l {0} + run: bash <(curl -s https://codecov.io/bash) + test-experimental: needs: [lint-commit, lint-flake8, lint-black, test-api, test-headers] runs-on: ubuntu-latest @@ -137,24 +248,41 @@ jobs: MODIN_MEMORY: 1000000000 name: test experimental steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 with: - python-version: "3.7.x" - architecture: "x64" - - run: pip install -r requirements.txt - - run: python -m pytest modin/pandas/test/test_dataframe.py::TestDataFrameMapMetadata - - run: python -m pytest modin/pandas/test/test_series.py - - run: python -m pytest modin/pandas/test/test_io.py - - run: bash <(curl -s https://codecov.io/bash) + path: ~/.cache/pip + key: ${{ runner.os }}-python-3.7-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 + with: + activate-environment: modin + environment-file: environment.yml + python-version: 3.7 + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_dataframe.py::TestDataFrameMapMetadata + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_series.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_io.py + - shell: bash -l {0} + run: bash <(curl -s https://codecov.io/bash) + test-windows: needs: [lint-commit, lint-flake8, lint-black, test-api, test-headers] runs-on: windows-latest strategy: matrix: - python-version: ["3.6.x", "3.7.x"] + python-version: ["3.6", "3.7", "3.8"] engine: ["ray", "dask"] part: ["Reduction_A", "Reduction_B", "Binary", "MapMetadata", "UDF", "Default", "Window", "Indexing", "Iter", "JoinSort", 3] env: @@ -162,50 +290,87 @@ jobs: MODIN_MEMORY: 1000000000 name: test-windows steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 + with: + path: ~\AppData\Local\pip\Cache + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 with: + activate-environment: modin + environment-file: environment.yml python-version: ${{matrix.python-version}} - architecture: "x64" - - run: pip install -r requirements.txt - - run: python -m pytest modin/pandas/test/test_dataframe.py::TestDataFrame${{matrix.part}} + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + auto-update-conda: true # this enable `use-only-tar-bz2` feature on Windows + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_dataframe.py::TestDataFrame${{matrix.part}} if: matrix.part != 3 - - run: python -m pytest modin/pandas/test/test_series.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_series.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_rolling.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_rolling.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_concat.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_concat.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_groupby.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_groupby.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_reshape.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_reshape.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_general.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_general.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_io.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_io.py if: matrix.part == 3 - - run: choco install codecov - - run: codecov -f .\coverage.xml -t ${{secrets.CODECOV_TOKEN}} + - shell: bash -l {0} + run: choco install codecov + - shell: bash -l {0} + run: codecov -f ./coverage.xml + test-pyarrow: needs: [lint-commit, lint-flake8, lint-black, test-api, test-headers] runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.6.x", "3.7.x"] + python-version: ["3.6", "3.7", "3.8"] env: MODIN_BACKEND: pyarrow MODIN_EXPERIMENTAL: "True" name: test (pyarrow, python ${{matrix.python-version}}) steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 with: + path: ~/.cache/pip + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 + with: + activate-environment: modin + environment-file: environment.yml python-version: ${{matrix.python-version}} - architecture: "x64" + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list - run: sudo apt update && sudo apt install -y libhdf5-dev - - run: pip install -r requirements.txt - - run: python -m pytest modin/pandas/test/test_io.py::test_from_csv + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_io.py::test_from_csv diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index ef84f588d89..74a45317429 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -1,11 +1,48 @@ name: master on: push jobs: + prepare-cache: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: ["ubuntu-latest", "windows-latest"] + python-version: ["3.6", "3.7", "3.8"] + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + - name: Cache pip if Ubuntu + if: startsWith(runner.os, 'Linux') + uses: actions/cache@v1 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - name: Cache pip if Windows + if: startsWith(runner.os, 'Windows') + uses: actions/cache@v1 + with: + path: ~\AppData\Local\pip\Cache + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 + with: + python-version: ${{matrix.python-version}} + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + auto-update-conda: true + - shell: bash -l {0} + run: pip install ray==0.8.6 + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list + test-all: + needs: prepare-cache runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.6.x", "3.7.x"] + python-version: ["3.6", "3.7", "3.8"] engine: ["python", "ray", "dask"] part: ["Reduction_A", "Reduction_B", "Binary", "MapMetadata", "UDF", "Default", "Window", "Indexing", "Iter", "JoinSort", 3] env: @@ -13,41 +50,65 @@ jobs: MODIN_MEMORY: 1000000000 name: test (${{matrix.engine}}, part ${{matrix.part}}, python ${{matrix.python-version}}) steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 with: + path: ~/.cache/pip + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 + with: + activate-environment: modin + environment-file: environment.yml python-version: ${{matrix.python-version}} - architecture: "x64" + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list - name: Install HDF5 if: matrix.part == 3 run: sudo apt update && sudo apt install -y libhdf5-dev - - run: pip install -r requirements.txt - - run: bash run-tests.sh ${{matrix.engine}} -k "TestDataFrame${{matrix.part}}" + - shell: bash -l {0} + run: pytest modin/pandas/test/ -k "TestDataFrame${{matrix.part}}" if: matrix.part != 3 - - run: python -m pytest modin/pandas/test/test_series.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_series.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_rolling.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_rolling.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_concat.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_concat.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_groupby.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_groupby.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_reshape.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_reshape.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_general.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_general.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_io.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_io.py if: matrix.part == 3 - - run: python -m pytest modin/experimental/pandas/test/test_io_exp.py + - shell: bash -l {0} + run: python -m pytest modin/experimental/pandas/test/test_io_exp.py if: matrix.part == 3 - - run: bash <(curl -s https://codecov.io/bash) + - shell: bash -l {0} + run: bash <(curl -s https://codecov.io/bash) + test-windows: + needs: prepare-cache runs-on: windows-latest strategy: matrix: - python-version: ["3.6.x", "3.7.x"] + python-version: ["3.6", "3.7", "3.8"] engine: ["ray", "dask"] part: ["Reduction_A", "Reduction_B", "Binary", "MapMetadata", "UDF", "Default", "Window", "Indexing", "Iter", "JoinSort", 3] env: @@ -55,49 +116,87 @@ jobs: MODIN_MEMORY: 1000000000 name: test-windows steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 + with: + path: ~\AppData\Local\pip\Cache + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 with: + activate-environment: modin + environment-file: environment.yml python-version: ${{matrix.python-version}} - architecture: "x64" - - run: pip install -r requirements.txt - - run: python -m pytest modin/pandas/test/test_dataframe.py::TestDataFrame${{matrix.part}} + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + auto-update-conda: true + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_dataframe.py::TestDataFrame${{matrix.part}} if: matrix.part != 3 - - run: python -m pytest modin/pandas/test/test_series.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_series.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_rolling.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_rolling.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_concat.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_concat.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_groupby.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_groupby.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_reshape.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_reshape.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_general.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_general.py if: matrix.part == 3 - - run: python -m pytest modin/pandas/test/test_io.py + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_io.py if: matrix.part == 3 - - run: choco install codecov - - run: codecov -f .\coverage.xml -t ${{secrets.CODECOV_TOKEN}} + - shell: bash -l {0} + run: choco install codecov + - shell: bash -l {0} + run: codecov -f ./coverage.xml + test-pyarrow: + needs: prepare-cache runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.6.x", "3.7.x"] + python-version: ["3.6", "3.7", "3.8"] env: MODIN_BACKEND: pyarrow MODIN_EXPERIMENTAL: "True" name: test (pyarrow, python ${{matrix.python-version}}) steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 1 - - uses: actions/setup-python@v1 + - name: Cache pip + uses: actions/cache@v1 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ github.run_id }}-${{ hashFiles('environment.yml') }} + - uses: goanpeca/setup-miniconda@v1.6.0 with: + activate-environment: modin + environment-file: environment.yml python-version: ${{matrix.python-version}} - architecture: "x64" + channel-priority: strict + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Conda environment + shell: bash -l {0} + run: | + conda info + conda list - run: sudo apt update && sudo apt install -y libhdf5-dev - - run: pip install -r requirements.txt - - run: python -m pytest modin/pandas/test/test_io.py::test_from_csv + - shell: bash -l {0} + run: python -m pytest modin/pandas/test/test_io.py::test_from_csv diff --git a/environment.yml b/environment.yml new file mode 100644 index 00000000000..36b13bf631f --- /dev/null +++ b/environment.yml @@ -0,0 +1,31 @@ +name: modin +channels: + - conda-forge +dependencies: + - pandas==1.0.5 + - numpy + - pyarrow<0.17 + - dask[complete]>=2.1.0,<=2.19.0 + - distributed>=2.3.2,<=2.19.0 + - xarray + - Jinja2 + - pathlib + - scipy + - pip + - s3fs + - feather-format + - lxml + - openpyxl + - xlrd + - matplotlib<=3.2.2 + - sqlalchemy + - pandas-gbq + - pytables + - msgpack-python + - psutil + - pytest + - pytest-cov + - pytest-xdist + - coverage<5.0 + - pip: + - ray==0.8.6 diff --git a/modin/pandas/test/test_dataframe.py b/modin/pandas/test/test_dataframe.py index 487e791c63a..a92b5d54a97 100644 --- a/modin/pandas/test/test_dataframe.py +++ b/modin/pandas/test/test_dataframe.py @@ -2148,6 +2148,9 @@ def test_cov(self): pandas_result = pandas.DataFrame(data).cov() df_equals(modin_result, pandas_result) + @pytest.mark.skipif( + os.name == "nt", reason="AssertionError: numpy array are different", + ) @pytest.mark.parametrize("data", test_data_values, ids=test_data_keys) def test_dot(self, data): modin_df = pd.DataFrame(data) @@ -2194,6 +2197,9 @@ def test_dot(self, data): pandas_result = pandas.DataFrame([1]).dot(pandas_df.T) df_equals(modin_result, pandas_result) + @pytest.mark.skipif( + os.name == "nt", reason="AssertionError: numpy array are different", + ) @pytest.mark.parametrize("data", test_data_values, ids=test_data_keys) def test_matmul(self, data): modin_df = pd.DataFrame(data) diff --git a/requirements.txt b/requirements.txt index 59dbb076856..118fb418e72 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,8 +14,6 @@ s3fs pytest coverage<5.0 pytest-cov -pytest-testmon -pytest-custom_exit_code pytest-xdist feather-format lxml diff --git a/requirements/df_test_requires.txt b/requirements/df_test_requires.txt index 4020508efde..15b759d8145 100644 --- a/requirements/df_test_requires.txt +++ b/requirements/df_test_requires.txt @@ -2,7 +2,6 @@ pandas==1.0.5 numpy psutil==5.6.6 pytest -pytest-testmon pytest-custom_exit_code pytest-xdist matplotlib diff --git a/requirements/env_windows.yml b/requirements/env_windows.yml index bada08e47af..af7a6963978 100644 --- a/requirements/env_windows.yml +++ b/requirements/env_windows.yml @@ -27,7 +27,6 @@ dependencies: - pytest - coverage<5.0 - pytest-cov - - pytest-testmon - pytest-custom_exit_code - pytest-xdist - feather-format diff --git a/requirements/windows_test_requires.txt b/requirements/windows_test_requires.txt index f96a8679eb2..89cedc905b9 100644 --- a/requirements/windows_test_requires.txt +++ b/requirements/windows_test_requires.txt @@ -13,7 +13,6 @@ s3fs pytest coverage<5.0 pytest-cov -pytest-testmon pytest-custom_exit_code pytest-xdist feather-format diff --git a/run-tests.sh b/run-tests.sh deleted file mode 100755 index d716dffbcee..00000000000 --- a/run-tests.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash - -arg=$1 -shift - -if [ "$arg" == "" ]; then - arg="all" -fi - -if [ "$arg" == "ray" ] || [ "$arg" == "all" ]; then - echo "Running Ray tests" - aws s3 cp --no-sign-request s3://modin-testing/testmondata_ray . - mv testmondata_ray .testmondata - MODIN_ENGINE=ray pytest --testmon-forceselect modin/pandas/test/ $@ - # This happens on sqlite error from testmon if too many files were changed. - if [ "$?" -eq 3 ]; then - rm .testmondata - MODIN_ENGINE=ray pytest --testmon-forceselect modin/pandas/test/ $@ - fi -fi -if [ "$arg" == "python" ] || [ "$arg" == "all" ]; then - echo "Running Python tests" - aws s3 cp --no-sign-request s3://modin-testing/testmondata_python . - mv testmondata_python .testmondata - MODIN_ENGINE=python pytest --testmon-forceselect modin/pandas/test/ $@ - # This happens on sqlite error from testmon if too many files were changed. - if [ "$?" -eq 3 ]; then - rm .testmondata - MODIN_ENGINE=python pytest --testmon-forceselect modin/pandas/test/ $@ - fi -fi -if [ "$arg" == "dask" ] || [ "$arg" == "all" ]; then - echo "Running Dask tests" - aws s3 cp --no-sign-request s3://modin-testing/testmondata_dask . - mv testmondata_dask .testmondata - MODIN_ENGINE=dask pytest --testmon-forceselect modin/pandas/test/ $@ - # This happens on sqlite error from testmon if too many files were changed. - if [ "$?" -eq 3 ]; then - rm .testmondata - MODIN_ENGINE=dask pytest --testmon-forceselect modin/pandas/test/ $@ - fi -fi -if [ "$arg" == "pyarrow" ] || [ "$arg" == "all" ]; then - echo "Running Pyarrow tests" - aws s3 cp --no-sign-request s3://modin-testing/testmondata_pyarrow . - mv testmondata_pyarrow .testmondata - MODIN_BACKEND=pyarrow MODIN_EXPERIMENTAL=1 pytest --testmon-forceselect modin/pandas/test/test_io.py::test_from_csv $@ -fi diff --git a/setup.cfg b/setup.cfg index 572abd0eff1..b3a01861403 100644 --- a/setup.cfg +++ b/setup.cfg @@ -12,7 +12,7 @@ tag_prefix = parentdir_prefix = modin- [tool:pytest] -addopts = --disable-pytest-warnings --suppress-no-test-exit-code --cov-config=setup.cfg --cov=modin --cov-append +addopts = --disable-pytest-warnings --cov-config=setup.cfg --cov=modin --cov-append --cov-report=xml [flake8] max-line-length = 88 @@ -25,13 +25,18 @@ per-file-ignores = modin/_version.py:T001 [coverage:run] +source = + # modin sources + modin/* omit = # These are not covered by any test because it is an experimental API modin/sql/* # This is not used yet modin/pandas/index/* # Skip tests + modin/test/* modin/pandas/test/* + modin/data_management/test/* modin/experimental/pandas/test/* # Plotting is not tested modin/pandas/plotting.py