diff --git a/.github/workflows/build-containers.yaml b/.github/workflows/build-containers.yaml deleted file mode 100644 index 0ab1c9b..0000000 --- a/.github/workflows/build-containers.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: Build Containers -on: - workflow_dispatch: - inputs: - sha: - description: 'the git sha to checkout' - required: true - type: string - workflow_call: - inputs: - sha: - description: 'the git sha to checkout' - required: true - type: string -jobs: - build-containers: - runs-on: "ubuntu-24.04" - steps: - # Checkout the repository code - - name: Checkout Code - uses: actions/checkout@v4 - with: - ref: ${{ inputs.sha }} - fetch-depth: 0 - fetch-tags: true - - uses: ./.github/actions/setup-environment - id: runner-context - # Build the Docker image - - name: Build Docker Image - run: | - uv version "$PACKAGE_VERSION" --no-sync - echo "building image: snraware:${PACKAGE_VERSION}" - docker build -f Containerfile -t snraware:${PACKAGE_VERSION} . - echo "testing installation in image" - docker run snraware:${PACKAGE_VERSION} python -c "import snraware" - env: - PACKAGE_VERSION: "${{ steps.runner-context.outputs.package-version }}" diff --git a/.github/workflows/build-wheels.yaml b/.github/workflows/build-wheels.yaml deleted file mode 100644 index e3d813f..0000000 --- a/.github/workflows/build-wheels.yaml +++ /dev/null @@ -1,38 +0,0 @@ -name: Build Wheels -on: - workflow_dispatch: - inputs: - sha: - description: 'the git sha to checkout' - required: true - type: string - workflow_call: - inputs: - sha: - description: 'the git sha to checkout' - required: true - type: string -jobs: - build-components: - runs-on: "ubuntu-24.04" - name: "build-wheels" - steps: - - uses: actions/checkout@v5 - with: - ref: ${{ inputs.sha }} - fetch-depth: 0 - fetch-tags: true - - uses: ./.github/actions/setup-environment - id: runner-context - - name: build-wheel - env: - PACKAGE_VERSION: "${{ steps.runner-context.outputs.package-version }}" - run: | - uv version "$PACKAGE_VERSION" - uv sync - uv build - - name: "upload-artifacts" - uses: actions/upload-artifact@v4 - with: - name: "pkg-wheels" - path: "dist/*.whl" diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index bd4d96c..310dc7a 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -23,7 +23,7 @@ jobs: strategy: fail-fast: false matrix: - language: [ "javascript-typescript", "python" ] + language: [ "python" ] steps: - uses: actions/checkout@v5 with: diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 7d02e93..cdce46e 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -28,16 +28,6 @@ jobs: secrets: inherit with: sha: ${{ inputs.sha || github.sha }} - build-wheels: - uses: ./.github/workflows/build-wheels.yaml - secrets: inherit - with: - sha: ${{ inputs.sha || github.sha }} - build-containers: - uses: ./.github/workflows/build-containers.yaml - secrets: inherit - with: - sha: ${{ inputs.sha || github.sha }} build-docs: uses: ./.github/workflows/build-docs.yaml secrets: inherit @@ -56,10 +46,8 @@ jobs: uses: ./.github/workflows/release.yaml secrets: inherit needs: - - build-containers - build-docs - - build-wheels - checks - codeql with: - publish-docs: ${{ github.ref_name == 'main' }} + publish-docs: ${{ github.ref_name == 'main' }} \ No newline at end of file diff --git a/docs/images/image.png b/docs/images/image.png new file mode 100644 index 0000000..12fcaa4 Binary files /dev/null and b/docs/images/image.png differ diff --git a/docs/index.md b/docs/index.md index 108ec21..ed36bcd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,10 +8,10 @@ This repository contains the Pytorch code in our paper [SNRAware: Improved Deep author = {Xue, Hui and Hooper, Sarah M. and Pierce, Iain and Davies, Rhodri H. and Stairs, John and Naegele, Joseph and Campbell-Washburn, Adrienne E. and Manisty, Charlotte and Moon, James C. and Treibel, Thomas A. and Hansen, Michael S. and Kellman, Peter}, title = {SNRAware: Improved Deep Learning MRI Denoising with Signal-to-noise Ratio Unit Training and G-factor Map Augmentation}, journal = {Radiology: Artificial Intelligence}, - volume = {0}, - number = {ja}, + volume = {7}, + number = {6}, pages = {e250227}, - year = {0}, + year = {2025}, doi = {10.1148/ryai.250227}, note ={PMID: 41123451}, URL = {https://doi.org/10.1148/ryai.250227} @@ -23,34 +23,47 @@ This repository contains the Pytorch code in our paper [SNRAware: Improved Deep ## Get started -[just](https://github.com/casey/just) is used in this project. If not, please install this tool: +`uv` is used in this project. Please install it as: ```bash -# install just -wget -qO - 'https://proget.makedeb.org/debian-feeds/prebuilt-mpr.pub' | gpg --dearmor | sudo tee /usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg 1> /dev/null -echo "deb [arch=all,$(dpkg --print-architecture) signed-by=/usr/share/keyrings/prebuilt-mpr-archive-keyring.gpg] https://proget.makedeb.org prebuilt-mpr $(lsb_release -cs)" | sudo tee /etc/apt/sources.list.d/prebuilt-mpr.list +# install uv +curl -LsSf https://astral.sh/uv/install.sh | sh + +# install git-lfs sudo apt update -sudo apt install just -y +sudo apt install git-lfs direnv ``` -Then, please set up the virtual environment and run tests: +Make sure commands `uv` are on your path. + +Also, this project requires NVIDIA GPU. To check whether your GPU is available and is working: ```bash -# show the list -just --list +nvidia-smi +``` +If the GPU is working correctly, this command will display detailed information, including driver version, GPU usage, memory usage, and temperature. -# set up virtual environment -just setup-env +Make sure the command `uv` are on your path. Then please clone the repo, set up the virtual environment and run tests: -# review documentation -just serve-docs +```bash +# clone the repo +git clone git@github.com:microsoft/SNRAware.git -# run test -just test +# set up env +direnv allow +cd ./SNRAware +uv sync + +# pull down test data +git lfs pull + +# run the test +uv run pytest -m gpu ./test ``` -## Data -Dataset for MR denoising training is not opened at this moment. +## Training data + +Dataset for MR denoising training is not opened at this moment. More information will be provided once training data is released. ## Model Three models are released at https://huggingface.co/microsoft/SNRAware @@ -59,8 +72,34 @@ Three models are released at https://huggingface.co/microsoft/SNRAware - SNRAware-medium: 55.1million parameters - SNRAware-large: 109million parameters +To test the model, +```bash +# download the model from the huggingface +# small model +wget https://huggingface.co/microsoft/SNRAware/resolve/main/small/snraware_small_model.pts +wget https://huggingface.co/microsoft/SNRAware/resolve/main/small/snraware_small_model.yaml + +# a test data is provided at ./test/data/inference +# input data are [H, W, Frame] 3D complex tensor, input_real.npy and input_imag.npy store the +# real and imaginary part +# gmap.npy is the g-factor map for all frames or for every frame, [H, W, 1 or Frame] + +# let's use the small model to run a inference +export model_file=snraware_small_model.pts +export config_file=snraware_small_model.yaml + +# run the inference +uv run python3 ./src/snraware/projects/mri/denoising/run_inference.py --input_dir ./test/data/phantom --output_dir /tmp/phantom_res_inference --saved_model_path $model_file --saved_config_path $config_file --batch_size 1 --input_fname input --gmap_fname gmap +``` + +After the run, the result is saved in the `/tmp/phantom_res_inference` as numpy files. + +![alt text](./docs/images/image.png) + +raw, model output, difference + ## Direct intended uses -SNRAware is shared for research and technical development purposes only, to denoise MR images. +SNRAware is shared for research and technical development purposes only, to denoisegit MR images. ## License and Usage Notices The data, code, and model checkpoints described in this repository is provided for research and technical development use diff --git a/docs/mri_denoising.md b/docs/mri_denoising.md index 7269fcb..ce69a8a 100644 --- a/docs/mri_denoising.md +++ b/docs/mri_denoising.md @@ -45,14 +45,4 @@ User needs to log into the wandb as `wandb login`. Training and validation sampl # Run inference -After training the model, user can run inference with `run_inference.py` in the `src/snraware/projects/mri/denoising` folder: - -```bash -export model_file="SNRAware-small.pts" -export config_file="SNRAware-small_config.yaml" -export res_dir="res" -export data_dir="/data" - -python3 ./src/snraware/projects/mri/denoising/run_inference.py --input_dir ${data_dir} --output_dir ${data_dir}/${res_dir} --saved_model_path $model_file --saved_config_path $config_file --batch_size 1 --input_fname input --gmap_fname gmap - -``` \ No newline at end of file +After training the model, user can run inference with `run_inference.py` in the `src/snraware/projects/mri/denoising` folder. Examples to run the model inference is given in the [README](../README.md). \ No newline at end of file diff --git a/justfile b/justfile deleted file mode 100644 index 9e4f666..0000000 --- a/justfile +++ /dev/null @@ -1,29 +0,0 @@ -set shell := ['bash', '-ceuo', 'pipefail'] - -@default: lint test - -@lint: - ruff check - ruff format --check - ruff check - pyright - -@test: - pytest - -@fix: - ruff check --fix - ruff format - -@build-package: - uv build - -@build-docs: - mkdocs build - -@serve-docs: - mkdocs serve - -@setup-env: - uv sync - direnv allow . diff --git a/pyproject.toml b/pyproject.toml index 51dcbd5..2ae7b86 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,15 +3,16 @@ name = "snraware" description = "A deep learning imaging AI framework" version = "0.1.0" readme = "README.md" -requires-python = ">=3.12,<4.0" +requires-python = ">=3.12,<=3.14" authors = [ {name = "Hui Xue", email = "xueh@microsoft.com"}, ] keywords = [] license = "MIT" dependencies = [ - "mkl-fft>=2.0.0", - "mkl-service>=2.4.2", + "mkl", + "mkl-fft", + "mkl-service", "typing_extensions", "click", "h5py", @@ -78,15 +79,6 @@ build-backend = "uv_build" [tool.uv.build-backend] module-name = ["snraware"] -[[tool.uv.index]] -name = "mkl" -url = "https://urob.github.io/numpy-mkl" - -[tool.uv.sources] -numpy = { index = "mkl" } -scipy = { index = "mkl" } -mkl-service = { index = "mkl" } - [project.scripts] [tool.pyright] diff --git a/test/components/test_backbone_hrnet.py b/test/components/test_backbone_hrnet.py index f5813e4..d521404 100644 --- a/test/components/test_backbone_hrnet.py +++ b/test/components/test_backbone_hrnet.py @@ -57,6 +57,9 @@ def test(self, backbone): with_timer = True device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + _B, C, T, H, W = 1, 2, 16, 16, 16 test_in = torch.from_numpy(self.test_in).to(dtype=torch.float32, device=device) assert np.linalg.norm(self.test_in - test_in.cpu().numpy()) < 1e-3 diff --git a/test/components/test_backbone_soanet.py b/test/components/test_backbone_soanet.py index 34690d5..4fae7fb 100644 --- a/test/components/test_backbone_soanet.py +++ b/test/components/test_backbone_soanet.py @@ -55,6 +55,8 @@ def teardown_class(self): def test(self, downsample, backbone): with_timer = True device = get_device() + if device != "cuda": + pytest.skip("GPU only test") _B, C, T, H, W = 1, 4, 8, 32, 32 test_in = torch.from_numpy(self.test_in).to(dtype=torch.float32, device=device) diff --git a/test/components/test_backbone_unet.py b/test/components/test_backbone_unet.py index 60ab945..96d2e7e 100644 --- a/test/components/test_backbone_unet.py +++ b/test/components/test_backbone_unet.py @@ -55,6 +55,8 @@ def teardown_class(self): def test(self, backbone): with_timer = True device = get_device() + if device != "cuda": + pytest.skip("GPU only test") _B, C, T, H, W = 1, 2, 16, 32, 32 test_in = torch.from_numpy(self.test_in).to(dtype=torch.float32, device=device) diff --git a/test/components/test_block.py b/test/components/test_block.py index 085a51a..cfbeeee 100644 --- a/test/components/test_block.py +++ b/test/components/test_block.py @@ -72,6 +72,9 @@ def test(self, block_str): test_in = torch.rand(B, T, C, H, W) device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + test_in = test_in.to(device=device, dtype=torch.float32) test_in = torch.permute(test_in, [0, 2, 1, 3, 4]) diff --git a/test/components/test_cell.py b/test/components/test_cell.py index 73b2c68..f725365 100644 --- a/test/components/test_cell.py +++ b/test/components/test_cell.py @@ -31,6 +31,9 @@ def test(self): test_in = torch.rand(B, T, C, H, W).to(torch.float32) device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + test_in = test_in.to(device=device) att_types = [ diff --git a/test/components/test_convolution_module.py b/test/components/test_convolution_module.py index d9de796..cef038e 100644 --- a/test/components/test_convolution_module.py +++ b/test/components/test_convolution_module.py @@ -39,6 +39,8 @@ def test(self): with_timer = True device = get_device() + if device != "cuda": + pytest.skip("GPU only test") test_in = torch.rand(B, T, C, H, W, device=device) assert np.linalg.norm(self.test_in - test_in.cpu().numpy()) < 1e-3 diff --git a/test/components/test_global_3d_attention.py b/test/components/test_global_3d_attention.py index 356dd70..70133bd 100644 --- a/test/components/test_global_3d_attention.py +++ b/test/components/test_global_3d_attention.py @@ -29,6 +29,10 @@ def teardown_class(self): @pytest.mark.gpu def test(self): + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + t = np.arange(256) t = np.reshape(t, (16, 16)) @@ -72,8 +76,6 @@ def test(self): with_timer = True - device = get_device() - B, T, C, H1, W1 = 1, 16, 2, 64, 64 C_out = 8 test_in = torch.rand(B, T, C, H1, W1).to(device=device) diff --git a/test/components/test_local_3d_attention.py b/test/components/test_local_3d_attention.py index 1c7f005..a92756b 100644 --- a/test/components/test_local_3d_attention.py +++ b/test/components/test_local_3d_attention.py @@ -29,6 +29,10 @@ def teardown_class(self): @pytest.mark.gpu def test(self): + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + t = np.arange(256) t = np.reshape(t, (16, 16)) @@ -72,8 +76,6 @@ def test(self): with_timer = True - device = get_device() - B, T, C, H1, W1 = 1, 16, 2, 64, 64 C_out = 8 test_in = torch.rand(B, T, C, H1, W1).to(device=device) diff --git a/test/components/test_spatial_global_attention.py b/test/components/test_spatial_global_attention.py index d361c33..d4f12bf 100644 --- a/test/components/test_spatial_global_attention.py +++ b/test/components/test_spatial_global_attention.py @@ -29,7 +29,9 @@ def teardown_class(self): @pytest.mark.gpu def test(self): - print("Begin Testing") + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") t = np.arange(256) t = np.reshape(t, (16, 16)) @@ -102,7 +104,6 @@ def test(self): stride_qks = [[1, 1]] with_timer = True - device = get_device() B, C, T, H1, W1 = 1, 2, 16, 64, 64 C_out = 4 @@ -144,7 +145,7 @@ def test(self): fname = f"{attention_type}_{normalize_Q_K}_{att_with_output_proj}_{cosine_att}_{att_with_relative_position_bias}_{stride_qk}" gt_fname = os.path.join(self.data_root, f"test_out_{fname}.npy") - np.save(gt_fname, test_out.detach().cpu().numpy()) + # np.save(gt_fname, test_out.detach().cpu().numpy()) assert os.path.exists(gt_fname) test_out_gt = np.load( os.path.join(self.data_root, f"test_out_{fname}.npy") diff --git a/test/components/test_spatial_local_attention.py b/test/components/test_spatial_local_attention.py index 4912c4f..67d4632 100644 --- a/test/components/test_spatial_local_attention.py +++ b/test/components/test_spatial_local_attention.py @@ -26,7 +26,9 @@ def teardown_class(self): @pytest.mark.gpu def test(self): - print("Begin Testing") + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") t = np.arange(256) t = np.reshape(t, (16, 16)) @@ -102,7 +104,6 @@ def test(self): stride_qks = [[1, 1], [2, 2]] with_timer = True - device = get_device() B, T, C, H1, W1 = 1, 4, 2, 64, 64 C_out = 16 diff --git a/test/components/test_spatial_vit_attention.py b/test/components/test_spatial_vit_attention.py index 5f07850..69d6769 100644 --- a/test/components/test_spatial_vit_attention.py +++ b/test/components/test_spatial_vit_attention.py @@ -29,7 +29,9 @@ def teardown_class(self): @pytest.mark.gpu def test(self): - print("Begin Testing") + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") t = np.arange(256) t = np.reshape(t, (16, 16)) @@ -75,8 +77,6 @@ def test(self): with_timer = True - device = get_device() - B, T, C, H1, W1 = 1, 16, 2, 32, 32 C_out = 8 test_in = torch.rand(B, T, C, H1, W1).to(device=device) diff --git a/test/components/test_swin_3d_attention.py b/test/components/test_swin_3d_attention.py index 7591ca5..ea60cac 100644 --- a/test/components/test_swin_3d_attention.py +++ b/test/components/test_swin_3d_attention.py @@ -30,6 +30,10 @@ def teardown_class(self): @pytest.mark.gpu def test(self): + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + t = np.arange(256) t = np.reshape(t, (16, 16)) @@ -71,8 +75,6 @@ def test(self): with_timer = True - device = get_device() - B, T, C, H1, W1 = 1, 16, 2, 32, 32 C_out = 32 test_in = torch.rand(B, T, C, H1, W1).to(device=device) diff --git a/test/components/test_temporal_attention.py b/test/components/test_temporal_attention.py index 33bb9d9..6cec977 100644 --- a/test/components/test_temporal_attention.py +++ b/test/components/test_temporal_attention.py @@ -28,13 +28,14 @@ def teardown_class(self): @pytest.mark.gpu def test(self): - print("Begin Testing") + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") B, T, C, H, W = 2, 16, 3, 16, 16 C_out = 32 with_timer = True - device = get_device() test_in = torch.rand(B, T, C, H, W, device=device) assert np.linalg.norm(self.test_in - test_in.cpu().numpy()) < 1e-3 diff --git a/test/components/test_vit_3d_attention.py b/test/components/test_vit_3d_attention.py index d3141d6..58c1ca1 100644 --- a/test/components/test_vit_3d_attention.py +++ b/test/components/test_vit_3d_attention.py @@ -29,7 +29,9 @@ def teardown_class(self): @pytest.mark.gpu def test_Vit3D(self): - print("Begin Testing") + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") t = np.arange(256) t = np.reshape(t, (16, 16)) @@ -76,8 +78,6 @@ def test_Vit3D(self): with_timer = True - device = get_device() - B, T, C, H1, W1 = 1, 16, 2, 32, 32 C_out = 8 test_in = torch.rand(B, T, C, H1, W1).to(device=device) diff --git a/test/data/phantom/gmap.npy b/test/data/phantom/gmap.npy new file mode 100644 index 0000000..3ef8026 --- /dev/null +++ b/test/data/phantom/gmap.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5d05b086b9d30a19c4a6224be8018730dafb39fb48258f1b099e7ca119e24fb +size 138320 diff --git a/test/data/phantom/input_imag.npy b/test/data/phantom/input_imag.npy new file mode 100644 index 0000000..39cb532 --- /dev/null +++ b/test/data/phantom/input_imag.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5001992c3d05c8c1de2e5860a31bd071af045440153316f7a0d23d97b9ec44d4 +size 17694800 diff --git a/test/data/phantom/input_real.npy b/test/data/phantom/input_real.npy new file mode 100644 index 0000000..e7bf7ce --- /dev/null +++ b/test/data/phantom/input_real.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04daf8e69cce5c2039b207eb2266f263f451aafbb9f389359caba9729b17d718 +size 17694800 diff --git a/test/data/spatial_global/test_out_conv_False_False_False_False_[1, 1].npy b/test/data/spatial_global/test_out_conv_False_False_False_False_[1, 1].npy index 3b3817c..407d2cd 100644 --- a/test/data/spatial_global/test_out_conv_False_False_False_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_False_False_False_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:413115d899b8e1364df8cc02cf1369fbd9ab9c7fdbd0dcc2146f9fecb62109a2 +oid sha256:758727abd313808e33267c84eb7fa720bdf0ebfe01ce33d7151acc58b3ad2ad4 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_False_False_False_True_[1, 1].npy b/test/data/spatial_global/test_out_conv_False_False_False_True_[1, 1].npy index 298ed80..2841ba7 100644 --- a/test/data/spatial_global/test_out_conv_False_False_False_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_False_False_False_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:673065cc4763369eebad9c5c35ada176ebb64306af8e92c62b8e83bde216f258 +oid sha256:72109d0355c6b13a9a34f1aa20fc12639ae0314d02867543e3ca844198ea27c7 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_False_False_True_False_[1, 1].npy b/test/data/spatial_global/test_out_conv_False_False_True_False_[1, 1].npy index e07dc8c..2a96b0f 100644 --- a/test/data/spatial_global/test_out_conv_False_False_True_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_False_False_True_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f290ead7a707fe13a9b1aca755f6e1fb9c31aa3dcbd5f9d66417613bdd9d476f +oid sha256:a1d4ffeeeaf652c270b761fd3044491e63ab85b125d3acea4c482bc4f8c4e5fa size 1048704 diff --git a/test/data/spatial_global/test_out_conv_False_False_True_True_[1, 1].npy b/test/data/spatial_global/test_out_conv_False_False_True_True_[1, 1].npy index b4cd2db..b77d648 100644 --- a/test/data/spatial_global/test_out_conv_False_False_True_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_False_False_True_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:06d5d99bf5f7b4d527c6ffab51b0f91df9d1a9586c3f0181314141f1bad5920d +oid sha256:273eb256d7ead4bf76b7cbdfcb4dfea14a123b1c50000ee5ea5034a2b6eb309f size 1048704 diff --git a/test/data/spatial_global/test_out_conv_False_True_False_False_[1, 1].npy b/test/data/spatial_global/test_out_conv_False_True_False_False_[1, 1].npy index 4c528ad..ac2f6cd 100644 --- a/test/data/spatial_global/test_out_conv_False_True_False_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_False_True_False_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:08a768890204ca4206f2a415a6e674bc581f51671ae1a1e6d3aceebef9b3ff29 +oid sha256:7883272ac1a4d78920ed754651ecc6152590e44447be2ee4d7d3e187b6e5a3aa size 1048704 diff --git a/test/data/spatial_global/test_out_conv_False_True_False_True_[1, 1].npy b/test/data/spatial_global/test_out_conv_False_True_False_True_[1, 1].npy index 79eca6f..0dc4834 100644 --- a/test/data/spatial_global/test_out_conv_False_True_False_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_False_True_False_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eda751b92bebf16b7445f2e9f45a4913e156eb9d40ba98346af029726565dc90 +oid sha256:e8d5742cad7636a1b2c3611f5659315ba995eccf3cbaa818876bac50c58b4dc7 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_False_True_True_False_[1, 1].npy b/test/data/spatial_global/test_out_conv_False_True_True_False_[1, 1].npy index d770522..1036b28 100644 --- a/test/data/spatial_global/test_out_conv_False_True_True_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_False_True_True_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7b750d213707fab9c22c6a6861f3c47d6aa61d7f2b4169709233f6767c1b1847 +oid sha256:06aea2595881797781f5fda0d99e090fa791b3dcf1756337955ba2b756740812 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_False_True_True_True_[1, 1].npy b/test/data/spatial_global/test_out_conv_False_True_True_True_[1, 1].npy index 4041dc1..75006ba 100644 --- a/test/data/spatial_global/test_out_conv_False_True_True_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_False_True_True_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:921d1254ef2678202d41e89367c36c850b172d222e8c0ac92c1c4c18307df885 +oid sha256:3a5a8797afd70c70fa102fd0ab848a0391d2a24d09f4eadbd57b56a7d9031bc3 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_True_False_False_False_[1, 1].npy b/test/data/spatial_global/test_out_conv_True_False_False_False_[1, 1].npy index f24774e..2c1558a 100644 --- a/test/data/spatial_global/test_out_conv_True_False_False_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_True_False_False_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:949961516ab6ba12ee2c9413aa5e86d938ee254056d98adc3aa7e55b61529207 +oid sha256:54a27f6718435f25e1cfe00b1462b5c24ed2f6d41adfaaa81e09433bae7cf26e size 1048704 diff --git a/test/data/spatial_global/test_out_conv_True_False_False_True_[1, 1].npy b/test/data/spatial_global/test_out_conv_True_False_False_True_[1, 1].npy index 5400729..9adc5b2 100644 --- a/test/data/spatial_global/test_out_conv_True_False_False_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_True_False_False_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a3bab0cef0f305e9cb410362e6bb7df5b1d915610853ccc6689722e395ecec0e +oid sha256:d97dbcadb983fda0f35324675ddb2f710a8db170cbb985354904541110f9dfd6 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_True_False_True_False_[1, 1].npy b/test/data/spatial_global/test_out_conv_True_False_True_False_[1, 1].npy index 3781d75..5c00698 100644 --- a/test/data/spatial_global/test_out_conv_True_False_True_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_True_False_True_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dfc0b6b3b71413f182d7ef4f5d999dd1ef19e318055af1b61bff6a34b097fc3d +oid sha256:7c3a19bdacb0058fd38f6ac0203c8d898268996e09db9d221747b6b73889b053 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_True_False_True_True_[1, 1].npy b/test/data/spatial_global/test_out_conv_True_False_True_True_[1, 1].npy index 4e4180c..d73cc3f 100644 --- a/test/data/spatial_global/test_out_conv_True_False_True_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_True_False_True_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3381d77df2d699e9b2d9083f356fde1edfdf317ea9ab1b642cd42e172d5ea8a0 +oid sha256:7236b38ec07a8f5925629f1c1bdbad5c3396abe775eed428ecff5f16317a1229 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_True_True_False_False_[1, 1].npy b/test/data/spatial_global/test_out_conv_True_True_False_False_[1, 1].npy index 6cce159..a5238c0 100644 --- a/test/data/spatial_global/test_out_conv_True_True_False_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_True_True_False_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3c9cab03d8df15d6f6e4a7bc08e544b0812090a3990ce07cf836066faf4855b1 +oid sha256:61d72f6a43e1ccc416fbbeaf4bd3ca016737ff1b34eccfb0a833348e19c6daa4 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_True_True_False_True_[1, 1].npy b/test/data/spatial_global/test_out_conv_True_True_False_True_[1, 1].npy index 4955abd..274d055 100644 --- a/test/data/spatial_global/test_out_conv_True_True_False_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_True_True_False_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6b73292c46b03473dfa5d2b180f07a2275061d1a79fb004f6dbc751217c07933 +oid sha256:918852dadc630894bfe7a8d553ced4316e975132e3cf2bba7986fa7386b2dfcf size 1048704 diff --git a/test/data/spatial_global/test_out_conv_True_True_True_False_[1, 1].npy b/test/data/spatial_global/test_out_conv_True_True_True_False_[1, 1].npy index cce94d7..142bef7 100644 --- a/test/data/spatial_global/test_out_conv_True_True_True_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_True_True_True_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5d6df2ad858d6bdad3b81b66c25a23095a0a9d09c883e0bbcc01feaa553cdfeb +oid sha256:ab2ef679574552549f949fa8c546dcfe887906b4be1a8246508a10f6c82dde48 size 1048704 diff --git a/test/data/spatial_global/test_out_conv_True_True_True_True_[1, 1].npy b/test/data/spatial_global/test_out_conv_True_True_True_True_[1, 1].npy index f6741f5..9e38fee 100644 --- a/test/data/spatial_global/test_out_conv_True_True_True_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_conv_True_True_True_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ee9fe269213f1c755bf8801bda67160c9dc48019ef3db715946e533a0262ceda +oid sha256:5a681081002cefe9be74145a8dcfa1be6795d49c5485592e8829d00b3c8fe105 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_False_False_False_False_[1, 1].npy b/test/data/spatial_global/test_out_lin_False_False_False_False_[1, 1].npy index 491767b..2dff820 100644 --- a/test/data/spatial_global/test_out_lin_False_False_False_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_False_False_False_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b138e8032e57430f4d47671524787212a455c75cbd7bbed7348f3a42e845d6c6 +oid sha256:3668d6b8fa2bc6cbd859a7d779701c9012fbd70c6a14edfbc91937e24b18b619 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_False_False_False_True_[1, 1].npy b/test/data/spatial_global/test_out_lin_False_False_False_True_[1, 1].npy index ba5bc42..06ab95d 100644 --- a/test/data/spatial_global/test_out_lin_False_False_False_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_False_False_False_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d69b38f14a2d67535247d5e9f55e2a4c80f565c480e445354a2186d855eb9bf7 +oid sha256:ed437e3848db4b2baac565078ae3700639362393faec851225f4052d5fdac3cd size 1048704 diff --git a/test/data/spatial_global/test_out_lin_False_False_True_False_[1, 1].npy b/test/data/spatial_global/test_out_lin_False_False_True_False_[1, 1].npy index 0735912..b1cba1a 100644 --- a/test/data/spatial_global/test_out_lin_False_False_True_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_False_False_True_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:55e16ba54a225a4e925bf7ec64541ca1a69d602c84718516c35f0ca9a88b341a +oid sha256:499a99061592cee4daf11a8a36342c78cfb28b5ed7a218ad49bc37140d6d4440 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_False_False_True_True_[1, 1].npy b/test/data/spatial_global/test_out_lin_False_False_True_True_[1, 1].npy index e51ff93..f906cba 100644 --- a/test/data/spatial_global/test_out_lin_False_False_True_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_False_False_True_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5fadf140deabafb5bc182b119f57e19fc1ee7c2eea6e52eaa1fb10d3663dc1c4 +oid sha256:d790d3beea2aed26dabd0cc9276ff236c6653032f2c448a9c57bf46018ea5e94 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_False_True_False_False_[1, 1].npy b/test/data/spatial_global/test_out_lin_False_True_False_False_[1, 1].npy index 0c06d06..4cfd5b9 100644 --- a/test/data/spatial_global/test_out_lin_False_True_False_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_False_True_False_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a97c4d7dac4d24e22d3ba9560d0d7a4aa5a0bfe964ea19d707de16482f2e508a +oid sha256:08c92a30c69566d98b58ea672faded7d85ac9c4f539a44fd3a1cceaa61cb5d5b size 1048704 diff --git a/test/data/spatial_global/test_out_lin_False_True_False_True_[1, 1].npy b/test/data/spatial_global/test_out_lin_False_True_False_True_[1, 1].npy index 13196fa..23b99ab 100644 --- a/test/data/spatial_global/test_out_lin_False_True_False_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_False_True_False_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:01ef895728dba65083fbb10026c3bf8aeae05bffd7467612d87ff5450d4520d4 +oid sha256:43029550307a9a4ff8b79d13b8826e551254de038ab797f9c9fcbf6b3427cec9 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_False_True_True_False_[1, 1].npy b/test/data/spatial_global/test_out_lin_False_True_True_False_[1, 1].npy index 6a50900..bfa0274 100644 --- a/test/data/spatial_global/test_out_lin_False_True_True_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_False_True_True_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:afa0a5583fab48f59017112ba857b9b89cf6a6b3d68a23f515eb08074af91dd0 +oid sha256:71da79e587c3caaea6107ad85eb2d72433e517f397107ac4a693b5132744f77c size 1048704 diff --git a/test/data/spatial_global/test_out_lin_False_True_True_True_[1, 1].npy b/test/data/spatial_global/test_out_lin_False_True_True_True_[1, 1].npy index b6ff268..5c8be35 100644 --- a/test/data/spatial_global/test_out_lin_False_True_True_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_False_True_True_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:260c2c3e417a9a4a2bae51b4a8005851dee8f68aad5f71e819ac988a7b26f11a +oid sha256:7bd5ed22da0dfac89a3cf4d390ef17452e6e68ac6e47ecd5087641c6b294ae87 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_True_False_False_False_[1, 1].npy b/test/data/spatial_global/test_out_lin_True_False_False_False_[1, 1].npy index 3340d62..c1415aa 100644 --- a/test/data/spatial_global/test_out_lin_True_False_False_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_True_False_False_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9bfada73326ca2cf26721cda327da9415ded3e4f4fc8547636c3fde307ed061 +oid sha256:3ddc62901ee8cd7382e62abaf452edc07ea3204804e92b55804770af9761701f size 1048704 diff --git a/test/data/spatial_global/test_out_lin_True_False_False_True_[1, 1].npy b/test/data/spatial_global/test_out_lin_True_False_False_True_[1, 1].npy index 036b9ad..389ac89 100644 --- a/test/data/spatial_global/test_out_lin_True_False_False_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_True_False_False_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f4a1fa07a3b7c755f773862783a192d2d3eb0c5feaf1effc7670b378d60d006 +oid sha256:910b74c2daa22183acf1a887a3e02230a2a6e22836479c56a1559561bb2d8e51 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_True_False_True_False_[1, 1].npy b/test/data/spatial_global/test_out_lin_True_False_True_False_[1, 1].npy index 238b719..97f5441 100644 --- a/test/data/spatial_global/test_out_lin_True_False_True_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_True_False_True_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:172f6b353ad3418b8b9b6f2b4ad927adbcfd3eb8e6bbd2b419c9184c3ee5c770 +oid sha256:c6f9de8ca93edc1154860887d69bbc3a94acb6d2f7c62dd9692f7dcbef945e7a size 1048704 diff --git a/test/data/spatial_global/test_out_lin_True_False_True_True_[1, 1].npy b/test/data/spatial_global/test_out_lin_True_False_True_True_[1, 1].npy index 796a116..cf21def 100644 --- a/test/data/spatial_global/test_out_lin_True_False_True_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_True_False_True_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:963dd0b6c14d7d84422782eba6390d3897c6914231728c81b7f569b16a9b6e12 +oid sha256:c0354e73a86e0fa44cb9d34f6e8736c54a162b827ff7a12ad3abccbe4a6fb698 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_True_True_False_False_[1, 1].npy b/test/data/spatial_global/test_out_lin_True_True_False_False_[1, 1].npy index 7e7aac8..3a268fc 100644 --- a/test/data/spatial_global/test_out_lin_True_True_False_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_True_True_False_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:113649a311e22e145f046e29f38bbdcc0fef14bb6be19e463784eb43c704eecb +oid sha256:5c8b5d9738816ecf330d42fe6c9ee320bb51ba95d1600b28fb343f811061ebec size 1048704 diff --git a/test/data/spatial_global/test_out_lin_True_True_False_True_[1, 1].npy b/test/data/spatial_global/test_out_lin_True_True_False_True_[1, 1].npy index 7ab744d..df1da86 100644 --- a/test/data/spatial_global/test_out_lin_True_True_False_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_True_True_False_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:203a87352a615084f8f68842c9b0c36e019263a70fd7b53cfd8bef94b075f72f +oid sha256:28d5fae89c047380ea4cfc0cb9d2a18a9a49db3eb0c2dad2d7a0880664fd9efd size 1048704 diff --git a/test/data/spatial_global/test_out_lin_True_True_True_False_[1, 1].npy b/test/data/spatial_global/test_out_lin_True_True_True_False_[1, 1].npy index 5675a35..204ff54 100644 --- a/test/data/spatial_global/test_out_lin_True_True_True_False_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_True_True_True_False_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:596b048683b944035a9530cfb54be973e2e1c22bb0534418de345247e2527ff2 +oid sha256:7b206f3df2faea393dd6edb0630e12b4af0d0482432e55c8c86a404b822abdf1 size 1048704 diff --git a/test/data/spatial_global/test_out_lin_True_True_True_True_[1, 1].npy b/test/data/spatial_global/test_out_lin_True_True_True_True_[1, 1].npy index 3a31f3b..423841d 100644 --- a/test/data/spatial_global/test_out_lin_True_True_True_True_[1, 1].npy +++ b/test/data/spatial_global/test_out_lin_True_True_True_True_[1, 1].npy @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bddf221f501f8398995006b20b900844909fc1580dd99966558ccb8431ad0c53 +oid sha256:7eb141e8f72040b5ded554efcdb608105a7c667d536bea35a4eec8fbb1e811e2 size 1048704 diff --git a/test/test_e2e_mri_denoising.py b/test/test_e2e_mri_denoising.py index 87e629f..6af39b5 100644 --- a/test/test_e2e_mri_denoising.py +++ b/test/test_e2e_mri_denoising.py @@ -7,7 +7,7 @@ import torch from hydra import compose, initialize -from snraware.components.setup import end_timer, start_timer +from snraware.components.setup import end_timer, get_device, start_timer from snraware.projects.mri.denoising.inference_model import ( load_lit_model, load_model, @@ -126,6 +126,10 @@ def test_training(self, request): if "gpu" not in selected_markers or "slow" not in selected_markers: pytest.skip("Skipping because both markers 'gpu' and 'slow' are not set") + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + with initialize( version_base=None, config_path="../src/snraware/projects/mri/denoising/configs" ): @@ -167,6 +171,10 @@ def test_training_single_epoch(self, request): if os.path.exists(self.data_root) is False or os.path.exists(self.test_root) is False: pytest.skip("Skipping because test data not found") + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + with initialize( version_base=None, config_path="../src/snraware/projects/mri/denoising/configs" ): diff --git a/test/test_e2e_simple_regression.py b/test/test_e2e_simple_regression.py index c79325d..50b784c 100644 --- a/test/test_e2e_simple_regression.py +++ b/test/test_e2e_simple_regression.py @@ -11,6 +11,7 @@ from snraware.components.heads import PreConv2D, SimpleConv2d from snraware.components.model import HRnet, SOAnet, Unet from snraware.components.optim import OptimScheduler +from snraware.components.setup import get_device # ----------------------------------------------------------------- @@ -217,6 +218,10 @@ def test_trainer(self, backbone, request): if "gpu" not in selected_markers: pytest.skip("Skipping because marker 'gpu' is not set") + device = get_device() + if device != "cuda": + pytest.skip("GPU only test") + overrides = [ f"backbone={backbone}", "backbone.block.cell.window_size=[4,4,1]", diff --git a/uv.lock b/uv.lock index 59f20d9..83b016b 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,6 @@ version = 1 revision = 3 -requires-python = ">=3.12, <4.0" +requires-python = ">=3.12, <=3.14" resolution-markers = [ "sys_platform == 'darwin'", "platform_machine == 'aarch64' and sys_platform == 'linux'", @@ -1393,25 +1393,25 @@ wheels = [ [[package]] name = "intel-cmplr-lib-ur" version = "2025.3.0" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "umf" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/71/33/94785f0575f7319e57788169ef15e504c1e9e9744f04e0b9e00390e1f533/intel_cmplr_lib_ur-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:35e45764907c100090d8dcb75d4d31aa7dc330e5f2d887032c9eb47d3e29d43e" }, - { url = "https://files.pythonhosted.org/packages/c7/a4/a7f61cc9beca3b6aba669381dfcaf3d36cd1f5f5f7716ba32ca091258c3d/intel_cmplr_lib_ur-2025.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:4557a0281128e60628d9fcdca4ce38de40f13b32e8f4bf38ba82045f147c58e2" }, + { url = "https://files.pythonhosted.org/packages/71/33/94785f0575f7319e57788169ef15e504c1e9e9744f04e0b9e00390e1f533/intel_cmplr_lib_ur-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:35e45764907c100090d8dcb75d4d31aa7dc330e5f2d887032c9eb47d3e29d43e", size = 30770342, upload-time = "2025-10-22T17:59:38.614Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a4/a7f61cc9beca3b6aba669381dfcaf3d36cd1f5f5f7716ba32ca091258c3d/intel_cmplr_lib_ur-2025.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:4557a0281128e60628d9fcdca4ce38de40f13b32e8f4bf38ba82045f147c58e2", size = 1256187, upload-time = "2025-10-22T18:00:38.419Z" }, ] [[package]] name = "intel-openmp" version = "2025.3.0" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "intel-cmplr-lib-ur" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/87/68241d0b532f0e41d5b2928b640b00f9bb48945df9921df1d878f42c1d38/intel_openmp-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:948d9d6a22ed7643305a717c2ac2678bae8c11adafd5e4d30f903cf9933b4a60" }, - { url = "https://files.pythonhosted.org/packages/79/69/05addedd727061b61a85b4fd989754edb628b5be1cd5d161727f98cf4d86/intel_openmp-2025.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:8ff899d01a41b92ffe0e618b221ea633127d16df726086082d381c431c31339d" }, + { url = "https://files.pythonhosted.org/packages/6a/87/68241d0b532f0e41d5b2928b640b00f9bb48945df9921df1d878f42c1d38/intel_openmp-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:948d9d6a22ed7643305a717c2ac2678bae8c11adafd5e4d30f903cf9933b4a60", size = 74331543, upload-time = "2025-10-22T17:59:28.77Z" }, + { url = "https://files.pythonhosted.org/packages/79/69/05addedd727061b61a85b4fd989754edb628b5be1cd5d161727f98cf4d86/intel_openmp-2025.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:8ff899d01a41b92ffe0e618b221ea633127d16df726086082d381c431c31339d", size = 32083814, upload-time = "2025-10-22T18:00:51.397Z" }, ] [[package]] @@ -2013,15 +2013,15 @@ wheels = [ [[package]] name = "mkl" version = "2025.3.0" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "intel-openmp" }, { name = "onemkl-license" }, { name = "tbb" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/b4/ef531295ed33b929c6c5214421eeebe370f1be22536b6956b4aaf18fdbc5/mkl-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:7b81f5d2e034637b187ca58666878c4e8889988a78e39e0b6ee92e846568f660" }, - { url = "https://files.pythonhosted.org/packages/75/0e/b863a60889643e21d5d8d6b619f913703257878979b1df22d344a56276d0/mkl-2025.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:2dbf81b016150c2ce418d80707dcce11d0e3c56f20e1d54813174e7665405561" }, + { url = "https://files.pythonhosted.org/packages/6d/b4/ef531295ed33b929c6c5214421eeebe370f1be22536b6956b4aaf18fdbc5/mkl-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:7b81f5d2e034637b187ca58666878c4e8889988a78e39e0b6ee92e846568f660", size = 195022935, upload-time = "2025-10-22T17:56:20.854Z" }, + { url = "https://files.pythonhosted.org/packages/75/0e/b863a60889643e21d5d8d6b619f913703257878979b1df22d344a56276d0/mkl-2025.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:2dbf81b016150c2ce418d80707dcce11d0e3c56f20e1d54813174e7665405561", size = 155530420, upload-time = "2025-10-22T17:57:46.918Z" }, ] [[package]] @@ -2042,17 +2042,15 @@ wheels = [ [[package]] name = "mkl-service" version = "2.6.0" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mkl" }, ] wheels = [ - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/mkl_service-2.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15908dd44cc83aa822222c83cc15fa2f31201a43cc0a37949a64cf377bf27887" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/mkl_service-2.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:8ec2728d541547a56ce0b8050f994225ef9ceee994abd711e7b1d9943040ae92" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/mkl_service-2.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:415d5b27ec47dfbde316c4fb387f13344917a3fb354324d89d8f5f7da58bcac5" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/mkl_service-2.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:54d7e8d984f39c6511ab2c2abceb80ad5f6e278d7f2c0bf9e57d5eb11110cfb5" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/mkl_service-2.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20773a79b0a15be7ea2decf3e3a127491a75816f92fce67f6acdd36d01fa4fb2" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/mkl_service-2.6.0-cp314-cp314-win_amd64.whl", hash = "sha256:0d2c725f48aad3935e0ee259f0e156760f612c18eb7336374df8fd26fdc3a700" }, + { url = "https://files.pythonhosted.org/packages/3f/2b/da412ee13861f7b355b431cc1deeaadd08f6e4ebb6b52affb7d264452593/mkl_service-2.6.0-0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:5b6616b794691186236d30d383bca4d3fa569ed5d89a9c0c051197f0b20d3df1", size = 82544, upload-time = "2025-10-27T18:06:17.911Z" }, + { url = "https://files.pythonhosted.org/packages/1d/6d/6dc4ce8c23aaaacfd29d4c68331901aca6deeaf6c149e38f658b5a08d287/mkl_service-2.6.0-0-cp312-cp312-win_amd64.whl", hash = "sha256:548e3b45d59d24d6ecb7dad44ae26fb71ddeed8856ed58bedb30aa9a09ccb635", size = 83943, upload-time = "2025-10-27T18:06:42.635Z" }, + { url = "https://files.pythonhosted.org/packages/a9/36/bb9930f49f845c9f9fec943b3cf87052239cd0d2a4c77965268b70455e79/mkl_service-2.6.0-0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:98f5f6a05bce94c8675843d863f1fc0c06fee2a7f14e5f648b221102d44f137e", size = 81590, upload-time = "2025-10-27T18:07:07.21Z" }, + { url = "https://files.pythonhosted.org/packages/40/c6/553c57b3165469824a1d0184b8056402d7f4dd06127111e2111482d2637a/mkl_service-2.6.0-0-cp313-cp313-win_amd64.whl", hash = "sha256:336bea1b2ef4213cf95ed4b40f1feaadb6a692dfd01ce9b87ae297776459d7fe", size = 83229, upload-time = "2025-10-27T18:07:21.82Z" }, ] [[package]] @@ -2260,18 +2258,64 @@ wheels = [ [[package]] name = "numpy" version = "2.3.4" -source = { registry = "https://urob.github.io/numpy-mkl" } -dependencies = [ - { name = "mkl" }, - { name = "mkl-service" }, -] -wheels = [ - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/numpy-2.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cbe8e5ab4fb4e5aeb7f31df1a3fe62b71e386977fde1d197df321d4e828510ea" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/numpy-2.3.4-cp312-cp312-win_amd64.whl", hash = "sha256:38d950c6072edb1fc544d01348516511ce9a905375b06328bbf86b57da3546b3" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/numpy-2.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47c06c97541890db9fb9ac80baf8647989385ce46dc7a6b4a945cb71f476e56c" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/numpy-2.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:d162838135b209704dbf3962144329d65fdebd5d91b3e88debae24bdb2eb5c41" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/numpy-2.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cabd671a9fc06f331796e6a9eb891435eb7194e74fe82c97e86b165c03780985" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.0/numpy-2.3.4-cp314-cp314-win_amd64.whl", hash = "sha256:8d2aeab5102ee4866edec255800bb87c0c8b19828bc48e20c7304dde45c15ed3" }, +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/f4/098d2270d52b41f1bd7db9fc288aaa0400cb48c2a3e2af6fa365d9720947/numpy-2.3.4.tar.gz", hash = "sha256:a7d018bfedb375a8d979ac758b120ba846a7fe764911a64465fd87b8729f4a6a", size = 20582187, upload-time = "2025-10-15T16:18:11.77Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/7a/02420400b736f84317e759291b8edaeee9dc921f72b045475a9cbdb26b17/numpy-2.3.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ef1b5a3e808bc40827b5fa2c8196151a4c5abe110e1726949d7abddfe5c7ae11", size = 20957727, upload-time = "2025-10-15T16:15:44.9Z" }, + { url = "https://files.pythonhosted.org/packages/18/90/a014805d627aa5750f6f0e878172afb6454552da929144b3c07fcae1bb13/numpy-2.3.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c2f91f496a87235c6aaf6d3f3d89b17dba64996abadccb289f48456cff931ca9", size = 14187262, upload-time = "2025-10-15T16:15:47.761Z" }, + { url = "https://files.pythonhosted.org/packages/c7/e4/0a94b09abe89e500dc748e7515f21a13e30c5c3fe3396e6d4ac108c25fca/numpy-2.3.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f77e5b3d3da652b474cc80a14084927a5e86a5eccf54ca8ca5cbd697bf7f2667", size = 5115992, upload-time = "2025-10-15T16:15:50.144Z" }, + { url = "https://files.pythonhosted.org/packages/88/dd/db77c75b055c6157cbd4f9c92c4458daef0dd9cbe6d8d2fe7f803cb64c37/numpy-2.3.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:8ab1c5f5ee40d6e01cbe96de5863e39b215a4d24e7d007cad56c7184fdf4aeef", size = 6648672, upload-time = "2025-10-15T16:15:52.442Z" }, + { url = "https://files.pythonhosted.org/packages/e1/e6/e31b0d713719610e406c0ea3ae0d90760465b086da8783e2fd835ad59027/numpy-2.3.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77b84453f3adcb994ddbd0d1c5d11db2d6bda1a2b7fd5ac5bd4649d6f5dc682e", size = 14284156, upload-time = "2025-10-15T16:15:54.351Z" }, + { url = "https://files.pythonhosted.org/packages/f9/58/30a85127bfee6f108282107caf8e06a1f0cc997cb6b52cdee699276fcce4/numpy-2.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4121c5beb58a7f9e6dfdee612cb24f4df5cd4db6e8261d7f4d7450a997a65d6a", size = 16641271, upload-time = "2025-10-15T16:15:56.67Z" }, + { url = "https://files.pythonhosted.org/packages/06/f2/2e06a0f2adf23e3ae29283ad96959267938d0efd20a2e25353b70065bfec/numpy-2.3.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:65611ecbb00ac9846efe04db15cbe6186f562f6bb7e5e05f077e53a599225d16", size = 16059531, upload-time = "2025-10-15T16:15:59.412Z" }, + { url = "https://files.pythonhosted.org/packages/b0/e7/b106253c7c0d5dc352b9c8fab91afd76a93950998167fa3e5afe4ef3a18f/numpy-2.3.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dabc42f9c6577bcc13001b8810d300fe814b4cfbe8a92c873f269484594f9786", size = 18578983, upload-time = "2025-10-15T16:16:01.804Z" }, + { url = "https://files.pythonhosted.org/packages/73/e3/04ecc41e71462276ee867ccbef26a4448638eadecf1bc56772c9ed6d0255/numpy-2.3.4-cp312-cp312-win32.whl", hash = "sha256:a49d797192a8d950ca59ee2d0337a4d804f713bb5c3c50e8db26d49666e351dc", size = 6291380, upload-time = "2025-10-15T16:16:03.938Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a8/566578b10d8d0e9955b1b6cd5db4e9d4592dd0026a941ff7994cedda030a/numpy-2.3.4-cp312-cp312-win_amd64.whl", hash = "sha256:985f1e46358f06c2a09921e8921e2c98168ed4ae12ccd6e5e87a4f1857923f32", size = 12787999, upload-time = "2025-10-15T16:16:05.801Z" }, + { url = "https://files.pythonhosted.org/packages/58/22/9c903a957d0a8071b607f5b1bff0761d6e608b9a965945411f867d515db1/numpy-2.3.4-cp312-cp312-win_arm64.whl", hash = "sha256:4635239814149e06e2cb9db3dd584b2fa64316c96f10656983b8026a82e6e4db", size = 10197412, upload-time = "2025-10-15T16:16:07.854Z" }, + { url = "https://files.pythonhosted.org/packages/57/7e/b72610cc91edf138bc588df5150957a4937221ca6058b825b4725c27be62/numpy-2.3.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c090d4860032b857d94144d1a9976b8e36709e40386db289aaf6672de2a81966", size = 20950335, upload-time = "2025-10-15T16:16:10.304Z" }, + { url = "https://files.pythonhosted.org/packages/3e/46/bdd3370dcea2f95ef14af79dbf81e6927102ddf1cc54adc0024d61252fd9/numpy-2.3.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a13fc473b6db0be619e45f11f9e81260f7302f8d180c49a22b6e6120022596b3", size = 14179878, upload-time = "2025-10-15T16:16:12.595Z" }, + { url = "https://files.pythonhosted.org/packages/ac/01/5a67cb785bda60f45415d09c2bc245433f1c68dd82eef9c9002c508b5a65/numpy-2.3.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:3634093d0b428e6c32c3a69b78e554f0cd20ee420dcad5a9f3b2a63762ce4197", size = 5108673, upload-time = "2025-10-15T16:16:14.877Z" }, + { url = "https://files.pythonhosted.org/packages/c2/cd/8428e23a9fcebd33988f4cb61208fda832800ca03781f471f3727a820704/numpy-2.3.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:043885b4f7e6e232d7df4f51ffdef8c36320ee9d5f227b380ea636722c7ed12e", size = 6641438, upload-time = "2025-10-15T16:16:16.805Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d1/913fe563820f3c6b079f992458f7331278dcd7ba8427e8e745af37ddb44f/numpy-2.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ee6a571d1e4f0ea6d5f22d6e5fbd6ed1dc2b18542848e1e7301bd190500c9d7", size = 14281290, upload-time = "2025-10-15T16:16:18.764Z" }, + { url = "https://files.pythonhosted.org/packages/9e/7e/7d306ff7cb143e6d975cfa7eb98a93e73495c4deabb7d1b5ecf09ea0fd69/numpy-2.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fc8a63918b04b8571789688b2780ab2b4a33ab44bfe8ccea36d3eba51228c953", size = 16636543, upload-time = "2025-10-15T16:16:21.072Z" }, + { url = "https://files.pythonhosted.org/packages/47/6a/8cfc486237e56ccfb0db234945552a557ca266f022d281a2f577b98e955c/numpy-2.3.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:40cc556d5abbc54aabe2b1ae287042d7bdb80c08edede19f0c0afb36ae586f37", size = 16056117, upload-time = "2025-10-15T16:16:23.369Z" }, + { url = "https://files.pythonhosted.org/packages/b1/0e/42cb5e69ea901e06ce24bfcc4b5664a56f950a70efdcf221f30d9615f3f3/numpy-2.3.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ecb63014bb7f4ce653f8be7f1df8cbc6093a5a2811211770f6606cc92b5a78fd", size = 18577788, upload-time = "2025-10-15T16:16:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/86/92/41c3d5157d3177559ef0a35da50f0cda7fa071f4ba2306dd36818591a5bc/numpy-2.3.4-cp313-cp313-win32.whl", hash = "sha256:e8370eb6925bb8c1c4264fec52b0384b44f675f191df91cbe0140ec9f0955646", size = 6282620, upload-time = "2025-10-15T16:16:29.811Z" }, + { url = "https://files.pythonhosted.org/packages/09/97/fd421e8bc50766665ad35536c2bb4ef916533ba1fdd053a62d96cc7c8b95/numpy-2.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:56209416e81a7893036eea03abcb91c130643eb14233b2515c90dcac963fe99d", size = 12784672, upload-time = "2025-10-15T16:16:31.589Z" }, + { url = "https://files.pythonhosted.org/packages/ad/df/5474fb2f74970ca8eb978093969b125a84cc3d30e47f82191f981f13a8a0/numpy-2.3.4-cp313-cp313-win_arm64.whl", hash = "sha256:a700a4031bc0fd6936e78a752eefb79092cecad2599ea9c8039c548bc097f9bc", size = 10196702, upload-time = "2025-10-15T16:16:33.902Z" }, + { url = "https://files.pythonhosted.org/packages/11/83/66ac031464ec1767ea3ed48ce40f615eb441072945e98693bec0bcd056cc/numpy-2.3.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:86966db35c4040fdca64f0816a1c1dd8dbd027d90fca5a57e00e1ca4cd41b879", size = 21049003, upload-time = "2025-10-15T16:16:36.101Z" }, + { url = "https://files.pythonhosted.org/packages/5f/99/5b14e0e686e61371659a1d5bebd04596b1d72227ce36eed121bb0aeab798/numpy-2.3.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:838f045478638b26c375ee96ea89464d38428c69170360b23a1a50fa4baa3562", size = 14302980, upload-time = "2025-10-15T16:16:39.124Z" }, + { url = "https://files.pythonhosted.org/packages/2c/44/e9486649cd087d9fc6920e3fc3ac2aba10838d10804b1e179fb7cbc4e634/numpy-2.3.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d7315ed1dab0286adca467377c8381cd748f3dc92235f22a7dfc42745644a96a", size = 5231472, upload-time = "2025-10-15T16:16:41.168Z" }, + { url = "https://files.pythonhosted.org/packages/3e/51/902b24fa8887e5fe2063fd61b1895a476d0bbf46811ab0c7fdf4bd127345/numpy-2.3.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:84f01a4d18b2cc4ade1814a08e5f3c907b079c847051d720fad15ce37aa930b6", size = 6739342, upload-time = "2025-10-15T16:16:43.777Z" }, + { url = "https://files.pythonhosted.org/packages/34/f1/4de9586d05b1962acdcdb1dc4af6646361a643f8c864cef7c852bf509740/numpy-2.3.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:817e719a868f0dacde4abdfc5c1910b301877970195db9ab6a5e2c4bd5b121f7", size = 14354338, upload-time = "2025-10-15T16:16:46.081Z" }, + { url = "https://files.pythonhosted.org/packages/1f/06/1c16103b425de7969d5a76bdf5ada0804b476fed05d5f9e17b777f1cbefd/numpy-2.3.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85e071da78d92a214212cacea81c6da557cab307f2c34b5f85b628e94803f9c0", size = 16702392, upload-time = "2025-10-15T16:16:48.455Z" }, + { url = "https://files.pythonhosted.org/packages/34/b2/65f4dc1b89b5322093572b6e55161bb42e3e0487067af73627f795cc9d47/numpy-2.3.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2ec646892819370cf3558f518797f16597b4e4669894a2ba712caccc9da53f1f", size = 16134998, upload-time = "2025-10-15T16:16:51.114Z" }, + { url = "https://files.pythonhosted.org/packages/d4/11/94ec578896cdb973aaf56425d6c7f2aff4186a5c00fac15ff2ec46998b46/numpy-2.3.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:035796aaaddfe2f9664b9a9372f089cfc88bd795a67bd1bfe15e6e770934cf64", size = 18651574, upload-time = "2025-10-15T16:16:53.429Z" }, + { url = "https://files.pythonhosted.org/packages/62/b7/7efa763ab33dbccf56dade36938a77345ce8e8192d6b39e470ca25ff3cd0/numpy-2.3.4-cp313-cp313t-win32.whl", hash = "sha256:fea80f4f4cf83b54c3a051f2f727870ee51e22f0248d3114b8e755d160b38cfb", size = 6413135, upload-time = "2025-10-15T16:16:55.992Z" }, + { url = "https://files.pythonhosted.org/packages/43/70/aba4c38e8400abcc2f345e13d972fb36c26409b3e644366db7649015f291/numpy-2.3.4-cp313-cp313t-win_amd64.whl", hash = "sha256:15eea9f306b98e0be91eb344a94c0e630689ef302e10c2ce5f7e11905c704f9c", size = 12928582, upload-time = "2025-10-15T16:16:57.943Z" }, + { url = "https://files.pythonhosted.org/packages/67/63/871fad5f0073fc00fbbdd7232962ea1ac40eeaae2bba66c76214f7954236/numpy-2.3.4-cp313-cp313t-win_arm64.whl", hash = "sha256:b6c231c9c2fadbae4011ca5e7e83e12dc4a5072f1a1d85a0a7b3ed754d145a40", size = 10266691, upload-time = "2025-10-15T16:17:00.048Z" }, + { url = "https://files.pythonhosted.org/packages/72/71/ae6170143c115732470ae3a2d01512870dd16e0953f8a6dc89525696069b/numpy-2.3.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:81c3e6d8c97295a7360d367f9f8553973651b76907988bb6066376bc2252f24e", size = 20955580, upload-time = "2025-10-15T16:17:02.509Z" }, + { url = "https://files.pythonhosted.org/packages/af/39/4be9222ffd6ca8a30eda033d5f753276a9c3426c397bb137d8e19dedd200/numpy-2.3.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7c26b0b2bf58009ed1f38a641f3db4be8d960a417ca96d14e5b06df1506d41ff", size = 14188056, upload-time = "2025-10-15T16:17:04.873Z" }, + { url = "https://files.pythonhosted.org/packages/6c/3d/d85f6700d0a4aa4f9491030e1021c2b2b7421b2b38d01acd16734a2bfdc7/numpy-2.3.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:62b2198c438058a20b6704351b35a1d7db881812d8512d67a69c9de1f18ca05f", size = 5116555, upload-time = "2025-10-15T16:17:07.499Z" }, + { url = "https://files.pythonhosted.org/packages/bf/04/82c1467d86f47eee8a19a464c92f90a9bb68ccf14a54c5224d7031241ffb/numpy-2.3.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:9d729d60f8d53a7361707f4b68a9663c968882dd4f09e0d58c044c8bf5faee7b", size = 6643581, upload-time = "2025-10-15T16:17:09.774Z" }, + { url = "https://files.pythonhosted.org/packages/0c/d3/c79841741b837e293f48bd7db89d0ac7a4f2503b382b78a790ef1dc778a5/numpy-2.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd0c630cf256b0a7fd9d0a11c9413b42fef5101219ce6ed5a09624f5a65392c7", size = 14299186, upload-time = "2025-10-15T16:17:11.937Z" }, + { url = "https://files.pythonhosted.org/packages/e8/7e/4a14a769741fbf237eec5a12a2cbc7a4c4e061852b6533bcb9e9a796c908/numpy-2.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5e081bc082825f8b139f9e9fe42942cb4054524598aaeb177ff476cc76d09d2", size = 16638601, upload-time = "2025-10-15T16:17:14.391Z" }, + { url = "https://files.pythonhosted.org/packages/93/87/1c1de269f002ff0a41173fe01dcc925f4ecff59264cd8f96cf3b60d12c9b/numpy-2.3.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:15fb27364ed84114438fff8aaf998c9e19adbeba08c0b75409f8c452a8692c52", size = 16074219, upload-time = "2025-10-15T16:17:17.058Z" }, + { url = "https://files.pythonhosted.org/packages/cd/28/18f72ee77408e40a76d691001ae599e712ca2a47ddd2c4f695b16c65f077/numpy-2.3.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:85d9fb2d8cd998c84d13a79a09cc0c1091648e848e4e6249b0ccd7f6b487fa26", size = 18576702, upload-time = "2025-10-15T16:17:19.379Z" }, + { url = "https://files.pythonhosted.org/packages/c3/76/95650169b465ececa8cf4b2e8f6df255d4bf662775e797ade2025cc51ae6/numpy-2.3.4-cp314-cp314-win32.whl", hash = "sha256:e73d63fd04e3a9d6bc187f5455d81abfad05660b212c8804bf3b407e984cd2bc", size = 6337136, upload-time = "2025-10-15T16:17:22.886Z" }, + { url = "https://files.pythonhosted.org/packages/dc/89/a231a5c43ede5d6f77ba4a91e915a87dea4aeea76560ba4d2bf185c683f0/numpy-2.3.4-cp314-cp314-win_amd64.whl", hash = "sha256:3da3491cee49cf16157e70f607c03a217ea6647b1cea4819c4f48e53d49139b9", size = 12920542, upload-time = "2025-10-15T16:17:24.783Z" }, + { url = "https://files.pythonhosted.org/packages/0d/0c/ae9434a888f717c5ed2ff2393b3f344f0ff6f1c793519fa0c540461dc530/numpy-2.3.4-cp314-cp314-win_arm64.whl", hash = "sha256:6d9cd732068e8288dbe2717177320723ccec4fb064123f0caf9bbd90ab5be868", size = 10480213, upload-time = "2025-10-15T16:17:26.935Z" }, + { url = "https://files.pythonhosted.org/packages/83/4b/c4a5f0841f92536f6b9592694a5b5f68c9ab37b775ff342649eadf9055d3/numpy-2.3.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:22758999b256b595cf0b1d102b133bb61866ba5ceecf15f759623b64c020c9ec", size = 21052280, upload-time = "2025-10-15T16:17:29.638Z" }, + { url = "https://files.pythonhosted.org/packages/3e/80/90308845fc93b984d2cc96d83e2324ce8ad1fd6efea81b324cba4b673854/numpy-2.3.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9cb177bc55b010b19798dc5497d540dea67fd13a8d9e882b2dae71de0cf09eb3", size = 14302930, upload-time = "2025-10-15T16:17:32.384Z" }, + { url = "https://files.pythonhosted.org/packages/3d/4e/07439f22f2a3b247cec4d63a713faae55e1141a36e77fb212881f7cda3fb/numpy-2.3.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0f2bcc76f1e05e5ab58893407c63d90b2029908fa41f9f1cc51eecce936c3365", size = 5231504, upload-time = "2025-10-15T16:17:34.515Z" }, + { url = "https://files.pythonhosted.org/packages/ab/de/1e11f2547e2fe3d00482b19721855348b94ada8359aef5d40dd57bfae9df/numpy-2.3.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:8dc20bde86802df2ed8397a08d793da0ad7a5fd4ea3ac85d757bf5dd4ad7c252", size = 6739405, upload-time = "2025-10-15T16:17:36.128Z" }, + { url = "https://files.pythonhosted.org/packages/3b/40/8cd57393a26cebe2e923005db5134a946c62fa56a1087dc7c478f3e30837/numpy-2.3.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e199c087e2aa71c8f9ce1cb7a8e10677dc12457e7cc1be4798632da37c3e86e", size = 14354866, upload-time = "2025-10-15T16:17:38.884Z" }, + { url = "https://files.pythonhosted.org/packages/93/39/5b3510f023f96874ee6fea2e40dfa99313a00bf3ab779f3c92978f34aace/numpy-2.3.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85597b2d25ddf655495e2363fe044b0ae999b75bc4d630dc0d886484b03a5eb0", size = 16703296, upload-time = "2025-10-15T16:17:41.564Z" }, + { url = "https://files.pythonhosted.org/packages/41/0d/19bb163617c8045209c1996c4e427bccbc4bbff1e2c711f39203c8ddbb4a/numpy-2.3.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:04a69abe45b49c5955923cf2c407843d1c85013b424ae8a560bba16c92fe44a0", size = 16136046, upload-time = "2025-10-15T16:17:43.901Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c1/6dba12fdf68b02a21ac411c9df19afa66bed2540f467150ca64d246b463d/numpy-2.3.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e1708fac43ef8b419c975926ce1eaf793b0c13b7356cfab6ab0dc34c0a02ac0f", size = 18652691, upload-time = "2025-10-15T16:17:46.247Z" }, + { url = "https://files.pythonhosted.org/packages/f8/73/f85056701dbbbb910c51d846c58d29fd46b30eecd2b6ba760fc8b8a1641b/numpy-2.3.4-cp314-cp314t-win32.whl", hash = "sha256:863e3b5f4d9915aaf1b8ec79ae560ad21f0b8d5e3adc31e73126491bb86dee1d", size = 6485782, upload-time = "2025-10-15T16:17:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/17/90/28fa6f9865181cb817c2471ee65678afa8a7e2a1fb16141473d5fa6bacc3/numpy-2.3.4-cp314-cp314t-win_amd64.whl", hash = "sha256:962064de37b9aef801d33bc579690f8bfe6c5e70e29b61783f60bcba838a14d6", size = 13113301, upload-time = "2025-10-15T16:17:50.938Z" }, + { url = "https://files.pythonhosted.org/packages/54/23/08c002201a8e7e1f9afba93b97deceb813252d9cfd0d3351caed123dcf97/numpy-2.3.4-cp314-cp314t-win_arm64.whl", hash = "sha256:8b5a9a39c45d852b62693d9b3f3e0fe052541f804296ff401a72a1b60edafb29", size = 10547532, upload-time = "2025-10-15T16:17:53.48Z" }, ] [[package]] @@ -2424,10 +2468,10 @@ wheels = [ [[package]] name = "onemkl-license" version = "2025.3.0" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/11/b43e8cde058c368ce7f8f9b1ca9f812f7397e4309148da7d24cb6b81b513/onemkl_license-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:a810b25bb24a90db4492d81c71cde13183d8951ce26960d6dc56d4f4e3dc95ff" }, - { url = "https://files.pythonhosted.org/packages/0e/8e/98ad8181e4af2ea7a6c7827ef6d24c73b6ee96a2890eacf46103f596195d/onemkl_license-2025.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:35a179620bcadbcc3d17d74f7f72cab75889f3736b89685f6a68158325b65e91" }, + { url = "https://files.pythonhosted.org/packages/88/11/b43e8cde058c368ce7f8f9b1ca9f812f7397e4309148da7d24cb6b81b513/onemkl_license-2025.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:a810b25bb24a90db4492d81c71cde13183d8951ce26960d6dc56d4f4e3dc95ff", size = 58936, upload-time = "2025-10-22T17:55:41.998Z" }, + { url = "https://files.pythonhosted.org/packages/0e/8e/98ad8181e4af2ea7a6c7827ef6d24c73b6ee96a2890eacf46103f596195d/onemkl_license-2025.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:35a179620bcadbcc3d17d74f7f72cab75889f3736b89685f6a68158325b65e91", size = 58961, upload-time = "2025-10-22T17:57:54.095Z" }, ] [[package]] @@ -3412,6 +3456,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6b/fa/3234f913fe9a6525a7b97c6dad1f51e72b917e6872e051a5e2ffd8b16fbb/ruamel.yaml.clib-0.2.14-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:70eda7703b8126f5e52fcf276e6c0f40b0d314674f896fc58c47b0aef2b9ae83", size = 137970, upload-time = "2025-09-22T19:51:09.472Z" }, { url = "https://files.pythonhosted.org/packages/ef/ec/4edbf17ac2c87fa0845dd366ef8d5852b96eb58fcd65fc1ecf5fe27b4641/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:a0cb71ccc6ef9ce36eecb6272c81afdc2f565950cdcec33ae8e6cd8f7fc86f27", size = 739639, upload-time = "2025-09-22T19:51:10.566Z" }, { url = "https://files.pythonhosted.org/packages/15/18/b0e1fafe59051de9e79cdd431863b03593ecfa8341c110affad7c8121efc/ruamel.yaml.clib-0.2.14-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e7cb9ad1d525d40f7d87b6df7c0ff916a66bc52cb61b66ac1b2a16d0c1b07640", size = 764456, upload-time = "2025-09-22T19:51:11.736Z" }, + { url = "https://files.pythonhosted.org/packages/e7/cd/150fdb96b8fab27fe08d8a59fe67554568727981806e6bc2677a16081ec7/ruamel_yaml_clib-0.2.14-cp314-cp314-win32.whl", hash = "sha256:9b4104bf43ca0cd4e6f738cb86326a3b2f6eef00f417bd1e7efb7bdffe74c539", size = 102394, upload-time = "2025-11-14T21:57:36.703Z" }, + { url = "https://files.pythonhosted.org/packages/bd/e6/a3fa40084558c7e1dc9546385f22a93949c890a8b2e445b2ba43935f51da/ruamel_yaml_clib-0.2.14-cp314-cp314-win_amd64.whl", hash = "sha256:13997d7d354a9890ea1ec5937a219817464e5cc344805b37671562a401ca3008", size = 122673, upload-time = "2025-11-14T21:57:38.177Z" }, ] [[package]] @@ -3472,19 +3518,62 @@ wheels = [ [[package]] name = "scipy" version = "1.16.3" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "mkl" }, - { name = "mkl-service" }, { name = "numpy" }, ] -wheels = [ - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.2/scipy-1.16.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:82cdf597dce708a7e5ad21f8f7e2382f18c750866c7fea84156ffc5100eeca85" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.2/scipy-1.16.3-cp312-cp312-win_amd64.whl", hash = "sha256:69892facb9b4201079fd6c73c646d6e0ab2376e64e1213e3de62941def53e2fa" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.2/scipy-1.16.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6296838860731f71ca6bd44e18a6b6a649b405b52eb48ba05bb994db06d8520c" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.2/scipy-1.16.3-cp313-cp313-win_amd64.whl", hash = "sha256:f2ad7f0b53030e48b7003bd1d596abffd53251e2513bb5371674a590d3486ffe" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.2/scipy-1.16.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92756f22310ece2e27df010f1dc30ae5c473bafb7f9f5d5e9e04a532e4399bfd" }, - { url = "https://github.com/urob/numpy-mkl/releases/download/0.1.2/scipy-1.16.3-cp314-cp314-win_amd64.whl", hash = "sha256:90af63e42b02812edd3eae50236de9953d439b2cc4b153aecaec586df9d944fb" }, +sdist = { url = "https://files.pythonhosted.org/packages/0a/ca/d8ace4f98322d01abcd52d381134344bf7b431eba7ed8b42bdea5a3c2ac9/scipy-1.16.3.tar.gz", hash = "sha256:01e87659402762f43bd2fee13370553a17ada367d42e7487800bf2916535aecb", size = 30597883, upload-time = "2025-10-28T17:38:54.068Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/41/5bf55c3f386b1643812f3a5674edf74b26184378ef0f3e7c7a09a7e2ca7f/scipy-1.16.3-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:81fc5827606858cf71446a5e98715ba0e11f0dbc83d71c7409d05486592a45d6", size = 36659043, upload-time = "2025-10-28T17:32:40.285Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0f/65582071948cfc45d43e9870bf7ca5f0e0684e165d7c9ef4e50d783073eb/scipy-1.16.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:c97176013d404c7346bf57874eaac5187d969293bf40497140b0a2b2b7482e07", size = 28898986, upload-time = "2025-10-28T17:32:45.325Z" }, + { url = "https://files.pythonhosted.org/packages/96/5e/36bf3f0ac298187d1ceadde9051177d6a4fe4d507e8f59067dc9dd39e650/scipy-1.16.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2b71d93c8a9936046866acebc915e2af2e292b883ed6e2cbe5c34beb094b82d9", size = 20889814, upload-time = "2025-10-28T17:32:49.277Z" }, + { url = "https://files.pythonhosted.org/packages/80/35/178d9d0c35394d5d5211bbff7ac4f2986c5488b59506fef9e1de13ea28d3/scipy-1.16.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3d4a07a8e785d80289dfe66b7c27d8634a773020742ec7187b85ccc4b0e7b686", size = 23565795, upload-time = "2025-10-28T17:32:53.337Z" }, + { url = "https://files.pythonhosted.org/packages/fa/46/d1146ff536d034d02f83c8afc3c4bab2eddb634624d6529a8512f3afc9da/scipy-1.16.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0553371015692a898e1aa858fed67a3576c34edefa6b7ebdb4e9dde49ce5c203", size = 33349476, upload-time = "2025-10-28T17:32:58.353Z" }, + { url = "https://files.pythonhosted.org/packages/79/2e/415119c9ab3e62249e18c2b082c07aff907a273741b3f8160414b0e9193c/scipy-1.16.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:72d1717fd3b5e6ec747327ce9bda32d5463f472c9dce9f54499e81fbd50245a1", size = 35676692, upload-time = "2025-10-28T17:33:03.88Z" }, + { url = "https://files.pythonhosted.org/packages/27/82/df26e44da78bf8d2aeaf7566082260cfa15955a5a6e96e6a29935b64132f/scipy-1.16.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1fb2472e72e24d1530debe6ae078db70fb1605350c88a3d14bc401d6306dbffe", size = 36019345, upload-time = "2025-10-28T17:33:09.773Z" }, + { url = "https://files.pythonhosted.org/packages/82/31/006cbb4b648ba379a95c87262c2855cd0d09453e500937f78b30f02fa1cd/scipy-1.16.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c5192722cffe15f9329a3948c4b1db789fbb1f05c97899187dcf009b283aea70", size = 38678975, upload-time = "2025-10-28T17:33:15.809Z" }, + { url = "https://files.pythonhosted.org/packages/c2/7f/acbd28c97e990b421af7d6d6cd416358c9c293fc958b8529e0bd5d2a2a19/scipy-1.16.3-cp312-cp312-win_amd64.whl", hash = "sha256:56edc65510d1331dae01ef9b658d428e33ed48b4f77b1d51caf479a0253f96dc", size = 38555926, upload-time = "2025-10-28T17:33:21.388Z" }, + { url = "https://files.pythonhosted.org/packages/ce/69/c5c7807fd007dad4f48e0a5f2153038dc96e8725d3345b9ee31b2b7bed46/scipy-1.16.3-cp312-cp312-win_arm64.whl", hash = "sha256:a8a26c78ef223d3e30920ef759e25625a0ecdd0d60e5a8818b7513c3e5384cf2", size = 25463014, upload-time = "2025-10-28T17:33:25.975Z" }, + { url = "https://files.pythonhosted.org/packages/72/f1/57e8327ab1508272029e27eeef34f2302ffc156b69e7e233e906c2a5c379/scipy-1.16.3-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:d2ec56337675e61b312179a1ad124f5f570c00f920cc75e1000025451b88241c", size = 36617856, upload-time = "2025-10-28T17:33:31.375Z" }, + { url = "https://files.pythonhosted.org/packages/44/13/7e63cfba8a7452eb756306aa2fd9b37a29a323b672b964b4fdeded9a3f21/scipy-1.16.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:16b8bc35a4cc24db80a0ec836a9286d0e31b2503cb2fd7ff7fb0e0374a97081d", size = 28874306, upload-time = "2025-10-28T17:33:36.516Z" }, + { url = "https://files.pythonhosted.org/packages/15/65/3a9400efd0228a176e6ec3454b1fa998fbbb5a8defa1672c3f65706987db/scipy-1.16.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:5803c5fadd29de0cf27fa08ccbfe7a9e5d741bf63e4ab1085437266f12460ff9", size = 20865371, upload-time = "2025-10-28T17:33:42.094Z" }, + { url = "https://files.pythonhosted.org/packages/33/d7/eda09adf009a9fb81827194d4dd02d2e4bc752cef16737cc4ef065234031/scipy-1.16.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:b81c27fc41954319a943d43b20e07c40bdcd3ff7cf013f4fb86286faefe546c4", size = 23524877, upload-time = "2025-10-28T17:33:48.483Z" }, + { url = "https://files.pythonhosted.org/packages/7d/6b/3f911e1ebc364cb81320223a3422aab7d26c9c7973109a9cd0f27c64c6c0/scipy-1.16.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0c3b4dd3d9b08dbce0f3440032c52e9e2ab9f96ade2d3943313dfe51a7056959", size = 33342103, upload-time = "2025-10-28T17:33:56.495Z" }, + { url = "https://files.pythonhosted.org/packages/21/f6/4bfb5695d8941e5c570a04d9fcd0d36bce7511b7d78e6e75c8f9791f82d0/scipy-1.16.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7dc1360c06535ea6116a2220f760ae572db9f661aba2d88074fe30ec2aa1ff88", size = 35697297, upload-time = "2025-10-28T17:34:04.722Z" }, + { url = "https://files.pythonhosted.org/packages/04/e1/6496dadbc80d8d896ff72511ecfe2316b50313bfc3ebf07a3f580f08bd8c/scipy-1.16.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:663b8d66a8748051c3ee9c96465fb417509315b99c71550fda2591d7dd634234", size = 36021756, upload-time = "2025-10-28T17:34:13.482Z" }, + { url = "https://files.pythonhosted.org/packages/fe/bd/a8c7799e0136b987bda3e1b23d155bcb31aec68a4a472554df5f0937eef7/scipy-1.16.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eab43fae33a0c39006a88096cd7b4f4ef545ea0447d250d5ac18202d40b6611d", size = 38696566, upload-time = "2025-10-28T17:34:22.384Z" }, + { url = "https://files.pythonhosted.org/packages/cd/01/1204382461fcbfeb05b6161b594f4007e78b6eba9b375382f79153172b4d/scipy-1.16.3-cp313-cp313-win_amd64.whl", hash = "sha256:062246acacbe9f8210de8e751b16fc37458213f124bef161a5a02c7a39284304", size = 38529877, upload-time = "2025-10-28T17:35:51.076Z" }, + { url = "https://files.pythonhosted.org/packages/7f/14/9d9fbcaa1260a94f4bb5b64ba9213ceb5d03cd88841fe9fd1ffd47a45b73/scipy-1.16.3-cp313-cp313-win_arm64.whl", hash = "sha256:50a3dbf286dbc7d84f176f9a1574c705f277cb6565069f88f60db9eafdbe3ee2", size = 25455366, upload-time = "2025-10-28T17:35:59.014Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a3/9ec205bd49f42d45d77f1730dbad9ccf146244c1647605cf834b3a8c4f36/scipy-1.16.3-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:fb4b29f4cf8cc5a8d628bc8d8e26d12d7278cd1f219f22698a378c3d67db5e4b", size = 37027931, upload-time = "2025-10-28T17:34:31.451Z" }, + { url = "https://files.pythonhosted.org/packages/25/06/ca9fd1f3a4589cbd825b1447e5db3a8ebb969c1eaf22c8579bd286f51b6d/scipy-1.16.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:8d09d72dc92742988b0e7750bddb8060b0c7079606c0d24a8cc8e9c9c11f9079", size = 29400081, upload-time = "2025-10-28T17:34:39.087Z" }, + { url = "https://files.pythonhosted.org/packages/6a/56/933e68210d92657d93fb0e381683bc0e53a965048d7358ff5fbf9e6a1b17/scipy-1.16.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:03192a35e661470197556de24e7cb1330d84b35b94ead65c46ad6f16f6b28f2a", size = 21391244, upload-time = "2025-10-28T17:34:45.234Z" }, + { url = "https://files.pythonhosted.org/packages/a8/7e/779845db03dc1418e215726329674b40576879b91814568757ff0014ad65/scipy-1.16.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:57d01cb6f85e34f0946b33caa66e892aae072b64b034183f3d87c4025802a119", size = 23929753, upload-time = "2025-10-28T17:34:51.793Z" }, + { url = "https://files.pythonhosted.org/packages/4c/4b/f756cf8161d5365dcdef9e5f460ab226c068211030a175d2fc7f3f41ca64/scipy-1.16.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:96491a6a54e995f00a28a3c3badfff58fd093bf26cd5fb34a2188c8c756a3a2c", size = 33496912, upload-time = "2025-10-28T17:34:59.8Z" }, + { url = "https://files.pythonhosted.org/packages/09/b5/222b1e49a58668f23839ca1542a6322bb095ab8d6590d4f71723869a6c2c/scipy-1.16.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cd13e354df9938598af2be05822c323e97132d5e6306b83a3b4ee6724c6e522e", size = 35802371, upload-time = "2025-10-28T17:35:08.173Z" }, + { url = "https://files.pythonhosted.org/packages/c1/8d/5964ef68bb31829bde27611f8c9deeac13764589fe74a75390242b64ca44/scipy-1.16.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:63d3cdacb8a824a295191a723ee5e4ea7768ca5ca5f2838532d9f2e2b3ce2135", size = 36190477, upload-time = "2025-10-28T17:35:16.7Z" }, + { url = "https://files.pythonhosted.org/packages/ab/f2/b31d75cb9b5fa4dd39a0a931ee9b33e7f6f36f23be5ef560bf72e0f92f32/scipy-1.16.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e7efa2681ea410b10dde31a52b18b0154d66f2485328830e45fdf183af5aefc6", size = 38796678, upload-time = "2025-10-28T17:35:26.354Z" }, + { url = "https://files.pythonhosted.org/packages/b4/1e/b3723d8ff64ab548c38d87055483714fefe6ee20e0189b62352b5e015bb1/scipy-1.16.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2d1ae2cf0c350e7705168ff2429962a89ad90c2d49d1dd300686d8b2a5af22fc", size = 38640178, upload-time = "2025-10-28T17:35:35.304Z" }, + { url = "https://files.pythonhosted.org/packages/8e/f3/d854ff38789aca9b0cc23008d607ced9de4f7ab14fa1ca4329f86b3758ca/scipy-1.16.3-cp313-cp313t-win_arm64.whl", hash = "sha256:0c623a54f7b79dd88ef56da19bc2873afec9673a48f3b85b18e4d402bdd29a5a", size = 25803246, upload-time = "2025-10-28T17:35:42.155Z" }, + { url = "https://files.pythonhosted.org/packages/99/f6/99b10fd70f2d864c1e29a28bbcaa0c6340f9d8518396542d9ea3b4aaae15/scipy-1.16.3-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:875555ce62743e1d54f06cdf22c1e0bc47b91130ac40fe5d783b6dfa114beeb6", size = 36606469, upload-time = "2025-10-28T17:36:08.741Z" }, + { url = "https://files.pythonhosted.org/packages/4d/74/043b54f2319f48ea940dd025779fa28ee360e6b95acb7cd188fad4391c6b/scipy-1.16.3-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:bb61878c18a470021fb515a843dc7a76961a8daceaaaa8bad1332f1bf4b54657", size = 28872043, upload-time = "2025-10-28T17:36:16.599Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e1/24b7e50cc1c4ee6ffbcb1f27fe9f4c8b40e7911675f6d2d20955f41c6348/scipy-1.16.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f2622206f5559784fa5c4b53a950c3c7c1cf3e84ca1b9c4b6c03f062f289ca26", size = 20862952, upload-time = "2025-10-28T17:36:22.966Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3a/3e8c01a4d742b730df368e063787c6808597ccb38636ed821d10b39ca51b/scipy-1.16.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7f68154688c515cdb541a31ef8eb66d8cd1050605be9dcd74199cbd22ac739bc", size = 23508512, upload-time = "2025-10-28T17:36:29.731Z" }, + { url = "https://files.pythonhosted.org/packages/1f/60/c45a12b98ad591536bfe5330cb3cfe1850d7570259303563b1721564d458/scipy-1.16.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8b3c820ddb80029fe9f43d61b81d8b488d3ef8ca010d15122b152db77dc94c22", size = 33413639, upload-time = "2025-10-28T17:36:37.982Z" }, + { url = "https://files.pythonhosted.org/packages/71/bc/35957d88645476307e4839712642896689df442f3e53b0fa016ecf8a3357/scipy-1.16.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d3837938ae715fc0fe3c39c0202de3a8853aff22ca66781ddc2ade7554b7e2cc", size = 35704729, upload-time = "2025-10-28T17:36:46.547Z" }, + { url = "https://files.pythonhosted.org/packages/3b/15/89105e659041b1ca11c386e9995aefacd513a78493656e57789f9d9eab61/scipy-1.16.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:aadd23f98f9cb069b3bd64ddc900c4d277778242e961751f77a8cb5c4b946fb0", size = 36086251, upload-time = "2025-10-28T17:36:55.161Z" }, + { url = "https://files.pythonhosted.org/packages/1a/87/c0ea673ac9c6cc50b3da2196d860273bc7389aa69b64efa8493bdd25b093/scipy-1.16.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b7c5f1bda1354d6a19bc6af73a649f8285ca63ac6b52e64e658a5a11d4d69800", size = 38716681, upload-time = "2025-10-28T17:37:04.1Z" }, + { url = "https://files.pythonhosted.org/packages/91/06/837893227b043fb9b0d13e4bd7586982d8136cb249ffb3492930dab905b8/scipy-1.16.3-cp314-cp314-win_amd64.whl", hash = "sha256:e5d42a9472e7579e473879a1990327830493a7047506d58d73fc429b84c1d49d", size = 39358423, upload-time = "2025-10-28T17:38:20.005Z" }, + { url = "https://files.pythonhosted.org/packages/95/03/28bce0355e4d34a7c034727505a02d19548549e190bedd13a721e35380b7/scipy-1.16.3-cp314-cp314-win_arm64.whl", hash = "sha256:6020470b9d00245926f2d5bb93b119ca0340f0d564eb6fbaad843eaebf9d690f", size = 26135027, upload-time = "2025-10-28T17:38:24.966Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6f/69f1e2b682efe9de8fe9f91040f0cd32f13cfccba690512ba4c582b0bc29/scipy-1.16.3-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:e1d27cbcb4602680a49d787d90664fa4974063ac9d4134813332a8c53dbe667c", size = 37028379, upload-time = "2025-10-28T17:37:14.061Z" }, + { url = "https://files.pythonhosted.org/packages/7c/2d/e826f31624a5ebbab1cd93d30fd74349914753076ed0593e1d56a98c4fb4/scipy-1.16.3-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:9b9c9c07b6d56a35777a1b4cc8966118fb16cfd8daf6743867d17d36cfad2d40", size = 29400052, upload-time = "2025-10-28T17:37:21.709Z" }, + { url = "https://files.pythonhosted.org/packages/69/27/d24feb80155f41fd1f156bf144e7e049b4e2b9dd06261a242905e3bc7a03/scipy-1.16.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:3a4c460301fb2cffb7f88528f30b3127742cff583603aa7dc964a52c463b385d", size = 21391183, upload-time = "2025-10-28T17:37:29.559Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d3/1b229e433074c5738a24277eca520a2319aac7465eea7310ea6ae0e98ae2/scipy-1.16.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:f667a4542cc8917af1db06366d3f78a5c8e83badd56409f94d1eac8d8d9133fa", size = 23930174, upload-time = "2025-10-28T17:37:36.306Z" }, + { url = "https://files.pythonhosted.org/packages/16/9d/d9e148b0ec680c0f042581a2be79a28a7ab66c0c4946697f9e7553ead337/scipy-1.16.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f379b54b77a597aa7ee5e697df0d66903e41b9c85a6dd7946159e356319158e8", size = 33497852, upload-time = "2025-10-28T17:37:42.228Z" }, + { url = "https://files.pythonhosted.org/packages/2f/22/4e5f7561e4f98b7bea63cf3fd7934bff1e3182e9f1626b089a679914d5c8/scipy-1.16.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4aff59800a3b7f786b70bfd6ab551001cb553244988d7d6b8299cb1ea653b353", size = 35798595, upload-time = "2025-10-28T17:37:48.102Z" }, + { url = "https://files.pythonhosted.org/packages/83/42/6644d714c179429fc7196857866f219fef25238319b650bb32dde7bf7a48/scipy-1.16.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:da7763f55885045036fabcebd80144b757d3db06ab0861415d1c3b7c69042146", size = 36186269, upload-time = "2025-10-28T17:37:53.72Z" }, + { url = "https://files.pythonhosted.org/packages/ac/70/64b4d7ca92f9cf2e6fc6aaa2eecf80bb9b6b985043a9583f32f8177ea122/scipy-1.16.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ffa6eea95283b2b8079b821dc11f50a17d0571c92b43e2b5b12764dc5f9b285d", size = 38802779, upload-time = "2025-10-28T17:37:59.393Z" }, + { url = "https://files.pythonhosted.org/packages/61/82/8d0e39f62764cce5ffd5284131e109f07cf8955aef9ab8ed4e3aa5e30539/scipy-1.16.3-cp314-cp314t-win_amd64.whl", hash = "sha256:d9f48cafc7ce94cf9b15c6bffdc443a81a27bf7075cf2dcd5c8b40f85d10c4e7", size = 39471128, upload-time = "2025-10-28T17:38:05.259Z" }, + { url = "https://files.pythonhosted.org/packages/64/47/a494741db7280eae6dc033510c319e34d42dd41b7ac0c7ead39354d1a2b5/scipy-1.16.3-cp314-cp314t-win_arm64.whl", hash = "sha256:21d9d6b197227a12dcbf9633320a4e34c6b0e51c57268df255a0942983bac562", size = 26464127, upload-time = "2025-10-28T17:38:11.34Z" }, ] [[package]] @@ -3643,6 +3732,7 @@ dependencies = [ { name = "imageio" }, { name = "lightning" }, { name = "matplotlib" }, + { name = "mkl" }, { name = "mkl-fft" }, { name = "mkl-service" }, { name = "nibabel" }, @@ -3700,10 +3790,11 @@ requires-dist = [ { name = "imageio" }, { name = "lightning" }, { name = "matplotlib" }, - { name = "mkl-fft", specifier = ">=2.0.0" }, - { name = "mkl-service", specifier = ">=2.4.2", index = "https://urob.github.io/numpy-mkl" }, + { name = "mkl" }, + { name = "mkl-fft" }, + { name = "mkl-service" }, { name = "nibabel" }, - { name = "numpy", specifier = ">=2.2.6", index = "https://urob.github.io/numpy-mkl" }, + { name = "numpy", specifier = ">=2.2.6" }, { name = "omegaconf" }, { name = "opencv-python" }, { name = "pandas" }, @@ -3715,7 +3806,7 @@ requires-dist = [ { name = "pywavelets" }, { name = "pyyaml" }, { name = "scikit-image" }, - { name = "scipy", index = "https://urob.github.io/numpy-mkl" }, + { name = "scipy" }, { name = "setuptools" }, { name = "torch", specifier = ">=2.8.0" }, { name = "torch-interpol" }, @@ -3803,22 +3894,22 @@ wheels = [ [[package]] name = "tbb" version = "2022.3.0" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "tcmlib" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/9e/b7f1f7af53580e4e8cf39cf51b14c8e295d767b3ae9d78b5007d6058cfc8/tbb-2022.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:a7e122cb98a6f8823940341aa323dcdfffa77e36712a22a1ae3a76430fa9f412" }, - { url = "https://files.pythonhosted.org/packages/19/e7/8a3ae90c12186033dfd38a7292b2caef3ed10813162ab4713149191d70ef/tbb-2022.3.0-py3-none-win_amd64.whl", hash = "sha256:bb893f5772855ff2fd21867cb5c2806cb7d2960a178e660b342bc6a706a6ebf4" }, + { url = "https://files.pythonhosted.org/packages/e3/9e/b7f1f7af53580e4e8cf39cf51b14c8e295d767b3ae9d78b5007d6058cfc8/tbb-2022.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:a7e122cb98a6f8823940341aa323dcdfffa77e36712a22a1ae3a76430fa9f412", size = 4178631, upload-time = "2025-10-22T18:00:00.181Z" }, + { url = "https://files.pythonhosted.org/packages/19/e7/8a3ae90c12186033dfd38a7292b2caef3ed10813162ab4713149191d70ef/tbb-2022.3.0-py3-none-win_amd64.whl", hash = "sha256:bb893f5772855ff2fd21867cb5c2806cb7d2960a178e660b342bc6a706a6ebf4", size = 422733, upload-time = "2025-10-22T18:01:20.903Z" }, ] [[package]] name = "tcmlib" version = "1.4.1" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/a4/38e8b5a27b66ab286168ba6c449771ed71d71ec76524e7f12401474a5151/tcmlib-1.4.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:0d5bd98db48d31bec7fedba5c23599bf9ae43c7016d4c3946d25242d320cee89" }, - { url = "https://files.pythonhosted.org/packages/eb/4d/2b1d55dba475f602197e284b9a5e5460139a9c5ef2bfb63c8d2a1fafc163/tcmlib-1.4.1-py2.py3-none-win_amd64.whl", hash = "sha256:5202a1fd8541182fbd4ef72848784e4bf94340152d7ddff33d401d30930fa53c" }, + { url = "https://files.pythonhosted.org/packages/a1/a4/38e8b5a27b66ab286168ba6c449771ed71d71ec76524e7f12401474a5151/tcmlib-1.4.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:0d5bd98db48d31bec7fedba5c23599bf9ae43c7016d4c3946d25242d320cee89", size = 2731276, upload-time = "2025-10-22T17:57:02.392Z" }, + { url = "https://files.pythonhosted.org/packages/eb/4d/2b1d55dba475f602197e284b9a5e5460139a9c5ef2bfb63c8d2a1fafc163/tcmlib-1.4.1-py2.py3-none-win_amd64.whl", hash = "sha256:5202a1fd8541182fbd4ef72848784e4bf94340152d7ddff33d401d30930fa53c", size = 370347, upload-time = "2025-10-22T18:00:36.37Z" }, ] [[package]] @@ -4053,13 +4144,13 @@ wheels = [ [[package]] name = "umf" version = "1.0.2" -source = { registry = "https://urob.github.io/numpy-mkl" } +source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "tcmlib" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/27/8e/4a90b6aa955268988e7491f502b7ac2bd65cb954b4979bfcc892cf019b50/umf-1.0.2-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:ef4d144a2007a73a1a22ee575ee4f5a1894a206532c6f6d77b4cf548643502fb" }, - { url = "https://files.pythonhosted.org/packages/4c/8c/dfbcedb97b56b2e87a9fe61e43e70b09abb439ed90e06e08d4365fc60c5f/umf-1.0.2-py2.py3-none-win_amd64.whl", hash = "sha256:695b6be076a7bd2037b0cdbe5ee025f9ae74934cc78bdf25df8b52e8f746e457" }, + { url = "https://files.pythonhosted.org/packages/27/8e/4a90b6aa955268988e7491f502b7ac2bd65cb954b4979bfcc892cf019b50/umf-1.0.2-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:ef4d144a2007a73a1a22ee575ee4f5a1894a206532c6f6d77b4cf548643502fb", size = 359878, upload-time = "2025-10-22T17:58:50.929Z" }, + { url = "https://files.pythonhosted.org/packages/4c/8c/dfbcedb97b56b2e87a9fe61e43e70b09abb439ed90e06e08d4365fc60c5f/umf-1.0.2-py2.py3-none-win_amd64.whl", hash = "sha256:695b6be076a7bd2037b0cdbe5ee025f9ae74934cc78bdf25df8b52e8f746e457", size = 249097, upload-time = "2025-10-22T17:57:00.279Z" }, ] [[package]]