├── .github ├── CODEOWNERS └── workflows │ ├── webservices.yml │ └── automerge.yml ├── .gitignore ├── azure-pipelines.yml ├── .ci_support ├── README ├── win_64_numpy1.21python3.10.____cpython.yaml ├── win_64_numpy1.21python3.8.____cpython.yaml ├── win_64_numpy1.21python3.9.____cpython.yaml ├── win_64_numpy1.23python3.11.____cpython.yaml ├── linux_64_numpy1.21python3.8.____cpython.yaml ├── linux_64_numpy1.21python3.9.____cpython.yaml ├── osx_64_numpy1.21python3.8.____cpython.yaml ├── osx_64_numpy1.21python3.9.____cpython.yaml ├── linux_64_numpy1.21python3.10.____cpython.yaml ├── linux_64_numpy1.23python3.11.____cpython.yaml ├── osx_64_numpy1.21python3.10.____cpython.yaml ├── osx_64_numpy1.23python3.11.____cpython.yaml ├── osx_arm64_numpy1.21python3.8.____cpython.yaml ├── osx_arm64_numpy1.21python3.9.____cpython.yaml ├── linux_ppc64le_numpy1.21python3.8.____cpython.yaml ├── linux_ppc64le_numpy1.21python3.9.____cpython.yaml ├── osx_arm64_numpy1.21python3.10.____cpython.yaml ├── osx_arm64_numpy1.23python3.11.____cpython.yaml ├── linux_ppc64le_numpy1.21python3.10.____cpython.yaml ├── linux_ppc64le_numpy1.23python3.11.____cpython.yaml ├── linux_aarch64_numpy1.21python3.10.____cpython.yaml ├── linux_aarch64_numpy1.21python3.8.____cpython.yaml ├── linux_aarch64_numpy1.21python3.9.____cpython.yaml ├── linux_aarch64_numpy1.23python3.11.____cpython.yaml └── migrations │ └── python311.yaml ├── conda-forge.yml ├── .circleci └── config.yml ├── .gitattributes ├── .scripts ├── logging_utils.sh ├── run_osx_build.sh ├── build_steps.sh └── run_docker_build.sh ├── recipe └── meta.yaml ├── LICENSE.txt ├── .azure-pipelines ├── azure-pipelines-osx.yml ├── azure-pipelines-win.yml └── azure-pipelines-linux.yml └── README.md /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @johnlees @lmcinnes -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | 3 | build_artifacts 4 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - template: ./.azure-pipelines/azure-pipelines-linux.yml 7 | - template: ./.azure-pipelines/azure-pipelines-win.yml 8 | - template: ./.azure-pipelines/azure-pipelines-osx.yml -------------------------------------------------------------------------------- /.ci_support/README: -------------------------------------------------------------------------------- 1 | This file is automatically generated by conda-smithy. If any 2 | particular build configuration is expected, but it is not found, 3 | please make sure all dependencies are satisfiable. To add/modify any 4 | matrix elements, you should create/change conda-smithy's input 5 | recipe/conda_build_config.yaml and re-render the recipe, rather than 6 | editing these files directly. 7 | -------------------------------------------------------------------------------- /.ci_support/win_64_numpy1.21python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - vs2019 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | numpy: 8 | - '1.21' 9 | pin_run_as_build: 10 | python: 11 | min_pin: x.x 12 | max_pin: x.x 13 | python: 14 | - 3.10.* *_cpython 15 | target_platform: 16 | - win-64 17 | zip_keys: 18 | - - python 19 | - numpy 20 | -------------------------------------------------------------------------------- /.ci_support/win_64_numpy1.21python3.8.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - vs2019 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | numpy: 8 | - '1.21' 9 | pin_run_as_build: 10 | python: 11 | min_pin: x.x 12 | max_pin: x.x 13 | python: 14 | - 3.8.* *_cpython 15 | target_platform: 16 | - win-64 17 | zip_keys: 18 | - - python 19 | - numpy 20 | -------------------------------------------------------------------------------- /.ci_support/win_64_numpy1.21python3.9.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - vs2019 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | numpy: 8 | - '1.21' 9 | pin_run_as_build: 10 | python: 11 | min_pin: x.x 12 | max_pin: x.x 13 | python: 14 | - 3.9.* *_cpython 15 | target_platform: 16 | - win-64 17 | zip_keys: 18 | - - python 19 | - numpy 20 | -------------------------------------------------------------------------------- /.ci_support/win_64_numpy1.23python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - vs2019 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | numpy: 8 | - '1.23' 9 | pin_run_as_build: 10 | python: 11 | min_pin: x.x 12 | max_pin: x.x 13 | python: 14 | - 3.11.* *_cpython 15 | target_platform: 16 | - win-64 17 | zip_keys: 18 | - - python 19 | - numpy 20 | -------------------------------------------------------------------------------- /conda-forge.yml: -------------------------------------------------------------------------------- 1 | build_platform: 2 | linux_aarch64: linux_64 3 | linux_ppc64le: linux_64 4 | osx_arm64: osx_64 5 | conda_forge_output_validation: true 6 | github: 7 | branch_name: main 8 | tooling_branch_name: main 9 | provider: 10 | linux_aarch64: default 11 | linux_ppc64le: default 12 | win: azure 13 | test_on_native_only: true 14 | conda_build: 15 | pkg_format: '2' 16 | -------------------------------------------------------------------------------- /.github/workflows/webservices.yml: -------------------------------------------------------------------------------- 1 | on: repository_dispatch 2 | 3 | jobs: 4 | webservices: 5 | runs-on: ubuntu-latest 6 | name: webservices 7 | steps: 8 | - name: webservices 9 | id: webservices 10 | uses: conda-forge/webservices-dispatch-action@main 11 | with: 12 | github_token: ${{ secrets.GITHUB_TOKEN }} 13 | rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} 14 | -------------------------------------------------------------------------------- /.ci_support/linux_64_numpy1.21python3.8.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '12' 5 | cdt_name: 6 | - cos6 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | docker_image: 12 | - quay.io/condaforge/linux-anvil-cos7-x86_64 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.8.* *_cpython 21 | target_platform: 22 | - linux-64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/linux_64_numpy1.21python3.9.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '12' 5 | cdt_name: 6 | - cos6 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | docker_image: 12 | - quay.io/condaforge/linux-anvil-cos7-x86_64 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.9.* *_cpython 21 | target_platform: 22 | - linux-64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/osx_64_numpy1.21python3.8.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.9' 3 | c_compiler: 4 | - clang 5 | c_compiler_version: 6 | - '15' 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | macos_machine: 12 | - x86_64-apple-darwin13.4.0 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.8.* *_cpython 21 | target_platform: 22 | - osx-64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/osx_64_numpy1.21python3.9.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.9' 3 | c_compiler: 4 | - clang 5 | c_compiler_version: 6 | - '15' 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | macos_machine: 12 | - x86_64-apple-darwin13.4.0 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.9.* *_cpython 21 | target_platform: 22 | - osx-64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/linux_64_numpy1.21python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '12' 5 | cdt_name: 6 | - cos6 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | docker_image: 12 | - quay.io/condaforge/linux-anvil-cos7-x86_64 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.10.* *_cpython 21 | target_platform: 22 | - linux-64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/linux_64_numpy1.23python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '12' 5 | cdt_name: 6 | - cos6 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | docker_image: 12 | - quay.io/condaforge/linux-anvil-cos7-x86_64 13 | numpy: 14 | - '1.23' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.11.* *_cpython 21 | target_platform: 22 | - linux-64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/osx_64_numpy1.21python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.9' 3 | c_compiler: 4 | - clang 5 | c_compiler_version: 6 | - '15' 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | macos_machine: 12 | - x86_64-apple-darwin13.4.0 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.10.* *_cpython 21 | target_platform: 22 | - osx-64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/osx_64_numpy1.23python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '10.9' 3 | c_compiler: 4 | - clang 5 | c_compiler_version: 6 | - '15' 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | macos_machine: 12 | - x86_64-apple-darwin13.4.0 13 | numpy: 14 | - '1.23' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.11.* *_cpython 21 | target_platform: 22 | - osx-64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_numpy1.21python3.8.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | c_compiler: 4 | - clang 5 | c_compiler_version: 6 | - '15' 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | macos_machine: 12 | - arm64-apple-darwin20.0.0 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.8.* *_cpython 21 | target_platform: 22 | - osx-arm64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_numpy1.21python3.9.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | c_compiler: 4 | - clang 5 | c_compiler_version: 6 | - '15' 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | macos_machine: 12 | - arm64-apple-darwin20.0.0 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.9.* *_cpython 21 | target_platform: 22 | - osx-arm64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_numpy1.21python3.8.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '12' 5 | cdt_name: 6 | - cos7 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | docker_image: 12 | - quay.io/condaforge/linux-anvil-cos7-x86_64 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.8.* *_cpython 21 | target_platform: 22 | - linux-ppc64le 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_numpy1.21python3.9.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '12' 5 | cdt_name: 6 | - cos7 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | docker_image: 12 | - quay.io/condaforge/linux-anvil-cos7-x86_64 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.9.* *_cpython 21 | target_platform: 22 | - linux-ppc64le 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_numpy1.21python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | c_compiler: 4 | - clang 5 | c_compiler_version: 6 | - '15' 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | macos_machine: 12 | - arm64-apple-darwin20.0.0 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.10.* *_cpython 21 | target_platform: 22 | - osx-arm64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/osx_arm64_numpy1.23python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | MACOSX_DEPLOYMENT_TARGET: 2 | - '11.0' 3 | c_compiler: 4 | - clang 5 | c_compiler_version: 6 | - '15' 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | macos_machine: 12 | - arm64-apple-darwin20.0.0 13 | numpy: 14 | - '1.23' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.11.* *_cpython 21 | target_platform: 22 | - osx-arm64 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_numpy1.21python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '12' 5 | cdt_name: 6 | - cos7 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | docker_image: 12 | - quay.io/condaforge/linux-anvil-cos7-x86_64 13 | numpy: 14 | - '1.21' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.10.* *_cpython 21 | target_platform: 22 | - linux-ppc64le 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.ci_support/linux_ppc64le_numpy1.23python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | c_compiler: 2 | - gcc 3 | c_compiler_version: 4 | - '12' 5 | cdt_name: 6 | - cos7 7 | channel_sources: 8 | - conda-forge 9 | channel_targets: 10 | - conda-forge main 11 | docker_image: 12 | - quay.io/condaforge/linux-anvil-cos7-x86_64 13 | numpy: 14 | - '1.23' 15 | pin_run_as_build: 16 | python: 17 | min_pin: x.x 18 | max_pin: x.x 19 | python: 20 | - 3.11.* *_cpython 21 | target_platform: 22 | - linux-ppc64le 23 | zip_keys: 24 | - - python 25 | - numpy 26 | -------------------------------------------------------------------------------- /.github/workflows/automerge.yml: -------------------------------------------------------------------------------- 1 | on: 2 | status: {} 3 | check_suite: 4 | types: 5 | - completed 6 | 7 | jobs: 8 | automerge-action: 9 | runs-on: ubuntu-latest 10 | name: automerge 11 | steps: 12 | - name: checkout 13 | uses: actions/checkout@v3 14 | - name: automerge-action 15 | id: automerge-action 16 | uses: conda-forge/automerge-action@main 17 | with: 18 | github_token: ${{ secrets.GITHUB_TOKEN }} 19 | rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} 20 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_numpy1.21python3.10.____cpython.yaml: -------------------------------------------------------------------------------- 1 | BUILD: 2 | - aarch64-conda_cos7-linux-gnu 3 | c_compiler: 4 | - gcc 5 | c_compiler_version: 6 | - '12' 7 | cdt_arch: 8 | - aarch64 9 | cdt_name: 10 | - cos7 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | docker_image: 16 | - quay.io/condaforge/linux-anvil-cos7-x86_64 17 | numpy: 18 | - '1.21' 19 | pin_run_as_build: 20 | python: 21 | min_pin: x.x 22 | max_pin: x.x 23 | python: 24 | - 3.10.* *_cpython 25 | target_platform: 26 | - linux-aarch64 27 | zip_keys: 28 | - - python 29 | - numpy 30 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_numpy1.21python3.8.____cpython.yaml: -------------------------------------------------------------------------------- 1 | BUILD: 2 | - aarch64-conda_cos7-linux-gnu 3 | c_compiler: 4 | - gcc 5 | c_compiler_version: 6 | - '12' 7 | cdt_arch: 8 | - aarch64 9 | cdt_name: 10 | - cos7 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | docker_image: 16 | - quay.io/condaforge/linux-anvil-cos7-x86_64 17 | numpy: 18 | - '1.21' 19 | pin_run_as_build: 20 | python: 21 | min_pin: x.x 22 | max_pin: x.x 23 | python: 24 | - 3.8.* *_cpython 25 | target_platform: 26 | - linux-aarch64 27 | zip_keys: 28 | - - python 29 | - numpy 30 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_numpy1.21python3.9.____cpython.yaml: -------------------------------------------------------------------------------- 1 | BUILD: 2 | - aarch64-conda_cos7-linux-gnu 3 | c_compiler: 4 | - gcc 5 | c_compiler_version: 6 | - '12' 7 | cdt_arch: 8 | - aarch64 9 | cdt_name: 10 | - cos7 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | docker_image: 16 | - quay.io/condaforge/linux-anvil-cos7-x86_64 17 | numpy: 18 | - '1.21' 19 | pin_run_as_build: 20 | python: 21 | min_pin: x.x 22 | max_pin: x.x 23 | python: 24 | - 3.9.* *_cpython 25 | target_platform: 26 | - linux-aarch64 27 | zip_keys: 28 | - - python 29 | - numpy 30 | -------------------------------------------------------------------------------- /.ci_support/linux_aarch64_numpy1.23python3.11.____cpython.yaml: -------------------------------------------------------------------------------- 1 | BUILD: 2 | - aarch64-conda_cos7-linux-gnu 3 | c_compiler: 4 | - gcc 5 | c_compiler_version: 6 | - '12' 7 | cdt_arch: 8 | - aarch64 9 | cdt_name: 10 | - cos7 11 | channel_sources: 12 | - conda-forge 13 | channel_targets: 14 | - conda-forge main 15 | docker_image: 16 | - quay.io/condaforge/linux-anvil-cos7-x86_64 17 | numpy: 18 | - '1.23' 19 | pin_run_as_build: 20 | python: 21 | min_pin: x.x 22 | max_pin: x.x 23 | python: 24 | - 3.11.* *_cpython 25 | target_platform: 26 | - linux-aarch64 27 | zip_keys: 28 | - - python 29 | - numpy 30 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: jinja-yaml -*- 4 | 5 | version: 2 6 | 7 | jobs: 8 | build: 9 | working_directory: ~/test 10 | machine: 11 | image: ubuntu-2004:current 12 | steps: 13 | - run: 14 | # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. 15 | command: exit 0 16 | 17 | workflows: 18 | version: 2 19 | build_and_test: 20 | jobs: 21 | - build: 22 | filters: 23 | branches: 24 | ignore: 25 | - /.*/ 26 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.patch binary 4 | *.diff binary 5 | meta.yaml text eol=lf 6 | build.sh text eol=lf 7 | bld.bat text eol=crlf 8 | 9 | # github helper pieces to make some files not show up in diffs automatically 10 | .azure-pipelines/* linguist-generated=true 11 | .circleci/* linguist-generated=true 12 | .ci_support/README linguist-generated=true 13 | .drone/* linguist-generated=true 14 | .drone.yml linguist-generated=true 15 | .github/* linguist-generated=true 16 | .travis/* linguist-generated=true 17 | .appveyor.yml linguist-generated=true 18 | .gitattributes linguist-generated=true 19 | .gitignore linguist-generated=true 20 | .travis.yml linguist-generated=true 21 | .scripts/* linguist-generated=true 22 | .woodpecker.yml linguist-generated=true 23 | LICENSE.txt linguist-generated=true 24 | README.md linguist-generated=true 25 | azure-pipelines.yml linguist-generated=true 26 | build-locally.py linguist-generated=true 27 | shippable.yml linguist-generated=true 28 | -------------------------------------------------------------------------------- /.scripts/logging_utils.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Provide a unified interface for the different logging 4 | # utilities CI providers offer. If unavailable, provide 5 | # a compatible fallback (e.g. bare `echo xxxxxx`). 6 | 7 | function startgroup { 8 | # Start a foldable group of log lines 9 | # Pass a single argument, quoted 10 | case ${CI:-} in 11 | azure ) 12 | echo "##[group]$1";; 13 | travis ) 14 | echo "$1" 15 | echo -en 'travis_fold:start:'"${1// /}"'\\r';; 16 | github_actions ) 17 | echo "::group::$1";; 18 | * ) 19 | echo "$1";; 20 | esac 21 | } 2> /dev/null 22 | 23 | function endgroup { 24 | # End a foldable group of log lines 25 | # Pass a single argument, quoted 26 | 27 | case ${CI:-} in 28 | azure ) 29 | echo "##[endgroup]";; 30 | travis ) 31 | echo -en 'travis_fold:end:'"${1// /}"'\\r';; 32 | github_actions ) 33 | echo "::endgroup::";; 34 | esac 35 | } 2> /dev/null 36 | -------------------------------------------------------------------------------- /.ci_support/migrations/python311.yaml: -------------------------------------------------------------------------------- 1 | migrator_ts: 1666686085 2 | __migrator: 3 | migration_number: 1 4 | operation: key_add 5 | primary_key: python 6 | ordering: 7 | python: 8 | - 3.6.* *_cpython 9 | - 3.7.* *_cpython 10 | - 3.8.* *_cpython 11 | - 3.9.* *_cpython 12 | - 3.10.* *_cpython 13 | - 3.11.* *_cpython # new entry 14 | - 3.6.* *_73_pypy 15 | - 3.7.* *_73_pypy 16 | - 3.8.* *_73_pypy 17 | - 3.9.* *_73_pypy 18 | paused: false 19 | longterm: True 20 | pr_limit: 30 21 | max_solver_attempts: 10 # this will make the bot retry "not solvable" stuff 10 times 22 | exclude: 23 | # this shouldn't attempt to modify the python feedstocks 24 | - python 25 | - pypy3.6 26 | - pypy-meta 27 | - cross-python 28 | - python_abi 29 | exclude_pinned_pkgs: false 30 | 31 | python: 32 | - 3.11.* *_cpython 33 | # additional entries to add for zip_keys 34 | numpy: 35 | - 1.23 36 | python_impl: 37 | - cpython 38 | -------------------------------------------------------------------------------- /recipe/meta.yaml: -------------------------------------------------------------------------------- 1 | {% set version = "0.8.33" %} 2 | 3 | package: 4 | name: hdbscan 5 | version: {{ version }} 6 | 7 | source: 8 | url: https://pypi.io/packages/source/h/hdbscan/hdbscan-{{ version }}.tar.gz 9 | sha256: 57fabc5f0e45f48d2407b35c731192abc896376411fe7e4bb836ffa03d38f90d 10 | build: 11 | number: 1 12 | script: {{ PYTHON }} -m pip install . --no-deps -vv 13 | 14 | requirements: 15 | build: 16 | - python # [build_platform != target_platform] 17 | - cross-python_{{ target_platform }} # [build_platform != target_platform] 18 | - cython # [build_platform != target_platform] 19 | - numpy # [build_platform != target_platform] 20 | - {{ compiler('c') }} 21 | host: 22 | - python 23 | - pip 24 | - setuptools 25 | - scikit-learn >=0.16 26 | - cython >=0.17 27 | - joblib 28 | - numpy 29 | 30 | run: 31 | - python 32 | - scikit-learn >=0.16 33 | - joblib 34 | - six 35 | - cython >=0.17 36 | - {{ pin_compatible('numpy') }} 37 | 38 | test: 39 | imports: 40 | - hdbscan 41 | 42 | about: 43 | home: http://github.com/scikit-learn-contrib/hdbscan 44 | license: BSD-3-Clause 45 | license_file: LICENSE 46 | summary: Clustering based on density with variable density clusters 47 | 48 | extra: 49 | recipe-maintainers: 50 | - johnlees 51 | - lmcinnes 52 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD-3-Clause license 2 | Copyright (c) 2015-2022, conda-forge contributors 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 3. Neither the name of the copyright holder nor the names of its 14 | contributors may be used to endorse or promote products derived from 15 | this software without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR 21 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 23 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 24 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 27 | DAMAGE. 28 | -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-osx.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: osx 7 | pool: 8 | vmImage: macOS-11 9 | strategy: 10 | matrix: 11 | osx_64_numpy1.21python3.10.____cpython: 12 | CONFIG: osx_64_numpy1.21python3.10.____cpython 13 | UPLOAD_PACKAGES: 'True' 14 | osx_64_numpy1.21python3.8.____cpython: 15 | CONFIG: osx_64_numpy1.21python3.8.____cpython 16 | UPLOAD_PACKAGES: 'True' 17 | osx_64_numpy1.21python3.9.____cpython: 18 | CONFIG: osx_64_numpy1.21python3.9.____cpython 19 | UPLOAD_PACKAGES: 'True' 20 | osx_64_numpy1.23python3.11.____cpython: 21 | CONFIG: osx_64_numpy1.23python3.11.____cpython 22 | UPLOAD_PACKAGES: 'True' 23 | osx_arm64_numpy1.21python3.10.____cpython: 24 | CONFIG: osx_arm64_numpy1.21python3.10.____cpython 25 | UPLOAD_PACKAGES: 'True' 26 | osx_arm64_numpy1.21python3.8.____cpython: 27 | CONFIG: osx_arm64_numpy1.21python3.8.____cpython 28 | UPLOAD_PACKAGES: 'True' 29 | osx_arm64_numpy1.21python3.9.____cpython: 30 | CONFIG: osx_arm64_numpy1.21python3.9.____cpython 31 | UPLOAD_PACKAGES: 'True' 32 | osx_arm64_numpy1.23python3.11.____cpython: 33 | CONFIG: osx_arm64_numpy1.23python3.11.____cpython 34 | UPLOAD_PACKAGES: 'True' 35 | timeoutInMinutes: 360 36 | 37 | steps: 38 | # TODO: Fast finish on azure pipelines? 39 | - script: | 40 | export CI=azure 41 | export OSX_FORCE_SDK_DOWNLOAD="1" 42 | export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME 43 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 44 | if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then 45 | export IS_PR_BUILD="True" 46 | else 47 | export IS_PR_BUILD="False" 48 | fi 49 | ./.scripts/run_osx_build.sh 50 | displayName: Run OSX build 51 | env: 52 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 53 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 54 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) -------------------------------------------------------------------------------- /.scripts/run_osx_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # -*- mode: jinja-shell -*- 4 | 5 | source .scripts/logging_utils.sh 6 | 7 | set -xe 8 | 9 | MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} 10 | 11 | ( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null 12 | 13 | MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" 14 | MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh" 15 | curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" 16 | rm -rf ${MINIFORGE_HOME} 17 | bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} 18 | 19 | ( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null 20 | 21 | ( startgroup "Configuring conda" ) 2> /dev/null 22 | 23 | source ${MINIFORGE_HOME}/etc/profile.d/conda.sh 24 | conda activate base 25 | 26 | mamba install --update-specs --quiet --yes --channel conda-forge \ 27 | conda-build pip boa conda-forge-ci-setup=3 28 | mamba update --update-specs --yes --quiet --channel conda-forge \ 29 | conda-build pip boa conda-forge-ci-setup=3 30 | 31 | 32 | 33 | echo -e "\n\nSetting up the condarc and mangling the compiler." 34 | setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml 35 | 36 | if [[ "${CI:-}" != "" ]]; then 37 | mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml 38 | fi 39 | 40 | if [[ "${CI:-}" != "" ]]; then 41 | echo -e "\n\nMangling homebrew in the CI to avoid conflicts." 42 | /usr/bin/sudo mangle_homebrew 43 | /usr/bin/sudo -k 44 | else 45 | echo -e "\n\nNot mangling homebrew as we are not running in CI" 46 | fi 47 | 48 | echo -e "\n\nRunning the build setup script." 49 | source run_conda_forge_build_setup 50 | 51 | 52 | 53 | ( endgroup "Configuring conda" ) 2> /dev/null 54 | 55 | echo -e "\n\nMaking the build clobber file" 56 | make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml 57 | 58 | if [[ -f LICENSE.txt ]]; then 59 | cp LICENSE.txt "recipe/recipe-scripts-license.txt" 60 | fi 61 | 62 | if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then 63 | if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then 64 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" 65 | fi 66 | conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ 67 | ${EXTRA_CB_OPTIONS:-} \ 68 | --clobber-file ./.ci_support/clobber_${CONFIG}.yaml 69 | 70 | # Drop into an interactive shell 71 | /bin/bash 72 | else 73 | 74 | if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then 75 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" 76 | fi 77 | 78 | conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml \ 79 | --suppress-variables ${EXTRA_CB_OPTIONS:-} \ 80 | --clobber-file ./.ci_support/clobber_${CONFIG}.yaml 81 | ( startgroup "Validating outputs" ) 2> /dev/null 82 | 83 | validate_recipe_outputs "${FEEDSTOCK_NAME}" 84 | 85 | ( endgroup "Validating outputs" ) 2> /dev/null 86 | 87 | ( startgroup "Uploading packages" ) 2> /dev/null 88 | 89 | if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then 90 | upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml 91 | fi 92 | 93 | ( endgroup "Uploading packages" ) 2> /dev/null 94 | fi -------------------------------------------------------------------------------- /.scripts/build_steps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | # -*- mode: jinja-shell -*- 9 | 10 | set -xeuo pipefail 11 | export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" 12 | source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh 13 | 14 | 15 | ( endgroup "Start Docker" ) 2> /dev/null 16 | 17 | ( startgroup "Configuring conda" ) 2> /dev/null 18 | 19 | export PYTHONUNBUFFERED=1 20 | export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" 21 | export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" 22 | export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" 23 | 24 | cat >~/.condarc < /dev/null 54 | 55 | if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then 56 | cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" 57 | fi 58 | 59 | if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then 60 | if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then 61 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" 62 | fi 63 | conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ 64 | ${EXTRA_CB_OPTIONS:-} \ 65 | --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" 66 | 67 | # Drop into an interactive shell 68 | /bin/bash 69 | else 70 | conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ 71 | --suppress-variables ${EXTRA_CB_OPTIONS:-} \ 72 | --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" 73 | ( startgroup "Validating outputs" ) 2> /dev/null 74 | 75 | validate_recipe_outputs "${FEEDSTOCK_NAME}" 76 | 77 | ( endgroup "Validating outputs" ) 2> /dev/null 78 | 79 | ( startgroup "Uploading packages" ) 2> /dev/null 80 | 81 | if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then 82 | upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" 83 | fi 84 | 85 | ( endgroup "Uploading packages" ) 2> /dev/null 86 | fi 87 | 88 | ( startgroup "Final checks" ) 2> /dev/null 89 | 90 | touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-win.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: win 7 | pool: 8 | vmImage: windows-2022 9 | strategy: 10 | matrix: 11 | win_64_numpy1.21python3.10.____cpython: 12 | CONFIG: win_64_numpy1.21python3.10.____cpython 13 | UPLOAD_PACKAGES: 'True' 14 | win_64_numpy1.21python3.8.____cpython: 15 | CONFIG: win_64_numpy1.21python3.8.____cpython 16 | UPLOAD_PACKAGES: 'True' 17 | win_64_numpy1.21python3.9.____cpython: 18 | CONFIG: win_64_numpy1.21python3.9.____cpython 19 | UPLOAD_PACKAGES: 'True' 20 | win_64_numpy1.23python3.11.____cpython: 21 | CONFIG: win_64_numpy1.23python3.11.____cpython 22 | UPLOAD_PACKAGES: 'True' 23 | timeoutInMinutes: 360 24 | variables: 25 | CONDA_BLD_PATH: D:\\bld\\ 26 | UPLOAD_TEMP: D:\\tmp 27 | 28 | steps: 29 | - task: PythonScript@0 30 | displayName: 'Download Miniforge' 31 | inputs: 32 | scriptSource: inline 33 | script: | 34 | import urllib.request 35 | url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' 36 | path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" 37 | urllib.request.urlretrieve(url, path) 38 | 39 | - script: | 40 | start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge 41 | displayName: Install Miniforge 42 | 43 | - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" 44 | displayName: Add conda to PATH 45 | 46 | - script: | 47 | call activate base 48 | mamba.exe install "python=3.10" conda-build conda pip boa conda-forge-ci-setup=3 -c conda-forge --strict-channel-priority --yes 49 | displayName: Install conda-build 50 | 51 | - script: set PYTHONUNBUFFERED=1 52 | displayName: Set PYTHONUNBUFFERED 53 | 54 | # Configure the VM 55 | - script: | 56 | call activate base 57 | setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml 58 | displayName: conda-forge CI setup 59 | 60 | # Configure the VM. 61 | - script: | 62 | set "CI=azure" 63 | call activate base 64 | run_conda_forge_build_setup 65 | displayName: conda-forge build setup 66 | 67 | - script: | 68 | call activate base 69 | if EXIST LICENSE.txt ( 70 | copy LICENSE.txt "recipe\\recipe-scripts-license.txt" 71 | ) 72 | if NOT [%HOST_PLATFORM%] == [%BUILD_PLATFORM%] ( 73 | set "EXTRA_CB_OPTIONS=%EXTRA_CB_OPTIONS% --no-test" 74 | ) 75 | conda.exe mambabuild "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables %EXTRA_CB_OPTIONS% 76 | displayName: Build recipe 77 | env: 78 | PYTHONUNBUFFERED: 1 79 | - script: | 80 | set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" 81 | call activate base 82 | validate_recipe_outputs "%FEEDSTOCK_NAME%" 83 | displayName: Validate Recipe Outputs 84 | 85 | - script: | 86 | set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" 87 | set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" 88 | set "TEMP=$(UPLOAD_TEMP)" 89 | if not exist "%TEMP%\" md "%TEMP%" 90 | set "TMP=%TEMP%" 91 | call activate base 92 | upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml 93 | displayName: Upload package 94 | env: 95 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 96 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 97 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) 98 | condition: and(succeeded(), not(eq(variables['UPLOAD_PACKAGES'], 'False')), not(eq(variables['Build.Reason'], 'PullRequest'))) -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-linux.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: linux 7 | pool: 8 | vmImage: ubuntu-latest 9 | strategy: 10 | matrix: 11 | linux_64_numpy1.21python3.10.____cpython: 12 | CONFIG: linux_64_numpy1.21python3.10.____cpython 13 | UPLOAD_PACKAGES: 'True' 14 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 15 | linux_64_numpy1.21python3.8.____cpython: 16 | CONFIG: linux_64_numpy1.21python3.8.____cpython 17 | UPLOAD_PACKAGES: 'True' 18 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 19 | linux_64_numpy1.21python3.9.____cpython: 20 | CONFIG: linux_64_numpy1.21python3.9.____cpython 21 | UPLOAD_PACKAGES: 'True' 22 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 23 | linux_64_numpy1.23python3.11.____cpython: 24 | CONFIG: linux_64_numpy1.23python3.11.____cpython 25 | UPLOAD_PACKAGES: 'True' 26 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 27 | linux_aarch64_numpy1.21python3.10.____cpython: 28 | CONFIG: linux_aarch64_numpy1.21python3.10.____cpython 29 | UPLOAD_PACKAGES: 'True' 30 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 31 | linux_aarch64_numpy1.21python3.8.____cpython: 32 | CONFIG: linux_aarch64_numpy1.21python3.8.____cpython 33 | UPLOAD_PACKAGES: 'True' 34 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 35 | linux_aarch64_numpy1.21python3.9.____cpython: 36 | CONFIG: linux_aarch64_numpy1.21python3.9.____cpython 37 | UPLOAD_PACKAGES: 'True' 38 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 39 | linux_aarch64_numpy1.23python3.11.____cpython: 40 | CONFIG: linux_aarch64_numpy1.23python3.11.____cpython 41 | UPLOAD_PACKAGES: 'True' 42 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 43 | linux_ppc64le_numpy1.21python3.10.____cpython: 44 | CONFIG: linux_ppc64le_numpy1.21python3.10.____cpython 45 | UPLOAD_PACKAGES: 'True' 46 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 47 | linux_ppc64le_numpy1.21python3.8.____cpython: 48 | CONFIG: linux_ppc64le_numpy1.21python3.8.____cpython 49 | UPLOAD_PACKAGES: 'True' 50 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 51 | linux_ppc64le_numpy1.21python3.9.____cpython: 52 | CONFIG: linux_ppc64le_numpy1.21python3.9.____cpython 53 | UPLOAD_PACKAGES: 'True' 54 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 55 | linux_ppc64le_numpy1.23python3.11.____cpython: 56 | CONFIG: linux_ppc64le_numpy1.23python3.11.____cpython 57 | UPLOAD_PACKAGES: 'True' 58 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 59 | timeoutInMinutes: 360 60 | 61 | steps: 62 | # configure qemu binfmt-misc running. This allows us to run docker containers 63 | # embedded qemu-static 64 | - script: | 65 | docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes 66 | ls /proc/sys/fs/binfmt_misc/ 67 | condition: not(startsWith(variables['CONFIG'], 'linux_64')) 68 | displayName: Configure binfmt_misc 69 | 70 | - script: | 71 | export CI=azure 72 | export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME 73 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 74 | if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then 75 | export IS_PR_BUILD="True" 76 | else 77 | export IS_PR_BUILD="False" 78 | fi 79 | .scripts/run_docker_build.sh 80 | displayName: Run docker build 81 | env: 82 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 83 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 84 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) -------------------------------------------------------------------------------- /.scripts/run_docker_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | source .scripts/logging_utils.sh 9 | 10 | ( startgroup "Configure Docker" ) 2> /dev/null 11 | 12 | set -xeo pipefail 13 | 14 | THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" 15 | PROVIDER_DIR="$(basename $THISDIR)" 16 | 17 | FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" 18 | RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" 19 | 20 | if [ -z ${FEEDSTOCK_NAME} ]; then 21 | export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) 22 | fi 23 | 24 | docker info 25 | 26 | # In order for the conda-build process in the container to write to the mounted 27 | # volumes, we need to run with the same id as the host machine, which is 28 | # normally the owner of the mounted volumes, or at least has write permission 29 | export HOST_USER_ID=$(id -u) 30 | # Check if docker-machine is being used (normally on OSX) and get the uid from 31 | # the VM 32 | if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then 33 | export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) 34 | fi 35 | 36 | ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" 37 | 38 | if [ -z "$CONFIG" ]; then 39 | set +x 40 | FILES=`ls .ci_support/linux_*` 41 | CONFIGS="" 42 | for file in $FILES; do 43 | CONFIGS="${CONFIGS}'${file:12:-5}' or "; 44 | done 45 | echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" 46 | exit 1 47 | fi 48 | 49 | if [ -z "${DOCKER_IMAGE}" ]; then 50 | SHYAML_INSTALLED="$(shyaml -h || echo NO)" 51 | if [ "${SHYAML_INSTALLED}" == "NO" ]; then 52 | echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" 53 | DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) 54 | if [ "${DOCKER_IMAGE}" = "" ]; then 55 | echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" 56 | DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" 57 | fi 58 | else 59 | DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" 60 | fi 61 | fi 62 | 63 | mkdir -p "$ARTIFACTS" 64 | DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" 65 | rm -f "$DONE_CANARY" 66 | 67 | # Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) 68 | DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" 69 | if [ -z "${CI}" ]; then 70 | DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" 71 | fi 72 | 73 | ( endgroup "Configure Docker" ) 2> /dev/null 74 | 75 | ( startgroup "Start Docker" ) 2> /dev/null 76 | 77 | export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" 78 | export IS_PR_BUILD="${IS_PR_BUILD:-False}" 79 | docker pull "${DOCKER_IMAGE}" 80 | docker run ${DOCKER_RUN_ARGS} \ 81 | -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ 82 | -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ 83 | -e CONFIG \ 84 | -e HOST_USER_ID \ 85 | -e UPLOAD_PACKAGES \ 86 | -e IS_PR_BUILD \ 87 | -e GIT_BRANCH \ 88 | -e UPLOAD_ON_BRANCH \ 89 | -e CI \ 90 | -e FEEDSTOCK_NAME \ 91 | -e CPU_COUNT \ 92 | -e BUILD_WITH_CONDA_DEBUG \ 93 | -e BUILD_OUTPUT_ID \ 94 | -e BINSTAR_TOKEN \ 95 | -e FEEDSTOCK_TOKEN \ 96 | -e STAGING_BINSTAR_TOKEN \ 97 | "${DOCKER_IMAGE}" \ 98 | bash \ 99 | "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" 100 | 101 | # verify that the end of the script was reached 102 | test -f "$DONE_CANARY" 103 | 104 | # This closes the last group opened in `build_steps.sh` 105 | ( endgroup "Final checks" ) 2> /dev/null -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | About hdbscan-feedstock 2 | ======================= 3 | 4 | Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/hdbscan-feedstock/blob/main/LICENSE.txt) 5 | 6 | Home: http://github.com/scikit-learn-contrib/hdbscan 7 | 8 | Package license: BSD-3-Clause 9 | 10 | Summary: Clustering based on density with variable density clusters 11 | 12 | Current build status 13 | ==================== 14 | 15 | 16 | 17 | 18 | 19 | 20 | 202 | 203 |
Azure 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 36 | 37 | 38 | 43 | 44 | 45 | 50 | 51 | 52 | 57 | 58 | 59 | 64 | 65 | 66 | 71 | 72 | 73 | 78 | 79 | 80 | 85 | 86 | 87 | 92 | 93 | 94 | 99 | 100 | 101 | 106 | 107 | 108 | 113 | 114 | 115 | 120 | 121 | 122 | 127 | 128 | 129 | 134 | 135 | 136 | 141 | 142 | 143 | 148 | 149 | 150 | 155 | 156 | 157 | 162 | 163 | 164 | 169 | 170 | 171 | 176 | 177 | 178 | 183 | 184 | 185 | 190 | 191 | 192 | 197 | 198 | 199 |
VariantStatus
linux_64_numpy1.21python3.10.____cpython 32 | 33 | variant 34 | 35 |
linux_64_numpy1.21python3.8.____cpython 39 | 40 | variant 41 | 42 |
linux_64_numpy1.21python3.9.____cpython 46 | 47 | variant 48 | 49 |
linux_64_numpy1.23python3.11.____cpython 53 | 54 | variant 55 | 56 |
linux_aarch64_numpy1.21python3.10.____cpython 60 | 61 | variant 62 | 63 |
linux_aarch64_numpy1.21python3.8.____cpython 67 | 68 | variant 69 | 70 |
linux_aarch64_numpy1.21python3.9.____cpython 74 | 75 | variant 76 | 77 |
linux_aarch64_numpy1.23python3.11.____cpython 81 | 82 | variant 83 | 84 |
linux_ppc64le_numpy1.21python3.10.____cpython 88 | 89 | variant 90 | 91 |
linux_ppc64le_numpy1.21python3.8.____cpython 95 | 96 | variant 97 | 98 |
linux_ppc64le_numpy1.21python3.9.____cpython 102 | 103 | variant 104 | 105 |
linux_ppc64le_numpy1.23python3.11.____cpython 109 | 110 | variant 111 | 112 |
osx_64_numpy1.21python3.10.____cpython 116 | 117 | variant 118 | 119 |
osx_64_numpy1.21python3.8.____cpython 123 | 124 | variant 125 | 126 |
osx_64_numpy1.21python3.9.____cpython 130 | 131 | variant 132 | 133 |
osx_64_numpy1.23python3.11.____cpython 137 | 138 | variant 139 | 140 |
osx_arm64_numpy1.21python3.10.____cpython 144 | 145 | variant 146 | 147 |
osx_arm64_numpy1.21python3.8.____cpython 151 | 152 | variant 153 | 154 |
osx_arm64_numpy1.21python3.9.____cpython 158 | 159 | variant 160 | 161 |
osx_arm64_numpy1.23python3.11.____cpython 165 | 166 | variant 167 | 168 |
win_64_numpy1.21python3.10.____cpython 172 | 173 | variant 174 | 175 |
win_64_numpy1.21python3.8.____cpython 179 | 180 | variant 181 | 182 |
win_64_numpy1.21python3.9.____cpython 186 | 187 | variant 188 | 189 |
win_64_numpy1.23python3.11.____cpython 193 | 194 | variant 195 | 196 |
200 |
201 |
204 | 205 | Current release info 206 | ==================== 207 | 208 | | Name | Downloads | Version | Platforms | 209 | | --- | --- | --- | --- | 210 | | [![Conda Recipe](https://img.shields.io/badge/recipe-hdbscan-green.svg)](https://anaconda.org/conda-forge/hdbscan) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/hdbscan.svg)](https://anaconda.org/conda-forge/hdbscan) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/hdbscan.svg)](https://anaconda.org/conda-forge/hdbscan) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/hdbscan.svg)](https://anaconda.org/conda-forge/hdbscan) | 211 | 212 | Installing hdbscan 213 | ================== 214 | 215 | Installing `hdbscan` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: 216 | 217 | ``` 218 | conda config --add channels conda-forge 219 | conda config --set channel_priority strict 220 | ``` 221 | 222 | Once the `conda-forge` channel has been enabled, `hdbscan` can be installed with `conda`: 223 | 224 | ``` 225 | conda install hdbscan 226 | ``` 227 | 228 | or with `mamba`: 229 | 230 | ``` 231 | mamba install hdbscan 232 | ``` 233 | 234 | It is possible to list all of the versions of `hdbscan` available on your platform with `conda`: 235 | 236 | ``` 237 | conda search hdbscan --channel conda-forge 238 | ``` 239 | 240 | or with `mamba`: 241 | 242 | ``` 243 | mamba search hdbscan --channel conda-forge 244 | ``` 245 | 246 | Alternatively, `mamba repoquery` may provide more information: 247 | 248 | ``` 249 | # Search all versions available on your platform: 250 | mamba repoquery search hdbscan --channel conda-forge 251 | 252 | # List packages depending on `hdbscan`: 253 | mamba repoquery whoneeds hdbscan --channel conda-forge 254 | 255 | # List dependencies of `hdbscan`: 256 | mamba repoquery depends hdbscan --channel conda-forge 257 | ``` 258 | 259 | 260 | About conda-forge 261 | ================= 262 | 263 | [![Powered by 264 | NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org) 265 | 266 | conda-forge is a community-led conda channel of installable packages. 267 | In order to provide high-quality builds, the process has been automated into the 268 | conda-forge GitHub organization. The conda-forge organization contains one repository 269 | for each of the installable packages. Such a repository is known as a *feedstock*. 270 | 271 | A feedstock is made up of a conda recipe (the instructions on what and how to build 272 | the package) and the necessary configurations for automatic building using freely 273 | available continuous integration services. Thanks to the awesome service provided by 274 | [Azure](https://azure.microsoft.com/en-us/services/devops/), [GitHub](https://github.com/), 275 | [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), 276 | [Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) 277 | it is possible to build and upload installable packages to the 278 | [conda-forge](https://anaconda.org/conda-forge) [Anaconda-Cloud](https://anaconda.org/) 279 | channel for Linux, Windows and OSX respectively. 280 | 281 | To manage the continuous integration and simplify feedstock maintenance 282 | [conda-smithy](https://github.com/conda-forge/conda-smithy) has been developed. 283 | Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of 284 | this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``. 285 | 286 | For more information please check the [conda-forge documentation](https://conda-forge.org/docs/). 287 | 288 | Terminology 289 | =========== 290 | 291 | **feedstock** - the conda recipe (raw material), supporting scripts and CI configuration. 292 | 293 | **conda-smithy** - the tool which helps orchestrate the feedstock. 294 | Its primary use is in the construction of the CI ``.yml`` files 295 | and simplify the management of *many* feedstocks. 296 | 297 | **conda-forge** - the place where the feedstock and smithy live and work to 298 | produce the finished article (built conda distributions) 299 | 300 | 301 | Updating hdbscan-feedstock 302 | ========================== 303 | 304 | If you would like to improve the hdbscan recipe or build a new 305 | package version, please fork this repository and submit a PR. Upon submission, 306 | your changes will be run on the appropriate platforms to give the reviewer an 307 | opportunity to confirm that the changes result in a successful build. Once 308 | merged, the recipe will be re-built and uploaded automatically to the 309 | `conda-forge` channel, whereupon the built conda packages will be available for 310 | everybody to install and use from the `conda-forge` channel. 311 | Note that all branches in the conda-forge/hdbscan-feedstock are 312 | immediately built and any created packages are uploaded, so PRs should be based 313 | on branches in forks and branches in the main repository should only be used to 314 | build distinct package versions. 315 | 316 | In order to produce a uniquely identifiable distribution: 317 | * If the version of a package **is not** being increased, please add or increase 318 | the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string). 319 | * If the version of a package **is** being increased, please remember to return 320 | the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string) 321 | back to 0. 322 | 323 | Feedstock Maintainers 324 | ===================== 325 | 326 | * [@johnlees](https://github.com/johnlees/) 327 | * [@lmcinnes](https://github.com/lmcinnes/) 328 | 329 | --------------------------------------------------------------------------------