diff --git a/.github/workflows/build-sphinx.yml b/.github/workflows/build-sphinx.yml index b35cf81784a4..574d0c0f9672 100644 --- a/.github/workflows/build-sphinx.yml +++ b/.github/workflows/build-sphinx.yml @@ -102,7 +102,7 @@ jobs: sudo apt-get install -y nvidia-cuda-toolkit clinfo - name: Checkout repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: 0 @@ -249,7 +249,7 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: 0 diff --git a/.github/workflows/check-onemath.yaml b/.github/workflows/check-onemath.yaml index 1387f7297535..04a6120a1ffb 100644 --- a/.github/workflows/check-onemath.yaml +++ b/.github/workflows/check-onemath.yaml @@ -39,7 +39,7 @@ jobs: access_token: ${{ github.token }} - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: 0 @@ -57,7 +57,7 @@ jobs: cat ${{ env.environment-file }} - name: Upload artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: ${{ env.environment-file-name }} path: ${{ env.environment-file }} @@ -82,12 +82,12 @@ jobs: steps: - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: 0 - name: Download artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: ${{ env.environment-file-name }} path: ${{ env.environment-file-loc }} @@ -176,18 +176,18 @@ jobs: steps: - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: 0 - name: Download artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: ${{ env.environment-file-name }} path: ${{ env.environment-file-loc }} - name: Checkout oneMKL repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: repository: 'oneapi-src/oneMKL' ref: 'develop' diff --git a/.github/workflows/conda-package.yml b/.github/workflows/conda-package.yml index 30266a4ddf5f..2c865979fcc6 100644 --- a/.github/workflows/conda-package.yml +++ b/.github/workflows/conda-package.yml @@ -54,7 +54,7 @@ jobs: access_token: ${{ github.token }} - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: 0 @@ -102,13 +102,13 @@ jobs: MAX_BUILD_CMPL_MKL_VERSION: '2026.0a0' - name: Upload artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: ${{ env.package-name }} ${{ runner.os }} Python ${{ matrix.python }} path: ${{ env.CONDA_BLD }}${{ env.package-name }}-*.conda - name: Upload wheels artifact - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: ${{ env.package-name }} ${{ runner.os }} Wheels Python ${{ matrix.python }} path: ${{ env.WHEELS_OUTPUT_FOLDER }}${{ env.package-name }}-*.whl @@ -145,13 +145,13 @@ jobs: swap-size-gb: 8 - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: ${{ env.fetch-depth }} path: ${{ env.dpnp-repo-path }} - name: Download artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: ${{ env.package-name }} ${{ runner.os }} Python ${{ matrix.python }} path: ${{ env.pkg-path-in-channel }} @@ -274,13 +274,13 @@ jobs: steps: - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: ${{ env.fetch-depth }} path: ${{ env.dpnp-repo-path }} - name: Download artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: ${{ env.package-name }} ${{ runner.os }} Python ${{ matrix.python }} path: ${{ env.pkg-path-in-channel }} @@ -354,6 +354,9 @@ jobs: TEST_CHANNELS: '-c ${{ env.channel-path }} ${{ env.channels-list }}' MAMBA_NO_LOW_SPEED_LIMIT: 1 + - name: Install OCL CPU RT from Intel channel + run: mamba install intel-opencl-rt=*=intel_* ${{ env.channels-list }} + - name: List installed packages run: mamba list @@ -431,17 +434,17 @@ jobs: steps: - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: ${{ env.fetch-depth }} - name: Download artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: ${{ env.package-name }} ${{ runner.os }} Python ${{ matrix.python }} - name: Download wheels artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: ${{ env.package-name }} ${{ runner.os }} Wheels Python ${{ matrix.python }} @@ -519,13 +522,13 @@ jobs: steps: - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: ${{ env.fetch-depth }} path: ${{ env.dpnp-repo-path }} - name: Download artifact - uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 with: name: ${{ env.package-name }} ${{ runner.os }} Python ${{ env.python-ver }} path: ${{ env.pkg-path-in-channel }} @@ -592,7 +595,7 @@ jobs: python -c "import dpnp; print(dpnp.__version__)" - name: Clone array API tests repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: repository: 'data-apis/array-api-tests' path: ${{ env.array-api-tests-path }} @@ -675,7 +678,7 @@ jobs: steps: - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: ${{ env.fetch-depth }} @@ -701,7 +704,7 @@ jobs: activate-environment: ${{ env.cleanup-env-name }} - name: Checkout repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: repository: IntelPython/devops-tools fetch-depth: ${{ env.fetch-depth }} diff --git a/.github/workflows/cron-run-tests.yaml b/.github/workflows/cron-run-tests.yaml index d13048cc28d0..ff3fe6780700 100644 --- a/.github/workflows/cron-run-tests.yaml +++ b/.github/workflows/cron-run-tests.yaml @@ -92,6 +92,9 @@ jobs: run: | mamba install ${{ env.package-name }}=${{ steps.find_latest_tag.outputs.tag }} ${{ env.test-packages }} ${{ env.channels-list }} + - name: Install OCL CPU RT from Intel channel + run: mamba install intel-opencl-rt=*=intel_* ${{ env.channels-list }} + - name: List installed packages run: mamba list diff --git a/.github/workflows/generate_coverage.yaml b/.github/workflows/generate_coverage.yaml index aa5927aa71a2..ac2f17fe29b1 100644 --- a/.github/workflows/generate_coverage.yaml +++ b/.github/workflows/generate_coverage.yaml @@ -58,7 +58,7 @@ jobs: intel-oneapi-compiler-dpcpp-cpp - name: Checkout repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: fetch-depth: 0 @@ -137,6 +137,6 @@ jobs: echo "Total number of coverage attempts: ${{ steps.build_coverage.outputs.total_attempts }}" - name: Upload coverage data to coveralls.io - uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6 + uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # v2.3.7 with: github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/openssf-scorecard.yml b/.github/workflows/openssf-scorecard.yml index 811a7c0d7745..284e25e10aad 100644 --- a/.github/workflows/openssf-scorecard.yml +++ b/.github/workflows/openssf-scorecard.yml @@ -37,7 +37,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false @@ -64,7 +64,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: SARIF file path: results.sarif @@ -72,6 +72,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@014f16e7ab1402f30e7c3329d33797e7948572db # v4.31.3 + uses: github/codeql-action/upload-sarif@1b168cd39490f61582a9beae412bb7057a6b2c4e # v4.31.8 with: sarif_file: results.sarif diff --git a/.github/workflows/pre-commit-autoupdate.yml b/.github/workflows/pre-commit-autoupdate.yml index d8f2cdd0a3ca..a0152b42ba44 100644 --- a/.github/workflows/pre-commit-autoupdate.yml +++ b/.github/workflows/pre-commit-autoupdate.yml @@ -24,10 +24,10 @@ jobs: steps: - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Set up python - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: python-version: '3.14' @@ -38,7 +38,7 @@ jobs: run: pre-commit autoupdate - name: Create a PR with autoupdate changes - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e #v7.0.8 + uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 #v8.0.0 with: commit-message: 'chore: update pre-commit hooks' add-paths: .pre-commit-config.yaml diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index f46438c88eb6..9fa01174f296 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -30,13 +30,13 @@ jobs: pylint - name: Checkout DPNP repo - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: # use commit hash to make "no-commit-to-branch" check passing ref: ${{ github.sha }} - name: Set up python - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 + uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0 with: python-version: '3.14' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b0aa661eea84..0f1d71343f47 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/PyCQA/bandit - rev: '1.8.6' + rev: '1.9.2' hooks: - id: bandit pass_filenames: false @@ -53,7 +53,7 @@ repos: - id: rst-inline-touching-normal - id: text-unicode-replacement-char - repo: https://github.com/asottile/pyupgrade - rev: v3.21.1 + rev: v3.21.2 hooks: - id: pyupgrade - repo: https://github.com/codespell-project/codespell @@ -64,7 +64,7 @@ repos: additional_dependencies: - tomli - repo: https://github.com/psf/black - rev: 25.11.0 + rev: 25.12.0 hooks: - id: black exclude: "dpnp/_version.py" @@ -94,7 +94,7 @@ repos: - id: clang-format args: ["-i"] - repo: https://github.com/gitleaks/gitleaks - rev: v8.29.0 + rev: v8.30.0 hooks: - id: gitleaks - repo: https://github.com/jumanjihouse/pre-commit-hooks @@ -124,11 +124,11 @@ repos: - id: pretty-format-toml args: [--autofix] - repo: https://github.com/rhysd/actionlint - rev: v1.7.8 + rev: v1.7.9 hooks: - id: actionlint - repo: https://github.com/BlankSpruce/gersemi - rev: 0.23.1 + rev: 0.24.0 hooks: - id: gersemi exclude: "dpnp/backend/cmake/Modules/" diff --git a/CHANGELOG.md b/CHANGELOG.md index d2b283086e33..34a0610bd185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ Also, that release drops support for Python 3.9, making Python 3.10 the minimum * Refactored `dpnp.fft` and `dpnp.random` submodules by removing wildcard imports and defining explicit public exports [#2649](https://github.com/IntelPython/dpnp/pull/2649) * Added support for the `out` keyword to accept a tuple, bringing ufunc signatures into alignment with those in NumPy [#2664](https://github.com/IntelPython/dpnp/pull/2664) * Unified public API definitions in `dpnp.linalg` and `dpnp.scipy` submodules [#2663](https://github.com/IntelPython/dpnp/pull/2663) +* Aligned the signature of `dpnp.reshape` function with Python array API by making `shape` a required argument [#2673](https://github.com/IntelPython/dpnp/pull/2673) ### Deprecated diff --git a/dpnp/dpnp_iface_manipulation.py b/dpnp/dpnp_iface_manipulation.py index cfd0bdca637a..7d4eddab6e44 100644 --- a/dpnp/dpnp_iface_manipulation.py +++ b/dpnp/dpnp_iface_manipulation.py @@ -3013,7 +3013,7 @@ def require(a, dtype=None, requirements=None, *, like=None): return arr -def reshape(a, /, shape=None, order="C", *, copy=None): +def reshape(a, /, shape, order="C", *, copy=None): """ Gives a new shape to an array without changing its data. @@ -3028,8 +3028,6 @@ def reshape(a, /, shape=None, order="C", *, copy=None): an integer, then the result will be a 1-D array of that length. One shape dimension can be -1. In this case, the value is inferred from the length of the array and remaining dimensions. - - Default: ``None``. order : {None, "C", "F", "A"}, optional Read the elements of `a` using this index order, and place the elements into the reshaped array using this index order. ``"C"`` @@ -3113,11 +3111,6 @@ def reshape(a, /, shape=None, order="C", *, copy=None): """ - if shape is None: - raise TypeError( - "reshape() missing 1 required positional argument: 'shape'" - ) - if order is None: order = "C" elif order in "aA": diff --git a/environments/build_conda_pkg.yml b/environments/build_conda_pkg.yml index face05ec635c..5ca7bb02474d 100644 --- a/environments/build_conda_pkg.yml +++ b/environments/build_conda_pkg.yml @@ -3,4 +3,4 @@ channels: - conda-forge dependencies: - python=3.13 # no python 3.14 support by conda-build - - conda-build=25.9.0 + - conda-build=25.11.0 diff --git a/environments/oneapi_pkgs.yml b/environments/oneapi_pkgs.yml index d6fb694986c1..c0f5c024afde 100644 --- a/environments/oneapi_pkgs.yml +++ b/environments/oneapi_pkgs.yml @@ -4,5 +4,6 @@ channels: dependencies: - dpcpp_linux-64>=2025.3 # force to install the latest release - mkl-devel-dpcpp>=2025.3 # force to install the latest release + - mkl-devel>=2025.3 # w/a to intel_repack-feedstock#121 - onedpl-devel - tbb-devel * intel_* # MKL hardly dependces on TBB from Intel channel