diff --git a/.ci/docker-compose.yml b/.ci/docker-compose.yml index 5eac6ca6..bba4059f 100644 --- a/.ci/docker-compose.yml +++ b/.ci/docker-compose.yml @@ -4,6 +4,9 @@ services: context: ./../src dockerfile: Dockerfile.test target: test + args: + - "UID=${UID:-1000}" + - "GID=${GID:-1000}" # env_file: ./../src/test.env command: bash -c "python -m unittest discover -s ./tests/core/models -p "test_*.py"; python -m unittest core.operators.test_vid_vec_rep_resnet; diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..2de196e6 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,33 @@ +version: 2 +updates: + # Enable version updates for npm + - package-ecosystem: "npm" + # Look for `package.json` and `lock` files in the `root` directory + directory: "/docs" + # Check the npm registry for updates every day (weekdays) + schedule: + interval: "weekly" + + # Enable version updates for Docker + - package-ecosystem: "docker" + # Look for a `Dockerfile` in the `root` directory + directory: "/src" + # Check for updates once a week + schedule: + interval: "weekly" + + # Enable version updates for Pip + - package-ecosystem: "pip" + # Look for a `Dockerfile` in the `root` directory + directory: "/src" + # Check for updates once a week + schedule: + interval: "weekly" + + # Enable version updates for github-actions + - package-ecosystem: "github-actions" + # Look for a `Dockerfile` in the `root` directory + directory: ".github/workflows" + # Check for updates once a week + schedule: + interval: "weekly" diff --git a/.github/workflows/bandit.yml b/.github/workflows/bandit.yml index de49b979..08dec0bb 100644 --- a/.github/workflows/bandit.yml +++ b/.github/workflows/bandit.yml @@ -11,6 +11,10 @@ # https://pypi.org/project/bandit/ is Apache v2.0 licensed, by PyCQA name: Bandit + +permissions: + contents: read # for actions/checkout to fetch code + on: push: branches: [ "main" ] @@ -22,15 +26,16 @@ jobs: permissions: contents: read # for actions/checkout to fetch code security-events: write # for github/codeql-action/upload-sarif to upload SARIF results - actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status + # actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: ref: main + - name: Bandit Scan - uses: shundor/python-bandit-scan@9cc5aa4a006482b8a7f91134412df6772dbda22c + uses: shundor/python-bandit-scan@9cc5aa4a006482b8a7f91134412df6772dbda22c # v1.0 with: # optional arguments # exit with 0, even with results found exit_zero: true # optional, default is DEFAULT @@ -48,4 +53,3 @@ jobs: # skips: # optional, default is DEFAULT # path to a .bandit file that supplies command line arguments # ini_path: # optional, default is DEFAULT - diff --git a/.github/workflows/docker-push-audiovec-worker-staging.yml b/.github/workflows/docker-push-audiovec-worker-staging.yml index bceace16..594dc0f8 100644 --- a/.github/workflows/docker-push-audiovec-worker-staging.yml +++ b/.github/workflows/docker-push-audiovec-worker-staging.yml @@ -1,33 +1,46 @@ name: Publish Audio Worker to Dockerhub for Staging +permissions: + contents: read + on: workflow_dispatch jobs: - api: + docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + + - name: Login to Docker Hub + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v.3.1.0 with: - ref: development - - name: "Setup Node version" - uses: actions/setup-node@v4 + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push amd64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - node-version: 20.9.0 - - name: Declare some variables - id: vars - shell: bash - run: | - echo "setting variables" - echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + context: "{{defaultContext}}:src/" + file: worker/audiovec/Dockerfile.audio_worker + platforms: linux/amd64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-audiovec:worker-amd64-latest - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - uses: elgohr/Publish-Docker-Github-Action@main + - name: Build and push arm64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-audiovec - workdir: src/ - dockerfile: worker/audiovec/Dockerfile.audio_worker - tags: worker-amd64-latest - platforms: linux/amd64 \ No newline at end of file + context: "{{defaultContext}}:src/" + file: worker/audiovec/Dockerfile.audio_worker_graviton + platforms: linux/arm64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-audiovec:worker-arm64-latest diff --git a/.github/workflows/docker-push-hash-worker-staging.yml b/.github/workflows/docker-push-hash-worker-staging.yml index 66dda88a..b985f42c 100644 --- a/.github/workflows/docker-push-hash-worker-staging.yml +++ b/.github/workflows/docker-push-hash-worker-staging.yml @@ -1,33 +1,46 @@ name: Publish Hash Worker to Dockerhub for Staging +permissions: + contents: read + on: workflow_dispatch jobs: - api: + docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + + - name: Login to Docker Hub + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v.3.1.0 with: - ref: development - - name: "Setup Node version" - uses: actions/setup-node@v4 + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push amd64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - node-version: 20.9.0 - - name: Declare some variables - id: vars - shell: bash - run: | - echo "setting variables" - echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + context: "{{defaultContext}}:src/" + file: worker/hash/Dockerfile.hash_worker + platforms: linux/amd64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-hash:worker-amd64-latest - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - uses: elgohr/Publish-Docker-Github-Action@main + - name: Build and push arm64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-hash - workdir: src/ - dockerfile: worker/hash/Dockerfile.hash_worker - tags: worker-amd64-latest - platforms: linux/amd64 \ No newline at end of file + context: "{{defaultContext}}:src/" + file: worker/hash/Dockerfile.hash_worker_graviton + platforms: linux/arm64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-hash:worker-arm64-latest diff --git a/.github/workflows/docker-push-vidvec-benchmark-test.yml b/.github/workflows/docker-push-vidvec-benchmark-test.yml index 4fd98045..06eb9aa2 100644 --- a/.github/workflows/docker-push-vidvec-benchmark-test.yml +++ b/.github/workflows/docker-push-vidvec-benchmark-test.yml @@ -1,4 +1,7 @@ -name: Publish Video Operator to Dockerhub +name: Test Publish Video Operator Benchmark to Dockerhub + +permissions: + contents: read on: workflow_dispatch @@ -6,37 +9,57 @@ jobs: docker: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: main - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + + - name: Cache Docker layers + uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319 # v4.0.1 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v.3.1.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push amd64 - uses: docker/build-push-action@v5 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - context: ./src/ + context: "{{defaultContext}}:src/" file: benchmark/vidvec/Dockerfile.vid_vec_rep_resnet platforms: linux/amd64 + build-args: | + "UID=1000" + "GID=1000" push: true tags: tattletech/feluda-operator-vidvec:benchmark-amd64-latest-test + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max - name: Build and push arm64 - uses: docker/build-push-action@v5 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - context: ./src/ + context: "{{defaultContext}}:src/" file: benchmark/vidvec/Dockerfile.vid_vec_rep_resnet_graviton platforms: linux/arm64 + build-args: | + "UID=1000" + "GID=1000" push: true tags: tattletech/feluda-operator-vidvec:benchmark-arm64-latest-test + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max + - # Temp fix - only do this after the last docker build step to have cache for all platforms + # https://github.com/docker/build-push-action/issues/252 + # https://github.com/moby/buildkit/issues/1896 + name: Move cache + run: | + rm -rf /tmp/.buildx-cache + mv /tmp/.buildx-cache-new /tmp/.buildx-cache diff --git a/.github/workflows/docker-push-vidvec-benchmark.yml b/.github/workflows/docker-push-vidvec-benchmark.yml index 314e6421..04e4a875 100644 --- a/.github/workflows/docker-push-vidvec-benchmark.yml +++ b/.github/workflows/docker-push-vidvec-benchmark.yml @@ -1,54 +1,46 @@ name: Publish Video Operator to Dockerhub +permissions: + contents: read + on: workflow_dispatch jobs: - api: + docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - with: - ref: master - - name: "Setup Node version" - uses: actions/setup-node@v4 - with: - node-version: 20.9.0 - - name: Declare some variables - id: vars - shell: bash - run: | - echo "setting variables" - echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + - name: Set up QEMU + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - uses: elgohr/Publish-Docker-Github-Action@main + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + + - name: Login to Docker Hub + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v.3.1.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-vidvec - workdir: src/ - dockerfile: benchmark/vidvec/Dockerfile.vid_vec_rep_resnet - tags: benchmark-amd64-latest + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push amd64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 + with: + context: "{{defaultContext}}:src/" + file: benchmark/vidvec/Dockerfile.vid_vec_rep_resnet platforms: linux/amd64 - - uses: elgohr/Publish-Docker-Github-Action@main + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-vidvec:benchmark-amd64-latest + + - name: Build and push arm64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-vidvec - workdir: src/ - dockerfile: benchmark/vidvec/Dockerfile.vid_vec_rep_resnet_graviton - tags: benchmark-arm64-latest + context: "{{defaultContext}}:src/" + file: benchmark/vidvec/Dockerfile.vid_vec_rep_resnet_graviton platforms: linux/arm64 - - # - name: deploy to cluster - # uses: steebchen/kubectl@v2.0.0 - # with: # defaults to latest kubectl binary version - # config: ${{ secrets.PROD_KUBE_CONFIG_DATA }} - # command: set image --record deployment/feluda-server feluda-server=tattletech/feluda-server:${{ steps.vars.outputs.sha_short }} - # - name: verify deployment - # uses: steebchen/kubectl@v2.0.0 - # with: - # config: ${{ secrets.PROD_KUBE_CONFIG_DATA }} - # version: v1.21.0 # specify kubectl binary version explicitly - # command: rollout status deployment/feluda-server + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-vidvec:benchmark-arm64-latest diff --git a/.github/workflows/docker-push-vidvec-worker-staging.yml b/.github/workflows/docker-push-vidvec-worker-staging.yml index 540d7638..8429f1ba 100644 --- a/.github/workflows/docker-push-vidvec-worker-staging.yml +++ b/.github/workflows/docker-push-vidvec-worker-staging.yml @@ -1,33 +1,46 @@ name: Publish Video Worker to Dockerhub for Staging +permissions: + contents: read + on: workflow_dispatch jobs: - api: + docker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + + - name: Login to Docker Hub + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v.3.1.0 with: - ref: development - - name: "Setup Node version" - uses: actions/setup-node@v4 + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push amd64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - node-version: 20.9.0 - - name: Declare some variables - id: vars - shell: bash - run: | - echo "setting variables" - echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT + context: "{{defaultContext}}:src/" + file: worker/vidvec/Dockerfile.video_worker + platforms: linux/amd64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-vidvec:worker-amd64-latest - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - uses: elgohr/Publish-Docker-Github-Action@main + - name: Build and push arm64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-vidvec - workdir: src/ - dockerfile: worker/vidvec/Dockerfile.video_worker - tags: worker-amd64-latest - platforms: linux/amd64 \ No newline at end of file + context: "{{defaultContext}}:src/" + file: worker/vidvec/Dockerfile.video_worker_graviton + platforms: linux/arm64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-vidvec:worker-arm64-latest diff --git a/.github/workflows/merge-main.yml b/.github/workflows/merge-main.yml index 81140ac3..7c6d76f2 100644 --- a/.github/workflows/merge-main.yml +++ b/.github/workflows/merge-main.yml @@ -1,5 +1,8 @@ name: Merge PR to main +permissions: + contents: read + on: pull_request: types: @@ -8,92 +11,122 @@ on: - main jobs: - if_merged: + release: if: github.event.pull_request.merged == true runs-on: ubuntu-latest concurrency: release permissions: contents: write + # Map a step output to a job output + outputs: + released: ${{ steps.release.outputs.released }} + tag: ${{ steps.release.outputs.tag }} steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: fetch-depth: 0 - name: Setup Python version - uses: actions/setup-python@v5 + uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 with: python-version: '3.11' -# - name: Dry Run to get next release version -# id: next_version -# shell: bash -# run: | -# pip install python-semantic-release -# echo "new_tag_version=$(semantic-release --noop version --print)" >> $GITHUB_OUTPUT - - name: Python Semantic Release id: release - uses: python-semantic-release/python-semantic-release@master + uses: python-semantic-release/python-semantic-release@c82bd673c30da94a02e039963c8c4c8a51758096 # v9.1.1 with: github_token: ${{ secrets.GITHUB_TOKEN }} -# shell: bash -# run: | -# echo "the release status is: ${{ steps.release.outputs.released }}" -# echo "the new version is: ${{ steps.release.outputs.version }}" -# echo "the new tag version is: ${{ steps.release.outputs.tag }}" + + docker: + needs: release + if: needs.release.outputs.released == 'true' + runs-on: ubuntu-latest + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + + - name: Login to Docker Hub + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v.3.1.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Publish vidvec amd64 worker to dockerhub - if: steps.release.outputs.released == 'true' - uses: elgohr/Publish-Docker-Github-Action@main + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-vidvec - workdir: src/ - dockerfile: worker/vidvec/Dockerfile.video_worker - tags: worker-amd64-${{ steps.release.outputs.tag }} + context: "{{defaultContext}}:src/" + file: worker/vidvec/Dockerfile.video_worker platforms: linux/amd64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-vidvec:worker-amd64-${{ needs.release.outputs.tag }} - name: Publish vidvec arm64 worker to dockerhub - if: steps.release.outputs.released == 'true' - uses: elgohr/Publish-Docker-Github-Action@main + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-vidvec - workdir: src/ - dockerfile: worker/vidvec/Dockerfile.video_worker_graviton - tags: worker-arm64-${{ steps.release.outputs.tag }} + context: "{{defaultContext}}:src/" + file: worker/vidvec/Dockerfile.video_worker_graviton platforms: linux/arm64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-vidvec:worker-arm64-${{ needs.release.outputs.tag }} - name: Publish audiovec amd64 worker to dockerhub - if: steps.release.outputs.released == 'true' - uses: elgohr/Publish-Docker-Github-Action@main + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-audiovec - workdir: src/ - dockerfile: worker/audiovec/Dockerfile.audio_worker - tags: worker-amd64-${{ steps.release.outputs.tag }} + context: "{{defaultContext}}:src/" + file: worker/audiovec/Dockerfile.audio_worker platforms: linux/amd64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-audiovec:worker-amd64-${{ needs.release.outputs.tag }} - name: Publish audiovec arm64 worker to dockerhub - if: steps.release.outputs.released == 'true' - uses: elgohr/Publish-Docker-Github-Action@main + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 + with: + context: "{{defaultContext}}:src/" + file: worker/audiovec/Dockerfile.audio_worker_graviton + platforms: linux/arm64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-audiovec:worker-arm64-${{ needs.release.outputs.tag }} + + - name: Publish media hash amd64 worker to dockerhub + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 + with: + context: "{{defaultContext}}:src/" + file: worker/hash/Dockerfile.hash_worker + platforms: linux/amd64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-hash:worker-amd64-${{ needs.release.outputs.tag }} + + - name: Publish media hash arm64 worker to dockerhub + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-operator-audiovec - workdir: src/ - dockerfile: worker/audiovec/Dockerfile.audio_worker_graviton - tags: worker-arm64-${{ steps.release.outputs.tag }} + context: "{{defaultContext}}:src/" + file: worker/hash/Dockerfile.hash_worker_graviton platforms: linux/arm64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-operator-hash:worker-arm64-${{ needs.release.outputs.tag }} # - name: deploy to cluster # uses: steebchen/kubectl@v2.0.0 diff --git a/.github/workflows/pr-security.yml b/.github/workflows/pr-security.yml index 222eb7fb..13cefcd0 100644 --- a/.github/workflows/pr-security.yml +++ b/.github/workflows/pr-security.yml @@ -1,5 +1,8 @@ name: Run security checks on PR +permissions: + contents: read # for actions/checkout to fetch code + on: pull_request: branches: @@ -15,17 +18,21 @@ jobs: checks: if: github.event.pull_request.draft == false permissions: - contents: read # for actions/checkout to fetch code security-events: write # for github/codeql-action/upload-sarif to upload SARIF results name: Run security checks runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + + - name: Setup Python version + uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + with: + python-version: '3.11' - name: Lint with Ruff run: | - pip install ruff + pip install ruff==0.3.2 ruff --output-format=github ./src/ continue-on-error: false @@ -34,11 +41,12 @@ jobs: python -m venv env1/ source env1/bin/activate - name: pip audit src requirements - uses: pypa/gh-action-pip-audit@v1.0.8 + uses: pypa/gh-action-pip-audit@d499194be74aeb3bc7dbed3a224a87e1831132c7 # v1.0.8 with: # must be populated earlier in the CI virtual-environment: env1/ local: true + no-deps: true inputs: | ./src/requirements.txt @@ -47,11 +55,12 @@ jobs: python -m venv env2/ source env2/bin/activate - name: pip audit operator audiovec requirements - uses: pypa/gh-action-pip-audit@v1.0.8 + uses: pypa/gh-action-pip-audit@d499194be74aeb3bc7dbed3a224a87e1831132c7 # v1.0.8 with: # must be populated earlier in the CI virtual-environment: env2/ local: true + no-deps: true inputs: | ./src/core/operators/audio_vec_embedding_requirements.txt @@ -60,16 +69,17 @@ jobs: python -m venv env3/ source env3/bin/activate - name: pip audit operator vidvec requirements - uses: pypa/gh-action-pip-audit@v1.0.8 + uses: pypa/gh-action-pip-audit@d499194be74aeb3bc7dbed3a224a87e1831132c7 # v1.0.8 with: # must be populated earlier in the CI virtual-environment: env3/ local: true + no-deps: true inputs: | ./src/core/operators/vid_vec_rep_resnet_requirements.txt - name: Run Trivy vulnerability scanner in repo mode - uses: aquasecurity/trivy-action@master + uses: aquasecurity/trivy-action@062f2592684a31eb3aa050cc61e7ca1451cecd3d # v0.18.0 with: scan-type: 'fs' ignore-unfixed: true @@ -81,13 +91,13 @@ jobs: skip-dirs: '.vscode,docs' exit-code: '1' - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@9e39a05578dd315aad814d3c71bd03472cc5b815 # v.3.24.7 if: always() with: sarif_file: 'trivy-results.sarif' - name: Bandit Scan - uses: shundor/python-bandit-scan@9cc5aa4a006482b8a7f91134412df6772dbda22c + uses: shundor/python-bandit-scan@9cc5aa4a006482b8a7f91134412df6772dbda22c # v1.0 with: # optional arguments # exit with 0, even with results found exit_zero: false # optional, default is DEFAULT diff --git a/.github/workflows/pr-tests.yml b/.github/workflows/pr-tests.yml index 4a7c036c..b4f58bfa 100644 --- a/.github/workflows/pr-tests.yml +++ b/.github/workflows/pr-tests.yml @@ -1,5 +1,8 @@ name: Run tests on PR +permissions: + contents: read + on: pull_request: branches: @@ -18,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Build container for tests run: docker compose -f ./.ci/docker-compose.yml -p ci build diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 1cf3e8c0..42b0b693 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -1,9 +1,12 @@ name: Deploy to Production +permissions: + contents: read + on: push: branches: - - master + - main jobs: changes: @@ -12,10 +15,10 @@ jobs: api: ${{ steps.filter.outputs.api}} docs: ${{ steps.filter.outputs.docs }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: ref: development - - uses: dorny/paths-filter@v2.2.0 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: filters: | @@ -29,9 +32,9 @@ jobs: needs: changes if: ${{ needs.changes.outputs.api == 'true' }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: - ref: master + ref: main - name: Declare some variables id: vars shell: bash @@ -41,21 +44,37 @@ jobs: pwd ls - - uses: elgohr/Publish-Docker-Github-Action@master + - name: Set up QEMU + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3.2.0 + + - name: Login to Docker Hub + uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v.3.1.0 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push amd64 + uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 with: - username: tattletech - password: ${{ secrets.DOCKER_PASSWORD }} - name: tattletech/feluda-server - tags: ${{ steps.vars.outputs.sha_short }} - workdir: src/api/ + context: "{{defaultContext}}:src/" + file: Dockerfile + platforms: linux/amd64 + build-args: | + "UID=1000" + "GID=1000" + push: true + tags: tattletech/feluda-server:${{ steps.vars.outputs.sha_short }} - name: deploy to cluster - uses: steebchen/kubectl@v2.0.0 + uses: steebchen/kubectl@7c4c70d551952e40881998b840e16d4d9824a54f # v2.1.1 with: # defaults to latest kubectl binary version config: ${{ secrets.PROD_KUBE_CONFIG_DATA }} command: set image --record deployment/feluda-server feluda-server=tattletech/feluda-server:${{ steps.vars.outputs.sha_short }} - name: verify deployment - uses: steebchen/kubectl@v2.0.0 + uses: steebchen/kubectl@7c4c70d551952e40881998b840e16d4d9824a54f # v2.1.1 with: config: ${{ secrets.PROD_KUBE_CONFIG_DATA }} version: v1.21.0 # specify kubectl binary version explicitly @@ -66,11 +85,11 @@ jobs: needs: changes if: ${{ needs.changes.outputs.docs == 'true' }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: - ref: master + ref: main - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v1 + uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} @@ -95,7 +114,7 @@ jobs: if: ${{ always() }} steps: - name: Notify on Slack - uses: rtCamp/action-slack-notify@v2.0.0 + uses: rtCamp/action-slack-notify@b24d75fe0e728a4bf9fc42ee217caa686d141ee8 # v2.2.1 env: SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} SLACK_MESSAGE: "Deploy Feluda Production" diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml new file mode 100644 index 00000000..542f4237 --- /dev/null +++ b/.github/workflows/scorecard.yml @@ -0,0 +1,73 @@ +# This workflow uses actions that are not certified by GitHub. They are provided +# by a third-party and are governed by separate terms of service, privacy +# policy, and support documentation. + +name: Scorecard supply-chain security +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + branch_protection_rule: + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: '10 13 * * 4' + push: + branches: [ "main" ] + +# Declare default permissions as read only. +permissions: read-all + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-latest + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: write + # Needed to publish results and get a badge (see publish_results below). + # id-token: write + # Uncomment the permissions below if installing in a private repository. + # contents: read + # actions: read + + steps: + - name: "Checkout code" + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + persist-credentials: false + ref: main + + - name: "Run analysis" + uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 + with: + results_file: results.sarif + results_format: sarif + # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: + # - you want to enable the Branch-Protection check on a *public* repository, or + # - you are installing Scorecard on a *private* repository + # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. + # repo_token: ${{ secrets.SCORECARD_TOKEN }} + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + # For private repositories: + # - `publish_results` will always be set to `false`, regardless + # of the value entered here. + publish_results: false + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + # - name: "Upload artifact" + # uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + # with: + # name: SARIF file + # path: results.sarif + # retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard. + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@9e39a05578dd315aad814d3c71bd03472cc5b815 # v.3.24.7 + with: + sarif_file: results.sarif diff --git a/CHANGELOG.md b/CHANGELOG.md index 976074b0..62a587c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,336 @@ +## v0.4.10 (2024-03-18) + +### Fix + +* fix(ci): Fixed github workflow docker build args format ([`b6a3d14`](https://github.com/tattle-made/feluda/commit/b6a3d14ee6f12b7614fcd2613abc3879a9505f8c)) + +### Unknown + +* Merge pull request #219 from tattle-made/hotfix + +Hotfix ([`4b4a3ff`](https://github.com/tattle-made/feluda/commit/4b4a3ffebd2241add79a676d4a196b7ca2e7faa7)) + +* Merge pull request #218 from duggalsu/fix_docker_build_args_format + +Fix docker build args format ([`fe1adfd`](https://github.com/tattle-made/feluda/commit/fe1adfd9593131245889932722ed9f2ece853032)) + + +## v0.4.9 (2024-03-18) + +### Fix + +* fix(ci): Added docker build args to github workflows ([`496d600`](https://github.com/tattle-made/feluda/commit/496d60029d2ef9cc8b95ed3ca4e88d3d5f511aa0)) + +### Unknown + +* Merge pull request #217 from tattle-made/hotfix + +Hotfix ([`c039f63`](https://github.com/tattle-made/feluda/commit/c039f631d7c8f39e7b7a123fc17519f5103a103d)) + +* Merge pull request #216 from duggalsu/fix_docker_build_args + +Fix docker build args ([`ef9c159`](https://github.com/tattle-made/feluda/commit/ef9c1596b79595bbfab65b5b0b71dc3fe520dc09)) + + +## v0.4.8 (2024-03-18) + +### Fix + +* fix: Fixed volume sync and non-root user permission issues ([`5fd4258`](https://github.com/tattle-made/feluda/commit/5fd42588ecf7f8edaae528fcdb0e61e701d64ae8)) + +### Unknown + +* Merge pull request #215 from tattle-made/hotfix + +Hotfix ([`20ed58a`](https://github.com/tattle-made/feluda/commit/20ed58aa398fad0e6acb58e07e6529fd5c15c895)) + +* Merge pull request #214 from duggalsu/fix_volume_sync + +Fix volume sync ([`772d71d`](https://github.com/tattle-made/feluda/commit/772d71da92180f630dea452acb7a4d114ff4c6f1)) + +* - Added UID and GID args to ci-sut docker compose ([`3bdb16a`](https://github.com/tattle-made/feluda/commit/3bdb16ad7dbab3936ceccf697c86e6d53a6f8d7d)) + + +## v0.4.7 (2024-03-18) + +### Ci + +* ci: remove intermediate cache deletion step ([`ade1e67`](https://github.com/tattle-made/feluda/commit/ade1e6795a886e497c7910f7839358389db0398b)) + +* ci: updated dockerfile base image platform ([`d0542bf`](https://github.com/tattle-made/feluda/commit/d0542bf63a0469f83ff053e9e7621dfe4f7bf454)) + +* ci: Add github cache action for local key-based caching ([`7b8ed07`](https://github.com/tattle-made/feluda/commit/7b8ed07566cfc6430ab8678b37df20ffca81c291)) + +* ci: Added dependabot config ([`8a57943`](https://github.com/tattle-made/feluda/commit/8a57943ed43b2feb7b4a7b19d1bdd7c20ac4e68b)) + +### Fix + +* fix: Remove github caching and modify base image to use TARGETPLATFORM ([`0dfb172`](https://github.com/tattle-made/feluda/commit/0dfb17245c54d7efb81da38d72fb66daa09e70b9)) + +### Unknown + +* Merge pull request #213 from tattle-made/hotfix + +Hotfix ([`4541139`](https://github.com/tattle-made/feluda/commit/4541139173016b62bcb254d932ee1396667dea10)) + +* Merge pull request #212 from duggalsu/remove_github_caching + +Remove GitHub caching ([`c490cea`](https://github.com/tattle-made/feluda/commit/c490cea40a5611249cff6cef99d97096c2132e08)) + +* Merge pull request #211 from tattle-made/hotfix + +Hotfix ([`cdb081a`](https://github.com/tattle-made/feluda/commit/cdb081a603b326953259137757513ced996cf4c5)) + +* Merge pull request #210 from duggalsu/rm_intermediate_cache_del + +Rm intermediate cache del ([`caae5a8`](https://github.com/tattle-made/feluda/commit/caae5a8202ab6b4326d8b663689cbf0e3adb980c)) + +* Merge pull request #209 from tattle-made/hotfix + +Hotfix ([`decd119`](https://github.com/tattle-made/feluda/commit/decd119bd39781281a7f47151280b34dd4f90763)) + +* Merge pull request #208 from duggalsu/modify_base_img_platform + +Modify base img platform ([`c48efa4`](https://github.com/tattle-made/feluda/commit/c48efa4af4aae2eeeb461eb4d5049e17bccb8b82)) + +* Merge pull request #201 from tattle-made/hotfix + +Hotfix ([`d91149a`](https://github.com/tattle-made/feluda/commit/d91149ab2602dcce0096451824726fe0cb52c943)) + +* Merge pull request #200 from duggalsu/fix_github_caching + +Fix GitHub caching ([`389f021`](https://github.com/tattle-made/feluda/commit/389f0213b493e5b4acd498cdd5881f925b2bd9d3)) + +* Merge pull request #190 from tattle-made/hotfix + +Hotfix ([`5d13eea`](https://github.com/tattle-made/feluda/commit/5d13eeaf50635f5faadbb7aa2819410d5b6a59b1)) + +* Merge pull request #189 from duggalsu/add_dependabot_yml + +Add dependabot yml ([`74945f2`](https://github.com/tattle-made/feluda/commit/74945f2643f99b70f598538e3cb52460bdcfa420)) + + +## v0.4.6 (2024-03-17) + +### Ci + +* ci: removed require hashes to allow no-deps to work ([`e634622`](https://github.com/tattle-made/feluda/commit/e6346228df9eace2204e54915439ff9ddf838101)) + +* ci: added no deps and require hashes for pip audit ([`e5f110c`](https://github.com/tattle-made/feluda/commit/e5f110ceb5184e4a0c2017a950d351fefb9f9946)) + +### Fix + +* fix: Security enhancements and performance optimizations +- security: Removed exposed port in all workers +- security: Pinned docker platform in all dockerfile images +- security: Pinned docker images digest in all dockerfile images +- security: Pinned python packages by hash digest in all dockerfile images +- perf: Optimized workers and test image for smaller size and build times +- perf: Enabled github docker cache for all workflows +- docs: Updated readme with generate hash instructions for requirements ([`7b181af`](https://github.com/tattle-made/feluda/commit/7b181af09738467ee8e37f24bb664c858cccb6c4)) + +### Unknown + +* Merge pull request #188 from tattle-made/hotfix + +Hotfix ([`f92ef82`](https://github.com/tattle-made/feluda/commit/f92ef820710bcf5f4dfe2e874d58128e0df0dea3)) + +* Merge pull request #187 from duggalsu/opt_vid_worker + +Opt vid worker ([`217d60d`](https://github.com/tattle-made/feluda/commit/217d60d744cfd556c1dab8e55e801dffc4848fd7)) + +* - setup python version ([`2d1863c`](https://github.com/tattle-made/feluda/commit/2d1863c3be284b71d99354b82ebc1c1061c5422f)) + + +## v0.4.5 (2024-03-15) + +### Ci + +* ci: removed explict checkout in docker build ([`2068476`](https://github.com/tattle-made/feluda/commit/206847606128fd7de54d59274c64d4592a162e3f)) + +* ci: fix context in test workflow ([`201c900`](https://github.com/tattle-made/feluda/commit/201c900b7d67bc55df7bc3de4b9d9351f692ea3d)) + +* ci: Fix issues with docker push vidvec benchmark test workflow ([`1d4a31e`](https://github.com/tattle-made/feluda/commit/1d4a31e31d9a7f80aee71ee1df93c4a28b0448c9)) + +### Fix + +* fix: Fix workflows ([`c356dc9`](https://github.com/tattle-made/feluda/commit/c356dc9cfb69211686fbcb3a1fbb076acc01f6f3)) + +### Unknown + +* Merge pull request #186 from tattle-made/hotfix + +Hotfix ([`2c19559`](https://github.com/tattle-made/feluda/commit/2c195594ce9984dd36d52c1b0210807f1bde2329)) + +* Merge pull request #185 from duggalsu/fix_docker_workflow + +Fix docker workflow ([`acc4000`](https://github.com/tattle-made/feluda/commit/acc4000c3939c1f3c9829f9eb5fdc863086c1942)) + +* Merge pull request #184 from tattle-made/hotfix + +Hotfix ([`3d6c84f`](https://github.com/tattle-made/feluda/commit/3d6c84fbe7d53ba99ed5b6dac071e918bda9afa5)) + +* Merge pull request #183 from duggalsu/fix_vidvec_benchmark_test_workflow_2 + +Fix vidvec benchmark test workflow 2 ([`7d5cc01`](https://github.com/tattle-made/feluda/commit/7d5cc0168735453dded3138f26fc70c6e037df17)) + +* Merge pull request #182 from tattle-made/hotfix + +Hotfix ([`f6d87f8`](https://github.com/tattle-made/feluda/commit/f6d87f8c2ff893d5a8ff41b3ca6cbfd87b1d1fff)) + +* Merge pull request #181 from duggalsu/fix_vidvec_benchmark_test_workflow + +Fix vidvec benchmark test workflow ([`6f2a32a`](https://github.com/tattle-made/feluda/commit/6f2a32a3ed2a663c180604cd70259ad90dc7baa2)) + +* Merge pull request #180 from tattle-made/hotfix + +Hotfix ([`0b30a78`](https://github.com/tattle-made/feluda/commit/0b30a78e503a5533bf8c6d38eaa08165d6ef26af)) + +* Merge pull request #179 from tattle-made/scorecard_workflow + +Scorecard workflow ([`d1f468d`](https://github.com/tattle-made/feluda/commit/d1f468d545193a0a077f876faf474b6e7e3ba2b7)) + +* Create scorecard.yml ([`7bf1e20`](https://github.com/tattle-made/feluda/commit/7bf1e2015672db2f82ef47e05b4a8ee4d739f3da)) + + +## v0.4.4 (2024-03-14) + +### Chore + +* chore: removed global import ([`d02366c`](https://github.com/tattle-made/feluda/commit/d02366c90399c39cd691f7d78104ff750bc553a7)) + +### Fix + +* fix: tempfile path for make from file in memory function ([`831a700`](https://github.com/tattle-made/feluda/commit/831a70005eaab0e5b9a67b4db215e8c8b633f158)) + +* fix: tempfile impl ([`2f9cc07`](https://github.com/tattle-made/feluda/commit/2f9cc077e29915e9422e01c723e0a48dcc70f8d3)) + +* fix: Removed use of tempfile downloads ([`eb97f09`](https://github.com/tattle-made/feluda/commit/eb97f09ba5396457c82a9f97db25cf2aa6cf6755)) + +* fix: Created tempfile safely ([`badc043`](https://github.com/tattle-made/feluda/commit/badc0436c55387b1b540096cc6185c91d9563f7d)) + +### Unknown + +* Merge pull request #178 from tattle-made/hotfix + +Hotfix ([`a85423a`](https://github.com/tattle-made/feluda/commit/a85423a44e26ef3fb56700853f9d5a517712c29f)) + +* Merge pull request #164 from duggalsu/fix_tempfile_issues + +Fix tempfile issues ([`c846df5`](https://github.com/tattle-made/feluda/commit/c846df5f57ef2bfb4b4f6bcbac7551f504c759df)) + +* Merge remote-tracking branch 'refs/remotes/origin/fix_tempfile_issues' into fix_tempfile_issues + +# Conflicts: +# src/core/models/media_factory.py ([`36ec52b`](https://github.com/tattle-made/feluda/commit/36ec52b111b788ad424fb0f27562e0ffafa6b650)) + +* Fix tempfile issues +- Optimized dockerfile +- Modified tempfile tests ([`d082d93`](https://github.com/tattle-made/feluda/commit/d082d937f39240f66a19424a5081769410e21852)) + +* - Fixed video and audio file return path ([`bc43d19`](https://github.com/tattle-made/feluda/commit/bc43d1986a08d8314f8abf9d3976f49f5b9ed669)) + + +## v0.4.3 (2024-03-14) + +### Fix + +* fix: flask issues +- Added config vars to env template +- Disabled flask production docker image +- Enabled flask dev server and debugpy to run on localhost +- Added debug cmd flag as recommended approach +- Modified flask app run to load host and debug values from env ([`cfc0601`](https://github.com/tattle-made/feluda/commit/cfc0601bec2c7e29044c2bc48d53cf077e50e6da)) + +### Unknown + +* Merge pull request #177 from tattle-made/hotfix + +Hotfix ([`f2a2b3d`](https://github.com/tattle-made/feluda/commit/f2a2b3d770063795cea0615f17c9477781aaa8b5)) + +* Merge pull request #176 from duggalsu/fix_flask_issues + +Fix flask issues ([`c68596f`](https://github.com/tattle-made/feluda/commit/c68596fd380ab7df68b4c9654f9fc2e3197b79f1)) + + +## v0.4.2 (2024-03-13) + +### Fix + +* fix: wget issues ([`ff70726`](https://github.com/tattle-made/feluda/commit/ff707269a2a02325de8bb7d38ff2324a50d763fc)) + +### Unknown + +* Merge pull request #175 from tattle-made/hotfix + +Hotfix ([`fc508fa`](https://github.com/tattle-made/feluda/commit/fc508fa4f0d39695a55c31f107379e2fd64daf43)) + +* Merge pull request #174 from duggalsu/fix_wget_issues + +Fix wget issues ([`6b98b8f`](https://github.com/tattle-made/feluda/commit/6b98b8f08d361f3d7f99071e9fc9c40685eb14f9)) + + +## v0.4.1 (2024-03-13) + +### Fix + +* fix: Renamed hash worker graviton file +ci: Added publishing media hash worker docker images +ci: Added release hash worker dockerfiles ([`33fb2d8`](https://github.com/tattle-made/feluda/commit/33fb2d84049576912c2d6c1b9b4691fa24d978e2)) + +### Unknown + +* Merge pull request #173 from tattle-made/hotfix + +Hotfix ([`ec7b922`](https://github.com/tattle-made/feluda/commit/ec7b922fd83628816408196ea5d675c2b5fb7a93)) + +* Merge pull request #172 from duggalsu/add_hash_worker_workflow + +Add hash worker workflow ([`b58c11f`](https://github.com/tattle-made/feluda/commit/b58c11f98b240dbe2d5d28e787002f8155901cdc)) + + +## v0.4.0 (2024-03-13) + +### Ci + +* ci: updating hash worker github workflow ([`73e5634`](https://github.com/tattle-made/feluda/commit/73e5634d462064f3fa4d38aec72ed126cc17aeea)) + +### Fix + +* fix: subprocess call issue ([`058cee5`](https://github.com/tattle-made/feluda/commit/058cee5eeaef56c9704b4745f6cd9298b16cca35)) + +### Unknown + +* Merge pull request #165 from tattle-made/development + +merge dev to main ([`55204f9`](https://github.com/tattle-made/feluda/commit/55204f9c60a466de06d8b102b66d5d85b48b1c91)) + +* Merge pull request #166 from aatmanvaidya/temp-dev-2 + +resolving merge conflicts ([`1dea270`](https://github.com/tattle-made/feluda/commit/1dea2707bbf211fb8b91c3335b71e1675d51e0f1)) + +* Merge remote-tracking branch 'upstream/main' into temp-dev-2 ([`3c28a9f`](https://github.com/tattle-made/feluda/commit/3c28a9f310413ce67264f069d1ab067f206ef014)) + +* Merge pull request #171 from duggalsu/fix_subprocess_call + +Fix subprocess call ([`acf4974`](https://github.com/tattle-made/feluda/commit/acf4974c5374e1fe2f59cc2d33bb6c77c6b2c199)) + + ## v0.3.4 (2024-03-13) +### Chore + +* chore: fixing module imports ([`4097614`](https://github.com/tattle-made/feluda/commit/4097614dd86b9edef88855771383faf2de6f1365)) + +* chore: resolving merge conflicts ([`5e3da48`](https://github.com/tattle-made/feluda/commit/5e3da48f102cf1858078748444e1eb7bb40768a9)) + +### Ci + +* ci: fixing hash worker dockerfiles ([`46173da`](https://github.com/tattle-made/feluda/commit/46173da54423a70a7f295862f7106cf98aceb6de)) + ### Fix * fix: Fixed yaml load ([`0582882`](https://github.com/tattle-made/feluda/commit/0582882dec8322ab42bd2f7dc69206677858b633)) @@ -14,6 +342,10 @@ * fix: Removed secrets ([`11f4186`](https://github.com/tattle-made/feluda/commit/11f4186526ad0437ca5d62fc78216be5fd90f3fa)) +* fix: Created tempfile safely ([`fc0d3a2`](https://github.com/tattle-made/feluda/commit/fc0d3a2b8e70aa17ebae6f76da9099699b911afb)) + +* fix: hash operator and worker ([`64d0797`](https://github.com/tattle-made/feluda/commit/64d0797b98ffb90ce5569f587b6403b9373893cf)) + ### Unknown * Merge pull request #170 from tattle-made/hotfix @@ -32,6 +364,12 @@ fix: Fixed assert issues ([`1290ef9`](https://github.com/tattle-made/feluda/comm Fix secrets ([`3670bc9`](https://github.com/tattle-made/feluda/commit/3670bc973ae4a0fc699780fa8a3a91b1efcdd4b0)) +* - Fixed video and audio file return path ([`a251873`](https://github.com/tattle-made/feluda/commit/a2518731af3474881b62505fa10e77267ab163f5)) + +* Merge pull request #163 from aatmanvaidya/hash-op + +fix: hash operator and worker ([`d51aeb3`](https://github.com/tattle-made/feluda/commit/d51aeb3fbe23bf73235f754534f17667679bd660)) + ## v0.3.3 (2024-03-12) @@ -165,12 +503,20 @@ Add ci pip audit ([`40f3ff6`](https://github.com/tattle-made/feluda/commit/40f3f ## v0.3.2 (2024-03-07) +### Chore + +* chore: fixing docker-compose.yml ([`3fe5de6`](https://github.com/tattle-made/feluda/commit/3fe5de666deacb12c1ae755e860dec83a1c7e35a)) + ### Ci * ci: github action to push md5hash worker to staging ([`b5df260`](https://github.com/tattle-made/feluda/commit/b5df26034280af5178f246c46308c5bd3856631d)) * ci: add security checks on PR ([`ca7de73`](https://github.com/tattle-made/feluda/commit/ca7de732d8ed98cdf2d650e1bc0c5f30012f4803)) +### Feature + +* feat: worker for md5hash operator ([`008cc8d`](https://github.com/tattle-made/feluda/commit/008cc8d52dbfa594db5b861f5374298b4b5a44b9)) + ### Fix * fix: linter formatting ([`4758315`](https://github.com/tattle-made/feluda/commit/4758315113d9b9de5c62600936e34c8ecc54f556)) @@ -187,6 +533,10 @@ Hotfix ([`dc64745`](https://github.com/tattle-made/feluda/commit/dc64745059fc718 ci: github action to push md5hash worker to staging ([`c896d29`](https://github.com/tattle-made/feluda/commit/c896d29bd76f3cd7ea39a5b9667ba3f20174e1b2)) +* Merge pull request #142 from aatmanvaidya/md5-hash-worker + +feat: worker for md5hash operator ([`da40ef9`](https://github.com/tattle-made/feluda/commit/da40ef96dfa88cb09f03f110ebcd7e6c7b59a62e)) + * Merge pull request #135 from duggalsu/test_official_docker_push_action Test official docker push action ([`1dbe184`](https://github.com/tattle-made/feluda/commit/1dbe184665209855c66ad6e8696c9fdccd33a662)) diff --git a/README.md b/README.md index cbd450ab..03cbde43 100644 --- a/README.md +++ b/README.md @@ -122,26 +122,84 @@ While the former fetches data from the service's MongoDB and sends it to the API Note: - Use a custom `tmp` directory to avoid memory issues -- Do not use `--generate-hashes` flag for `pip-compile` since the cpu version of `pytorch` is being used from official repository as it is not available in `pypi`. `pip-compile` will manually generate the hash for the architecture specific file and the code will not be compatible with other architectures. - If an operator defaults to a higher version than allowed by feluda core `requirements.txt`, manually edit the `_requirements.txt` to the compatible version. Then run `pip install`. If it runs without errors, the package version is valid for the operator. ```bash -$ cd src/api/ +$ cd src/ $ pip install --upgrade pip-tools -$ TMPDIR= pip-compile --verbose --emit-index-url --emit-find-links --find-links https://download.pytorch.org/whl/torch_stable.html requirements.in +$ TMPDIR= pip-compile --verbose --generate-hashes --emit-index-url --emit-find-links requirements.in -# Updating operators e.g. detect_lang_of_text -$ cd src/api/core/operators/ -$ TMPDIR= pip-compile --verbose --emit-index-url --emit-find-links detect_lang_of_text_requirements.in +# Updating operators +$ cd src/core/operators/ +# The link for torch is required since PyPi only hosts the GPU version of torch packages. +$ TMPDIR= pip-compile --verbose --generate-hashes --emit-index-url --emit-find-links --find-links https://download.pytorch.org/whl/torch_stable.html vid_vec_rep_resnet_requirements.in +$ TMPDIR= pip-compile --verbose --generate-hashes --emit-index-url --emit-find-links --find-links https://download.pytorch.org/whl/torch_stable.html audio_vec_embedding_requirements.in +``` + +#### Modify generated `requirements.txt` for platform specific torch packages + +NOTE: Update the command to match python docker image version + +```bash +# Download package to find hash - you will get an error message if the package has been previously downloaded without the hash. The hash value will be printed in the message. Use that hash +$ pip download --no-deps --require-hashes --python-version 311 --implementation cp --abi cp311 --platform linux_x86_64 --find-links https://download.pytorch.org/whl/torch_stable.html torch==2.2.0+cpu +$ pip download --no-deps --require-hashes --python-version 311 --implementation cp --abi cp311 --platform linux_x86_64 --find-links https://download.pytorch.org/whl/torch_stable.html torchvision==0.17.0+cpu +$ pip download --no-deps --require-hashes --python-version 311 --implementation cp --abi cp311 --platform manylinux2014_aarch64 --find-links https://download.pytorch.org/whl/cpu torch==2.2.0 +$ pip download --no-deps --require-hashes --python-version 311 --implementation cp --abi cp311 --platform manylinux2014_aarch64 --find-links https://download.pytorch.org/whl/cpu torchvision==0.17.0 ``` +Replace the torch package lines from `requirement.txt` with the following (depending upon the generated hash values above) + +```bash +# For arm64 architecture +--find-links https://download.pytorch.org/whl/cpu +torch==2.2.0; platform_machine=='aarch64' \ + --hash=sha256:9328e3c1ce628a281d2707526b4d1080eae7c4afab4f81cea75bde1f9441dc78 + # via + # -r vid_vec_rep_resnet_requirements.in + # torchvision +torchvision==0.17.0; platform_machine=='aarch64' \ + --hash=sha256:3d2e9552d72e4037f2db6f7d97989a2e2f95763aa1861963a3faf521bb1610c4 \ + # via -r vid_vec_rep_resnet_requirements.in + +# For amd64 architecture +--find-links https://download.pytorch.org/whl/torch_stable.html +torch==2.2.0+cpu; platform_machine=='x86_64' \ + --hash=sha256:15a657038eea92ac5db6ab97b30bd4b5345741b49553b2a7e552e80001297124 \ + --hash=sha256:15e05748815545b6eb99196c0219822b210a5eff0dc194997a283534b8c98d7c \ + --hash=sha256:2a8ff4440c1f024ad7982018c378470d2ae0a72f2bc269a22b1a677e09bdd3b1 \ + --hash=sha256:4ddaf3393f5123da4a83a53f98fb9c9c64c53d0061da3c7243f982cdfe9eb888 \ + --hash=sha256:58194066e594cd8aff27ddb746399d040900cc0e8a331d67ea98499777fa4d31 \ + --hash=sha256:5b40dc66914c02d564365f991ec9a6b18cbaa586610e3b160ef559b2ce18c6c8 \ + --hash=sha256:5f907293f5a58619c1c520380f17641f76400a136474a4b1a66c363d2563fe5e \ + --hash=sha256:8258824bec0181e01a086aef5809016116a97626af2dcbf932d4e0b192d9c1b8 \ + --hash=sha256:d053976a4f9ca3bace6e4191e0b6e0bcffbc29f70d419b14d01228b371335467 \ + --hash=sha256:f72e7ce8010aa8797665ff6c4c1d259c28f3a51f332762d9de77f8a20277817f + # via + # -r vid_vec_rep_resnet_requirements.in + # torchvision +torchvision==0.17.0+cpu; platform_machine=='x86_64' \ + --hash=sha256:00e88e9483e52f99fc61a73941b6ef0b59d031930276fc220ee8973170f305ff \ + --hash=sha256:04e72249add0e5a0fc3d06a876833651e77eb6c3c3f9276e70d9bd67804c8549 \ + --hash=sha256:39d3b3a80c63d18594e81829fdbd6108512dff98fa17156c7bec59133a0c1173 \ + --hash=sha256:55660c67bd8d5b777984655116b75070c73d37ce64175a8120cb59010039fd7f \ + --hash=sha256:569ebc5f47bb765ae73cd380ace01ddcb074c67df05d7f15f5ddd0fa3062881a \ + --hash=sha256:701d7fcfdd8ed206dcb71774190152f0a2d6c999ad7cee277fc5a71a943ae64d \ + --hash=sha256:b683d52753c5579a5b0250d7976deada17deab646071da289bd598d1af4877e0 \ + --hash=sha256:bb787aab6daf2d72600c14cd7c3c11459701dc5fac07e790e0335777e20b39df \ + --hash=sha256:da83b8a14d1b0579b1119e24272b0c7bf3e9ad14297bca87184d02c12d210501 \ + --hash=sha256:eb1e9d061c528c8bb40436d445599ca05fa997701ac395db3aaec5cb7660b6ee + # via -r vid_vec_rep_resnet_requirements.in +``` + + #### Updating specific packages in `requirements.txt` This is useful to update dependencies e.g. when using `pip-audit` ```bash -$ TMPDIR= pip-compile --verbose --find-links https://download.pytorch.org/whl/torch_stable.html --upgrade-package == --upgrade-package +$ TMPDIR= pip-compile --verbose --generate-hashes --find-links https://download.pytorch.org/whl/torch_stable.html --upgrade-package == --upgrade-package ``` diff --git a/docker-compose.yml b/docker-compose.yml index 4066ce8f..f143b65c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -47,8 +47,11 @@ services: context: ./src dockerfile: Dockerfile target: debug + args: + - "UID=${UID:-1000}" + - "GID=${GID:-1000}" volumes: - - ./src:/app + - ./src:/usr/app env_file: ./src/development.env ports: - 7000:7000 diff --git a/pyproject.toml b/pyproject.toml index a2f4260c..ed4d5192 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,8 @@ version_variable = [ "src/__init__.py:__version__", ] assets = ["src/worker/vidvec/Dockerfile.video_worker", - "src/worker/audiovec/Dockerfile.audio_worker"] + "src/worker/audiovec/Dockerfile.audio_worker", + "src/worker/hash/Dockerfile.hash_worker"] [tool.semantic_release.branches.main] match = "main" diff --git a/src/.env-template b/src/.env-template index 66eb1fb9..7b99a004 100644 --- a/src/.env-template +++ b/src/.env-template @@ -11,4 +11,6 @@ ES_USERNAME=XXXXX ES_PASSWORD=XXXXX ES_IMG_INDEX=imgsearch ES_TXT_INDEX=txtsearch -ES_VID_INDEX=vidsearch \ No newline at end of file +ES_VID_INDEX=vidsearch +WSGI_HOST=XXXXX +WSGI_DEBUG=XXXXX \ No newline at end of file diff --git a/src/Dockerfile b/src/Dockerfile index ae11f2e0..b6b59c27 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -1,6 +1,8 @@ # FROM jrottenberg/ffmpeg:4.0-scratch AS ffmpeg -FROM python:3.11-slim-bullseye AS base +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS base +ARG UID +ARG GID # COPY --from=ffmpeg / / RUN apt-get update \ @@ -14,9 +16,10 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /usr/app \ + && chown -R python:python /usr/app WORKDIR /usr/app # Set venv @@ -31,7 +34,7 @@ RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-reco # apt-get install -y tesseract-ocr tesseract-ocr-hin RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-recommends wget COPY --chown=python:python requirements.txt /usr/app/requirements.txt -RUN pip install --no-cache-dir -r requirements.txt +RUN pip install --no-cache-dir --require-hashes --no-deps -r requirements.txt COPY --chown=python:python . /usr/app EXPOSE 7000 @@ -46,11 +49,11 @@ EXPOSE 7000 FROM base AS debug RUN apt-get update && apt-get install -y --no-install-recommends vim zsh jq RUN pip install --no-cache-dir debugpy nose2 -RUN export FLASK_DEBUG=1 -USER 999 -CMD python -m debugpy --listen 0.0.0.0:5678 --wait-for-client -m flask run -h 0.0.0.0 -p 5000 +USER python:python +CMD python -m debugpy --listen localhost:5678 --wait-for-client -m flask run --debug -h localhost -p 5000 #### PROD IMAGE #### -FROM base AS prod -USER 999 -CMD flask run --host=0.0.0.0 +# TODO: Setup production WSGI server - https://flask.palletsprojects.com/en/3.0.x/deploying/index.html +#FROM base AS prod +#USER python:python +#CMD flask run --host=0.0.0.0 diff --git a/src/Dockerfile.test b/src/Dockerfile.test index 7b71bf95..7142b781 100644 --- a/src/Dockerfile.test +++ b/src/Dockerfile.test @@ -1,28 +1,44 @@ -FROM python:3.11-slim-bullseye AS base +### TEST IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS test +ARG UID +ARG GID +# Update image, install required utils, and remove cache RUN apt-get update \ && apt-get -y upgrade \ + && apt-get install -y --no-install-recommends vim zsh curl wget grep \ && rm -rf /var/lib/apt/lists/* -# Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app -WORKDIR /usr/app - -# Set venv -RUN python -m venv /usr/app/venv && chown -R python:python /usr/app/venv -ENV PATH="/usr/app/venv/bin:$PATH" - -RUN pip install --no-cache-dir --upgrade pip -RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-recommends wget curl grep -COPY --chown=python:python requirements.txt /usr/app/requirements.txt -RUN pip install --no-cache-dir -r requirements.txt -COPY --chown=python:python . /usr/app - -#### TEST IMAGE #### -FROM base AS test -RUN cd core/operators \ - && pip install --no-cache-dir -r vid_vec_rep_resnet_requirements.txt \ - && pip install --no-cache-dir -r audio_vec_embedding_requirements.txt -USER 999 +# Set python group and user, create home dir, create app dir, change ownership of app to user +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ + +# Set working dir +WORKDIR /home/python/app + +# Create venv and change ownership recursively +RUN python -m venv /home/python/app/venv \ + && chown -R python:python /home/python/app/venv +# Set venv in path +ENV PATH="/home/python/app/venv/bin:$PATH" + +# Copy core and operator requirements +COPY --chown=python:python requirements.txt /home/python/app/requirements.txt +COPY --chown=python:python ./core/operators/vid_vec_rep_resnet_requirements.txt /home/python/app/core/operators/vid_vec_rep_resnet_requirements.txt +COPY --chown=python:python ./core/operators/audio_vec_embedding_requirements.txt /home/python/app/core/operators/audio_vec_embedding_requirements.txt + +# Run pip install +RUN pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/requirements.txt \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/core/operators/vid_vec_rep_resnet_requirements.txt \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/core/operators/audio_vec_embedding_requirements.txt + +# Copy all files and change ownership to unprivileged user +COPY --chown=python:python . /home/python/app + +# Set unprivileged user with group membership +USER python:python + +################################# diff --git a/src/benchmark/audiovec/Dockerfile.audio_vec_embedding b/src/benchmark/audiovec/Dockerfile.audio_vec_embedding index 296f5745..cd3d9118 100644 --- a/src/benchmark/audiovec/Dockerfile.audio_vec_embedding +++ b/src/benchmark/audiovec/Dockerfile.audio_vec_embedding @@ -1,4 +1,6 @@ -FROM python:3.11-slim-bullseye AS base +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS base +ARG UID +ARG GID RUN apt-get update \ && apt-get -y upgrade \ @@ -8,9 +10,10 @@ RUN apt-get update \ --no-install-recommends python3-dev # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /usr/app \ + && chown -R python:python /usr/app WORKDIR /usr/app # Set venv @@ -21,7 +24,7 @@ RUN pip install --no-cache-dir --upgrade pip # audio requirments file COPY --chown=python:python ./core/operators/audio_vec_embedding_requirements.txt /usr/app/core/operators/audio_vec_embedding_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/audio_vec_embedding_requirements.txt +RUN pip install --no-cache-dir --require-hashes --no-deps -r /usr/app/core/operators/audio_vec_embedding_requirements.txt # audio vec file COPY --chown=python:python ./core/operators/audio_vec_embedding.py /usr/app/core/operators/audio_vec_embedding.py # audio vec test and media files @@ -45,5 +48,5 @@ RUN apt-get purge -y --auto-remove \ RUN apt-get update && apt-get install -y --no-install-recommends vim zsh RUN apt-get update && apt-get install -y --no-install-recommends wget -USER 999 +USER python:python CMD tail -f /dev/null diff --git a/src/benchmark/audiovec/Dockerfile.audio_vec_embedding_graviton b/src/benchmark/audiovec/Dockerfile.audio_vec_embedding_graviton index a43fb86d..9a91c65f 100644 --- a/src/benchmark/audiovec/Dockerfile.audio_vec_embedding_graviton +++ b/src/benchmark/audiovec/Dockerfile.audio_vec_embedding_graviton @@ -1,4 +1,6 @@ -FROM python:3.11-slim-bullseye AS base +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS base +ARG UID +ARG GID RUN apt-get update \ && apt-get -y upgrade \ @@ -8,9 +10,10 @@ RUN apt-get update \ --no-install-recommends python3-dev # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /usr/app \ + && chown -R python:python /usr/app WORKDIR /usr/app # Set venv @@ -21,7 +24,7 @@ RUN pip install --no-cache-dir --upgrade pip # audio requirments file COPY --chown=python:python ./core/operators/audio_vec_embedding_requirements.txt /usr/app/core/operators/audio_vec_embedding_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/audio_vec_embedding_requirements.txt +RUN pip install --no-cache-dir --require-hashes --no-deps -r /usr/app/core/operators/audio_vec_embedding_requirements.txt ### AWS Graviton Optimization ### @@ -69,5 +72,5 @@ RUN apt-get purge -y --auto-remove \ RUN apt-get update && apt-get install -y --no-install-recommends vim zsh RUN apt-get update && apt-get install -y --no-install-recommends wget -USER 999 +USER python:python CMD tail -f /dev/null \ No newline at end of file diff --git a/src/benchmark/imgvec/Dockerfile.image_vec_rep_resnet b/src/benchmark/imgvec/Dockerfile.image_vec_rep_resnet index 05b8d946..c84f758d 100644 --- a/src/benchmark/imgvec/Dockerfile.image_vec_rep_resnet +++ b/src/benchmark/imgvec/Dockerfile.image_vec_rep_resnet @@ -1,4 +1,6 @@ -FROM python:3.11-slim@sha256:637774748f62b832dc11e7b286e48cd716727ed04b45a0322776c01bc526afc3 AS base +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS base +ARG UID +ARG GID RUN apt-get update \ && apt-get -y upgrade \ @@ -11,9 +13,10 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /usr/app \ + && chown -R python:python /usr/app WORKDIR /usr/app # Set venv @@ -22,7 +25,7 @@ ENV PATH="/usr/app/venv/bin:$PATH" RUN pip install --no-cache-dir --upgrade pip COPY --chown=python:python ./core/operators/image_vec_rep_resnet_requirements.txt /usr/app/core/operators/image_vec_rep_resnet_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/image_vec_rep_resnet_requirements.txt +RUN pip install --no-cache-dir --require-hashes --no-deps -r /usr/app/core/operators/image_vec_rep_resnet_requirements.txt COPY --chown=python:python ./core/operators/image_vec_rep_resnet.py /usr/app/core/operators/image_vec_rep_resnet.py COPY --chown=python:python ./core/operators/sample_data/text.png /usr/app/core/operators/sample_data/text.png @@ -35,5 +38,5 @@ COPY --chown=python:python ./image_vec_operator_profile_pyinstrument.sh /usr/app RUN chmod +x image_vec_operator_profile_memray.sh RUN chmod +x image_vec_operator_profile_pyinstrument.sh -USER 999 +USER python:python CMD tail -f /dev/null diff --git a/src/benchmark/vidvec/Dockerfile.vid_vec_rep_resnet b/src/benchmark/vidvec/Dockerfile.vid_vec_rep_resnet index 53e3234a..f68340d2 100644 --- a/src/benchmark/vidvec/Dockerfile.vid_vec_rep_resnet +++ b/src/benchmark/vidvec/Dockerfile.vid_vec_rep_resnet @@ -1,4 +1,6 @@ -FROM python:3.11-slim-bullseye AS base +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS base +ARG UID +ARG GID RUN apt-get update \ && apt-get -y upgrade \ @@ -8,9 +10,10 @@ RUN apt-get update \ --no-install-recommends python3-dev # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /usr/app \ + && chown -R python:python /usr/app WORKDIR /usr/app # Set venv @@ -20,7 +23,7 @@ ENV PATH="/usr/app/venv/bin:$PATH" RUN pip install --no-cache-dir --upgrade pip # video requirments file COPY --chown=python:python ./core/operators/vid_vec_rep_resnet_requirements.txt /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt +RUN pip install --no-cache-dir --require-hashes --no-deps -r /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt # video vec file COPY --chown=python:python ./core/operators/vid_vec_rep_resnet.py /usr/app/core/operators/vid_vec_rep_resnet.py # video vec test file @@ -42,7 +45,7 @@ RUN apt-get purge -y --auto-remove \ && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y --no-install-recommends vim zsh wget -RUN pip install numpy Pillow wget requests Werkzeug +RUN pip install --no-cache-dir numpy Pillow wget requests Werkzeug -USER 999 +USER python:python CMD tail -f /dev/null \ No newline at end of file diff --git a/src/benchmark/vidvec/Dockerfile.vid_vec_rep_resnet_graviton b/src/benchmark/vidvec/Dockerfile.vid_vec_rep_resnet_graviton index 693866ae..e1c110c8 100644 --- a/src/benchmark/vidvec/Dockerfile.vid_vec_rep_resnet_graviton +++ b/src/benchmark/vidvec/Dockerfile.vid_vec_rep_resnet_graviton @@ -1,4 +1,6 @@ -FROM python:3.11-slim-bullseye AS base +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS base +ARG UID +ARG GID RUN apt-get update \ && apt-get -y upgrade \ @@ -8,9 +10,10 @@ RUN apt-get update \ --no-install-recommends python3-dev # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /usr/app \ + && chown -R python:python /usr/app WORKDIR /usr/app # Set venv @@ -44,7 +47,7 @@ ENV OMP_PLACES=cores # video requirments file COPY --chown=python:python ./core/operators/vid_vec_rep_resnet_requirements.txt /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt +RUN pip install --no-cache-dir --require-hashes --no-deps -r /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt # video vec file COPY --chown=python:python ./core/operators/vid_vec_rep_resnet.py /usr/app/core/operators/vid_vec_rep_resnet.py # video vec test file @@ -66,7 +69,7 @@ RUN apt-get purge -y --auto-remove \ && rm -rf /var/lib/apt/lists/* RUN apt-get update && apt-get install -y --no-install-recommends vim zsh wget -RUN pip install numpy Pillow wget requests Werkzeug +RUN pip install --no-cache-dir numpy Pillow wget requests Werkzeug -USER 999 +USER python:python CMD tail -f /dev/null diff --git a/src/core/models/media_factory.py b/src/core/models/media_factory.py index 68872e76..27c65d6b 100644 --- a/src/core/models/media_factory.py +++ b/src/core/models/media_factory.py @@ -7,6 +7,8 @@ import wget from core.models.media import MediaType import logging +import os +import tempfile log = logging.getLogger(__name__) @@ -70,15 +72,18 @@ def make_from_file_in_memory(image_data: FileStorage): class VideoFactory: @staticmethod def make_from_url(video_url): - fname = "/tmp/vid.mp4" + temp_dir = tempfile.gettempdir() + temp_url = video_url.split("?")[0] + file_name = temp_url.split("/")[-1] + ".mp4" + file_path = temp_dir + os.sep + file_name try: print("Downloading video from url") - wget.download(video_url, out=fname) + wget.download(video_url, out=file_path) print("video downloaded") except Exception as e: log.exception("Error downloading video:", e) raise Exception("Error Downloading Video") - return {"path": fname} + return {"path": file_path} @staticmethod def make_from_file_on_disk(video_path): @@ -87,14 +92,18 @@ def make_from_file_on_disk(video_path): @staticmethod def make_from_file_in_memory(file_data: FileStorage): # save on disk - fname = "/tmp/" + file_data.filename + fname = tempfile.gettempdir() + os.sep + file_data.filename file_data.save(fname) return {"path": fname} class AudioFactory: + @staticmethod def make_from_url(audio_url): - audio_file = "/tmp/audio.wav" + temp_dir = tempfile.gettempdir() + temp_url = audio_url.split("?")[0] + file_name = temp_url.split("/")[-1] + ".wav" + audio_file = temp_dir + os.sep + file_name try: print("Downloading audio from url") wget.download(audio_url, out=audio_file) diff --git a/src/core/operators/audio_cnn_model/config.py b/src/core/operators/audio_cnn_model/config.py index 00acb029..f7d93d6b 100644 --- a/src/core/operators/audio_cnn_model/config.py +++ b/src/core/operators/audio_cnn_model/config.py @@ -3,6 +3,7 @@ # import numpy as np import csv from pathlib import Path +import wget sample_rate = 32000 @@ -11,11 +12,13 @@ # Download labels if not exist if not os.path.isfile(labels_csv_path): os.makedirs(os.path.dirname(labels_csv_path), exist_ok=True) - os.system( - 'wget -O "{}" "http://storage.googleapis.com/us_audioset/youtube_corpus/v1/csv/class_labels_indices.csv"'.format( - labels_csv_path - ) - ) + # os.system( + # 'wget -O "{}" "http://storage.googleapis.com/us_audioset/youtube_corpus/v1/csv/class_labels_indices.csv"'.format( + # labels_csv_path + # ) + # ) + dl_path = "http://storage.googleapis.com/us_audioset/youtube_corpus/v1/csv/class_labels_indices.csv" + wget.download(dl_path, out=labels_csv_path) # Load label with open(labels_csv_path, "r") as f: diff --git a/src/core/operators/audio_cnn_model/inference.py b/src/core/operators/audio_cnn_model/inference.py index baaa2541..fbfac149 100644 --- a/src/core/operators/audio_cnn_model/inference.py +++ b/src/core/operators/audio_cnn_model/inference.py @@ -6,6 +6,7 @@ # import matplotlib.pyplot as plt import torch from pathlib import Path +import wget from .pytorch_utils import move_data_to_device from .models import Cnn14 # , Cnn14_DecisionLevelMax @@ -39,7 +40,8 @@ def __init__(self, model=None, checkpoint_path=None, device="cuda"): ): create_folder(os.path.dirname(checkpoint_path)) zenodo_path = "https://github.com/tattle-made/feluda/releases/download/third-party-models/Cnn14_mAP.0.431.pth" - os.system('wget -O "{}" "{}"'.format(checkpoint_path, zenodo_path)) + # os.system('wget -O "{}" "{}"'.format(checkpoint_path, zenodo_path)) + wget.download(zenodo_path, out=checkpoint_path) # script_dir = os.path.dirname(os.path.abspath(__file__)) # checkpoint_path = os.path.join(script_dir, 'panns_data', 'Cnn14_mAP=0.431.pth') diff --git a/src/core/operators/audio_vec_embedding_requirements.txt b/src/core/operators/audio_vec_embedding_requirements.txt index 90fe602d..bf9e2a12 100644 --- a/src/core/operators/audio_vec_embedding_requirements.txt +++ b/src/core/operators/audio_vec_embedding_requirements.txt @@ -1,86 +1,723 @@ # -# This file is autogenerated by pip-compile with Python 3.12 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --find-links=https://download.pytorch.org/whl/torch_stable.html audio_vec_embedding_requirements.in +# pip-compile --find-links=https://download.pytorch.org/whl/torch_stable.html --generate-hashes audio_vec_embedding_requirements.in # + # For arm64 architecture --find-links https://download.pytorch.org/whl/cpu -torch==2.2.0; platform_machine=='aarch64' +torch==2.2.0; platform_machine=='aarch64' \ + --hash=sha256:9328e3c1ce628a281d2707526b4d1080eae7c4afab4f81cea75bde1f9441dc78 # via -r audio_vec_embedding_requirements.in # For amd64 architecture --find-links https://download.pytorch.org/whl/torch_stable.html -torch==2.2.0+cpu; platform_machine=='x86_64' +torch==2.2.0+cpu; platform_machine=='x86_64' \ + --hash=sha256:15a657038eea92ac5db6ab97b30bd4b5345741b49553b2a7e552e80001297124 \ + --hash=sha256:15e05748815545b6eb99196c0219822b210a5eff0dc194997a283534b8c98d7c \ + --hash=sha256:2a8ff4440c1f024ad7982018c378470d2ae0a72f2bc269a22b1a677e09bdd3b1 \ + --hash=sha256:4ddaf3393f5123da4a83a53f98fb9c9c64c53d0061da3c7243f982cdfe9eb888 \ + --hash=sha256:58194066e594cd8aff27ddb746399d040900cc0e8a331d67ea98499777fa4d31 \ + --hash=sha256:5b40dc66914c02d564365f991ec9a6b18cbaa586610e3b160ef559b2ce18c6c8 \ + --hash=sha256:5f907293f5a58619c1c520380f17641f76400a136474a4b1a66c363d2563fe5e \ + --hash=sha256:8258824bec0181e01a086aef5809016116a97626af2dcbf932d4e0b192d9c1b8 \ + --hash=sha256:d053976a4f9ca3bace6e4191e0b6e0bcffbc29f70d419b14d01228b371335467 \ + --hash=sha256:f72e7ce8010aa8797665ff6c4c1d259c28f3a51f332762d9de77f8a20277817f # via -r audio_vec_embedding_requirements.in -audioread==3.0.1 +audioread==3.0.1 \ + --hash=sha256:4cdce70b8adc0da0a3c9e0d85fb10b3ace30fbdf8d1670fd443929b61d117c33 \ + --hash=sha256:ac5460a5498c48bdf2e8e767402583a4dcd13f4414d286f42ce4379e8b35066d # via librosa -certifi==2024.2.2 +certifi==2024.2.2 \ + --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ + --hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 # via requests -cffi==1.16.0 +cffi==1.16.0 \ + --hash=sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc \ + --hash=sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a \ + --hash=sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417 \ + --hash=sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab \ + --hash=sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520 \ + --hash=sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36 \ + --hash=sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743 \ + --hash=sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8 \ + --hash=sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed \ + --hash=sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684 \ + --hash=sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56 \ + --hash=sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324 \ + --hash=sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d \ + --hash=sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235 \ + --hash=sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e \ + --hash=sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088 \ + --hash=sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000 \ + --hash=sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7 \ + --hash=sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e \ + --hash=sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673 \ + --hash=sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c \ + --hash=sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe \ + --hash=sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2 \ + --hash=sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098 \ + --hash=sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8 \ + --hash=sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a \ + --hash=sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0 \ + --hash=sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b \ + --hash=sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896 \ + --hash=sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e \ + --hash=sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9 \ + --hash=sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2 \ + --hash=sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b \ + --hash=sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6 \ + --hash=sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404 \ + --hash=sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f \ + --hash=sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0 \ + --hash=sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4 \ + --hash=sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc \ + --hash=sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936 \ + --hash=sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba \ + --hash=sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872 \ + --hash=sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb \ + --hash=sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614 \ + --hash=sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1 \ + --hash=sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d \ + --hash=sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969 \ + --hash=sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b \ + --hash=sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4 \ + --hash=sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627 \ + --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ + --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via soundfile -charset-normalizer==3.3.2 +charset-normalizer==3.3.2 \ + --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ + --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ + --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ + --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ + --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ + --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ + --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ + --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ + --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ + --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ + --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ + --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ + --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ + --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ + --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ + --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ + --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ + --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ + --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ + --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ + --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ + --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ + --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ + --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ + --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ + --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ + --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ + --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ + --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ + --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ + --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ + --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ + --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ + --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ + --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ + --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ + --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ + --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ + --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ + --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ + --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ + --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ + --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ + --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ + --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ + --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ + --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ + --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ + --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ + --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ + --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ + --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ + --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ + --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ + --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ + --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ + --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ + --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ + --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ + --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ + --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ + --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ + --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ + --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ + --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ + --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ + --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ + --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ + --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ + --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ + --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ + --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ + --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ + --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ + --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ + --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ + --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ + --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ + --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ + --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ + --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ + --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ + --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ + --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ + --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ + --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ + --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ + --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ + --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ + --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 # via requests -contourpy==1.2.0 +contourpy==1.2.0 \ + --hash=sha256:0274c1cb63625972c0c007ab14dd9ba9e199c36ae1a231ce45d725cbcbfd10a8 \ + --hash=sha256:0d7e03c0f9a4f90dc18d4e77e9ef4ec7b7bbb437f7f675be8e530d65ae6ef956 \ + --hash=sha256:11f8d2554e52f459918f7b8e6aa20ec2a3bce35ce95c1f0ef4ba36fbda306df5 \ + --hash=sha256:139d8d2e1c1dd52d78682f505e980f592ba53c9f73bd6be102233e358b401063 \ + --hash=sha256:16a7380e943a6d52472096cb7ad5264ecee36ed60888e2a3d3814991a0107286 \ + --hash=sha256:171f311cb758de7da13fc53af221ae47a5877be5a0843a9fe150818c51ed276a \ + --hash=sha256:18fc2b4ed8e4a8fe849d18dce4bd3c7ea637758c6343a1f2bae1e9bd4c9f4686 \ + --hash=sha256:1c203f617abc0dde5792beb586f827021069fb6d403d7f4d5c2b543d87edceb9 \ + --hash=sha256:1c2559d6cffc94890b0529ea7eeecc20d6fadc1539273aa27faf503eb4656d8f \ + --hash=sha256:1c88dfb9e0c77612febebb6ac69d44a8d81e3dc60f993215425b62c1161353f4 \ + --hash=sha256:1e9dc350fb4c58adc64df3e0703ab076f60aac06e67d48b3848c23647ae4310e \ + --hash=sha256:247b9d16535acaa766d03037d8e8fb20866d054d3c7fbf6fd1f993f11fc60ca0 \ + --hash=sha256:266270c6f6608340f6c9836a0fb9b367be61dde0c9a9a18d5ece97774105ff3e \ + --hash=sha256:34b9071c040d6fe45d9826cbbe3727d20d83f1b6110d219b83eb0e2a01d79488 \ + --hash=sha256:3d7d1f8871998cdff5d2ff6a087e5e1780139abe2838e85b0b46b7ae6cc25399 \ + --hash=sha256:461e3ae84cd90b30f8d533f07d87c00379644205b1d33a5ea03381edc4b69431 \ + --hash=sha256:464b423bc2a009088f19bdf1f232299e8b6917963e2b7e1d277da5041f33a779 \ + --hash=sha256:491b1917afdd8638a05b611a56d46587d5a632cabead889a5440f7c638bc6ed9 \ + --hash=sha256:4a1b1208102be6e851f20066bf0e7a96b7d48a07c9b0cfe6d0d4545c2f6cadab \ + --hash=sha256:575bcaf957a25d1194903a10bc9f316c136c19f24e0985a2b9b5608bdf5dbfe0 \ + --hash=sha256:5c6b28956b7b232ae801406e529ad7b350d3f09a4fde958dfdf3c0520cdde0dd \ + --hash=sha256:5d16edfc3fc09968e09ddffada434b3bf989bf4911535e04eada58469873e28e \ + --hash=sha256:5fd1810973a375ca0e097dee059c407913ba35723b111df75671a1976efa04bc \ + --hash=sha256:67b7f17679fa62ec82b7e3e611c43a016b887bd64fb933b3ae8638583006c6d6 \ + --hash=sha256:68ce4788b7d93e47f84edd3f1f95acdcd142ae60bc0e5493bfd120683d2d4316 \ + --hash=sha256:6d3364b999c62f539cd403f8123ae426da946e142312a514162adb2addd8d808 \ + --hash=sha256:6e739530c662a8d6d42c37c2ed52a6f0932c2d4a3e8c1f90692ad0ce1274abe0 \ + --hash=sha256:6fdd887f17c2f4572ce548461e4f96396681212d858cae7bd52ba3310bc6f00f \ + --hash=sha256:78e6ad33cf2e2e80c5dfaaa0beec3d61face0fb650557100ee36db808bfa6843 \ + --hash=sha256:884c3f9d42d7218304bc74a8a7693d172685c84bd7ab2bab1ee567b769696df9 \ + --hash=sha256:8d8faf05be5ec8e02a4d86f616fc2a0322ff4a4ce26c0f09d9f7fb5330a35c95 \ + --hash=sha256:999c71939aad2780f003979b25ac5b8f2df651dac7b38fb8ce6c46ba5abe6ae9 \ + --hash=sha256:99ad97258985328b4f207a5e777c1b44a83bfe7cf1f87b99f9c11d4ee477c4de \ + --hash=sha256:9e6c93b5b2dbcedad20a2f18ec22cae47da0d705d454308063421a3b290d9ea4 \ + --hash=sha256:ab459a1cbbf18e8698399c595a01f6dcc5c138220ca3ea9e7e6126232d102bb4 \ + --hash=sha256:b69303ceb2e4d4f146bf82fda78891ef7bcd80c41bf16bfca3d0d7eb545448aa \ + --hash=sha256:b7caf9b241464c404613512d5594a6e2ff0cc9cb5615c9475cc1d9b514218ae8 \ + --hash=sha256:b95a225d4948b26a28c08307a60ac00fb8671b14f2047fc5476613252a129776 \ + --hash=sha256:bd2f1ae63998da104f16a8b788f685e55d65760cd1929518fd94cd682bf03e41 \ + --hash=sha256:be16975d94c320432657ad2402f6760990cb640c161ae6da1363051805fa8108 \ + --hash=sha256:ce96dd400486e80ac7d195b2d800b03e3e6a787e2a522bfb83755938465a819e \ + --hash=sha256:dbd50d0a0539ae2e96e537553aff6d02c10ed165ef40c65b0e27e744a0f10af8 \ + --hash=sha256:dd10c26b4eadae44783c45ad6655220426f971c61d9b239e6f7b16d5cdaaa727 \ + --hash=sha256:ebeac59e9e1eb4b84940d076d9f9a6cec0064e241818bcb6e32124cc5c3e377a # via matplotlib -cycler==0.12.1 +cycler==0.12.1 \ + --hash=sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30 \ + --hash=sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c # via matplotlib -decorator==5.1.1 +decorator==5.1.1 \ + --hash=sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330 \ + --hash=sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186 # via librosa -filelock==3.13.1 +filelock==3.13.1 \ + --hash=sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e \ + --hash=sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c # via torch -fonttools==4.48.1 +fonttools==4.48.1 \ + --hash=sha256:0452fcbfbce752ba596737a7c5ec5cf76bc5f83847ce1781f4f90eab14ece252 \ + --hash=sha256:0a2417547462e468edf35b32e3dd06a6215ac26aa6316b41e03b8eeaf9f079ea \ + --hash=sha256:0d2b01428f7da26f229a5656defc824427b741e454b4e210ad2b25ed6ea2aed4 \ + --hash=sha256:0d533f89819f9b3ee2dbedf0fed3825c425850e32bdda24c558563c71be0064e \ + --hash=sha256:12ee86abca46193359ea69216b3a724e90c66ab05ab220d39e3fc068c1eb72ac \ + --hash=sha256:18b35fd1a850ed7233a99bbd6774485271756f717dac8b594958224b54118b61 \ + --hash=sha256:292922dc356d7f11f5063b4111a8b719efb8faea92a2a88ed296408d449d8c2e \ + --hash=sha256:2eb4167bde04e172a93cf22c875d8b0cff76a2491f67f5eb069566215302d45d \ + --hash=sha256:3cdb9a92521b81bf717ebccf592bd0292e853244d84115bfb4db0c426de58348 \ + --hash=sha256:4108b1d247953dd7c90ec8f457a2dec5fceb373485973cc852b14200118a51ee \ + --hash=sha256:4709c5bf123ba10eac210d2d5c9027d3f472591d9f1a04262122710fa3d23199 \ + --hash=sha256:5057ade278e67923000041e2b195c9ea53e87f227690d499b6a4edd3702f7f01 \ + --hash=sha256:56339ec557f0c342bddd7c175f5e41c45fc21282bee58a86bd9aa322bec715f2 \ + --hash=sha256:578c00f93868f64a4102ecc5aa600a03b49162c654676c3fadc33de2ddb88a81 \ + --hash=sha256:594206b31c95fcfa65f484385171fabb4ec69f7d2d7f56d27f17db26b7a31814 \ + --hash=sha256:63c73b9dd56a94a3cbd2f90544b5fca83666948a9e03370888994143b8d7c070 \ + --hash=sha256:63dc592a16cd08388d8c4c7502b59ac74190b23e16dfc863c69fe1ea74605b68 \ + --hash=sha256:6978bade7b6c0335095bdd0bd97f8f3d590d2877b370f17e03e0865241694eb5 \ + --hash=sha256:6f30e605c7565d0da6f0aec75a30ec372072d016957cd8fc4469721a36ea59b7 \ + --hash=sha256:702ae93058c81f46461dc4b2c79f11d3c3d8fd7296eaf8f75b4ba5bbf813cd5f \ + --hash=sha256:8b8a45254218679c7f1127812761e7854ed5c8e34349aebf581e8c9204e7495a \ + --hash=sha256:902e9c4e9928301912f34a6638741b8ae0b64824112b42aaf240e06b735774b1 \ + --hash=sha256:97f0a49fa6aa2d6205c6f72f4f98b74ef4b9bfdcb06fd78e6fe6c7af4989b63e \ + --hash=sha256:9b4ec6d42a7555f5ae35f3b805482f0aad0f1baeeef54859492ea3b782959d4a \ + --hash=sha256:9b58638d8a85e3a1b32ec0a91d9f8171a877b4b81c408d4cb3257d0dee63e092 \ + --hash=sha256:a8c8b54bd1420c184a995f980f1a8076f87363e2bb24239ef8c171a369d85a31 \ + --hash=sha256:aee76fd81a8571c68841d6ef0da750d5ff08ff2c5f025576473016f16ac3bcf7 \ + --hash=sha256:b10633aafc5932995a391ec07eba5e79f52af0003a1735b2306b3dab8a056d48 \ + --hash=sha256:bcd77f89fc1a6b18428e7a55dde8ef56dae95640293bfb8f4e929929eba5e2a2 \ + --hash=sha256:bff5b38d0e76eb18e0b8abbf35d384e60b3371be92f7be36128ee3e67483b3ec \ + --hash=sha256:c900508c46274d32d308ae8e82335117f11aaee1f7d369ac16502c9a78930b0a \ + --hash=sha256:cad5cfd044ea2e306fda44482b3dd32ee47830fa82dfa4679374b41baa294f5f \ + --hash=sha256:cdfd7557d1bd294a200bd211aa665ca3b02998dcc18f8211a5532da5b8fad5c5 \ + --hash=sha256:cf5a0cd974f85a80b74785db2d5c3c1fd6cc09a2ba3c837359b2b5da629ee1b0 \ + --hash=sha256:d10979ef14a8beaaa32f613bb698743f7241d92f437a3b5e32356dfb9769c65d \ + --hash=sha256:d20588466367f05025bb1efdf4e5d498ca6d14bde07b6928b79199c588800f0a \ + --hash=sha256:d3260db55f1843e57115256e91247ad9f68cb02a434b51262fe0019e95a98738 \ + --hash=sha256:df48798f9a4fc4c315ab46e17873436c8746f5df6eddd02fad91299b2af7af95 \ + --hash=sha256:e3e33862fc5261d46d9aae3544acb36203b1a337d00bdb5d3753aae50dac860e \ + --hash=sha256:e740a7602c2bb71e1091269b5dbe89549749a8817dc294b34628ffd8b2bf7124 \ + --hash=sha256:f40441437b039930428e04fb05ac3a132e77458fb57666c808d74a556779e784 \ + --hash=sha256:f7449493886da6a17472004d3818cc050ba3f4a0aa03fb47972e4fa5578e6703 # via matplotlib -fsspec==2024.2.0 +fsspec==2024.2.0 \ + --hash=sha256:817f969556fa5916bc682e02ca2045f96ff7f586d45110fcb76022063ad2c7d8 \ + --hash=sha256:b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84 # via torch -idna==3.6 +idna==3.6 \ + --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ + --hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f # via requests -jinja2==3.1.3 +jinja2==3.1.3 \ + --hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \ + --hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90 # via # memray # torch -joblib==1.3.2 +joblib==1.3.2 \ + --hash=sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1 \ + --hash=sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9 # via # librosa # scikit-learn -kiwisolver==1.4.5 +kiwisolver==1.4.5 \ + --hash=sha256:00bd361b903dc4bbf4eb165f24d1acbee754fce22ded24c3d56eec268658a5cf \ + --hash=sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e \ + --hash=sha256:05703cf211d585109fcd72207a31bb170a0f22144d68298dc5e61b3c946518af \ + --hash=sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f \ + --hash=sha256:0dc9db8e79f0036e8173c466d21ef18e1befc02de8bf8aa8dc0813a6dc8a7046 \ + --hash=sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3 \ + --hash=sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5 \ + --hash=sha256:11c7de8f692fc99816e8ac50d1d1aef4f75126eefc33ac79aac02c099fd3db71 \ + --hash=sha256:11d011a7574eb3b82bcc9c1a1d35c1d7075677fdd15de527d91b46bd35e935ee \ + --hash=sha256:146d14bebb7f1dc4d5fbf74f8a6cb15ac42baadee8912eb84ac0b3b2a3dc6ac3 \ + --hash=sha256:15568384086b6df3c65353820a4473575dbad192e35010f622c6ce3eebd57af9 \ + --hash=sha256:19df6e621f6d8b4b9c4d45f40a66839294ff2bb235e64d2178f7522d9170ac5b \ + --hash=sha256:1b04139c4236a0f3aff534479b58f6f849a8b351e1314826c2d230849ed48985 \ + --hash=sha256:210ef2c3a1f03272649aff1ef992df2e724748918c4bc2d5a90352849eb40bea \ + --hash=sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16 \ + --hash=sha256:2400873bccc260b6ae184b2b8a4fec0e4082d30648eadb7c3d9a13405d861e89 \ + --hash=sha256:2a40773c71d7ccdd3798f6489aaac9eee213d566850a9533f8d26332d626b82c \ + --hash=sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9 \ + --hash=sha256:3195782b26fc03aa9c6913d5bad5aeb864bdc372924c093b0f1cebad603dd712 \ + --hash=sha256:31a82d498054cac9f6d0b53d02bb85811185bcb477d4b60144f915f3b3126342 \ + --hash=sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a \ + --hash=sha256:346f5343b9e3f00b8db8ba359350eb124b98c99efd0b408728ac6ebf38173958 \ + --hash=sha256:378a214a1e3bbf5ac4a8708304318b4f890da88c9e6a07699c4ae7174c09a68d \ + --hash=sha256:39b42c68602539407884cf70d6a480a469b93b81b7701378ba5e2328660c847a \ + --hash=sha256:3a2b053a0ab7a3960c98725cfb0bf5b48ba82f64ec95fe06f1d06c99b552e130 \ + --hash=sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff \ + --hash=sha256:3cd32d6c13807e5c66a7cbb79f90b553642f296ae4518a60d8d76243b0ad2898 \ + --hash=sha256:3edd2fa14e68c9be82c5b16689e8d63d89fe927e56debd6e1dbce7a26a17f81b \ + --hash=sha256:4c380469bd3f970ef677bf2bcba2b6b0b4d5c75e7a020fb863ef75084efad66f \ + --hash=sha256:4e66e81a5779b65ac21764c295087de82235597a2293d18d943f8e9e32746265 \ + --hash=sha256:53abb58632235cd154176ced1ae8f0d29a6657aa1aa9decf50b899b755bc2b93 \ + --hash=sha256:5794cf59533bc3f1b1c821f7206a3617999db9fbefc345360aafe2e067514929 \ + --hash=sha256:59415f46a37f7f2efeec758353dd2eae1b07640d8ca0f0c42548ec4125492635 \ + --hash=sha256:59ec7b7c7e1a61061850d53aaf8e93db63dce0c936db1fda2658b70e4a1be709 \ + --hash=sha256:59edc41b24031bc25108e210c0def6f6c2191210492a972d585a06ff246bb79b \ + --hash=sha256:5a580c91d686376f0f7c295357595c5a026e6cbc3d77b7c36e290201e7c11ecb \ + --hash=sha256:5b94529f9b2591b7af5f3e0e730a4e0a41ea174af35a4fd067775f9bdfeee01a \ + --hash=sha256:5c7b3b3a728dc6faf3fc372ef24f21d1e3cee2ac3e9596691d746e5a536de920 \ + --hash=sha256:5c90ae8c8d32e472be041e76f9d2f2dbff4d0b0be8bd4041770eddb18cf49a4e \ + --hash=sha256:5e7139af55d1688f8b960ee9ad5adafc4ac17c1c473fe07133ac092310d76544 \ + --hash=sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45 \ + --hash=sha256:620ced262a86244e2be10a676b646f29c34537d0d9cc8eb26c08f53d98013390 \ + --hash=sha256:6512cb89e334e4700febbffaaa52761b65b4f5a3cf33f960213d5656cea36a77 \ + --hash=sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355 \ + --hash=sha256:6c3bd3cde54cafb87d74d8db50b909705c62b17c2099b8f2e25b461882e544ff \ + --hash=sha256:6ef7afcd2d281494c0a9101d5c571970708ad911d028137cd558f02b851c08b4 \ + --hash=sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7 \ + --hash=sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20 \ + --hash=sha256:74d1b44c6cfc897df648cc9fdaa09bc3e7679926e6f96df05775d4fb3946571c \ + --hash=sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162 \ + --hash=sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228 \ + --hash=sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437 \ + --hash=sha256:76d9289ed3f7501012e05abb8358bbb129149dbd173f1f57a1bf1c22d19ab7cc \ + --hash=sha256:7931d8f1f67c4be9ba1dd9c451fb0eeca1a25b89e4d3f89e828fe12a519b782a \ + --hash=sha256:7b8b454bac16428b22560d0a1cf0a09875339cab69df61d7805bf48919415901 \ + --hash=sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4 \ + --hash=sha256:83d78376d0d4fd884e2c114d0621624b73d2aba4e2788182d286309ebdeed770 \ + --hash=sha256:852542f9481f4a62dbb5dd99e8ab7aedfeb8fb6342349a181d4036877410f525 \ + --hash=sha256:85267bd1aa8880a9c88a8cb71e18d3d64d2751a790e6ca6c27b8ccc724bcd5ad \ + --hash=sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a \ + --hash=sha256:88b9f257ca61b838b6f8094a62418421f87ac2a1069f7e896c36a7d86b5d4c29 \ + --hash=sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90 \ + --hash=sha256:92dea1ffe3714fa8eb6a314d2b3c773208d865a0e0d35e713ec54eea08a66250 \ + --hash=sha256:9407b6a5f0d675e8a827ad8742e1d6b49d9c1a1da5d952a67d50ef5f4170b18d \ + --hash=sha256:9408acf3270c4b6baad483865191e3e582b638b1654a007c62e3efe96f09a9a3 \ + --hash=sha256:955e8513d07a283056b1396e9a57ceddbd272d9252c14f154d450d227606eb54 \ + --hash=sha256:9db8ea4c388fdb0f780fe91346fd438657ea602d58348753d9fb265ce1bca67f \ + --hash=sha256:9eaa8b117dc8337728e834b9c6e2611f10c79e38f65157c4c38e9400286f5cb1 \ + --hash=sha256:a51a263952b1429e429ff236d2f5a21c5125437861baeed77f5e1cc2d2c7c6da \ + --hash=sha256:a6aa6315319a052b4ee378aa171959c898a6183f15c1e541821c5c59beaa0238 \ + --hash=sha256:aa12042de0171fad672b6c59df69106d20d5596e4f87b5e8f76df757a7c399aa \ + --hash=sha256:aaf7be1207676ac608a50cd08f102f6742dbfc70e8d60c4db1c6897f62f71523 \ + --hash=sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0 \ + --hash=sha256:b3f7e75f3015df442238cca659f8baa5f42ce2a8582727981cbfa15fee0ee205 \ + --hash=sha256:b9098e0049e88c6a24ff64545cdfc50807818ba6c1b739cae221bbbcbc58aad3 \ + --hash=sha256:ba55dce0a9b8ff59495ddd050a0225d58bd0983d09f87cfe2b6aec4f2c1234e4 \ + --hash=sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac \ + --hash=sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9 \ + --hash=sha256:bbf1d63eef84b2e8c89011b7f2235b1e0bf7dacc11cac9431fc6468e99ac77fb \ + --hash=sha256:c7940c1dc63eb37a67721b10d703247552416f719c4188c54e04334321351ced \ + --hash=sha256:c9bf3325c47b11b2e51bca0824ea217c7cd84491d8ac4eefd1e409705ef092bd \ + --hash=sha256:cdc8a402aaee9a798b50d8b827d7ecf75edc5fb35ea0f91f213ff927c15f4ff0 \ + --hash=sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da \ + --hash=sha256:cfe6ab8da05c01ba6fbea630377b5da2cd9bcbc6338510116b01c1bc939a2c18 \ + --hash=sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9 \ + --hash=sha256:d0ef46024e6a3d79c01ff13801cb19d0cad7fd859b15037aec74315540acc276 \ + --hash=sha256:d2e5a98f0ec99beb3c10e13b387f8db39106d53993f498b295f0c914328b1333 \ + --hash=sha256:da4cfb373035def307905d05041c1d06d8936452fe89d464743ae7fb8371078b \ + --hash=sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db \ + --hash=sha256:dced8146011d2bc2e883f9bd68618b8247387f4bbec46d7392b3c3b032640126 \ + --hash=sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9 \ + --hash=sha256:e368f200bbc2e4f905b8e71eb38b3c04333bddaa6a2464a6355487b02bb7fb09 \ + --hash=sha256:e391b1f0a8a5a10ab3b9bb6afcfd74f2175f24f8975fb87ecae700d1503cdee0 \ + --hash=sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec \ + --hash=sha256:e5d706eba36b4c4d5bc6c6377bb6568098765e990cfc21ee16d13963fab7b3e7 \ + --hash=sha256:ec20916e7b4cbfb1f12380e46486ec4bcbaa91a9c448b97023fde0d5bbf9e4ff \ + --hash=sha256:f1d072c2eb0ad60d4c183f3fb44ac6f73fb7a8f16a2694a91f988275cbf352f9 \ + --hash=sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192 \ + --hash=sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8 \ + --hash=sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d \ + --hash=sha256:fc579bf0f502e54926519451b920e875f433aceb4624a3646b3252b5caa9e0b6 \ + --hash=sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797 \ + --hash=sha256:fd32ea360bcbb92d28933fc05ed09bffcb1704ba3fc7942e81db0fd4f81a7892 \ + --hash=sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f # via matplotlib -lazy-loader==0.3 +lazy-loader==0.3 \ + --hash=sha256:1e9e76ee8631e264c62ce10006718e80b2cfc74340d17d1031e0f84af7478554 \ + --hash=sha256:3b68898e34f5b2a29daaaac172c6555512d0f32074f147e2254e4a6d9d838f37 # via librosa -librosa==0.10.1 +librosa==0.10.1 \ + --hash=sha256:7ab91d9f5fcb75ea14848a05d3b1f825cf8d0c42ca160d19ae6874f2de2d8223 \ + --hash=sha256:832f7d150d6dd08ed2aa08c0567a4be58330635c32ddd2208de9bc91300802c7 # via # -r audio_vec_embedding_requirements.in # panns-inference # torchlibrosa -linkify-it-py==2.0.3 +linkify-it-py==2.0.3 \ + --hash=sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048 \ + --hash=sha256:6bcbc417b0ac14323382aef5c5192c0075bf8a9d6b41820a2b66371eac6b6d79 # via markdown-it-py -llvmlite==0.42.0 +llvmlite==0.42.0 \ + --hash=sha256:05cb7e9b6ce69165ce4d1b994fbdedca0c62492e537b0cc86141b6e2c78d5888 \ + --hash=sha256:08fa9ab02b0d0179c688a4216b8939138266519aaa0aa94f1195a8542faedb56 \ + --hash=sha256:3366938e1bf63d26c34fbfb4c8e8d2ded57d11e0567d5bb243d89aab1eb56098 \ + --hash=sha256:43d65cc4e206c2e902c1004dd5418417c4efa6c1d04df05c6c5675a27e8ca90e \ + --hash=sha256:70f44ccc3c6220bd23e0ba698a63ec2a7d3205da0d848804807f37fc243e3f77 \ + --hash=sha256:763f8d8717a9073b9e0246998de89929071d15b47f254c10eef2310b9aac033d \ + --hash=sha256:7e0c4c11c8c2aa9b0701f91b799cb9134a6a6de51444eff5a9087fc7c1384275 \ + --hash=sha256:81e674c2fe85576e6c4474e8c7e7aba7901ac0196e864fe7985492b737dbab65 \ + --hash=sha256:8d90edf400b4ceb3a0e776b6c6e4656d05c7187c439587e06f86afceb66d2be5 \ + --hash=sha256:a78ab89f1924fc11482209f6799a7a3fc74ddc80425a7a3e0e8174af0e9e2301 \ + --hash=sha256:ae511caed28beaf1252dbaf5f40e663f533b79ceb408c874c01754cafabb9cbf \ + --hash=sha256:b2fce7d355068494d1e42202c7aff25d50c462584233013eb4470c33b995e3ee \ + --hash=sha256:bb3975787f13eb97629052edb5017f6c170eebc1c14a0433e8089e5db43bcce6 \ + --hash=sha256:bdd3888544538a94d7ec99e7c62a0cdd8833609c85f0c23fcb6c5c591aec60ad \ + --hash=sha256:c35da49666a21185d21b551fc3caf46a935d54d66969d32d72af109b5e7d2b6f \ + --hash=sha256:c5bece0cdf77f22379f19b1959ccd7aee518afa4afbd3656c6365865f84903f9 \ + --hash=sha256:d0936c2067a67fb8816c908d5457d63eba3e2b17e515c5fe00e5ee2bace06040 \ + --hash=sha256:d47494552559e00d81bfb836cf1c4d5a5062e54102cc5767d5aa1e77ccd2505c \ + --hash=sha256:d7599b65c7af7abbc978dbf345712c60fd596aa5670496561cc10e8a71cebfb2 \ + --hash=sha256:ebe66a86dc44634b59a3bc860c7b20d26d9aaffcd30364ebe8ba79161a9121f4 \ + --hash=sha256:f92b09243c0cc3f457da8b983f67bd8e1295d0f5b3746c7a1861d7a99403854a # via numba -markdown-it-py[linkify,plugins]==3.0.0 +markdown-it-py[linkify,plugins]==3.0.0 \ + --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ + --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb # via # mdit-py-plugins # rich # textual -markupsafe==2.1.5 +markupsafe==2.1.5 \ + --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ + --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ + --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ + --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ + --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ + --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ + --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ + --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ + --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ + --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ + --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ + --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ + --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 # via jinja2 -matplotlib==3.8.2 +matplotlib==3.8.2 \ + --hash=sha256:01a978b871b881ee76017152f1f1a0cbf6bd5f7b8ff8c96df0df1bd57d8755a1 \ + --hash=sha256:03f9d160a29e0b65c0790bb07f4f45d6a181b1ac33eb1bb0dd225986450148f0 \ + --hash=sha256:091275d18d942cf1ee9609c830a1bc36610607d8223b1b981c37d5c9fc3e46a4 \ + --hash=sha256:09796f89fb71a0c0e1e2f4bdaf63fb2cefc84446bb963ecdeb40dfee7dfa98c7 \ + --hash=sha256:0f4fc5d72b75e2c18e55eb32292659cf731d9d5b312a6eb036506304f4675630 \ + --hash=sha256:172f4d0fbac3383d39164c6caafd3255ce6fa58f08fc392513a0b1d3b89c4f89 \ + --hash=sha256:1b0f3b8ea0e99e233a4bcc44590f01604840d833c280ebb8fe5554fd3e6cfe8d \ + --hash=sha256:3773002da767f0a9323ba1a9b9b5d00d6257dbd2a93107233167cfb581f64717 \ + --hash=sha256:46a569130ff53798ea5f50afce7406e91fdc471ca1e0e26ba976a8c734c9427a \ + --hash=sha256:4c318c1e95e2f5926fba326f68177dee364aa791d6df022ceb91b8221bd0a627 \ + --hash=sha256:4e208f46cf6576a7624195aa047cb344a7f802e113bb1a06cfd4bee431de5e31 \ + --hash=sha256:533b0e3b0c6768eef8cbe4b583731ce25a91ab54a22f830db2b031e83cca9213 \ + --hash=sha256:5864bdd7da445e4e5e011b199bb67168cdad10b501750367c496420f2ad00843 \ + --hash=sha256:5ba9cbd8ac6cf422f3102622b20f8552d601bf8837e49a3afed188d560152788 \ + --hash=sha256:6f9c6976748a25e8b9be51ea028df49b8e561eed7809146da7a47dbecebab367 \ + --hash=sha256:7c48d9e221b637c017232e3760ed30b4e8d5dfd081daf327e829bf2a72c731b4 \ + --hash=sha256:830f00640c965c5b7f6bc32f0d4ce0c36dfe0379f7dd65b07a00c801713ec40a \ + --hash=sha256:9a5430836811b7652991939012f43d2808a2db9b64ee240387e8c43e2e5578c8 \ + --hash=sha256:aa11b3c6928a1e496c1a79917d51d4cd5d04f8a2e75f21df4949eeefdf697f4b \ + --hash=sha256:b78e4f2cedf303869b782071b55fdde5987fda3038e9d09e58c91cc261b5ad18 \ + --hash=sha256:b9576723858a78751d5aacd2497b8aef29ffea6d1c95981505877f7ac28215c6 \ + --hash=sha256:bddfb1db89bfaa855912261c805bd0e10218923cc262b9159a49c29a7a1c1afa \ + --hash=sha256:c7d36c2209d9136cd8e02fab1c0ddc185ce79bc914c45054a9f514e44c787917 \ + --hash=sha256:d1095fecf99eeb7384dabad4bf44b965f929a5f6079654b681193edf7169ec20 \ + --hash=sha256:d7b1704a530395aaf73912be741c04d181f82ca78084fbd80bc737be04848331 \ + --hash=sha256:d86593ccf546223eb75a39b44c32788e6f6440d13cfc4750c1c15d0fcb850b63 \ + --hash=sha256:deaed9ad4da0b1aea77fe0aa0cebb9ef611c70b3177be936a95e5d01fa05094f \ + --hash=sha256:ef8345b48e95cee45ff25192ed1f4857273117917a4dcd48e3905619bcd9c9b8 # via panns-inference -mdit-py-plugins==0.4.0 +mdit-py-plugins==0.4.0 \ + --hash=sha256:b51b3bb70691f57f974e257e367107857a93b36f322a9e6d44ca5bf28ec2def9 \ + --hash=sha256:d8ab27e9aed6c38aa716819fedfde15ca275715955f8a185a8e1cf90fb1d2c1b # via markdown-it-py -mdurl==0.1.2 +mdurl==0.1.2 \ + --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ + --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba # via markdown-it-py -memray==1.11.0 +memray==1.11.0 \ + --hash=sha256:016a68de76fc800554fcc7dc473e48092d749b3b4302a6babd2e592a5fe8ae5e \ + --hash=sha256:0814a234cceaa664184ede2ebada2923e89c6b358b5bb9d71409a35ecae1623b \ + --hash=sha256:0a5b31192d8a8d44d12320873f231c22e6ea5aed079b880cf21556ab34b3f526 \ + --hash=sha256:0ea78c073e8c5c408d4034f2da04031d0dfa8e1eface5512b350d81766aebb25 \ + --hash=sha256:0ed869e4a82722a4558da749f39d6079f2ef5e767d1399d2d090b04742e2b3f2 \ + --hash=sha256:1534520c3c3e6b8234fe13c6d36bd74ab855dc19cef6e9d190a2a0b48fd2d83d \ + --hash=sha256:16a6ce38566029433323f7c0dfc76732a47158eee3de4c1734f00ad36d953181 \ + --hash=sha256:1dbb599c66ffaf1467c4f96aabbecbf30b58963366f17e07bea869c95bec7f72 \ + --hash=sha256:24894d1f5c63cdaba137199ad989d8882485ecb4190d1ff7dc5214ac84484a06 \ + --hash=sha256:266736c1471ddfb59d03e6d78f93f55fd0ab2fe800b9929fc5256d9208efc4a2 \ + --hash=sha256:39bbf9e74c3933a84c22e047920a0f6e2d491ba943a39f4aa041f1c0422c8403 \ + --hash=sha256:3fc83741aedd6daa9c49ecee0a8e0048f278b6eb1ae22bdcf9b4523be7ba7106 \ + --hash=sha256:50889d09343993513113b21ad86a7d56e128abdb9a526c4fd394df7a3a7bda78 \ + --hash=sha256:68f15ff78a6f44344599209bc0d1e5e5d608e81bd2c9b5f02824d08751cf07d9 \ + --hash=sha256:6bf07fef1a66b96126bc0f398e01c3860e59f01eb89b244cfdcc36e70b68edad \ + --hash=sha256:6e9a74eaa673cf4c87302bd0845586a072dba7fc172a3960af64b1ad5cedf00f \ + --hash=sha256:6f46e00d4a10a7fb73b560e57689a68ca3661bf969e228093d20fc1313c42f0b \ + --hash=sha256:72df1994a39018c4687a75c1750b7be3bfcd5c0c5e79e9ed73b552d4d5077588 \ + --hash=sha256:7824202d23e3060c7a0380e1a9bb6f131f47ee29c6f30b322e844648ea3aa9da \ + --hash=sha256:7fb0ae51e06e90336573ed9454cc05541075756e633023550086f8f1882bd38b \ + --hash=sha256:89fdfbdd8ec5d9fad75b7ee487de6b2394856235511b1950c3505e78afbc8170 \ + --hash=sha256:8b2819a6612b771ffab2d80f518cf602aeec7bacee9659c6f7af40596fbfe9f6 \ + --hash=sha256:9076942a66a03a7a3e668314cd00f720db31116df7e8626808150e4e22a079cd \ + --hash=sha256:9c577e81f8f7cd1418c7bfae4651d9bb3f16b72200e4b8d9b80c71aeeab64bb8 \ + --hash=sha256:9fbb2a1a82e24f0f90a9bb4ca7af6174ce91c5f3b3ce58e0b16361e989ea7cc1 \ + --hash=sha256:a4f012204aaeb233c5414e776d04d468d7a542da259811b059a89a519032e2ec \ + --hash=sha256:ad1aeec47f1abb37ca6bd4a5a8be8c556e7456fe2e4a5c79b7bc32eaac916b24 \ + --hash=sha256:ad1f2bb1223759e6b9755b6139087f6bcbaca1718cfed70c31aba0943542b431 \ + --hash=sha256:b8e02e8bbe03826c5e65c2cc28760b1d0bc59f9bee6d6769c01e800b50542f5b \ + --hash=sha256:c3dfb2c20fbbb128489f7b9f5bd2704bae6f77dba11c253cccf8eb8299697fe4 \ + --hash=sha256:c5b8860e3cc7df4f7f451e043aabe60a3812f99c3e308f0c4c0e7a03d72c1563 \ + --hash=sha256:db4ebee46c24212a357641fe9fb893c842bfc66bee25546ff2efe9350e850138 \ + --hash=sha256:dd5a91fc0632896b524ad7b121146e991176252cd072bb06ea2596042232a04f \ + --hash=sha256:eedea42d13b3630faa5591e298659f34e6ead06aa867050def12de6cc03e1a97 \ + --hash=sha256:f72c111a4868d0f2b4e4fb9ba4da736db8c73b6fb0ac6e6f2deca8ee540eb688 \ + --hash=sha256:f83b34f92781f22ef6a7b7f4a67258deb516a06f86c713da33211a6db4fc9ea6 \ + --hash=sha256:fc9372c1f0161b245a235b12ff3d5dc1a05216ad3fde158e62d1143b7f3b99cc # via -r audio_vec_embedding_requirements.in -mpmath==1.3.0 +mpmath==1.3.0 \ + --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ + --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c # via sympy -msgpack==1.0.7 +msgpack==1.0.7 \ + --hash=sha256:04ad6069c86e531682f9e1e71b71c1c3937d6014a7c3e9edd2aa81ad58842862 \ + --hash=sha256:0bfdd914e55e0d2c9e1526de210f6fe8ffe9705f2b1dfcc4aecc92a4cb4b533d \ + --hash=sha256:1dc93e8e4653bdb5910aed79f11e165c85732067614f180f70534f056da97db3 \ + --hash=sha256:1e2d69948e4132813b8d1131f29f9101bc2c915f26089a6d632001a5c1349672 \ + --hash=sha256:235a31ec7db685f5c82233bddf9858748b89b8119bf4538d514536c485c15fe0 \ + --hash=sha256:27dcd6f46a21c18fa5e5deed92a43d4554e3df8d8ca5a47bf0615d6a5f39dbc9 \ + --hash=sha256:28efb066cde83c479dfe5a48141a53bc7e5f13f785b92ddde336c716663039ee \ + --hash=sha256:3476fae43db72bd11f29a5147ae2f3cb22e2f1a91d575ef130d2bf49afd21c46 \ + --hash=sha256:36e17c4592231a7dbd2ed09027823ab295d2791b3b1efb2aee874b10548b7524 \ + --hash=sha256:384d779f0d6f1b110eae74cb0659d9aa6ff35aaf547b3955abf2ab4c901c4819 \ + --hash=sha256:38949d30b11ae5f95c3c91917ee7a6b239f5ec276f271f28638dec9156f82cfc \ + --hash=sha256:3967e4ad1aa9da62fd53e346ed17d7b2e922cba5ab93bdd46febcac39be636fc \ + --hash=sha256:3e7bf4442b310ff154b7bb9d81eb2c016b7d597e364f97d72b1acc3817a0fdc1 \ + --hash=sha256:3f0c8c6dfa6605ab8ff0611995ee30d4f9fcff89966cf562733b4008a3d60d82 \ + --hash=sha256:484ae3240666ad34cfa31eea7b8c6cd2f1fdaae21d73ce2974211df099a95d81 \ + --hash=sha256:4a7b4f35de6a304b5533c238bee86b670b75b03d31b7797929caa7a624b5dda6 \ + --hash=sha256:4cb14ce54d9b857be9591ac364cb08dc2d6a5c4318c1182cb1d02274029d590d \ + --hash=sha256:4e71bc4416de195d6e9b4ee93ad3f2f6b2ce11d042b4d7a7ee00bbe0358bd0c2 \ + --hash=sha256:52700dc63a4676669b341ba33520f4d6e43d3ca58d422e22ba66d1736b0a6e4c \ + --hash=sha256:572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87 \ + --hash=sha256:576eb384292b139821c41995523654ad82d1916da6a60cff129c715a6223ea84 \ + --hash=sha256:5b0bf0effb196ed76b7ad883848143427a73c355ae8e569fa538365064188b8e \ + --hash=sha256:5b6ccc0c85916998d788b295765ea0e9cb9aac7e4a8ed71d12e7d8ac31c23c95 \ + --hash=sha256:5ed82f5a7af3697b1c4786053736f24a0efd0a1b8a130d4c7bfee4b9ded0f08f \ + --hash=sha256:6d4c80667de2e36970ebf74f42d1088cc9ee7ef5f4e8c35eee1b40eafd33ca5b \ + --hash=sha256:730076207cb816138cf1af7f7237b208340a2c5e749707457d70705715c93b93 \ + --hash=sha256:7687e22a31e976a0e7fc99c2f4d11ca45eff652a81eb8c8085e9609298916dcf \ + --hash=sha256:822ea70dc4018c7e6223f13affd1c5c30c0f5c12ac1f96cd8e9949acddb48a61 \ + --hash=sha256:84b0daf226913133f899ea9b30618722d45feffa67e4fe867b0b5ae83a34060c \ + --hash=sha256:85765fdf4b27eb5086f05ac0491090fc76f4f2b28e09d9350c31aac25a5aaff8 \ + --hash=sha256:8dd178c4c80706546702c59529ffc005681bd6dc2ea234c450661b205445a34d \ + --hash=sha256:8f5b234f567cf76ee489502ceb7165c2a5cecec081db2b37e35332b537f8157c \ + --hash=sha256:98bbd754a422a0b123c66a4c341de0474cad4a5c10c164ceed6ea090f3563db4 \ + --hash=sha256:993584fc821c58d5993521bfdcd31a4adf025c7d745bbd4d12ccfecf695af5ba \ + --hash=sha256:a40821a89dc373d6427e2b44b572efc36a2778d3f543299e2f24eb1a5de65415 \ + --hash=sha256:b291f0ee7961a597cbbcc77709374087fa2a9afe7bdb6a40dbbd9b127e79afee \ + --hash=sha256:b573a43ef7c368ba4ea06050a957c2a7550f729c31f11dd616d2ac4aba99888d \ + --hash=sha256:b610ff0f24e9f11c9ae653c67ff8cc03c075131401b3e5ef4b82570d1728f8a9 \ + --hash=sha256:bdf38ba2d393c7911ae989c3bbba510ebbcdf4ecbdbfec36272abe350c454075 \ + --hash=sha256:bfef2bb6ef068827bbd021017a107194956918ab43ce4d6dc945ffa13efbc25f \ + --hash=sha256:cab3db8bab4b7e635c1c97270d7a4b2a90c070b33cbc00c99ef3f9be03d3e1f7 \ + --hash=sha256:cb70766519500281815dfd7a87d3a178acf7ce95390544b8c90587d76b227681 \ + --hash=sha256:cca1b62fe70d761a282496b96a5e51c44c213e410a964bdffe0928e611368329 \ + --hash=sha256:ccf9a39706b604d884d2cb1e27fe973bc55f2890c52f38df742bc1d79ab9f5e1 \ + --hash=sha256:dc43f1ec66eb8440567186ae2f8c447d91e0372d793dfe8c222aec857b81a8cf \ + --hash=sha256:dd632777ff3beaaf629f1ab4396caf7ba0bdd075d948a69460d13d44357aca4c \ + --hash=sha256:e45ae4927759289c30ccba8d9fdce62bb414977ba158286b5ddaf8df2cddb5c5 \ + --hash=sha256:e50ebce52f41370707f1e21a59514e3375e3edd6e1832f5e5235237db933c98b \ + --hash=sha256:ebbbba226f0a108a7366bf4b59bf0f30a12fd5e75100c630267d94d7f0ad20e5 \ + --hash=sha256:ec79ff6159dffcc30853b2ad612ed572af86c92b5168aa3fc01a67b0fa40665e \ + --hash=sha256:f0936e08e0003f66bfd97e74ee530427707297b0d0361247e9b4f59ab78ddc8b \ + --hash=sha256:f26a07a6e877c76a88e3cecac8531908d980d3d5067ff69213653649ec0f60ad \ + --hash=sha256:f64e376cd20d3f030190e8c32e1c64582eba56ac6dc7d5b0b49a9d44021b52fd \ + --hash=sha256:f6ffbc252eb0d229aeb2f9ad051200668fc3a9aaa8994e49f0cb2ffe2b7867e7 \ + --hash=sha256:f9a7c509542db4eceed3dcf21ee5267ab565a83555c9b88a8109dcecc4709002 \ + --hash=sha256:ff1d0899f104f3921d94579a5638847f783c9b04f2d5f229392ca77fba5b82fc # via librosa -networkx==3.2.1 +networkx==3.2.1 \ + --hash=sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6 \ + --hash=sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2 # via torch -numba==0.59.0 +numba==0.59.0 \ + --hash=sha256:0307ee91b24500bb7e64d8a109848baf3a3905df48ce142b8ac60aaa406a0400 \ + --hash=sha256:1192d6b2906bf3ff72b1d97458724d98860ab86a91abdd4cfd9328432b661e31 \ + --hash=sha256:12b9b064a3e4ad00e2371fc5212ef0396c80f41caec9b5ec391c8b04b6eaf2a8 \ + --hash=sha256:32bd0a41525ec0b1b853da244808f4e5333867df3c43c30c33f89cf20b9c2b63 \ + --hash=sha256:4981659220b61a03c1e557654027d271f56f3087448967a55c79a0e5f926de62 \ + --hash=sha256:5516a469514bfae52a9d7989db4940653a5cbfac106f44cb9c50133b7ad6224b \ + --hash=sha256:6feb1504bb432280f900deaf4b1dadcee68812209500ed3f81c375cbceab24dc \ + --hash=sha256:70d26ba589f764be45ea8c272caa467dbe882b9676f6749fe6f42678091f5f21 \ + --hash=sha256:753dc601a159861808cc3207bad5c17724d3b69552fd22768fddbf302a817a4c \ + --hash=sha256:8cbef55b73741b5eea2dbaf1b0590b14977ca95a13a07d200b794f8f6833a01c \ + --hash=sha256:8d061d800473fb8fef76a455221f4ad649a53f5e0f96e3f6c8b8553ee6fa98fa \ + --hash=sha256:90efb436d3413809fcd15298c6d395cb7d98184350472588356ccf19db9e37c8 \ + --hash=sha256:944faad25ee23ea9dda582bfb0189fb9f4fc232359a80ab2a028b94c14ce2b1d \ + --hash=sha256:9e20736bf62e61f8353fb71b0d3a1efba636c7a303d511600fc57648b55823ed \ + --hash=sha256:c086a434e7d3891ce5dfd3d1e7ee8102ac1e733962098578b507864120559ceb \ + --hash=sha256:cd3dac45e25d927dcb65d44fb3a973994f5add2b15add13337844afe669dd1ba \ + --hash=sha256:ce62bc0e6dd5264e7ff7f34f41786889fa81a6b860662f824aa7532537a7bee0 \ + --hash=sha256:d540f69a8245fb714419c2209e9af6104e568eb97623adc8943642e61f5d6d8e \ + --hash=sha256:e125f7d69968118c28ec0eed9fbedd75440e64214b8d2eac033c22c04db48492 \ + --hash=sha256:e86e6786aec31d2002122199486e10bbc0dc40f78d76364cded375912b13614c \ + --hash=sha256:fe4d7562d1eed754a7511ed7ba962067f198f86909741c5c6e18c4f1819b1f47 # via librosa -numpy==1.26.4 +numpy==1.26.4 \ + --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ + --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ + --hash=sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20 \ + --hash=sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0 \ + --hash=sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010 \ + --hash=sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a \ + --hash=sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea \ + --hash=sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c \ + --hash=sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 \ + --hash=sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110 \ + --hash=sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be \ + --hash=sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a \ + --hash=sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a \ + --hash=sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 \ + --hash=sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed \ + --hash=sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd \ + --hash=sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c \ + --hash=sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e \ + --hash=sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0 \ + --hash=sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c \ + --hash=sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a \ + --hash=sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b \ + --hash=sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0 \ + --hash=sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6 \ + --hash=sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2 \ + --hash=sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a \ + --hash=sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30 \ + --hash=sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218 \ + --hash=sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5 \ + --hash=sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07 \ + --hash=sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 \ + --hash=sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4 \ + --hash=sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764 \ + --hash=sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef \ + --hash=sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3 \ + --hash=sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f # via # -r audio_vec_embedding_requirements.in # contourpy @@ -91,60 +728,328 @@ numpy==1.26.4 # scipy # soxr # torchlibrosa -packaging==23.2 +packaging==23.2 \ + --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ + --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 # via # matplotlib # pooch -panns-inference==0.1.1 +panns-inference==0.1.1 \ + --hash=sha256:97f6b56b6c9467cf00e21f041e1f88933188c65c1b5ca64eeb3c92e37fb27fc2 \ + --hash=sha256:f8074268513571775e154294729b66fc0ccbdbeceb5c8f6eaa9670664e40c03d # via -r audio_vec_embedding_requirements.in -pillow==10.2.0 +pillow==10.2.0 \ + --hash=sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8 \ + --hash=sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39 \ + --hash=sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac \ + --hash=sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869 \ + --hash=sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e \ + --hash=sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04 \ + --hash=sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9 \ + --hash=sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e \ + --hash=sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe \ + --hash=sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef \ + --hash=sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 \ + --hash=sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa \ + --hash=sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f \ + --hash=sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f \ + --hash=sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e \ + --hash=sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a \ + --hash=sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2 \ + --hash=sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2 \ + --hash=sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 \ + --hash=sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a \ + --hash=sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2 \ + --hash=sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213 \ + --hash=sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563 \ + --hash=sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591 \ + --hash=sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c \ + --hash=sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2 \ + --hash=sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb \ + --hash=sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757 \ + --hash=sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0 \ + --hash=sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452 \ + --hash=sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad \ + --hash=sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01 \ + --hash=sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f \ + --hash=sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5 \ + --hash=sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61 \ + --hash=sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e \ + --hash=sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b \ + --hash=sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068 \ + --hash=sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9 \ + --hash=sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588 \ + --hash=sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483 \ + --hash=sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f \ + --hash=sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 \ + --hash=sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7 \ + --hash=sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311 \ + --hash=sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6 \ + --hash=sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72 \ + --hash=sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6 \ + --hash=sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129 \ + --hash=sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13 \ + --hash=sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67 \ + --hash=sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c \ + --hash=sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516 \ + --hash=sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e \ + --hash=sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e \ + --hash=sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364 \ + --hash=sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023 \ + --hash=sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1 \ + --hash=sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04 \ + --hash=sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d \ + --hash=sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a \ + --hash=sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7 \ + --hash=sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb \ + --hash=sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4 \ + --hash=sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e \ + --hash=sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1 \ + --hash=sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48 \ + --hash=sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868 # via matplotlib -platformdirs==4.2.0 +platformdirs==4.2.0 \ + --hash=sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 \ + --hash=sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768 # via pooch -pooch==1.8.0 +pooch==1.8.0 \ + --hash=sha256:1bfba436d9e2ad5199ccad3583cca8c241b8736b5bb23fe67c213d52650dbb66 \ + --hash=sha256:f59981fd5b9b5d032dcde8f4a11eaa492c2ac6343fae3596a2fdae35fc54b0a0 # via librosa -pycparser==2.21 +pycparser==2.21 \ + --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ + --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pygments==2.17.2 +pygments==2.17.2 \ + --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ + --hash=sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367 # via rich -pyinstrument==4.6.2 +pyinstrument==4.6.2 \ + --hash=sha256:0002ee517ed8502bbda6eb2bb1ba8f95a55492fcdf03811ba13d4806e50dd7f6 \ + --hash=sha256:01fc45dedceec3df81668d702bca6d400d956c8b8494abc206638c167c78dfd9 \ + --hash=sha256:06a8578b2943eb1dbbf281e1e59e44246acfefd79e1b06d4950f01b693de12af \ + --hash=sha256:08fdc7f88c989316fa47805234c37a40fafe7b614afd8ae863f0afa9d1707b37 \ + --hash=sha256:0de2c1714a37a820033b19cf134ead43299a02662f1379140974a9ab733c5f3a \ + --hash=sha256:113d2fc534c9ca7b6b5661d6ada05515bf318f6eb34e8d05860fe49eb7cfe17e \ + --hash=sha256:1e474c56da636253dfdca7cd1998b240d6b39f7ed34777362db69224fcf053b1 \ + --hash=sha256:20e15b4e1d29ba0b7fc81aac50351e0dc0d7e911e93771ebc3f408e864a2c93b \ + --hash=sha256:23c3e3ca8553b9aac09bd978c73d21b9032c707ac6d803bae6a20ecc048df4a8 \ + --hash=sha256:28af084aa84bbfd3620ebe71d5f9a0deca4451267f363738ca824f733de55056 \ + --hash=sha256:2e625fc6ffcd4fd420493edd8276179c3f784df207bef4c2192725c1b310534c \ + --hash=sha256:2fd8e547cf3df5f0ec6e4dffbe2e857f6b28eda51b71c3c0b5a2fc0646527835 \ + --hash=sha256:3098cd72b71a322a72dafeb4ba5c566465e193d2030adad4c09566bd2f89bf4f \ + --hash=sha256:32ec8db6896b94af790a530e1e0edad4d0f941a0ab8dd9073e5993e7ea46af7d \ + --hash=sha256:34e59e91c88ec9ad5630c0964eca823949005e97736bfa838beb4789e94912a2 \ + --hash=sha256:3a165e0d2deb212d4cf439383982a831682009e1b08733c568cac88c89784e62 \ + --hash=sha256:46992e855d630575ec635eeca0068a8ddf423d4fd32ea0875a94e9f8688f0b95 \ + --hash=sha256:4fba3244e94c117bf4d9b30b8852bbdcd510e7329fdd5c7c8b3799e00a9215a8 \ + --hash=sha256:5b6e161ef268d43ee6bbfae7fd2cdd0a52c099ddd21001c126ca1805dc906539 \ + --hash=sha256:5ebeba952c0056dcc9b9355328c78c4b5c2a33b4b4276a9157a3ab589f3d1bac \ + --hash=sha256:5f329f5534ca069420246f5ce57270d975229bcb92a3a3fd6b2ca086527d9764 \ + --hash=sha256:62f6014d2b928b181a52483e7c7b82f2c27e22c577417d1681153e5518f03317 \ + --hash=sha256:67268bb0d579330cff40fd1c90b8510363ca1a0e7204225840614068658dab77 \ + --hash=sha256:6ba8e368d0421f15ba6366dfd60ec131c1b46505d021477e0f865d26cf35a605 \ + --hash=sha256:6c0f0e1d8f8c70faa90ff57f78ac0dda774b52ea0bfb2d9f0f41ce6f3e7c869e \ + --hash=sha256:6c761372945e60fc1396b7a49f30592e8474e70a558f1a87346d27c8c4ce50f7 \ + --hash=sha256:6ed4e8c6c84e0e6429ba7008a66e435ede2d8cb027794c20923c55669d9c5633 \ + --hash=sha256:73db0c2c99119c65b075feee76e903b4ed82e59440fe8b5724acf5c7cb24721f \ + --hash=sha256:7a1b1cd768ea7ea9ab6f5490f7e74431321bcc463e9441dbc2f769617252d9e2 \ + --hash=sha256:7ba858b3d6f6e5597c641edcc0e7e464f85aba86d71bc3b3592cb89897bf43f6 \ + --hash=sha256:7bd3da31c46f1c1cb7ae89031725f6a1d1015c2041d9c753fe23980f5f9fd86c \ + --hash=sha256:7c671057fad22ee3ded897a6a361204ea2538e44c1233cad0e8e30f6d27f33db \ + --hash=sha256:803ac64e526473d64283f504df3b0d5c2c203ea9603cab428641538ffdc753a7 \ + --hash=sha256:8a386b9d09d167451fb2111eaf86aabf6e094fed42c15f62ec51d6980bce7d96 \ + --hash=sha256:8a9791bf8916c1cf439c202fded32de93354b0f57328f303d71950b0027c7811 \ + --hash=sha256:8b3c44cb037ad0d6e9d9a48c14d856254ada641fbd0ae9de40da045fc2226a2a \ + --hash=sha256:8d104b7a7899d5fa4c5bf1ceb0c1a070615a72c5dc17bc321b612467ad5c5d88 \ + --hash=sha256:90350533396071cb2543affe01e40bf534c35cb0d4b8fa9fdb0f052f9ca2cfe3 \ + --hash=sha256:a59fc4f7db738a094823afe6422509fa5816a7bf74e768ce5a7a2ddd91af40ac \ + --hash=sha256:af1a953bce9fd530040895d01ff3de485e25e1576dccb014f76ba9131376fcad \ + --hash=sha256:b082df0bbf71251a7f4880a12ed28421dba84ea7110bb376e0533067a4eaff40 \ + --hash=sha256:b2b66ff0b16c8ecf1ec22de001cfff46872b2c163c62429055105564eef50b2e \ + --hash=sha256:b55983a884f083f93f0fc6d12ff8df0acd1e2fb0580d2f4c7bfe6def33a84b58 \ + --hash=sha256:baf375953b02fe94d00e716f060e60211ede73f49512b96687335f7071adb153 \ + --hash=sha256:be9901f17ac2f527c352f2fdca3d717c1d7f2ce8a70bad5a490fc8cc5d2a6007 \ + --hash=sha256:cd0320c39e99e3c0a3129d1ed010ac41e5a7eb96fb79900d270080a97962e995 \ + --hash=sha256:d02f31fa13a9e8dc702a113878419deba859563a32474c9f68e04619d43d6f01 \ + --hash=sha256:d4b559322f30509ad8f082561792352d0805b3edfa508e492a36041fdc009259 \ + --hash=sha256:d4dcdcc7ba224a0c5edfbd00b0f530f5aed2b26da5aaa2f9af5519d4aa8c7e41 \ + --hash=sha256:d6162615e783c59e36f2d7caf903a7e3ecb6b32d4a4ae8907f2760b2ef395bf6 \ + --hash=sha256:da58f265326f3cf3975366ccb8b39014f1e69ff8327958a089858d71c633d654 \ + --hash=sha256:dcb5c8d763c5df55131670ba2a01a8aebd0d490a789904a55eb6a8b8d497f110 \ + --hash=sha256:dd5c53a0159126b5ce7cbc4994433c9c671e057c85297ff32645166a06ad2c50 \ + --hash=sha256:dd6007d3c2e318e09e582435dd8d111cccf30d342af66886b783208813caf3d7 \ + --hash=sha256:e2e554b1bb0df78f5ce8a92df75b664912ca93aa94208386102af454ec31b647 \ + --hash=sha256:e3813c8ecfab9d7d855c5f0f71f11793cf1507f40401aa33575c7fd613577c23 \ + --hash=sha256:e63f4916001aa9c625976a50779282e0a5b5e9b17c52a50ef4c651e468ed5b88 \ + --hash=sha256:edca46f04a573ac2fb11a84b937844e6a109f38f80f4b422222fb5be8ecad8cb \ + --hash=sha256:fdc0a53b27e5d8e47147489c7dab596ddd1756b1e053217ef5bc6718567099ff \ + --hash=sha256:feebcf860f955401df30d029ec8de7a0c5515d24ea809736430fd1219686fe14 # via -r audio_vec_embedding_requirements.in -pyparsing==3.1.1 +pyparsing==3.1.1 \ + --hash=sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb \ + --hash=sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db # via matplotlib -python-dateutil==2.8.2 +python-dateutil==2.8.2 \ + --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ + --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 # via matplotlib -requests==2.31.0 +requests==2.31.0 \ + --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ + --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via pooch -rich==13.7.1 +rich==13.7.1 \ + --hash=sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222 \ + --hash=sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432 # via # memray # textual -scikit-learn==1.4.0 +scikit-learn==1.4.0 \ + --hash=sha256:05fc5915b716c6cc60a438c250108e9a9445b522975ed37e416d5ea4f9a63381 \ + --hash=sha256:0aba2a20d89936d6e72d95d05e3bf1db55bca5c5920926ad7b92c34f5e7d3bbe \ + --hash=sha256:0db8e22c42f7980fe5eb22069b1f84c48966f3e0d23a01afde5999e3987a2501 \ + --hash=sha256:0f33bbafb310c26b81c4d41ecaebdbc1f63498a3f13461d50ed9a2e8f24d28e4 \ + --hash=sha256:11b3b140f70fbc9f6a08884631ae8dd60a4bb2d7d6d1de92738ea42b740d8992 \ + --hash=sha256:1d041bc95006b545b59e458399e3175ab11ca7a03dc9a74a573ac891f5df1489 \ + --hash=sha256:2404659fedec40eeafa310cd14d613e564d13dbf8f3c752d31c095195ec05de6 \ + --hash=sha256:27ae4b0f1b2c77107c096a7e05b33458354107b47775428d1f11b23e30a73e8a \ + --hash=sha256:2b465dd1dcd237b7b1dcd1a9048ccbf70a98c659474324fa708464c3a2533fad \ + --hash=sha256:2bac5d56b992f8f06816f2cd321eb86071c6f6d44bb4b1cb3d626525820d754b \ + --hash=sha256:349669b01435bc4dbf25c6410b0892073befdaec52637d1a1d1ff53865dc8db3 \ + --hash=sha256:53b9e29177897c37e2ff9d4ba6ca12fdb156e22523e463db05def303f5c72b5c \ + --hash=sha256:5c5c62ffb52c3ffb755eb21fa74cc2cbf2c521bd53f5c04eaa10011dbecf5f80 \ + --hash=sha256:74812c9eabb265be69d738a8ea8d4884917a59637fcbf88a5f0e9020498bc6b3 \ + --hash=sha256:76986d22e884ab062b1beecdd92379656e9d3789ecc1f9870923c178de55f9fe \ + --hash=sha256:785ce3c352bf697adfda357c3922c94517a9376002971bc5ea50896144bc8916 \ + --hash=sha256:7f0d2018ac6fa055dab65fe8a485967990d33c672d55bc254c56c35287b02fab \ + --hash=sha256:80a21de63275f8bcd7877b3e781679d2ff1eddfed515a599f95b2502a3283d42 \ + --hash=sha256:833999872e2920ce00f3a50839946bdac7539454e200eb6db54898a41f4bfd43 \ + --hash=sha256:842b7d6989f3c574685e18da6f91223eb32301d0f93903dd399894250835a6f7 \ + --hash=sha256:88bcb586fdff865372df1bc6be88bb7e6f9e0aa080dab9f54f5cac7eca8e2b6b \ + --hash=sha256:8b6ac1442ec714b4911e5aef8afd82c691b5c88b525ea58299d455acc4e8dcec \ + --hash=sha256:91a8918c415c4b4bf1d60c38d32958849a9191c2428ab35d30b78354085c7c7a \ + --hash=sha256:923d778f378ebacca2c672ab1740e5a413e437fb45ab45ab02578f8b689e5d43 \ + --hash=sha256:970ec697accaef10fb4f51763f3a7b1250f9f0553cf05514d0e94905322a0172 \ + --hash=sha256:a0e2427d9ef46477625ab9b55c1882844fe6fc500f418c3f8e650200182457bc \ + --hash=sha256:a6372c90bbf302387792108379f1ec77719c1618d88496d0df30cb8e370b4661 \ + --hash=sha256:a8341eabdc754d5ab91641a7763243845e96b6d68e03e472531e88a4f1b09f21 \ + --hash=sha256:aad2a63e0dd386b92da3270887a29b308af4d7c750d8c4995dfd9a4798691bcc \ + --hash=sha256:c408b46b2fd61952d519ea1af2f8f0a7a703e1433923ab1704c4131520b2083b \ + --hash=sha256:cb8f044a8f5962613ce1feb4351d66f8d784bd072d36393582f351859b065f7d \ + --hash=sha256:d1f6bce875ac2bb6b52514f67c185c564ccd299a05b65b7bab091a4c13dde12d \ + --hash=sha256:d3d75343940e7bf9b85c830c93d34039fa015eeb341c5c0b4cd7a90dadfe00d4 \ + --hash=sha256:d4373c984eba20e393216edd51a3e3eede56cbe93d4247516d205643c3b93121 \ + --hash=sha256:d439c584e58434d0350701bd33f6c10b309e851fccaf41c121aed55f6851d8cf \ + --hash=sha256:d77df3d1e15fc37a9329999979fa7868ba8655dbab21fe97fc7ddabac9e08cc7 \ + --hash=sha256:e22446ad89f1cb7657f0d849dcdc345b48e2d10afa3daf2925fdb740f85b714c \ + --hash=sha256:e7eef6ea2ed289af40e88c0be9f7704ca8b5de18508a06897c3fe21e0905efdf \ + --hash=sha256:e98632da8f6410e6fb6bf66937712c949b4010600ccd3f22a5388a83e610cc3c \ + --hash=sha256:f77674647dd31f56cb12ed13ed25b6ed43a056fffef051715022d2ebffd7a7d1 \ + --hash=sha256:fce93a7473e2f4ee4cc280210968288d6a7d7ad8dc6fa7bb7892145e407085f9 # via librosa -scipy==1.12.0 +scipy==1.12.0 \ + --hash=sha256:196ebad3a4882081f62a5bf4aeb7326aa34b110e533aab23e4374fcccb0890dc \ + --hash=sha256:408c68423f9de16cb9e602528be4ce0d6312b05001f3de61fe9ec8b1263cad08 \ + --hash=sha256:4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3 \ + --hash=sha256:4c1020cad92772bf44b8e4cdabc1df5d87376cb219742549ef69fc9fd86282dd \ + --hash=sha256:5adfad5dbf0163397beb4aca679187d24aec085343755fcdbdeb32b3679f254c \ + --hash=sha256:5e32847e08da8d895ce09d108a494d9eb78974cf6de23063f93306a3e419960c \ + --hash=sha256:6546dc2c11a9df6926afcbdd8a3edec28566e4e785b915e849348c6dd9f3f490 \ + --hash=sha256:730badef9b827b368f351eacae2e82da414e13cf8bd5051b4bdfd720271a5371 \ + --hash=sha256:75ea2a144096b5e39402e2ff53a36fecfd3b960d786b7efd3c180e29c39e53f2 \ + --hash=sha256:78e4402e140879387187f7f25d91cc592b3501a2e51dfb320f48dfb73565f10b \ + --hash=sha256:8b8066bce124ee5531d12a74b617d9ac0ea59245246410e19bca549656d9a40a \ + --hash=sha256:8bee4993817e204d761dba10dbab0774ba5a8612e57e81319ea04d84945375ba \ + --hash=sha256:913d6e7956c3a671de3b05ccb66b11bc293f56bfdef040583a7221d9e22a2e35 \ + --hash=sha256:95e5c750d55cf518c398a8240571b0e0782c2d5a703250872f36eaf737751338 \ + --hash=sha256:9c39f92041f490422924dfdb782527a4abddf4707616e07b021de33467f917bc \ + --hash=sha256:a24024d45ce9a675c1fb8494e8e5244efea1c7a09c60beb1eeb80373d0fecc70 \ + --hash=sha256:a7ebda398f86e56178c2fa94cad15bf457a218a54a35c2a7b4490b9f9cb2676c \ + --hash=sha256:b360f1b6b2f742781299514e99ff560d1fe9bd1bff2712894b52abe528d1fd1e \ + --hash=sha256:bba1b0c7256ad75401c73e4b3cf09d1f176e9bd4248f0d3112170fb2ec4db067 \ + --hash=sha256:c3003652496f6e7c387b1cf63f4bb720951cfa18907e998ea551e6de51a04467 \ + --hash=sha256:e53958531a7c695ff66c2e7bb7b79560ffdc562e2051644c5576c39ff8efb563 \ + --hash=sha256:e646d8571804a304e1da01040d21577685ce8e2db08ac58e543eaca063453e1c \ + --hash=sha256:e7e76cc48638228212c747ada851ef355c2bb5e7f939e10952bc504c11f4e372 \ + --hash=sha256:f5f00ebaf8de24d14b8449981a2842d404152774c1a1d880c901bf454cb8e2a1 \ + --hash=sha256:f7ce148dffcd64ade37b2df9315541f9adad6efcaa86866ee7dd5db0c8f041c3 # via # librosa # scikit-learn -six==1.16.0 +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 # via python-dateutil -soundfile==0.12.1 +soundfile==0.12.1 \ + --hash=sha256:074247b771a181859d2bc1f98b5ebf6d5153d2c397b86ee9e29ba602a8dfe2a6 \ + --hash=sha256:0d86924c00b62552b650ddd28af426e3ff2d4dc2e9047dae5b3d8452e0a49a77 \ + --hash=sha256:2dc3685bed7187c072a46ab4ffddd38cef7de9ae5eb05c03df2ad569cf4dacbc \ + --hash=sha256:59dfd88c79b48f441bbf6994142a19ab1de3b9bb7c12863402c2bc621e49091a \ + --hash=sha256:828a79c2e75abab5359f780c81dccd4953c45a2c4cd4f05ba3e233ddf984b882 \ + --hash=sha256:bceaab5c4febb11ea0554566784bcf4bc2e3977b53946dda2b12804b4fe524a8 \ + --hash=sha256:d922be1563ce17a69582a352a86f28ed8c9f6a8bc951df63476ffc310c064bfa \ + --hash=sha256:e8e1017b2cf1dda767aef19d2fd9ee5ebe07e050d430f77a0a7c66ba08b8cdae # via librosa -soxr==0.3.7 +soxr==0.3.7 \ + --hash=sha256:07f4c0c6125ea1482fa187ad5f007216712ee0a93586a9b2f80e79c0bf944cf7 \ + --hash=sha256:0e291adfaf9f2a7c4dd180a1b8c280f9beb1c84cb381853e4f4b3434d002ed7f \ + --hash=sha256:0eed6bf58192dd1bb93becd2444de4d712689713d727b32fd55623ae9aae7df7 \ + --hash=sha256:1cd65dc7b96ea3cb6c8c48e6020e859680556cc42dd3d4de44779530cce21037 \ + --hash=sha256:27f2890528d2b2e358938ab660a6b8346802863f5b6b646204d7ff8ab0ca2c66 \ + --hash=sha256:286858e3078d76c11b6d490b66fed3c9bb2a4229759f6be03ceef5c02189bf2c \ + --hash=sha256:42da0d9eb79c70e5a41917f1b48a032e241a48eb4a1bcea7c80577302ff26974 \ + --hash=sha256:436ddff00c6eb2c75b79c19cfdca7527b1e31b5fad738652f044045ba6258593 \ + --hash=sha256:48acdfbcf870ab54f645b1cfd641bce92c1e3a67346c3bf0f6c0ad2873c1dd35 \ + --hash=sha256:511c6b2279c8ddd83459d129d69f628f7aae4616ae0a1912963985bd89e35df7 \ + --hash=sha256:52467c8c012495544a6dcfcce6b5bcbbc653d24fe9bb33c0b6191acecdb5e297 \ + --hash=sha256:54985ff33292192d2937be80df3e5f3a44d6d53e6835f727d6b99b7cdd3f1611 \ + --hash=sha256:6e39668c250e221db888cf3b290a16fbe10a702d9a4eb604a127f720040de583 \ + --hash=sha256:7221302b4547d02a3f38dd3cd15317ab2b78873c75921db5f4a070848f0c71be \ + --hash=sha256:83c74ef6d61d7dcd81be26f91bee0a420f792f5c1982266f2a80e655f0650a98 \ + --hash=sha256:8d8a2b3e7f8d0255e2484fb82cb66c86da6fb25b342ef793cceca9ce9a61aa16 \ + --hash=sha256:9cea63014ce91035074e1228c9340e2b8609faf964e268705fcac5135d05060c \ + --hash=sha256:9e811450f0e91972932bd37ac58e32e44002c2c99db2aa926a9e7ba164545034 \ + --hash=sha256:a0cd6eb6f6bbda2e8de36672cf2f0529ced6e638773150744ef075be0cc4f52c \ + --hash=sha256:a37c518c0b5d70162956d808d6c2e249bae0672e414e0dcfc101e200d8c31f3c \ + --hash=sha256:ac81c4af6a993d5b7c0b466bbac4835bad2b14ec32f342b2c1f83e4cf825e301 \ + --hash=sha256:bfab27830f6217a15b83445988225c3aeea3bbccfa9399ced291e53e1b05925d \ + --hash=sha256:cb1e14663a43fe88b8fbc287822a159028366a820abe1a0a9670fb53618cb47b \ + --hash=sha256:ce12b93747958f2769d6b297e6e27c73d9ad635fe8104ef052bece9c8a322824 \ + --hash=sha256:d994f1a7690b1b13ab639ea33e0c1d78415b64d88d6df4af705a9443f97b9687 \ + --hash=sha256:e47d86af35b942c92606fc2d5dfccf3f01309329475571ae2312bbf9edc3a790 \ + --hash=sha256:e5267c3ba34d4b873d9bbe3a9e58418b01ae4fd04349a4f944d9943b9ddac0f7 \ + --hash=sha256:e87b58bc9e8c2caa16f07726f666bd043f0a49ca937baa803ce7708003b27833 \ + --hash=sha256:ea663b76f2b0ec1576b8a43aef317aec080abc0a67a4015fcd9f3407039f260a \ + --hash=sha256:f8ceeb74e5a55d903cc286d3bd12c2d8f8c85d02894071e9ec92ab405430907c # via librosa -sympy==1.12 +sympy==1.12 \ + --hash=sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5 \ + --hash=sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8 # via torch -textual==0.52.1 +textual==0.52.1 \ + --hash=sha256:4232e5c2b423ed7c63baaeb6030355e14e1de1b9df096c9655b68a1e60e4de5f \ + --hash=sha256:960a19df2319482918b4a58736d9552cdc1ab65d170ba0bc15273ce0e1922b7a # via memray -threadpoolctl==3.2.0 +threadpoolctl==3.2.0 \ + --hash=sha256:2b7818516e423bdaebb97c723f86a7c6b0a83d3f3b0970328d66f4d9104dc032 \ + --hash=sha256:c96a0ba3bdddeaca37dc4cc7344aafad41cdb8c313f74fdfe387a867bba93355 # via scikit-learn -torchlibrosa==0.1.0 +torchlibrosa==0.1.0 \ + --hash=sha256:62a8beedf9c9b4141a06234df3f10229f7ba86e67678ccee02489ec4ef044028 \ + --hash=sha256:89b65fd28b833ceb6bc74a3d0d87e2924ddc5a845d0a246b194952a4e12a38cb # via panns-inference -typing-extensions==4.9.0 +typing-extensions==4.9.0 \ + --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ + --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd # via # librosa # textual # torch -uc-micro-py==1.0.3 +uc-micro-py==1.0.3 \ + --hash=sha256:d321b92cff673ec58027c04015fcaa8bb1e005478643ff4a500882eaab88c48a \ + --hash=sha256:db1dffff340817673d7b466ec86114a9dc0e9d4d9b5ba229d9d60e5c12600cd5 # via linkify-it-py -urllib3==2.2.0 +urllib3==2.2.0 \ + --hash=sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20 \ + --hash=sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 # via requests diff --git a/src/core/operators/installer.py b/src/core/operators/installer.py index af974c9e..3e76b7f1 100644 --- a/src/core/operators/installer.py +++ b/src/core/operators/installer.py @@ -1,35 +1,35 @@ -import sys -import subprocess -import pkg_resources -from pkg_resources import DistributionNotFound, VersionConflict - -""" -Attributed to : https://stackoverflow.com/questions/12332975/installing-python-module-within-code -""" - - -def should_install_requirement(requirement): - should_install = False - try: - pkg_resources.require(requirement) - except (DistributionNotFound, VersionConflict): - should_install = True - return should_install - - -def install_packages(requirement_list): - try: - requirements = [ - requirement - for requirement in requirement_list - if should_install_requirement(requirement) - ] - if len(requirements) > 0: - subprocess.check_call( - [sys.executable, "-m", "pip", "install", *requirements] - ) - else: - print("Requirements already satisfied.") - - except Exception as e: - print(e) +# import sys +# import subprocess +# import pkg_resources +# from pkg_resources import DistributionNotFound, VersionConflict +# +# """ +# Attributed to : https://stackoverflow.com/questions/12332975/installing-python-module-within-code +# """ +# +# +# def should_install_requirement(requirement): +# should_install = False +# try: +# pkg_resources.require(requirement) +# except (DistributionNotFound, VersionConflict): +# should_install = True +# return should_install +# +# +# def install_packages(requirement_list): +# try: +# requirements = [ +# requirement +# for requirement in requirement_list +# if should_install_requirement(requirement) +# ] +# if len(requirements) > 0: +# subprocess.check_call( +# [sys.executable, "-m", "pip", "install", *requirements] +# ) +# else: +# print("Requirements already satisfied.") +# +# except Exception as e: +# print(e) diff --git a/src/core/operators/vid_vec_rep_resnet_requirements.txt b/src/core/operators/vid_vec_rep_resnet_requirements.txt index 22ee4aaa..e1e2f7f1 100644 --- a/src/core/operators/vid_vec_rep_resnet_requirements.txt +++ b/src/core/operators/vid_vec_rep_resnet_requirements.txt @@ -2,93 +2,536 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --find-links=https://download.pytorch.org/whl/torch_stable.html vid_vec_rep_resnet_requirements.in +# pip-compile --find-links=https://download.pytorch.org/whl/torch_stable.html --generate-hashes vid_vec_rep_resnet_requirements.in # # For arm64 architecture --find-links https://download.pytorch.org/whl/cpu -torch==2.2.0; platform_machine=='aarch64' +torch==2.2.0; platform_machine=='aarch64' \ + --hash=sha256:9328e3c1ce628a281d2707526b4d1080eae7c4afab4f81cea75bde1f9441dc78 # via # -r vid_vec_rep_resnet_requirements.in # torchvision -torchvision==0.17.0; platform_machine=='aarch64' +torchvision==0.17.0; platform_machine=='aarch64' \ + --hash=sha256:3d2e9552d72e4037f2db6f7d97989a2e2f95763aa1861963a3faf521bb1610c4 \ # via -r vid_vec_rep_resnet_requirements.in # For amd64 architecture --find-links https://download.pytorch.org/whl/torch_stable.html -torch==2.2.0+cpu; platform_machine=='x86_64' +torch==2.2.0+cpu; platform_machine=='x86_64' \ + --hash=sha256:15a657038eea92ac5db6ab97b30bd4b5345741b49553b2a7e552e80001297124 \ + --hash=sha256:15e05748815545b6eb99196c0219822b210a5eff0dc194997a283534b8c98d7c \ + --hash=sha256:2a8ff4440c1f024ad7982018c378470d2ae0a72f2bc269a22b1a677e09bdd3b1 \ + --hash=sha256:4ddaf3393f5123da4a83a53f98fb9c9c64c53d0061da3c7243f982cdfe9eb888 \ + --hash=sha256:58194066e594cd8aff27ddb746399d040900cc0e8a331d67ea98499777fa4d31 \ + --hash=sha256:5b40dc66914c02d564365f991ec9a6b18cbaa586610e3b160ef559b2ce18c6c8 \ + --hash=sha256:5f907293f5a58619c1c520380f17641f76400a136474a4b1a66c363d2563fe5e \ + --hash=sha256:8258824bec0181e01a086aef5809016116a97626af2dcbf932d4e0b192d9c1b8 \ + --hash=sha256:d053976a4f9ca3bace6e4191e0b6e0bcffbc29f70d419b14d01228b371335467 \ + --hash=sha256:f72e7ce8010aa8797665ff6c4c1d259c28f3a51f332762d9de77f8a20277817f # via # -r vid_vec_rep_resnet_requirements.in # torchvision -torchvision==0.17.0+cpu; platform_machine=='x86_64' +torchvision==0.17.0+cpu; platform_machine=='x86_64' \ + --hash=sha256:00e88e9483e52f99fc61a73941b6ef0b59d031930276fc220ee8973170f305ff \ + --hash=sha256:04e72249add0e5a0fc3d06a876833651e77eb6c3c3f9276e70d9bd67804c8549 \ + --hash=sha256:39d3b3a80c63d18594e81829fdbd6108512dff98fa17156c7bec59133a0c1173 \ + --hash=sha256:55660c67bd8d5b777984655116b75070c73d37ce64175a8120cb59010039fd7f \ + --hash=sha256:569ebc5f47bb765ae73cd380ace01ddcb074c67df05d7f15f5ddd0fa3062881a \ + --hash=sha256:701d7fcfdd8ed206dcb71774190152f0a2d6c999ad7cee277fc5a71a943ae64d \ + --hash=sha256:b683d52753c5579a5b0250d7976deada17deab646071da289bd598d1af4877e0 \ + --hash=sha256:bb787aab6daf2d72600c14cd7c3c11459701dc5fac07e790e0335777e20b39df \ + --hash=sha256:da83b8a14d1b0579b1119e24272b0c7bf3e9ad14297bca87184d02c12d210501 \ + --hash=sha256:eb1e9d061c528c8bb40436d445599ca05fa997701ac395db3aaec5cb7660b6ee # via -r vid_vec_rep_resnet_requirements.in -certifi==2024.2.2 +certifi==2024.2.2 \ + --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ + --hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 # via requests -charset-normalizer==3.3.2 +charset-normalizer==3.3.2 \ + --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ + --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ + --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ + --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ + --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ + --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ + --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ + --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ + --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ + --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ + --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ + --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ + --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ + --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ + --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ + --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ + --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ + --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ + --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ + --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ + --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ + --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ + --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ + --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ + --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ + --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ + --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ + --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ + --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ + --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ + --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ + --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ + --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ + --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ + --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ + --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ + --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ + --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ + --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ + --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ + --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ + --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ + --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ + --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ + --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ + --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ + --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ + --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ + --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ + --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ + --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ + --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ + --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ + --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ + --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ + --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ + --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ + --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ + --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ + --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ + --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ + --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ + --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ + --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ + --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ + --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ + --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ + --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ + --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ + --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ + --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ + --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ + --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ + --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ + --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ + --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ + --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ + --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ + --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ + --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ + --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ + --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ + --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ + --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ + --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ + --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ + --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ + --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ + --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ + --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 # via requests -filelock==3.13.1 +filelock==3.13.1 \ + --hash=sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e \ + --hash=sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c # via torch -fsspec==2024.2.0 +fsspec==2024.2.0 \ + --hash=sha256:817f969556fa5916bc682e02ca2045f96ff7f586d45110fcb76022063ad2c7d8 \ + --hash=sha256:b6ad1a679f760dda52b1168c859d01b7b80648ea6f7f7c7f5a8a91dc3f3ecb84 # via torch -idna==3.6 +idna==3.6 \ + --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ + --hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f # via requests -jinja2==3.1.3 +jinja2==3.1.3 \ + --hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \ + --hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90 # via # memray # torch -linkify-it-py==2.0.3 +linkify-it-py==2.0.3 \ + --hash=sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048 \ + --hash=sha256:6bcbc417b0ac14323382aef5c5192c0075bf8a9d6b41820a2b66371eac6b6d79 # via markdown-it-py -markdown-it-py[linkify,plugins]==3.0.0 +markdown-it-py[linkify,plugins]==3.0.0 \ + --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ + --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb # via # mdit-py-plugins # rich # textual -markupsafe==2.1.5 +markupsafe==2.1.5 \ + --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ + --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ + --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ + --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ + --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ + --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ + --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ + --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ + --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ + --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ + --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ + --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ + --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 # via jinja2 -mdit-py-plugins==0.4.0 +mdit-py-plugins==0.4.0 \ + --hash=sha256:b51b3bb70691f57f974e257e367107857a93b36f322a9e6d44ca5bf28ec2def9 \ + --hash=sha256:d8ab27e9aed6c38aa716819fedfde15ca275715955f8a185a8e1cf90fb1d2c1b # via markdown-it-py -mdurl==0.1.2 +mdurl==0.1.2 \ + --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ + --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba # via markdown-it-py -memray==1.11.0 +memray==1.11.0 \ + --hash=sha256:016a68de76fc800554fcc7dc473e48092d749b3b4302a6babd2e592a5fe8ae5e \ + --hash=sha256:0814a234cceaa664184ede2ebada2923e89c6b358b5bb9d71409a35ecae1623b \ + --hash=sha256:0a5b31192d8a8d44d12320873f231c22e6ea5aed079b880cf21556ab34b3f526 \ + --hash=sha256:0ea78c073e8c5c408d4034f2da04031d0dfa8e1eface5512b350d81766aebb25 \ + --hash=sha256:0ed869e4a82722a4558da749f39d6079f2ef5e767d1399d2d090b04742e2b3f2 \ + --hash=sha256:1534520c3c3e6b8234fe13c6d36bd74ab855dc19cef6e9d190a2a0b48fd2d83d \ + --hash=sha256:16a6ce38566029433323f7c0dfc76732a47158eee3de4c1734f00ad36d953181 \ + --hash=sha256:1dbb599c66ffaf1467c4f96aabbecbf30b58963366f17e07bea869c95bec7f72 \ + --hash=sha256:24894d1f5c63cdaba137199ad989d8882485ecb4190d1ff7dc5214ac84484a06 \ + --hash=sha256:266736c1471ddfb59d03e6d78f93f55fd0ab2fe800b9929fc5256d9208efc4a2 \ + --hash=sha256:39bbf9e74c3933a84c22e047920a0f6e2d491ba943a39f4aa041f1c0422c8403 \ + --hash=sha256:3fc83741aedd6daa9c49ecee0a8e0048f278b6eb1ae22bdcf9b4523be7ba7106 \ + --hash=sha256:50889d09343993513113b21ad86a7d56e128abdb9a526c4fd394df7a3a7bda78 \ + --hash=sha256:68f15ff78a6f44344599209bc0d1e5e5d608e81bd2c9b5f02824d08751cf07d9 \ + --hash=sha256:6bf07fef1a66b96126bc0f398e01c3860e59f01eb89b244cfdcc36e70b68edad \ + --hash=sha256:6e9a74eaa673cf4c87302bd0845586a072dba7fc172a3960af64b1ad5cedf00f \ + --hash=sha256:6f46e00d4a10a7fb73b560e57689a68ca3661bf969e228093d20fc1313c42f0b \ + --hash=sha256:72df1994a39018c4687a75c1750b7be3bfcd5c0c5e79e9ed73b552d4d5077588 \ + --hash=sha256:7824202d23e3060c7a0380e1a9bb6f131f47ee29c6f30b322e844648ea3aa9da \ + --hash=sha256:7fb0ae51e06e90336573ed9454cc05541075756e633023550086f8f1882bd38b \ + --hash=sha256:89fdfbdd8ec5d9fad75b7ee487de6b2394856235511b1950c3505e78afbc8170 \ + --hash=sha256:8b2819a6612b771ffab2d80f518cf602aeec7bacee9659c6f7af40596fbfe9f6 \ + --hash=sha256:9076942a66a03a7a3e668314cd00f720db31116df7e8626808150e4e22a079cd \ + --hash=sha256:9c577e81f8f7cd1418c7bfae4651d9bb3f16b72200e4b8d9b80c71aeeab64bb8 \ + --hash=sha256:9fbb2a1a82e24f0f90a9bb4ca7af6174ce91c5f3b3ce58e0b16361e989ea7cc1 \ + --hash=sha256:a4f012204aaeb233c5414e776d04d468d7a542da259811b059a89a519032e2ec \ + --hash=sha256:ad1aeec47f1abb37ca6bd4a5a8be8c556e7456fe2e4a5c79b7bc32eaac916b24 \ + --hash=sha256:ad1f2bb1223759e6b9755b6139087f6bcbaca1718cfed70c31aba0943542b431 \ + --hash=sha256:b8e02e8bbe03826c5e65c2cc28760b1d0bc59f9bee6d6769c01e800b50542f5b \ + --hash=sha256:c3dfb2c20fbbb128489f7b9f5bd2704bae6f77dba11c253cccf8eb8299697fe4 \ + --hash=sha256:c5b8860e3cc7df4f7f451e043aabe60a3812f99c3e308f0c4c0e7a03d72c1563 \ + --hash=sha256:db4ebee46c24212a357641fe9fb893c842bfc66bee25546ff2efe9350e850138 \ + --hash=sha256:dd5a91fc0632896b524ad7b121146e991176252cd072bb06ea2596042232a04f \ + --hash=sha256:eedea42d13b3630faa5591e298659f34e6ead06aa867050def12de6cc03e1a97 \ + --hash=sha256:f72c111a4868d0f2b4e4fb9ba4da736db8c73b6fb0ac6e6f2deca8ee540eb688 \ + --hash=sha256:f83b34f92781f22ef6a7b7f4a67258deb516a06f86c713da33211a6db4fc9ea6 \ + --hash=sha256:fc9372c1f0161b245a235b12ff3d5dc1a05216ad3fde158e62d1143b7f3b99cc # via -r vid_vec_rep_resnet_requirements.in -mpmath==1.3.0 +mpmath==1.3.0 \ + --hash=sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f \ + --hash=sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c # via sympy -networkx==3.2.1 +networkx==3.2.1 \ + --hash=sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6 \ + --hash=sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2 # via torch -numpy==1.26.4 +numpy==1.26.4 \ + --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ + --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ + --hash=sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20 \ + --hash=sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0 \ + --hash=sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010 \ + --hash=sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a \ + --hash=sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea \ + --hash=sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c \ + --hash=sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 \ + --hash=sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110 \ + --hash=sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be \ + --hash=sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a \ + --hash=sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a \ + --hash=sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 \ + --hash=sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed \ + --hash=sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd \ + --hash=sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c \ + --hash=sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e \ + --hash=sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0 \ + --hash=sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c \ + --hash=sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a \ + --hash=sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b \ + --hash=sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0 \ + --hash=sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6 \ + --hash=sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2 \ + --hash=sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a \ + --hash=sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30 \ + --hash=sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218 \ + --hash=sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5 \ + --hash=sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07 \ + --hash=sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 \ + --hash=sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4 \ + --hash=sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764 \ + --hash=sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef \ + --hash=sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3 \ + --hash=sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f # via # -r vid_vec_rep_resnet_requirements.in # opencv-python-headless # scipy # torchvision -opencv-python-headless==4.9.0.80 +opencv-python-headless==4.9.0.80 \ + --hash=sha256:11e3849d83e6651d4e7699aadda9ec7ed7c38957cbbcb99db074f2a2d2de9670 \ + --hash=sha256:2ea8a2edc4db87841991b2fbab55fc07b97ecb602e0f47d5d485bd75cee17c1a \ + --hash=sha256:57ce2865e8fec431c6f97a81e9faaf23fa5be61011d0a75ccf47a3c0d65fa73d \ + --hash=sha256:71a4cd8cf7c37122901d8e81295db7fb188730e33a0e40039a4e59c1030b0958 \ + --hash=sha256:976656362d68d9f40a5c66f83901430538002465f7db59142784f3893918f3df \ + --hash=sha256:a8056c2cb37cd65dfcdf4153ca16f7362afcf3a50d600d6bb69c660fc61ee29c \ + --hash=sha256:e0ee54e27be493e8f7850847edae3128e18b540dac1d7b2e4001b8944e11e1c6 # via -r vid_vec_rep_resnet_requirements.in -pillow==10.2.0 +pillow==10.2.0 \ + --hash=sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8 \ + --hash=sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39 \ + --hash=sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac \ + --hash=sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869 \ + --hash=sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e \ + --hash=sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04 \ + --hash=sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9 \ + --hash=sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e \ + --hash=sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe \ + --hash=sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef \ + --hash=sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 \ + --hash=sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa \ + --hash=sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f \ + --hash=sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f \ + --hash=sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e \ + --hash=sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a \ + --hash=sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2 \ + --hash=sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2 \ + --hash=sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 \ + --hash=sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a \ + --hash=sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2 \ + --hash=sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213 \ + --hash=sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563 \ + --hash=sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591 \ + --hash=sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c \ + --hash=sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2 \ + --hash=sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb \ + --hash=sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757 \ + --hash=sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0 \ + --hash=sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452 \ + --hash=sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad \ + --hash=sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01 \ + --hash=sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f \ + --hash=sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5 \ + --hash=sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61 \ + --hash=sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e \ + --hash=sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b \ + --hash=sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068 \ + --hash=sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9 \ + --hash=sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588 \ + --hash=sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483 \ + --hash=sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f \ + --hash=sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 \ + --hash=sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7 \ + --hash=sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311 \ + --hash=sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6 \ + --hash=sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72 \ + --hash=sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6 \ + --hash=sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129 \ + --hash=sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13 \ + --hash=sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67 \ + --hash=sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c \ + --hash=sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516 \ + --hash=sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e \ + --hash=sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e \ + --hash=sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364 \ + --hash=sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023 \ + --hash=sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1 \ + --hash=sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04 \ + --hash=sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d \ + --hash=sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a \ + --hash=sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7 \ + --hash=sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb \ + --hash=sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4 \ + --hash=sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e \ + --hash=sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1 \ + --hash=sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48 \ + --hash=sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868 # via # -r vid_vec_rep_resnet_requirements.in # torchvision -pygments==2.17.2 +pygments==2.17.2 \ + --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ + --hash=sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367 # via rich -pyinstrument==4.6.2 +pyinstrument==4.6.2 \ + --hash=sha256:0002ee517ed8502bbda6eb2bb1ba8f95a55492fcdf03811ba13d4806e50dd7f6 \ + --hash=sha256:01fc45dedceec3df81668d702bca6d400d956c8b8494abc206638c167c78dfd9 \ + --hash=sha256:06a8578b2943eb1dbbf281e1e59e44246acfefd79e1b06d4950f01b693de12af \ + --hash=sha256:08fdc7f88c989316fa47805234c37a40fafe7b614afd8ae863f0afa9d1707b37 \ + --hash=sha256:0de2c1714a37a820033b19cf134ead43299a02662f1379140974a9ab733c5f3a \ + --hash=sha256:113d2fc534c9ca7b6b5661d6ada05515bf318f6eb34e8d05860fe49eb7cfe17e \ + --hash=sha256:1e474c56da636253dfdca7cd1998b240d6b39f7ed34777362db69224fcf053b1 \ + --hash=sha256:20e15b4e1d29ba0b7fc81aac50351e0dc0d7e911e93771ebc3f408e864a2c93b \ + --hash=sha256:23c3e3ca8553b9aac09bd978c73d21b9032c707ac6d803bae6a20ecc048df4a8 \ + --hash=sha256:28af084aa84bbfd3620ebe71d5f9a0deca4451267f363738ca824f733de55056 \ + --hash=sha256:2e625fc6ffcd4fd420493edd8276179c3f784df207bef4c2192725c1b310534c \ + --hash=sha256:2fd8e547cf3df5f0ec6e4dffbe2e857f6b28eda51b71c3c0b5a2fc0646527835 \ + --hash=sha256:3098cd72b71a322a72dafeb4ba5c566465e193d2030adad4c09566bd2f89bf4f \ + --hash=sha256:32ec8db6896b94af790a530e1e0edad4d0f941a0ab8dd9073e5993e7ea46af7d \ + --hash=sha256:34e59e91c88ec9ad5630c0964eca823949005e97736bfa838beb4789e94912a2 \ + --hash=sha256:3a165e0d2deb212d4cf439383982a831682009e1b08733c568cac88c89784e62 \ + --hash=sha256:46992e855d630575ec635eeca0068a8ddf423d4fd32ea0875a94e9f8688f0b95 \ + --hash=sha256:4fba3244e94c117bf4d9b30b8852bbdcd510e7329fdd5c7c8b3799e00a9215a8 \ + --hash=sha256:5b6e161ef268d43ee6bbfae7fd2cdd0a52c099ddd21001c126ca1805dc906539 \ + --hash=sha256:5ebeba952c0056dcc9b9355328c78c4b5c2a33b4b4276a9157a3ab589f3d1bac \ + --hash=sha256:5f329f5534ca069420246f5ce57270d975229bcb92a3a3fd6b2ca086527d9764 \ + --hash=sha256:62f6014d2b928b181a52483e7c7b82f2c27e22c577417d1681153e5518f03317 \ + --hash=sha256:67268bb0d579330cff40fd1c90b8510363ca1a0e7204225840614068658dab77 \ + --hash=sha256:6ba8e368d0421f15ba6366dfd60ec131c1b46505d021477e0f865d26cf35a605 \ + --hash=sha256:6c0f0e1d8f8c70faa90ff57f78ac0dda774b52ea0bfb2d9f0f41ce6f3e7c869e \ + --hash=sha256:6c761372945e60fc1396b7a49f30592e8474e70a558f1a87346d27c8c4ce50f7 \ + --hash=sha256:6ed4e8c6c84e0e6429ba7008a66e435ede2d8cb027794c20923c55669d9c5633 \ + --hash=sha256:73db0c2c99119c65b075feee76e903b4ed82e59440fe8b5724acf5c7cb24721f \ + --hash=sha256:7a1b1cd768ea7ea9ab6f5490f7e74431321bcc463e9441dbc2f769617252d9e2 \ + --hash=sha256:7ba858b3d6f6e5597c641edcc0e7e464f85aba86d71bc3b3592cb89897bf43f6 \ + --hash=sha256:7bd3da31c46f1c1cb7ae89031725f6a1d1015c2041d9c753fe23980f5f9fd86c \ + --hash=sha256:7c671057fad22ee3ded897a6a361204ea2538e44c1233cad0e8e30f6d27f33db \ + --hash=sha256:803ac64e526473d64283f504df3b0d5c2c203ea9603cab428641538ffdc753a7 \ + --hash=sha256:8a386b9d09d167451fb2111eaf86aabf6e094fed42c15f62ec51d6980bce7d96 \ + --hash=sha256:8a9791bf8916c1cf439c202fded32de93354b0f57328f303d71950b0027c7811 \ + --hash=sha256:8b3c44cb037ad0d6e9d9a48c14d856254ada641fbd0ae9de40da045fc2226a2a \ + --hash=sha256:8d104b7a7899d5fa4c5bf1ceb0c1a070615a72c5dc17bc321b612467ad5c5d88 \ + --hash=sha256:90350533396071cb2543affe01e40bf534c35cb0d4b8fa9fdb0f052f9ca2cfe3 \ + --hash=sha256:a59fc4f7db738a094823afe6422509fa5816a7bf74e768ce5a7a2ddd91af40ac \ + --hash=sha256:af1a953bce9fd530040895d01ff3de485e25e1576dccb014f76ba9131376fcad \ + --hash=sha256:b082df0bbf71251a7f4880a12ed28421dba84ea7110bb376e0533067a4eaff40 \ + --hash=sha256:b2b66ff0b16c8ecf1ec22de001cfff46872b2c163c62429055105564eef50b2e \ + --hash=sha256:b55983a884f083f93f0fc6d12ff8df0acd1e2fb0580d2f4c7bfe6def33a84b58 \ + --hash=sha256:baf375953b02fe94d00e716f060e60211ede73f49512b96687335f7071adb153 \ + --hash=sha256:be9901f17ac2f527c352f2fdca3d717c1d7f2ce8a70bad5a490fc8cc5d2a6007 \ + --hash=sha256:cd0320c39e99e3c0a3129d1ed010ac41e5a7eb96fb79900d270080a97962e995 \ + --hash=sha256:d02f31fa13a9e8dc702a113878419deba859563a32474c9f68e04619d43d6f01 \ + --hash=sha256:d4b559322f30509ad8f082561792352d0805b3edfa508e492a36041fdc009259 \ + --hash=sha256:d4dcdcc7ba224a0c5edfbd00b0f530f5aed2b26da5aaa2f9af5519d4aa8c7e41 \ + --hash=sha256:d6162615e783c59e36f2d7caf903a7e3ecb6b32d4a4ae8907f2760b2ef395bf6 \ + --hash=sha256:da58f265326f3cf3975366ccb8b39014f1e69ff8327958a089858d71c633d654 \ + --hash=sha256:dcb5c8d763c5df55131670ba2a01a8aebd0d490a789904a55eb6a8b8d497f110 \ + --hash=sha256:dd5c53a0159126b5ce7cbc4994433c9c671e057c85297ff32645166a06ad2c50 \ + --hash=sha256:dd6007d3c2e318e09e582435dd8d111cccf30d342af66886b783208813caf3d7 \ + --hash=sha256:e2e554b1bb0df78f5ce8a92df75b664912ca93aa94208386102af454ec31b647 \ + --hash=sha256:e3813c8ecfab9d7d855c5f0f71f11793cf1507f40401aa33575c7fd613577c23 \ + --hash=sha256:e63f4916001aa9c625976a50779282e0a5b5e9b17c52a50ef4c651e468ed5b88 \ + --hash=sha256:edca46f04a573ac2fb11a84b937844e6a109f38f80f4b422222fb5be8ecad8cb \ + --hash=sha256:fdc0a53b27e5d8e47147489c7dab596ddd1756b1e053217ef5bc6718567099ff \ + --hash=sha256:feebcf860f955401df30d029ec8de7a0c5515d24ea809736430fd1219686fe14 # via -r vid_vec_rep_resnet_requirements.in -requests==2.31.0 +requests==2.31.0 \ + --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ + --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via torchvision -rich==13.7.0 +rich==13.7.0 \ + --hash=sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa \ + --hash=sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235 # via # memray # textual -scipy==1.11.4 +scipy==1.11.4 \ + --hash=sha256:00150c5eae7b610c32589dda259eacc7c4f1665aedf25d921907f4d08a951b1c \ + --hash=sha256:028eccd22e654b3ea01ee63705681ee79933652b2d8f873e7949898dda6d11b6 \ + --hash=sha256:1b7c3dca977f30a739e0409fb001056484661cb2541a01aba0bb0029f7b68db8 \ + --hash=sha256:2c6ff6ef9cc27f9b3db93a6f8b38f97387e6e0591600369a297a50a8e96e835d \ + --hash=sha256:36750b7733d960d7994888f0d148d31ea3017ac15eef664194b4ef68d36a4a97 \ + --hash=sha256:530f9ad26440e85766509dbf78edcfe13ffd0ab7fec2560ee5c36ff74d6269ff \ + --hash=sha256:5e347b14fe01003d3b78e196e84bd3f48ffe4c8a7b8a1afbcb8f5505cb710993 \ + --hash=sha256:6550466fbeec7453d7465e74d4f4b19f905642c89a7525571ee91dd7adabb5a3 \ + --hash=sha256:6df1468153a31cf55ed5ed39647279beb9cfb5d3f84369453b49e4b8502394fd \ + --hash=sha256:6e619aba2df228a9b34718efb023966da781e89dd3d21637b27f2e54db0410d7 \ + --hash=sha256:8fce70f39076a5aa62e92e69a7f62349f9574d8405c0a5de6ed3ef72de07f446 \ + --hash=sha256:90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa \ + --hash=sha256:91af76a68eeae0064887a48e25c4e616fa519fa0d38602eda7e0f97d65d57937 \ + --hash=sha256:933baf588daa8dc9a92c20a0be32f56d43faf3d1a60ab11b3f08c356430f6e56 \ + --hash=sha256:acf8ed278cc03f5aff035e69cb511741e0418681d25fbbb86ca65429c4f4d9cd \ + --hash=sha256:ad669df80528aeca5f557712102538f4f37e503f0c5b9541655016dd0932ca79 \ + --hash=sha256:b030c6674b9230d37c5c60ab456e2cf12f6784596d15ce8da9365e70896effc4 \ + --hash=sha256:b9999c008ccf00e8fbcce1236f85ade5c569d13144f77a1946bef8863e8f6eb4 \ + --hash=sha256:bc9a714581f561af0848e6b69947fda0614915f072dfd14142ed1bfe1b806710 \ + --hash=sha256:ce7fff2e23ab2cc81ff452a9444c215c28e6305f396b2ba88343a567feec9660 \ + --hash=sha256:cf00bd2b1b0211888d4dc75656c0412213a8b25e80d73898083f402b50f47e41 \ + --hash=sha256:d10e45a6c50211fe256da61a11c34927c68f277e03138777bdebedd933712fea \ + --hash=sha256:ee410e6de8f88fd5cf6eadd73c135020bfbbbdfcd0f6162c36a7638a1ea8cc65 \ + --hash=sha256:f313b39a7e94f296025e3cffc2c567618174c0b1dde173960cf23808f9fae4be \ + --hash=sha256:f3cd9e7b3c2c1ec26364856f9fbe78695fe631150f94cd1c22228456404cf1ec # via -r vid_vec_rep_resnet_requirements.in -sympy==1.12 +sympy==1.12 \ + --hash=sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5 \ + --hash=sha256:ebf595c8dac3e0fdc4152c51878b498396ec7f30e7a914d6071e674d49420fb8 # via torch -textual==0.50.0 +textual==0.50.0 \ + --hash=sha256:4ddbadddc6b7b9bf625b80396d7206bb7fa6645dc5e32cfde31fdadf8f03d110 \ + --hash=sha256:d809741a86a19fe3d88108ae500d744248bf2daf7eac8b440079a49b4b981680 # via memray -typing-extensions==4.9.0 +typing-extensions==4.9.0 \ + --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ + --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd # via # textual # torch -uc-micro-py==1.0.2 +uc-micro-py==1.0.2 \ + --hash=sha256:30ae2ac9c49f39ac6dce743bd187fcd2b574b16ca095fa74cd9396795c954c54 \ + --hash=sha256:8c9110c309db9d9e87302e2f4ad2c3152770930d88ab385cd544e7a7e75f3de0 # via linkify-it-py -urllib3==2.2.0 +urllib3==2.2.0 \ + --hash=sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20 \ + --hash=sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 # via requests diff --git a/src/core/server.py b/src/core/server.py index 08b86162..c088b1a7 100644 --- a/src/core/server.py +++ b/src/core/server.py @@ -3,6 +3,7 @@ from core.config import ServerConfig from flask import Flask from flask_cors import CORS +from os import environ log = logging.getLogger(__name__) @@ -35,4 +36,6 @@ def start(self): def hello_world(): return "

Hello, World!

" - self.app.run(host="0.0.0.0", port=self.param.parameters.port, debug=True) + wsgi_host = environ.get("WSGI_HOST") + wsgi_debug = environ.get("WSGI_DEBUG") + self.app.run(host=wsgi_host, port=self.param.parameters.port, debug=wsgi_debug) diff --git a/src/requirements.txt b/src/requirements.txt index 29924eb3..eacd1ac5 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -2,143 +2,1108 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile requirements.in +# pip-compile --generate-hashes requirements.in # -blinker==1.7.0 +blinker==1.7.0 \ + --hash=sha256:c3f865d4d54db7abc53758a01601cf343fe55b84c1de4e3fa910e420b438d5b9 \ + --hash=sha256:e6820ff6fa4e4d1d8e2747c2283749c3f547e4fee112b98555cdcdae32996182 # via flask -brotli==1.1.0 +brotli==1.1.0 \ + --hash=sha256:03d20af184290887bdea3f0f78c4f737d126c74dc2f3ccadf07e54ceca3bf208 \ + --hash=sha256:0541e747cce78e24ea12d69176f6a7ddb690e62c425e01d31cc065e69ce55b48 \ + --hash=sha256:069a121ac97412d1fe506da790b3e69f52254b9df4eb665cd42460c837193354 \ + --hash=sha256:0b63b949ff929fbc2d6d3ce0e924c9b93c9785d877a21a1b678877ffbbc4423a \ + --hash=sha256:0c6244521dda65ea562d5a69b9a26120769b7a9fb3db2fe9545935ed6735b128 \ + --hash=sha256:11d00ed0a83fa22d29bc6b64ef636c4552ebafcef57154b4ddd132f5638fbd1c \ + --hash=sha256:141bd4d93984070e097521ed07e2575b46f817d08f9fa42b16b9b5f27b5ac088 \ + --hash=sha256:19c116e796420b0cee3da1ccec3b764ed2952ccfcc298b55a10e5610ad7885f9 \ + --hash=sha256:1ab4fbee0b2d9098c74f3057b2bc055a8bd92ccf02f65944a241b4349229185a \ + --hash=sha256:1ae56aca0402a0f9a3431cddda62ad71666ca9d4dc3a10a142b9dce2e3c0cda3 \ + --hash=sha256:224e57f6eac61cc449f498cc5f0e1725ba2071a3d4f48d5d9dffba42db196438 \ + --hash=sha256:22fc2a8549ffe699bfba2256ab2ed0421a7b8fadff114a3d201794e45a9ff578 \ + --hash=sha256:23032ae55523cc7bccb4f6a0bf368cd25ad9bcdcc1990b64a647e7bbcce9cb5b \ + --hash=sha256:2333e30a5e00fe0fe55903c8832e08ee9c3b1382aacf4db26664a16528d51b4b \ + --hash=sha256:2954c1c23f81c2eaf0b0717d9380bd348578a94161a65b3a2afc62c86467dd68 \ + --hash=sha256:2de9d02f5bda03d27ede52e8cfe7b865b066fa49258cbab568720aa5be80a47d \ + --hash=sha256:30924eb4c57903d5a7526b08ef4a584acc22ab1ffa085faceb521521d2de32dd \ + --hash=sha256:316cc9b17edf613ac76b1f1f305d2a748f1b976b033b049a6ecdfd5612c70409 \ + --hash=sha256:38025d9f30cf4634f8309c6874ef871b841eb3c347e90b0851f63d1ded5212da \ + --hash=sha256:39da8adedf6942d76dc3e46653e52df937a3c4d6d18fdc94a7c29d263b1f5b50 \ + --hash=sha256:3d7954194c36e304e1523f55d7042c59dc53ec20dd4e9ea9d151f1b62b4415c0 \ + --hash=sha256:4093c631e96fdd49e0377a9c167bfd75b6d0bad2ace734c6eb20b348bc3ea180 \ + --hash=sha256:43ce1b9935bfa1ede40028054d7f48b5469cd02733a365eec8a329ffd342915d \ + --hash=sha256:4d4a848d1837973bf0f4b5e54e3bec977d99be36a7895c61abb659301b02c112 \ + --hash=sha256:4ed11165dd45ce798d99a136808a794a748d5dc38511303239d4e2363c0695dc \ + --hash=sha256:510b5b1bfbe20e1a7b3baf5fed9e9451873559a976c1a78eebaa3b86c57b4265 \ + --hash=sha256:524f35912131cc2cabb00edfd8d573b07f2d9f21fa824bd3fb19725a9cf06327 \ + --hash=sha256:587ca6d3cef6e4e868102672d3bd9dc9698c309ba56d41c2b9c85bbb903cdb95 \ + --hash=sha256:5b3cc074004d968722f51e550b41a27be656ec48f8afaeeb45ebf65b561481dd \ + --hash=sha256:5eeb539606f18a0b232d4ba45adccde4125592f3f636a6182b4a8a436548b914 \ + --hash=sha256:5f4d5ea15c9382135076d2fb28dde923352fe02951e66935a9efaac8f10e81b0 \ + --hash=sha256:5fb2ce4b8045c78ebbc7b8f3c15062e435d47e7393cc57c25115cfd49883747a \ + --hash=sha256:6172447e1b368dcbc458925e5ddaf9113477b0ed542df258d84fa28fc45ceea7 \ + --hash=sha256:6c3020404e0b5eefd7c9485ccf8393cfb75ec38ce75586e046573c9dc29967a0 \ + --hash=sha256:70051525001750221daa10907c77830bc889cb6d865cc0b813d9db7fefc21451 \ + --hash=sha256:7905193081db9bfa73b1219140b3d315831cbff0d8941f22da695832f0dd188f \ + --hash=sha256:7c4855522edb2e6ae7fdb58e07c3ba9111e7621a8956f481c68d5d979c93032e \ + --hash=sha256:7e4c4629ddad63006efa0ef968c8e4751c5868ff0b1c5c40f76524e894c50248 \ + --hash=sha256:7f4bf76817c14aa98cc6697ac02f3972cb8c3da93e9ef16b9c66573a68014f91 \ + --hash=sha256:81de08ac11bcb85841e440c13611c00b67d3bf82698314928d0b676362546724 \ + --hash=sha256:861bf317735688269936f755fa136a99d1ed526883859f86e41a5d43c61d8966 \ + --hash=sha256:890b5a14ce214389b2cc36ce82f3093f96f4cc730c1cffdbefff77a7c71f2a97 \ + --hash=sha256:89f4988c7203739d48c6f806f1e87a1d96e0806d44f0fba61dba81392c9e474d \ + --hash=sha256:8dadd1314583ec0bf2d1379f7008ad627cd6336625d6679cf2f8e67081b83acf \ + --hash=sha256:901032ff242d479a0efa956d853d16875d42157f98951c0230f69e69f9c09bac \ + --hash=sha256:906bc3a79de8c4ae5b86d3d75a8b77e44404b0f4261714306e3ad248d8ab0951 \ + --hash=sha256:919e32f147ae93a09fe064d77d5ebf4e35502a8df75c29fb05788528e330fe74 \ + --hash=sha256:929811df5462e182b13920da56c6e0284af407d1de637d8e536c5cd00a7daf60 \ + --hash=sha256:949f3b7c29912693cee0afcf09acd6ebc04c57af949d9bf77d6101ebb61e388c \ + --hash=sha256:a090ca607cbb6a34b0391776f0cb48062081f5f60ddcce5d11838e67a01928d1 \ + --hash=sha256:a1fd8a29719ccce974d523580987b7f8229aeace506952fa9ce1d53a033873c8 \ + --hash=sha256:a37b8f0391212d29b3a91a799c8e4a2855e0576911cdfb2515487e30e322253d \ + --hash=sha256:a3daabb76a78f829cafc365531c972016e4aa8d5b4bf60660ad8ecee19df7ccc \ + --hash=sha256:a469274ad18dc0e4d316eefa616d1d0c2ff9da369af19fa6f3daa4f09671fd61 \ + --hash=sha256:a599669fd7c47233438a56936988a2478685e74854088ef5293802123b5b2460 \ + --hash=sha256:a743e5a28af5f70f9c080380a5f908d4d21d40e8f0e0c8901604d15cfa9ba751 \ + --hash=sha256:a77def80806c421b4b0af06f45d65a136e7ac0bdca3c09d9e2ea4e515367c7e9 \ + --hash=sha256:aac0411d20e345dc0920bdec5548e438e999ff68d77564d5e9463a7ca9d3e7b1 \ + --hash=sha256:ae15b066e5ad21366600ebec29a7ccbc86812ed267e4b28e860b8ca16a2bc474 \ + --hash=sha256:be36e3d172dc816333f33520154d708a2657ea63762ec16b62ece02ab5e4daf2 \ + --hash=sha256:c8146669223164fc87a7e3de9f81e9423c67a79d6b3447994dfb9c95da16e2d6 \ + --hash=sha256:c8fd5270e906eef71d4a8d19b7c6a43760c6abcfcc10c9101d14eb2357418de9 \ + --hash=sha256:caf9ee9a5775f3111642d33b86237b05808dafcd6268faa492250e9b78046eb2 \ + --hash=sha256:cdad5b9014d83ca68c25d2e9444e28e967ef16e80f6b436918c700c117a85467 \ + --hash=sha256:cdbc1fc1bc0bff1cef838eafe581b55bfbffaed4ed0318b724d0b71d4d377619 \ + --hash=sha256:ceb64bbc6eac5a140ca649003756940f8d6a7c444a68af170b3187623b43bebf \ + --hash=sha256:d0c5516f0aed654134a2fc936325cc2e642f8a0e096d075209672eb321cff408 \ + --hash=sha256:d143fd47fad1db3d7c27a1b1d66162e855b5d50a89666af46e1679c496e8e579 \ + --hash=sha256:d192f0f30804e55db0d0e0a35d83a9fead0e9a359a9ed0285dbacea60cc10a84 \ + --hash=sha256:db85ecf4e609a48f4b29055f1e144231b90edc90af7481aa731ba2d059226b1b \ + --hash=sha256:de6551e370ef19f8de1807d0a9aa2cdfdce2e85ce88b122fe9f6b2b076837e59 \ + --hash=sha256:e1140c64812cb9b06c922e77f1c26a75ec5e3f0fb2bf92cc8c58720dec276752 \ + --hash=sha256:e6a904cb26bfefc2f0a6f240bdf5233be78cd2488900a2f846f3c3ac8489ab80 \ + --hash=sha256:e84799f09591700a4154154cab9787452925578841a94321d5ee8fb9a9a328f0 \ + --hash=sha256:e93dfc1a1165e385cc8239fab7c036fb2cd8093728cbd85097b284d7b99249a2 \ + --hash=sha256:efa8b278894b14d6da122a72fefcebc28445f2d3f880ac59d46c90f4c13be9a3 \ + --hash=sha256:f0d8a7a6b5983c2496e364b969f0e526647a06b075d034f3297dc66f3b360c64 \ + --hash=sha256:f296c40e23065d0d6650c4aefe7470d2a25fffda489bcc3eb66083f3ac9f6643 \ + --hash=sha256:f66b5337fa213f1da0d9000bc8dc0cb5b896b726eefd9c6046f699b169c41b9e \ + --hash=sha256:f733d788519c7e3e71f0855c96618720f5d3d60c3cb829d8bbb722dddce37985 \ + --hash=sha256:fce1473f3ccc4187f75b4690cfc922628aed4d3dd013d047f95a9b3919a86596 \ + --hash=sha256:fd5f17ff8f14003595ab414e45fce13d073e0762394f957182e69035c9f3d7c2 \ + --hash=sha256:fdc3ff3bfccdc6b9cc7c342c03aa2400683f0cb891d46e94b64a197910dc4064 # via geventhttpclient -certifi==2024.2.2 +certifi==2024.2.2 \ + --hash=sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f \ + --hash=sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 # via # elastic-transport # geventhttpclient # requests -charset-normalizer==3.3.2 +charset-normalizer==3.3.2 \ + --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ + --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ + --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ + --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ + --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ + --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ + --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ + --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ + --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ + --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ + --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ + --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ + --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ + --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ + --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ + --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ + --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ + --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ + --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ + --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ + --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ + --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ + --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ + --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ + --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ + --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ + --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ + --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ + --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ + --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ + --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ + --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ + --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ + --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ + --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ + --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ + --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ + --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ + --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ + --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ + --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ + --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ + --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ + --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ + --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ + --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ + --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ + --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ + --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ + --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ + --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ + --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ + --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ + --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ + --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ + --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ + --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ + --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ + --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ + --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ + --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ + --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ + --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ + --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ + --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ + --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ + --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ + --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ + --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ + --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ + --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ + --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ + --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ + --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ + --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ + --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ + --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ + --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ + --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ + --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ + --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ + --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ + --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ + --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ + --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ + --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ + --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ + --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ + --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ + --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 # via requests -click==8.1.7 +click==8.1.7 \ + --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ + --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de # via # -r requirements.in # flask -configargparse==1.7 +configargparse==1.7 \ + --hash=sha256:d249da6591465c6c26df64a9f73d2536e743be2f244eb3ebe61114af2f94f86b \ + --hash=sha256:e7067471884de5478c58a511e529f0f9bd1c66bfef1dea90935438d6c23306d1 # via locust -dacite==1.8.1 +dacite==1.8.1 \ + --hash=sha256:cc31ad6fdea1f49962ea42db9421772afe01ac5442380d9a99fcf3d188c61afe # via -r requirements.in -elastic-transport==8.12.0 +elastic-transport==8.12.0 \ + --hash=sha256:48839b942fcce199eece1558ecea6272e116c58da87ca8d495ef12eb61effaf7 \ + --hash=sha256:87d9dc9dee64a05235e7624ed7e6ab6e5ca16619aa7a6d22e853273b9f1cfbee # via elasticsearch -elasticsearch==8.11.1 +elasticsearch==8.11.1 \ + --hash=sha256:360b721324ce4bc7d554afb8acbf4942370e73c5ef8c4dad5f5ba3bb2a70eeae \ + --hash=sha256:a98309cee11fef8d6750f388683e9a8005da94bdfd940b36ef85cb6cc53186c7 # via -r requirements.in -flask==2.3.2 +flask==2.3.2 \ + --hash=sha256:77fd4e1249d8c9923de34907236b747ced06e5467ecac1a7bb7115ae0e9670b0 \ + --hash=sha256:8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef # via # -r requirements.in # flask-cors # flask-login # locust -flask-cors==3.0.10 +flask-cors==3.0.10 \ + --hash=sha256:74efc975af1194fc7891ff5cd85b0f7478be4f7f59fe158102e91abb72bb4438 \ + --hash=sha256:b60839393f3b84a0f3746f6cdca56c1ad7426aa738b70d6c61375857823181de # via # -r requirements.in # locust -flask-login==0.6.3 +flask-login==0.6.3 \ + --hash=sha256:5e23d14a607ef12806c699590b89d0f0e0d67baeec599d75947bf9c147330333 \ + --hash=sha256:849b25b82a436bf830a054e74214074af59097171562ab10bfa999e6b78aae5d # via locust -gevent==23.9.1 +gevent==23.9.1 \ + --hash=sha256:272cffdf535978d59c38ed837916dfd2b5d193be1e9e5dcc60a5f4d5025dd98a \ + --hash=sha256:2c7b5c9912378e5f5ccf180d1fdb1e83f42b71823483066eddbe10ef1a2fcaa2 \ + --hash=sha256:36a549d632c14684bcbbd3014a6ce2666c5f2a500f34d58d32df6c9ea38b6535 \ + --hash=sha256:4368f341a5f51611411ec3fc62426f52ac3d6d42eaee9ed0f9eebe715c80184e \ + --hash=sha256:43daf68496c03a35287b8b617f9f91e0e7c0d042aebcc060cadc3f049aadd653 \ + --hash=sha256:455e5ee8103f722b503fa45dedb04f3ffdec978c1524647f8ba72b4f08490af1 \ + --hash=sha256:45792c45d60f6ce3d19651d7fde0bc13e01b56bb4db60d3f32ab7d9ec467374c \ + --hash=sha256:4e24c2af9638d6c989caffc691a039d7c7022a31c0363da367c0d32ceb4a0648 \ + --hash=sha256:52b4abf28e837f1865a9bdeef58ff6afd07d1d888b70b6804557e7908032e599 \ + --hash=sha256:52e9f12cd1cda96603ce6b113d934f1aafb873e2c13182cf8e86d2c5c41982ea \ + --hash=sha256:5f3c781c84794926d853d6fb58554dc0dcc800ba25c41d42f6959c344b4db5a6 \ + --hash=sha256:62d121344f7465e3739989ad6b91f53a6ca9110518231553fe5846dbe1b4518f \ + --hash=sha256:65883ac026731ac112184680d1f0f1e39fa6f4389fd1fc0bf46cc1388e2599f9 \ + --hash=sha256:707904027d7130ff3e59ea387dddceedb133cc742b00b3ffe696d567147a9c9e \ + --hash=sha256:72c002235390d46f94938a96920d8856d4ffd9ddf62a303a0d7c118894097e34 \ + --hash=sha256:7532c17bc6c1cbac265e751b95000961715adef35a25d2b0b1813aa7263fb397 \ + --hash=sha256:78eebaf5e73ff91d34df48f4e35581ab4c84e22dd5338ef32714264063c57507 \ + --hash=sha256:7c1abc6f25f475adc33e5fc2dbcc26a732608ac5375d0d306228738a9ae14d3b \ + --hash=sha256:7c28e38dcde327c217fdafb9d5d17d3e772f636f35df15ffae2d933a5587addd \ + --hash=sha256:7ccf0fd378257cb77d91c116e15c99e533374a8153632c48a3ecae7f7f4f09fe \ + --hash=sha256:921dda1c0b84e3d3b1778efa362d61ed29e2b215b90f81d498eb4d8eafcd0b7a \ + --hash=sha256:a2898b7048771917d85a1d548fd378e8a7b2ca963db8e17c6d90c76b495e0e2b \ + --hash=sha256:a3c5e9b1f766a7a64833334a18539a362fb563f6c4682f9634dea72cbe24f771 \ + --hash=sha256:ada07076b380918829250201df1d016bdafb3acf352f35e5693b59dceee8dd2e \ + --hash=sha256:b101086f109168b23fa3586fccd1133494bdb97f86920a24dc0b23984dc30b69 \ + --hash=sha256:bf456bd6b992eb0e1e869e2fd0caf817f0253e55ca7977fd0e72d0336a8c1c6a \ + --hash=sha256:bf7af500da05363e66f122896012acb6e101a552682f2352b618e541c941a011 \ + --hash=sha256:c3e5d2fa532e4d3450595244de8ccf51f5721a05088813c1abd93ad274fe15e7 \ + --hash=sha256:c84d34256c243b0a53d4335ef0bc76c735873986d478c53073861a92566a8d71 \ + --hash=sha256:d163d59f1be5a4c4efcdd13c2177baaf24aadf721fdf2e1af9ee54a998d160f5 \ + --hash=sha256:d57737860bfc332b9b5aa438963986afe90f49645f6e053140cfa0fa1bdae1ae \ + --hash=sha256:dbb22a9bbd6a13e925815ce70b940d1578dbe5d4013f20d23e8a11eddf8d14a7 \ + --hash=sha256:dcb8612787a7f4626aa881ff15ff25439561a429f5b303048f0fca8a1c781c39 \ + --hash=sha256:dd6c32ab977ecf7c7b8c2611ed95fa4aaebd69b74bf08f4b4960ad516861517d \ + --hash=sha256:de350fde10efa87ea60d742901e1053eb2127ebd8b59a7d3b90597eb4e586599 \ + --hash=sha256:e1ead6863e596a8cc2a03e26a7a0981f84b6b3e956101135ff6d02df4d9a6b07 \ + --hash=sha256:ed7a048d3e526a5c1d55c44cb3bc06cfdc1947d06d45006cc4cf60dedc628904 \ + --hash=sha256:f632487c87866094546a74eefbca2c74c1d03638b715b6feb12e80120960185a \ + --hash=sha256:fae8d5b5b8fa2a8f63b39f5447168b02db10c888a3e387ed7af2bd1b8612e543 \ + --hash=sha256:fde6402c5432b835fbb7698f1c7f2809c8d6b2bd9d047ac1f5a7c1d5aa569303 # via # geventhttpclient # locust -geventhttpclient==2.0.11 +geventhttpclient==2.0.11 \ + --hash=sha256:025026620e5a369844b576981ddab25d60e7e3bb0e0657c1fe9360a52769eb9d \ + --hash=sha256:05a7699b49c9bc478b7ae165809ff97b21811a624791abe3927da5066128a10c \ + --hash=sha256:06914f401541681d8cb834652f53e65a8179ea17dd0e496fd52712fd3f548fbb \ + --hash=sha256:072f24198c0f179fcd8567e9270d5cb78ceea1d562a55b052cd083cf4c67feef \ + --hash=sha256:09167de901f5b5273ddc14fd53512cc696495be07f02e3cb8a0335e1ecbff57e \ + --hash=sha256:0a21dba9cf5e7511e76845f62dcf5072f4df7415bb8f20e47e0dfde675943a39 \ + --hash=sha256:0ae01d50529ac739573bc9cbc192b71bf9a13c3fcdbf2054952947a25e9f75a3 \ + --hash=sha256:0b48b10e2a812b9297ad5c43e7a1a088220940060bbfb84fb721b17ab3012e0d \ + --hash=sha256:0b70eedf64c162067765ddfb30c8f52daeb875c717a3d25f81d5e411e5ac4367 \ + --hash=sha256:0b91290138518b201fba98bc82b062ef32e5e3da28843998902852298c354dcf \ + --hash=sha256:0b97c84e9be76bdd726757437327be5446710eafb64f7097d8d86db9c0f7d280 \ + --hash=sha256:0edacd51cd9a6f0b88e25cb6c8744488ba6c7c22044b09de585b2a1224f2a7b9 \ + --hash=sha256:105af48455d4eecb4e0f2b2b7f766131811aa1a9a1e768fb020b9ae0ba840ee4 \ + --hash=sha256:106e2ba0ce34a3501651995dd46ed38b87e7b5ada0fb977142d952661853f36a \ + --hash=sha256:1a6fcc3968ea1adf764bc11b0e7d01b94ffe27bdd21c5b1d9e55be56de6a53c3 \ + --hash=sha256:1bc799d50db685e093b5819459889f356dd7478a82af66f880832a95fcfa37c3 \ + --hash=sha256:1ce8421aa0a2307edf04a7086236e7e9f9188ab349154c409d723744032746eb \ + --hash=sha256:1e27a9521e0ad0d97d0ff81578fd4dd6ae9eee8095d46edb820dfda33c0bd233 \ + --hash=sha256:2214352e01fef4218bbbc61bd84af6f101bb5a33244088f6db28ff6d1141797f \ + --hash=sha256:237eba77682553253040588f136a2980dfcd71307202422a17b716e9d8be5614 \ + --hash=sha256:27f9e22a31451087854204f7f341bd4adc32050180580f74b5de75b61a3b405f \ + --hash=sha256:2911d3657e2426b6a2d59af0b52285c1a7c4a78d0e4d03ee4ec1d5195a25a09f \ + --hash=sha256:2d7318b3493c2e21df79429be3dbfefbc254c41a5b5c02c148a4521d59169ad6 \ + --hash=sha256:33c4af3aa0312c27668171ea061d461f678848a09a32953b4d895f72a1bde0c9 \ + --hash=sha256:38384af2da776563a19951958df65e31ecc7b8d20788d43aff35ec909e4a115f \ + --hash=sha256:3e24ff4c398f9e49c5c0740585f12fcf7033dc27a20ec884f3b2c729e2f47f14 \ + --hash=sha256:40df90cd9b5f5f7355526cc538e626466cb60c2e737e9cb8958569377d568e9f \ + --hash=sha256:4597ea18ddc9838dc0e6cb9d5efb812191f2ca65ab38c115a56894045c73ea40 \ + --hash=sha256:465e62fb055e2ca5907606d32d421970f93506309b11a33b367eef33d95a6b7a \ + --hash=sha256:46677a56fa9f2f650be74024601b3a1968cfc58a434f5819fc2fc227bb292836 \ + --hash=sha256:49ff1c00e64e0820a02fadc6a72b49ae8cc69028caa40170873a3012de98d475 \ + --hash=sha256:4c61c02c2d32e1b5b1f73d2b201c1e088e956b73e431ed6b5589010faed88380 \ + --hash=sha256:4f0c773ceeeedfab56b24b97a0c8f04c58a716dfc7403e51ea898ad01599f1a6 \ + --hash=sha256:52ac561df8d363fe2e00ba4cccea470745129a48bb86f665a1447d0d68abec54 \ + --hash=sha256:549d0f3af08420b9ad2beeda211153c7605b5ba409b228db7f1b81c8bfbec6b4 \ + --hash=sha256:5594bc889a686511039d1efd17473eecc4a91fa01d66a59bfa0a8cf04fb34551 \ + --hash=sha256:572364fc4acd7ff2e77641e6bd1e64cf315d899a7fc48953eac1dd3b6865fd99 \ + --hash=sha256:598951751b2162b0697cd5b6a9edcc65ec30f34388b6e09caaa0c453fb08fb6e \ + --hash=sha256:60641b8ff7077a57bb68f1189c8ae8ffc6f14ae238ba6a81748659c30894d580 \ + --hash=sha256:63826170b520894578bd269b54139bb2f0cc2d96ae1f4a49b3928fe01ffa22ff \ + --hash=sha256:63fc49d73e70cab8316a4d0106c037a2a5d0f6650683af05d0d05d354b694d49 \ + --hash=sha256:64d36604974bc2b2ed0166bc666cead87f3c0f2d9487ef73d4e11df9ba6ebcc8 \ + --hash=sha256:6cc44c57c02db1ded6f5a6bd4ccc385c4d13c7ae3528b831e70b5cc87e5b0ad1 \ + --hash=sha256:6ccdebfd20ab07ace7aa4dcd020f094d1cae237b4eacfca08ac523cac64e02d3 \ + --hash=sha256:6e521089a3a95c98e1742f1a1ea41568b029bc2528cc6fc7ab91bb5d416f1f2c \ + --hash=sha256:6f89edc316a8ff967a50c6f98277619786ed6abf2dd36ea905baf840a02b1b1b \ + --hash=sha256:713530c8f67a08ce0d5a4af80045112213c63eacefa1c08b76beebf780c755b0 \ + --hash=sha256:71a9e152bb3cb86552f61659f3c7bdc272d9baf21726b3caceb5ab5d0e703fe6 \ + --hash=sha256:78a7e493e09d0aa4ba9651147d02fc555159371fecab0e4e96196c72f191322e \ + --hash=sha256:7947aae2d7123a970669ebd763a09ef0c85104cda414689dd77b5e5a5c1f2a40 \ + --hash=sha256:81e73ee32f4217072935825a0bad7264dc803b0d24cc4e2f4bfcac3fff49a899 \ + --hash=sha256:8329c60d94e688d75ec1c6f67a77ab96f726f8ea562a8d48afa1ed6470334a6f \ + --hash=sha256:844b30e3694a4d9518fe6f0b167fa3ffc3ea3444563d9fdd7a18a961f6a77d9c \ + --hash=sha256:94579ec289d46fca939b78cfe91732e82491f3dab03604f974a2e711654e7210 \ + --hash=sha256:94a8be54ac74ff6cf4703d049766e6ed07787fa9b6a2dd538c46f81de72ffdde \ + --hash=sha256:955b04deac7ea09a3d5183ba92a3d2a81121ad71d10f1489cb56fd31d0cb4ac4 \ + --hash=sha256:968587b59372e825411935e188b9a05dcdec6db6769be3eb3bba949cb414ae98 \ + --hash=sha256:989a1ed8dbdaf683dd5701087b736b93e6bacb3c29f4090014e64033cc8620e2 \ + --hash=sha256:98a25e30ddccd49f80e037d48f136050b8f3c24ed9c6a69df7a643989f29c4e8 \ + --hash=sha256:99feb5581111c7ec44e1ce507b4420947b4c49b363b2fbc3edd543e2ac67a1e0 \ + --hash=sha256:9ad49019e2828508526d35e7026b95a1fd9ef49ed0cdd2526a5cb3eb39583640 \ + --hash=sha256:9b406ef64382a9c42b88331cdd6639a2b998e8034dbb1b702264d27c01f3ad5d \ + --hash=sha256:9c483daa1deda0c52a77ed7af2906a38657c15120cb3240bf589dfb139255921 \ + --hash=sha256:9dca243f58f245872458647b0b6da4be9ce8d707639d76a50d2e8d3f4abb1659 \ + --hash=sha256:a0b30fef1eb118927b5d8cab106198883f1bde021e9036277ea2f9e0020e0ad2 \ + --hash=sha256:a25a7fc768791cf9fe590f1b4f231727441e8f7e9279e8ae2bee83e0f3b010f8 \ + --hash=sha256:a30bd715480ddbab0217764b516a65e36ecee2e81c9a04d074769eec6e0c1681 \ + --hash=sha256:a4361c5a522d2a79d8a9047926b8f8926e0f797777da9f450d359bed9f33ac33 \ + --hash=sha256:a489573a0a0559f8960b38795dc53d1e222bc0978b211763d1303b2f94e4c3e0 \ + --hash=sha256:a59b164a68bbb1a6f7bee859d7e75ef148b1e9bd72c4810c712cd49603dc37cd \ + --hash=sha256:a84f48f2eff42171cc446690baffa914122e88cea5b1de44cf6dd1c82b07623b \ + --hash=sha256:aaa2bc31a38dbb387c7539cfa03d3bafaa32151972d34b42f2f648b66778e128 \ + --hash=sha256:abb32554c1ad103ed1114cee3d75fa6a3c5d8a0898e4e64db68f3fc0f11fb0de \ + --hash=sha256:ae71a7740526be78c6e899b03b63ab47a1a434332f7ca725dcdc916d938d46c6 \ + --hash=sha256:aec646409fa6eee277e33a1f4f1860d4c25e0448eedea149df92918d4502f38c \ + --hash=sha256:b179a13c113a90c5501f1b1121bdc4c1f816d942280a9c3d2d46aff2bc97269a \ + --hash=sha256:b2bea1386dbfd262571157da319e2285e20844fdbaabb22f95e784ca8b47d90c \ + --hash=sha256:b523860ee558f752847b29ad6678d1b8a40154d06bc7a8973132991aff727fdd \ + --hash=sha256:b70f80528ae74518a16214261abba2a276739e6e35ce518fdbd8be2a3f42f93a \ + --hash=sha256:ba597da51b59df28cf484326d7d59e33a57d3b32d7a4e1646c580f175354d6ce \ + --hash=sha256:bc9634e025f17dc25987ebd5b0461659178ca57052ec70ad65052d0495111a74 \ + --hash=sha256:bd894ec63974fe4e916a1bf6efd35307b86ef53bd88e8fbe61020a289fee2f7c \ + --hash=sha256:beb3a99e7a0a5130fbed2453348d81a78f2ef7d6aa326b5799c7f3dde88cabea \ + --hash=sha256:c125a225188bcacd51f05878d6e62554116a5be6b3a203cd0ba2460857bc8cd3 \ + --hash=sha256:c4d86f042501a783e94188ef8b099f32bc4680f2423bbbb56f40158d4556a56b \ + --hash=sha256:cb9e9c6f3fb902dd622964097df77e0ed9b249b8904b44fc3461734cc791b0aa \ + --hash=sha256:cda51b46d8ab3993763a394ed6601137c32f70cff78dfe703edecb3dfa143009 \ + --hash=sha256:ceb038cbf92105d124433066685c73e6a4a762c15885f00be2e25663468e4f29 \ + --hash=sha256:d1b73c37fbecb26475fa6e2d018dab4b5a03c7ba08c8907598605c874a70ee79 \ + --hash=sha256:d461cdac133d4a4d173e2c1cc213f3a9924e6e092aeebd49bf8924719a073e0b \ + --hash=sha256:d54b886ce042186a4f731dcbcb4ffa8d674b0542907fc72de20d0b5088adc252 \ + --hash=sha256:d75c706f2a2401f703585cddf51cb0e43c28b7f12b1998c4a41fd6d14feec89b \ + --hash=sha256:d79ee0d7ab5d775b056400155cab1e3547a7fa6511f6098e25613ed8705ae8b8 \ + --hash=sha256:e18e622171d09f068b26304b7d3c484d55952813e09eec5b3db1012dc53795de \ + --hash=sha256:e572e63e51fde06c30beabf8021e7d3f93e198a9c241ef2f3ed16d7828966768 \ + --hash=sha256:e573b86999cfeae38c4dd881f05818b9a60245a6763bc77efb48fa136cefdfcc \ + --hash=sha256:e5939bca6ab38a482352be8a7141570464d4d18281d8a3a2e2f7a82a0d8c38c4 \ + --hash=sha256:e87fb8bd748bf32e9902e9cbea3f20ff5456705d3f53f0a8ea0c4983594457a8 \ + --hash=sha256:ea232981e29869524e85b5e6c79ad64abf40dd7b6dc01be6765b5e6bd191fd73 \ + --hash=sha256:ee03ea884e6aa318078c0c7132d246fe92b51d587410532e63b864e6e61ea192 \ + --hash=sha256:efa467997f87d39f774ed1916a9e184c9a936f8fa90ab1a8ebf97aba2ee7ed63 \ + --hash=sha256:f016093e8d26b724efdeda776968368fb591a57afbded2d86c408db8723e38ce \ + --hash=sha256:f2337e10e2ad20970436f216d7b3b8d1503f8e4645d439173a98b4b418fe5768 \ + --hash=sha256:f41bcdcec859264a1b6cc7c57bdb9411da8047f17b982cb62756bcc74a1b045b \ + --hash=sha256:f430257a7b0a75e7f4c0d6f4f3f8960d45b5aae56b8eca7988963487501a52a0 \ + --hash=sha256:f468f88df7649bfcc6f74878182d0b7bcb3c23445a76be2b8b59e46224e2c244 \ + --hash=sha256:f509176bc7754b1181375a25ec6909425a5997e58c98ea29a36fe8b6a376852f \ + --hash=sha256:f5d73be013a7a2a357eb27d18e5990c773365f63f50a43eaf357d6efb1fd46a6 # via locust -greenlet==3.0.3 +greenlet==3.0.3 \ + --hash=sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67 \ + --hash=sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6 \ + --hash=sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257 \ + --hash=sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4 \ + --hash=sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676 \ + --hash=sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61 \ + --hash=sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc \ + --hash=sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca \ + --hash=sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7 \ + --hash=sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728 \ + --hash=sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305 \ + --hash=sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6 \ + --hash=sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379 \ + --hash=sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414 \ + --hash=sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04 \ + --hash=sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a \ + --hash=sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf \ + --hash=sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491 \ + --hash=sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559 \ + --hash=sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e \ + --hash=sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274 \ + --hash=sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb \ + --hash=sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b \ + --hash=sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9 \ + --hash=sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b \ + --hash=sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be \ + --hash=sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506 \ + --hash=sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405 \ + --hash=sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113 \ + --hash=sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f \ + --hash=sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5 \ + --hash=sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230 \ + --hash=sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d \ + --hash=sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f \ + --hash=sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a \ + --hash=sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e \ + --hash=sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61 \ + --hash=sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6 \ + --hash=sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d \ + --hash=sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71 \ + --hash=sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22 \ + --hash=sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2 \ + --hash=sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3 \ + --hash=sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067 \ + --hash=sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc \ + --hash=sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881 \ + --hash=sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3 \ + --hash=sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e \ + --hash=sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac \ + --hash=sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53 \ + --hash=sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0 \ + --hash=sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b \ + --hash=sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83 \ + --hash=sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41 \ + --hash=sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c \ + --hash=sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf \ + --hash=sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da \ + --hash=sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33 # via gevent -idna==3.6 +idna==3.6 \ + --hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \ + --hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f # via requests -iniconfig==2.0.0 +iniconfig==2.0.0 \ + --hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \ + --hash=sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374 # via pytest -itsdangerous==2.1.2 +itsdangerous==2.1.2 \ + --hash=sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44 \ + --hash=sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a # via flask -jinja2==3.1.3 +jinja2==3.1.3 \ + --hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \ + --hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90 # via # flask # memray -linkify-it-py==2.0.3 +linkify-it-py==2.0.3 \ + --hash=sha256:68cda27e162e9215c17d786649d1da0021a451bdc436ef9e0fa0ba5234b9b048 \ + --hash=sha256:6bcbc417b0ac14323382aef5c5192c0075bf8a9d6b41820a2b66371eac6b6d79 # via markdown-it-py -locust==2.23.1 +locust==2.23.1 \ + --hash=sha256:6cc729729e5ebf5852fc9d845302cfcf0ab0132f198e68b3eb0c88b438b6a863 \ + --hash=sha256:96013a460a4b4d6d4fd46c70e6ff1fd2b6e03b48ddb1b48d1513d3134ba2cecf # via -r requirements.in -markdown-it-py[linkify,plugins]==3.0.0 +markdown-it-py[linkify,plugins]==3.0.0 \ + --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ + --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb # via # mdit-py-plugins # rich # textual -markupsafe==2.1.5 +markupsafe==2.1.5 \ + --hash=sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf \ + --hash=sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff \ + --hash=sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f \ + --hash=sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3 \ + --hash=sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532 \ + --hash=sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f \ + --hash=sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617 \ + --hash=sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df \ + --hash=sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4 \ + --hash=sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906 \ + --hash=sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f \ + --hash=sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4 \ + --hash=sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8 \ + --hash=sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371 \ + --hash=sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2 \ + --hash=sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465 \ + --hash=sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52 \ + --hash=sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6 \ + --hash=sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169 \ + --hash=sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad \ + --hash=sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2 \ + --hash=sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0 \ + --hash=sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029 \ + --hash=sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f \ + --hash=sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a \ + --hash=sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced \ + --hash=sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5 \ + --hash=sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c \ + --hash=sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf \ + --hash=sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9 \ + --hash=sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb \ + --hash=sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad \ + --hash=sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3 \ + --hash=sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1 \ + --hash=sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46 \ + --hash=sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc \ + --hash=sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a \ + --hash=sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee \ + --hash=sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900 \ + --hash=sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5 \ + --hash=sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea \ + --hash=sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f \ + --hash=sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5 \ + --hash=sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e \ + --hash=sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a \ + --hash=sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f \ + --hash=sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50 \ + --hash=sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a \ + --hash=sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b \ + --hash=sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4 \ + --hash=sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff \ + --hash=sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2 \ + --hash=sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46 \ + --hash=sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b \ + --hash=sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf \ + --hash=sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5 \ + --hash=sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5 \ + --hash=sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab \ + --hash=sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd \ + --hash=sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68 # via # jinja2 # werkzeug -mdit-py-plugins==0.4.0 +mdit-py-plugins==0.4.0 \ + --hash=sha256:b51b3bb70691f57f974e257e367107857a93b36f322a9e6d44ca5bf28ec2def9 \ + --hash=sha256:d8ab27e9aed6c38aa716819fedfde15ca275715955f8a185a8e1cf90fb1d2c1b # via markdown-it-py -mdurl==0.1.2 +mdurl==0.1.2 \ + --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ + --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba # via markdown-it-py -memray==1.11.0 +memray==1.11.0 \ + --hash=sha256:016a68de76fc800554fcc7dc473e48092d749b3b4302a6babd2e592a5fe8ae5e \ + --hash=sha256:0814a234cceaa664184ede2ebada2923e89c6b358b5bb9d71409a35ecae1623b \ + --hash=sha256:0a5b31192d8a8d44d12320873f231c22e6ea5aed079b880cf21556ab34b3f526 \ + --hash=sha256:0ea78c073e8c5c408d4034f2da04031d0dfa8e1eface5512b350d81766aebb25 \ + --hash=sha256:0ed869e4a82722a4558da749f39d6079f2ef5e767d1399d2d090b04742e2b3f2 \ + --hash=sha256:1534520c3c3e6b8234fe13c6d36bd74ab855dc19cef6e9d190a2a0b48fd2d83d \ + --hash=sha256:16a6ce38566029433323f7c0dfc76732a47158eee3de4c1734f00ad36d953181 \ + --hash=sha256:1dbb599c66ffaf1467c4f96aabbecbf30b58963366f17e07bea869c95bec7f72 \ + --hash=sha256:24894d1f5c63cdaba137199ad989d8882485ecb4190d1ff7dc5214ac84484a06 \ + --hash=sha256:266736c1471ddfb59d03e6d78f93f55fd0ab2fe800b9929fc5256d9208efc4a2 \ + --hash=sha256:39bbf9e74c3933a84c22e047920a0f6e2d491ba943a39f4aa041f1c0422c8403 \ + --hash=sha256:3fc83741aedd6daa9c49ecee0a8e0048f278b6eb1ae22bdcf9b4523be7ba7106 \ + --hash=sha256:50889d09343993513113b21ad86a7d56e128abdb9a526c4fd394df7a3a7bda78 \ + --hash=sha256:68f15ff78a6f44344599209bc0d1e5e5d608e81bd2c9b5f02824d08751cf07d9 \ + --hash=sha256:6bf07fef1a66b96126bc0f398e01c3860e59f01eb89b244cfdcc36e70b68edad \ + --hash=sha256:6e9a74eaa673cf4c87302bd0845586a072dba7fc172a3960af64b1ad5cedf00f \ + --hash=sha256:6f46e00d4a10a7fb73b560e57689a68ca3661bf969e228093d20fc1313c42f0b \ + --hash=sha256:72df1994a39018c4687a75c1750b7be3bfcd5c0c5e79e9ed73b552d4d5077588 \ + --hash=sha256:7824202d23e3060c7a0380e1a9bb6f131f47ee29c6f30b322e844648ea3aa9da \ + --hash=sha256:7fb0ae51e06e90336573ed9454cc05541075756e633023550086f8f1882bd38b \ + --hash=sha256:89fdfbdd8ec5d9fad75b7ee487de6b2394856235511b1950c3505e78afbc8170 \ + --hash=sha256:8b2819a6612b771ffab2d80f518cf602aeec7bacee9659c6f7af40596fbfe9f6 \ + --hash=sha256:9076942a66a03a7a3e668314cd00f720db31116df7e8626808150e4e22a079cd \ + --hash=sha256:9c577e81f8f7cd1418c7bfae4651d9bb3f16b72200e4b8d9b80c71aeeab64bb8 \ + --hash=sha256:9fbb2a1a82e24f0f90a9bb4ca7af6174ce91c5f3b3ce58e0b16361e989ea7cc1 \ + --hash=sha256:a4f012204aaeb233c5414e776d04d468d7a542da259811b059a89a519032e2ec \ + --hash=sha256:ad1aeec47f1abb37ca6bd4a5a8be8c556e7456fe2e4a5c79b7bc32eaac916b24 \ + --hash=sha256:ad1f2bb1223759e6b9755b6139087f6bcbaca1718cfed70c31aba0943542b431 \ + --hash=sha256:b8e02e8bbe03826c5e65c2cc28760b1d0bc59f9bee6d6769c01e800b50542f5b \ + --hash=sha256:c3dfb2c20fbbb128489f7b9f5bd2704bae6f77dba11c253cccf8eb8299697fe4 \ + --hash=sha256:c5b8860e3cc7df4f7f451e043aabe60a3812f99c3e308f0c4c0e7a03d72c1563 \ + --hash=sha256:db4ebee46c24212a357641fe9fb893c842bfc66bee25546ff2efe9350e850138 \ + --hash=sha256:dd5a91fc0632896b524ad7b121146e991176252cd072bb06ea2596042232a04f \ + --hash=sha256:eedea42d13b3630faa5591e298659f34e6ead06aa867050def12de6cc03e1a97 \ + --hash=sha256:f72c111a4868d0f2b4e4fb9ba4da736db8c73b6fb0ac6e6f2deca8ee540eb688 \ + --hash=sha256:f83b34f92781f22ef6a7b7f4a67258deb516a06f86c713da33211a6db4fc9ea6 \ + --hash=sha256:fc9372c1f0161b245a235b12ff3d5dc1a05216ad3fde158e62d1143b7f3b99cc # via -r requirements.in -msgpack==1.0.7 +msgpack==1.0.7 \ + --hash=sha256:04ad6069c86e531682f9e1e71b71c1c3937d6014a7c3e9edd2aa81ad58842862 \ + --hash=sha256:0bfdd914e55e0d2c9e1526de210f6fe8ffe9705f2b1dfcc4aecc92a4cb4b533d \ + --hash=sha256:1dc93e8e4653bdb5910aed79f11e165c85732067614f180f70534f056da97db3 \ + --hash=sha256:1e2d69948e4132813b8d1131f29f9101bc2c915f26089a6d632001a5c1349672 \ + --hash=sha256:235a31ec7db685f5c82233bddf9858748b89b8119bf4538d514536c485c15fe0 \ + --hash=sha256:27dcd6f46a21c18fa5e5deed92a43d4554e3df8d8ca5a47bf0615d6a5f39dbc9 \ + --hash=sha256:28efb066cde83c479dfe5a48141a53bc7e5f13f785b92ddde336c716663039ee \ + --hash=sha256:3476fae43db72bd11f29a5147ae2f3cb22e2f1a91d575ef130d2bf49afd21c46 \ + --hash=sha256:36e17c4592231a7dbd2ed09027823ab295d2791b3b1efb2aee874b10548b7524 \ + --hash=sha256:384d779f0d6f1b110eae74cb0659d9aa6ff35aaf547b3955abf2ab4c901c4819 \ + --hash=sha256:38949d30b11ae5f95c3c91917ee7a6b239f5ec276f271f28638dec9156f82cfc \ + --hash=sha256:3967e4ad1aa9da62fd53e346ed17d7b2e922cba5ab93bdd46febcac39be636fc \ + --hash=sha256:3e7bf4442b310ff154b7bb9d81eb2c016b7d597e364f97d72b1acc3817a0fdc1 \ + --hash=sha256:3f0c8c6dfa6605ab8ff0611995ee30d4f9fcff89966cf562733b4008a3d60d82 \ + --hash=sha256:484ae3240666ad34cfa31eea7b8c6cd2f1fdaae21d73ce2974211df099a95d81 \ + --hash=sha256:4a7b4f35de6a304b5533c238bee86b670b75b03d31b7797929caa7a624b5dda6 \ + --hash=sha256:4cb14ce54d9b857be9591ac364cb08dc2d6a5c4318c1182cb1d02274029d590d \ + --hash=sha256:4e71bc4416de195d6e9b4ee93ad3f2f6b2ce11d042b4d7a7ee00bbe0358bd0c2 \ + --hash=sha256:52700dc63a4676669b341ba33520f4d6e43d3ca58d422e22ba66d1736b0a6e4c \ + --hash=sha256:572efc93db7a4d27e404501975ca6d2d9775705c2d922390d878fcf768d92c87 \ + --hash=sha256:576eb384292b139821c41995523654ad82d1916da6a60cff129c715a6223ea84 \ + --hash=sha256:5b0bf0effb196ed76b7ad883848143427a73c355ae8e569fa538365064188b8e \ + --hash=sha256:5b6ccc0c85916998d788b295765ea0e9cb9aac7e4a8ed71d12e7d8ac31c23c95 \ + --hash=sha256:5ed82f5a7af3697b1c4786053736f24a0efd0a1b8a130d4c7bfee4b9ded0f08f \ + --hash=sha256:6d4c80667de2e36970ebf74f42d1088cc9ee7ef5f4e8c35eee1b40eafd33ca5b \ + --hash=sha256:730076207cb816138cf1af7f7237b208340a2c5e749707457d70705715c93b93 \ + --hash=sha256:7687e22a31e976a0e7fc99c2f4d11ca45eff652a81eb8c8085e9609298916dcf \ + --hash=sha256:822ea70dc4018c7e6223f13affd1c5c30c0f5c12ac1f96cd8e9949acddb48a61 \ + --hash=sha256:84b0daf226913133f899ea9b30618722d45feffa67e4fe867b0b5ae83a34060c \ + --hash=sha256:85765fdf4b27eb5086f05ac0491090fc76f4f2b28e09d9350c31aac25a5aaff8 \ + --hash=sha256:8dd178c4c80706546702c59529ffc005681bd6dc2ea234c450661b205445a34d \ + --hash=sha256:8f5b234f567cf76ee489502ceb7165c2a5cecec081db2b37e35332b537f8157c \ + --hash=sha256:98bbd754a422a0b123c66a4c341de0474cad4a5c10c164ceed6ea090f3563db4 \ + --hash=sha256:993584fc821c58d5993521bfdcd31a4adf025c7d745bbd4d12ccfecf695af5ba \ + --hash=sha256:a40821a89dc373d6427e2b44b572efc36a2778d3f543299e2f24eb1a5de65415 \ + --hash=sha256:b291f0ee7961a597cbbcc77709374087fa2a9afe7bdb6a40dbbd9b127e79afee \ + --hash=sha256:b573a43ef7c368ba4ea06050a957c2a7550f729c31f11dd616d2ac4aba99888d \ + --hash=sha256:b610ff0f24e9f11c9ae653c67ff8cc03c075131401b3e5ef4b82570d1728f8a9 \ + --hash=sha256:bdf38ba2d393c7911ae989c3bbba510ebbcdf4ecbdbfec36272abe350c454075 \ + --hash=sha256:bfef2bb6ef068827bbd021017a107194956918ab43ce4d6dc945ffa13efbc25f \ + --hash=sha256:cab3db8bab4b7e635c1c97270d7a4b2a90c070b33cbc00c99ef3f9be03d3e1f7 \ + --hash=sha256:cb70766519500281815dfd7a87d3a178acf7ce95390544b8c90587d76b227681 \ + --hash=sha256:cca1b62fe70d761a282496b96a5e51c44c213e410a964bdffe0928e611368329 \ + --hash=sha256:ccf9a39706b604d884d2cb1e27fe973bc55f2890c52f38df742bc1d79ab9f5e1 \ + --hash=sha256:dc43f1ec66eb8440567186ae2f8c447d91e0372d793dfe8c222aec857b81a8cf \ + --hash=sha256:dd632777ff3beaaf629f1ab4396caf7ba0bdd075d948a69460d13d44357aca4c \ + --hash=sha256:e45ae4927759289c30ccba8d9fdce62bb414977ba158286b5ddaf8df2cddb5c5 \ + --hash=sha256:e50ebce52f41370707f1e21a59514e3375e3edd6e1832f5e5235237db933c98b \ + --hash=sha256:ebbbba226f0a108a7366bf4b59bf0f30a12fd5e75100c630267d94d7f0ad20e5 \ + --hash=sha256:ec79ff6159dffcc30853b2ad612ed572af86c92b5168aa3fc01a67b0fa40665e \ + --hash=sha256:f0936e08e0003f66bfd97e74ee530427707297b0d0361247e9b4f59ab78ddc8b \ + --hash=sha256:f26a07a6e877c76a88e3cecac8531908d980d3d5067ff69213653649ec0f60ad \ + --hash=sha256:f64e376cd20d3f030190e8c32e1c64582eba56ac6dc7d5b0b49a9d44021b52fd \ + --hash=sha256:f6ffbc252eb0d229aeb2f9ad051200668fc3a9aaa8994e49f0cb2ffe2b7867e7 \ + --hash=sha256:f9a7c509542db4eceed3dcf21ee5267ab565a83555c9b88a8109dcecc4709002 \ + --hash=sha256:ff1d0899f104f3921d94579a5638847f783c9b04f2d5f229392ca77fba5b82fc # via locust -nose2==0.14.1 +nose2==0.14.1 \ + --hash=sha256:7f8f03a21c9de2c33015933afcef72bf8e4a2d5dfec3b40092287de6e41b093a \ + --hash=sha256:dfbf0d90c98b8d7bbf47d7721c7554ffcca86828ec074c985bb6ecc83c445a4e # via -r requirements.in -numpy==1.26.4 +numpy==1.26.4 \ + --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ + --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ + --hash=sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20 \ + --hash=sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0 \ + --hash=sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010 \ + --hash=sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a \ + --hash=sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea \ + --hash=sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c \ + --hash=sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 \ + --hash=sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110 \ + --hash=sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be \ + --hash=sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a \ + --hash=sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a \ + --hash=sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 \ + --hash=sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed \ + --hash=sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd \ + --hash=sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c \ + --hash=sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e \ + --hash=sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0 \ + --hash=sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c \ + --hash=sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a \ + --hash=sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b \ + --hash=sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0 \ + --hash=sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6 \ + --hash=sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2 \ + --hash=sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a \ + --hash=sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30 \ + --hash=sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218 \ + --hash=sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5 \ + --hash=sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07 \ + --hash=sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 \ + --hash=sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4 \ + --hash=sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764 \ + --hash=sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef \ + --hash=sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3 \ + --hash=sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f # via -r requirements.in -packaging==23.2 +packaging==23.2 \ + --hash=sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5 \ + --hash=sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7 # via pytest -pika==1.3.2 +pika==1.3.2 \ + --hash=sha256:0779a7c1fafd805672796085560d290213a465e4f6f76a6fb19e378d8041a14f \ + --hash=sha256:b2a327ddddf8570b4965b3576ac77091b850262d34ce8c1d8cb4e4146aa4145f # via -r requirements.in -pillow==10.2.0 +pillow==10.2.0 \ + --hash=sha256:0304004f8067386b477d20a518b50f3fa658a28d44e4116970abfcd94fac34a8 \ + --hash=sha256:0689b5a8c5288bc0504d9fcee48f61a6a586b9b98514d7d29b840143d6734f39 \ + --hash=sha256:0eae2073305f451d8ecacb5474997c08569fb4eb4ac231ffa4ad7d342fdc25ac \ + --hash=sha256:0fb3e7fc88a14eacd303e90481ad983fd5b69c761e9e6ef94c983f91025da869 \ + --hash=sha256:11fa2e5984b949b0dd6d7a94d967743d87c577ff0b83392f17cb3990d0d2fd6e \ + --hash=sha256:127cee571038f252a552760076407f9cff79761c3d436a12af6000cd182a9d04 \ + --hash=sha256:154e939c5f0053a383de4fd3d3da48d9427a7e985f58af8e94d0b3c9fcfcf4f9 \ + --hash=sha256:15587643b9e5eb26c48e49a7b33659790d28f190fc514a322d55da2fb5c2950e \ + --hash=sha256:170aeb00224ab3dc54230c797f8404507240dd868cf52066f66a41b33169bdbe \ + --hash=sha256:1b5e1b74d1bd1b78bc3477528919414874748dd363e6272efd5abf7654e68bef \ + --hash=sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56 \ + --hash=sha256:1e23412b5c41e58cec602f1135c57dfcf15482013ce6e5f093a86db69646a5aa \ + --hash=sha256:2247178effb34a77c11c0e8ac355c7a741ceca0a732b27bf11e747bbc950722f \ + --hash=sha256:257d8788df5ca62c980314053197f4d46eefedf4e6175bc9412f14412ec4ea2f \ + --hash=sha256:3031709084b6e7852d00479fd1d310b07d0ba82765f973b543c8af5061cf990e \ + --hash=sha256:322209c642aabdd6207517e9739c704dc9f9db943015535783239022002f054a \ + --hash=sha256:322bdf3c9b556e9ffb18f93462e5f749d3444ce081290352c6070d014c93feb2 \ + --hash=sha256:33870dc4653c5017bf4c8873e5488d8f8d5f8935e2f1fb9a2208c47cdd66efd2 \ + --hash=sha256:35bb52c37f256f662abdfa49d2dfa6ce5d93281d323a9af377a120e89a9eafb5 \ + --hash=sha256:3c31822339516fb3c82d03f30e22b1d038da87ef27b6a78c9549888f8ceda39a \ + --hash=sha256:3eedd52442c0a5ff4f887fab0c1c0bb164d8635b32c894bc1faf4c618dd89df2 \ + --hash=sha256:3ff074fc97dd4e80543a3e91f69d58889baf2002b6be64347ea8cf5533188213 \ + --hash=sha256:47c0995fc4e7f79b5cfcab1fc437ff2890b770440f7696a3ba065ee0fd496563 \ + --hash=sha256:49d9ba1ed0ef3e061088cd1e7538a0759aab559e2e0a80a36f9fd9d8c0c21591 \ + --hash=sha256:51f1a1bffc50e2e9492e87d8e09a17c5eea8409cda8d3f277eb6edc82813c17c \ + --hash=sha256:52a50aa3fb3acb9cf7213573ef55d31d6eca37f5709c69e6858fe3bc04a5c2a2 \ + --hash=sha256:54f1852cd531aa981bc0965b7d609f5f6cc8ce8c41b1139f6ed6b3c54ab82bfb \ + --hash=sha256:609448742444d9290fd687940ac0b57fb35e6fd92bdb65386e08e99af60bf757 \ + --hash=sha256:69ffdd6120a4737710a9eee73e1d2e37db89b620f702754b8f6e62594471dee0 \ + --hash=sha256:6fad5ff2f13d69b7e74ce5b4ecd12cc0ec530fcee76356cac6742785ff71c452 \ + --hash=sha256:7049e301399273a0136ff39b84c3678e314f2158f50f517bc50285fb5ec847ad \ + --hash=sha256:70c61d4c475835a19b3a5aa42492409878bbca7438554a1f89d20d58a7c75c01 \ + --hash=sha256:716d30ed977be8b37d3ef185fecb9e5a1d62d110dfbdcd1e2a122ab46fddb03f \ + --hash=sha256:753cd8f2086b2b80180d9b3010dd4ed147efc167c90d3bf593fe2af21265e5a5 \ + --hash=sha256:773efe0603db30c281521a7c0214cad7836c03b8ccff897beae9b47c0b657d61 \ + --hash=sha256:7823bdd049099efa16e4246bdf15e5a13dbb18a51b68fa06d6c1d4d8b99a796e \ + --hash=sha256:7c8f97e8e7a9009bcacbe3766a36175056c12f9a44e6e6f2d5caad06dcfbf03b \ + --hash=sha256:823ef7a27cf86df6597fa0671066c1b596f69eba53efa3d1e1cb8b30f3533068 \ + --hash=sha256:8373c6c251f7ef8bda6675dd6d2b3a0fcc31edf1201266b5cf608b62a37407f9 \ + --hash=sha256:83b2021f2ade7d1ed556bc50a399127d7fb245e725aa0113ebd05cfe88aaf588 \ + --hash=sha256:870ea1ada0899fd0b79643990809323b389d4d1d46c192f97342eeb6ee0b8483 \ + --hash=sha256:8d12251f02d69d8310b046e82572ed486685c38f02176bd08baf216746eb947f \ + --hash=sha256:9c23f307202661071d94b5e384e1e1dc7dfb972a28a2310e4ee16103e66ddb67 \ + --hash=sha256:9d189550615b4948f45252d7f005e53c2040cea1af5b60d6f79491a6e147eef7 \ + --hash=sha256:a086c2af425c5f62a65e12fbf385f7c9fcb8f107d0849dba5839461a129cf311 \ + --hash=sha256:a2b56ba36e05f973d450582fb015594aaa78834fefe8dfb8fcd79b93e64ba4c6 \ + --hash=sha256:aebb6044806f2e16ecc07b2a2637ee1ef67a11840a66752751714a0d924adf72 \ + --hash=sha256:b1b3020d90c2d8e1dae29cf3ce54f8094f7938460fb5ce8bc5c01450b01fbaf6 \ + --hash=sha256:b4b6b1e20608493548b1f32bce8cca185bf0480983890403d3b8753e44077129 \ + --hash=sha256:b6f491cdf80ae540738859d9766783e3b3c8e5bd37f5dfa0b76abdecc5081f13 \ + --hash=sha256:b792a349405fbc0163190fde0dc7b3fef3c9268292586cf5645598b48e63dc67 \ + --hash=sha256:b7c2286c23cd350b80d2fc9d424fc797575fb16f854b831d16fd47ceec078f2c \ + --hash=sha256:babf5acfede515f176833ed6028754cbcd0d206f7f614ea3447d67c33be12516 \ + --hash=sha256:c365fd1703040de1ec284b176d6af5abe21b427cb3a5ff68e0759e1e313a5e7e \ + --hash=sha256:c4225f5220f46b2fde568c74fca27ae9771536c2e29d7c04f4fb62c83275ac4e \ + --hash=sha256:c570f24be1e468e3f0ce7ef56a89a60f0e05b30a3669a459e419c6eac2c35364 \ + --hash=sha256:c6dafac9e0f2b3c78df97e79af707cdc5ef8e88208d686a4847bab8266870023 \ + --hash=sha256:c8de2789052ed501dd829e9cae8d3dcce7acb4777ea4a479c14521c942d395b1 \ + --hash=sha256:cb28c753fd5eb3dd859b4ee95de66cc62af91bcff5db5f2571d32a520baf1f04 \ + --hash=sha256:cb4c38abeef13c61d6916f264d4845fab99d7b711be96c326b84df9e3e0ff62d \ + --hash=sha256:d1b35bcd6c5543b9cb547dee3150c93008f8dd0f1fef78fc0cd2b141c5baf58a \ + --hash=sha256:d8e6aeb9201e655354b3ad049cb77d19813ad4ece0df1249d3c793de3774f8c7 \ + --hash=sha256:d8ecd059fdaf60c1963c58ceb8997b32e9dc1b911f5da5307aab614f1ce5c2fb \ + --hash=sha256:da2b52b37dad6d9ec64e653637a096905b258d2fc2b984c41ae7d08b938a67e4 \ + --hash=sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e \ + --hash=sha256:edca80cbfb2b68d7b56930b84a0e45ae1694aeba0541f798e908a49d66b837f1 \ + --hash=sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48 \ + --hash=sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868 # via -r requirements.in -pluggy==1.4.0 +pluggy==1.4.0 \ + --hash=sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981 \ + --hash=sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be # via pytest -psutil==5.9.8 +psutil==5.9.8 \ + --hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \ + --hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \ + --hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \ + --hash=sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2 \ + --hash=sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e \ + --hash=sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36 \ + --hash=sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7 \ + --hash=sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c \ + --hash=sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee \ + --hash=sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421 \ + --hash=sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf \ + --hash=sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81 \ + --hash=sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0 \ + --hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \ + --hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \ + --hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8 # via locust -pygments==2.17.2 +pygments==2.17.2 \ + --hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \ + --hash=sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367 # via rich -pyinstrument==4.6.2 +pyinstrument==4.6.2 \ + --hash=sha256:0002ee517ed8502bbda6eb2bb1ba8f95a55492fcdf03811ba13d4806e50dd7f6 \ + --hash=sha256:01fc45dedceec3df81668d702bca6d400d956c8b8494abc206638c167c78dfd9 \ + --hash=sha256:06a8578b2943eb1dbbf281e1e59e44246acfefd79e1b06d4950f01b693de12af \ + --hash=sha256:08fdc7f88c989316fa47805234c37a40fafe7b614afd8ae863f0afa9d1707b37 \ + --hash=sha256:0de2c1714a37a820033b19cf134ead43299a02662f1379140974a9ab733c5f3a \ + --hash=sha256:113d2fc534c9ca7b6b5661d6ada05515bf318f6eb34e8d05860fe49eb7cfe17e \ + --hash=sha256:1e474c56da636253dfdca7cd1998b240d6b39f7ed34777362db69224fcf053b1 \ + --hash=sha256:20e15b4e1d29ba0b7fc81aac50351e0dc0d7e911e93771ebc3f408e864a2c93b \ + --hash=sha256:23c3e3ca8553b9aac09bd978c73d21b9032c707ac6d803bae6a20ecc048df4a8 \ + --hash=sha256:28af084aa84bbfd3620ebe71d5f9a0deca4451267f363738ca824f733de55056 \ + --hash=sha256:2e625fc6ffcd4fd420493edd8276179c3f784df207bef4c2192725c1b310534c \ + --hash=sha256:2fd8e547cf3df5f0ec6e4dffbe2e857f6b28eda51b71c3c0b5a2fc0646527835 \ + --hash=sha256:3098cd72b71a322a72dafeb4ba5c566465e193d2030adad4c09566bd2f89bf4f \ + --hash=sha256:32ec8db6896b94af790a530e1e0edad4d0f941a0ab8dd9073e5993e7ea46af7d \ + --hash=sha256:34e59e91c88ec9ad5630c0964eca823949005e97736bfa838beb4789e94912a2 \ + --hash=sha256:3a165e0d2deb212d4cf439383982a831682009e1b08733c568cac88c89784e62 \ + --hash=sha256:46992e855d630575ec635eeca0068a8ddf423d4fd32ea0875a94e9f8688f0b95 \ + --hash=sha256:4fba3244e94c117bf4d9b30b8852bbdcd510e7329fdd5c7c8b3799e00a9215a8 \ + --hash=sha256:5b6e161ef268d43ee6bbfae7fd2cdd0a52c099ddd21001c126ca1805dc906539 \ + --hash=sha256:5ebeba952c0056dcc9b9355328c78c4b5c2a33b4b4276a9157a3ab589f3d1bac \ + --hash=sha256:5f329f5534ca069420246f5ce57270d975229bcb92a3a3fd6b2ca086527d9764 \ + --hash=sha256:62f6014d2b928b181a52483e7c7b82f2c27e22c577417d1681153e5518f03317 \ + --hash=sha256:67268bb0d579330cff40fd1c90b8510363ca1a0e7204225840614068658dab77 \ + --hash=sha256:6ba8e368d0421f15ba6366dfd60ec131c1b46505d021477e0f865d26cf35a605 \ + --hash=sha256:6c0f0e1d8f8c70faa90ff57f78ac0dda774b52ea0bfb2d9f0f41ce6f3e7c869e \ + --hash=sha256:6c761372945e60fc1396b7a49f30592e8474e70a558f1a87346d27c8c4ce50f7 \ + --hash=sha256:6ed4e8c6c84e0e6429ba7008a66e435ede2d8cb027794c20923c55669d9c5633 \ + --hash=sha256:73db0c2c99119c65b075feee76e903b4ed82e59440fe8b5724acf5c7cb24721f \ + --hash=sha256:7a1b1cd768ea7ea9ab6f5490f7e74431321bcc463e9441dbc2f769617252d9e2 \ + --hash=sha256:7ba858b3d6f6e5597c641edcc0e7e464f85aba86d71bc3b3592cb89897bf43f6 \ + --hash=sha256:7bd3da31c46f1c1cb7ae89031725f6a1d1015c2041d9c753fe23980f5f9fd86c \ + --hash=sha256:7c671057fad22ee3ded897a6a361204ea2538e44c1233cad0e8e30f6d27f33db \ + --hash=sha256:803ac64e526473d64283f504df3b0d5c2c203ea9603cab428641538ffdc753a7 \ + --hash=sha256:8a386b9d09d167451fb2111eaf86aabf6e094fed42c15f62ec51d6980bce7d96 \ + --hash=sha256:8a9791bf8916c1cf439c202fded32de93354b0f57328f303d71950b0027c7811 \ + --hash=sha256:8b3c44cb037ad0d6e9d9a48c14d856254ada641fbd0ae9de40da045fc2226a2a \ + --hash=sha256:8d104b7a7899d5fa4c5bf1ceb0c1a070615a72c5dc17bc321b612467ad5c5d88 \ + --hash=sha256:90350533396071cb2543affe01e40bf534c35cb0d4b8fa9fdb0f052f9ca2cfe3 \ + --hash=sha256:a59fc4f7db738a094823afe6422509fa5816a7bf74e768ce5a7a2ddd91af40ac \ + --hash=sha256:af1a953bce9fd530040895d01ff3de485e25e1576dccb014f76ba9131376fcad \ + --hash=sha256:b082df0bbf71251a7f4880a12ed28421dba84ea7110bb376e0533067a4eaff40 \ + --hash=sha256:b2b66ff0b16c8ecf1ec22de001cfff46872b2c163c62429055105564eef50b2e \ + --hash=sha256:b55983a884f083f93f0fc6d12ff8df0acd1e2fb0580d2f4c7bfe6def33a84b58 \ + --hash=sha256:baf375953b02fe94d00e716f060e60211ede73f49512b96687335f7071adb153 \ + --hash=sha256:be9901f17ac2f527c352f2fdca3d717c1d7f2ce8a70bad5a490fc8cc5d2a6007 \ + --hash=sha256:cd0320c39e99e3c0a3129d1ed010ac41e5a7eb96fb79900d270080a97962e995 \ + --hash=sha256:d02f31fa13a9e8dc702a113878419deba859563a32474c9f68e04619d43d6f01 \ + --hash=sha256:d4b559322f30509ad8f082561792352d0805b3edfa508e492a36041fdc009259 \ + --hash=sha256:d4dcdcc7ba224a0c5edfbd00b0f530f5aed2b26da5aaa2f9af5519d4aa8c7e41 \ + --hash=sha256:d6162615e783c59e36f2d7caf903a7e3ecb6b32d4a4ae8907f2760b2ef395bf6 \ + --hash=sha256:da58f265326f3cf3975366ccb8b39014f1e69ff8327958a089858d71c633d654 \ + --hash=sha256:dcb5c8d763c5df55131670ba2a01a8aebd0d490a789904a55eb6a8b8d497f110 \ + --hash=sha256:dd5c53a0159126b5ce7cbc4994433c9c671e057c85297ff32645166a06ad2c50 \ + --hash=sha256:dd6007d3c2e318e09e582435dd8d111cccf30d342af66886b783208813caf3d7 \ + --hash=sha256:e2e554b1bb0df78f5ce8a92df75b664912ca93aa94208386102af454ec31b647 \ + --hash=sha256:e3813c8ecfab9d7d855c5f0f71f11793cf1507f40401aa33575c7fd613577c23 \ + --hash=sha256:e63f4916001aa9c625976a50779282e0a5b5e9b17c52a50ef4c651e468ed5b88 \ + --hash=sha256:edca46f04a573ac2fb11a84b937844e6a109f38f80f4b422222fb5be8ecad8cb \ + --hash=sha256:fdc0a53b27e5d8e47147489c7dab596ddd1756b1e053217ef5bc6718567099ff \ + --hash=sha256:feebcf860f955401df30d029ec8de7a0c5515d24ea809736430fd1219686fe14 # via -r requirements.in -pytest==7.4.4 +pytest==7.4.4 \ + --hash=sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280 \ + --hash=sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8 # via -r requirements.in -python-dotenv==1.0.0 +python-dotenv==1.0.0 \ + --hash=sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba \ + --hash=sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a # via -r requirements.in -pyyaml==6.0.1 +pyyaml==6.0.1 \ + --hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ + --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ + --hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ + --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ + --hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ + --hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ + --hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \ + --hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ + --hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ + --hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ + --hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ + --hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ + --hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ + --hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ + --hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ + --hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ + --hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ + --hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \ + --hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ + --hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ + --hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ + --hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ + --hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ + --hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ + --hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ + --hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ + --hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ + --hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ + --hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ + --hash=sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef \ + --hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ + --hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \ + --hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \ + --hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \ + --hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \ + --hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \ + --hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \ + --hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \ + --hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \ + --hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ + --hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ + --hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ + --hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ + --hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ + --hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ + --hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ + --hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ + --hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ + --hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \ + --hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ + --hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f # via -r requirements.in -pyzmq==25.1.2 +pyzmq==25.1.2 \ + --hash=sha256:004ff469d21e86f0ef0369717351073e0e577428e514c47c8480770d5e24a565 \ + --hash=sha256:00a06faa7165634f0cac1abb27e54d7a0b3b44eb9994530b8ec73cf52e15353b \ + --hash=sha256:00c48ae2fd81e2a50c3485de1b9d5c7c57cd85dc8ec55683eac16846e57ac979 \ + --hash=sha256:01171fc48542348cd1a360a4b6c3e7d8f46cdcf53a8d40f84db6707a6768acc1 \ + --hash=sha256:019744b99da30330798bb37df33549d59d380c78e516e3bab9c9b84f87a9592f \ + --hash=sha256:02bbc1a87b76e04fd780b45e7f695471ae6de747769e540da909173d50ff8e2d \ + --hash=sha256:02c9087b109070c5ab0b383079fa1b5f797f8d43e9a66c07a4b8b8bdecfd88ee \ + --hash=sha256:07cd61a20a535524906595e09344505a9bd46f1da7a07e504b315d41cd42eb07 \ + --hash=sha256:0806175f2ae5ad4b835ecd87f5f85583316b69f17e97786f7443baaf54b9bb98 \ + --hash=sha256:09dfe949e83087da88c4a76767df04b22304a682d6154de2c572625c62ad6886 \ + --hash=sha256:0dabfb10ef897f3b7e101cacba1437bd3a5032ee667b7ead32bbcdd1a8422fe7 \ + --hash=sha256:0ddd6d71d4ef17ba5a87becf7ddf01b371eaba553c603477679ae817a8d84d75 \ + --hash=sha256:0f513130c4c361201da9bc69df25a086487250e16b5571ead521b31ff6b02220 \ + --hash=sha256:0f97bc2f1f13cb16905a5f3e1fbdf100e712d841482b2237484360f8bc4cb3d7 \ + --hash=sha256:11e70516688190e9c2db14fcf93c04192b02d457b582a1f6190b154691b4c93a \ + --hash=sha256:146b9b1f29ead41255387fb07be56dc29639262c0f7344f570eecdcd8d683314 \ + --hash=sha256:16b726c1f6c2e7625706549f9dbe9b06004dfbec30dbed4bf50cbdfc73e5b32a \ + --hash=sha256:1b3cbba2f47062b85fe0ef9de5b987612140a9ba3a9c6d2543c6dec9f7c2ab27 \ + --hash=sha256:1b9b1f2ad6498445a941d9a4fee096d387fee436e45cc660e72e768d3d8ee611 \ + --hash=sha256:1ec23bd7b3a893ae676d0e54ad47d18064e6c5ae1fadc2f195143fb27373f7f6 \ + --hash=sha256:246747b88917e4867e2367b005fc8eefbb4a54b7db363d6c92f89d69abfff4b6 \ + --hash=sha256:25c2dbb97d38b5ac9fd15586e048ec5eb1e38f3d47fe7d92167b0c77bb3584e9 \ + --hash=sha256:2c6441e0398c2baacfe5ba30c937d274cfc2dc5b55e82e3749e333aabffde561 \ + --hash=sha256:2c9a79f1d2495b167119d02be7448bfba57fad2a4207c4f68abc0bab4b92925b \ + --hash=sha256:2e2713ef44be5d52dd8b8e2023d706bf66cb22072e97fc71b168e01d25192755 \ + --hash=sha256:313c3794d650d1fccaaab2df942af9f2c01d6217c846177cfcbc693c7410839e \ + --hash=sha256:3516e0b6224cf6e43e341d56da15fd33bdc37fa0c06af4f029f7d7dfceceabbc \ + --hash=sha256:359f7f74b5d3c65dae137f33eb2bcfa7ad9ebefd1cab85c935f063f1dbb245cc \ + --hash=sha256:39b1067f13aba39d794a24761e385e2eddc26295826530a8c7b6c6c341584289 \ + --hash=sha256:3c00c9b7d1ca8165c610437ca0c92e7b5607b2f9076f4eb4b095c85d6e680a1d \ + --hash=sha256:3c53687dde4d9d473c587ae80cc328e5b102b517447456184b485587ebd18b62 \ + --hash=sha256:3e124e6b1dd3dfbeb695435dff0e383256655bb18082e094a8dd1f6293114642 \ + --hash=sha256:4345c9a27f4310afbb9c01750e9461ff33d6fb74cd2456b107525bbeebcb5be3 \ + --hash=sha256:45999e7f7ed5c390f2e87ece7f6c56bf979fb213550229e711e45ecc7d42ccb8 \ + --hash=sha256:49151b0efece79f6a79d41a461d78535356136ee70084a1c22532fc6383f4ad0 \ + --hash=sha256:4cb8fc1f8d69b411b8ec0b5f1ffbcaf14c1db95b6bccea21d83610987435f1a4 \ + --hash=sha256:4e5837af3e5aaa99a091302df5ee001149baff06ad22b722d34e30df5f0d9097 \ + --hash=sha256:4e6f689880d5ad87918430957297c975203a082d9a036cc426648fcbedae769b \ + --hash=sha256:5074adeacede5f810b7ef39607ee59d94e948b4fd954495bdb072f8c54558181 \ + --hash=sha256:518efd91c3d8ac9f9b4f7dd0e2b7b8bf1a4fe82a308009016b07eaa48681af82 \ + --hash=sha256:55875492f820d0eb3417b51d96fea549cde77893ae3790fd25491c5754ea2f68 \ + --hash=sha256:5a68d491fc20762b630e5db2191dd07ff89834086740f70e978bb2ef2668be08 \ + --hash=sha256:5dde6751e857910c1339890f3524de74007958557593b9e7e8c5f01cd919f8a7 \ + --hash=sha256:5e319ed7d6b8f5fad9b76daa0a68497bc6f129858ad956331a5835785761e003 \ + --hash=sha256:5edac3f57c7ddaacdb4d40f6ef2f9e299471fc38d112f4bc6d60ab9365445fb0 \ + --hash=sha256:6cc0020b74b2e410287e5942e1e10886ff81ac77789eb20bec13f7ae681f0fdd \ + --hash=sha256:6dd0d50bbf9dca1d0bdea219ae6b40f713a3fb477c06ca3714f208fd69e16fd8 \ + --hash=sha256:7598d2ba821caa37a0f9d54c25164a4fa351ce019d64d0b44b45540950458840 \ + --hash=sha256:759cfd391a0996345ba94b6a5110fca9c557ad4166d86a6e81ea526c376a01e8 \ + --hash=sha256:7ae8f354b895cbd85212da245f1a5ad8159e7840e37d78b476bb4f4c3f32a9fe \ + --hash=sha256:7b6d09a8962a91151f0976008eb7b29b433a560fde056ec7a3db9ec8f1075438 \ + --hash=sha256:7c61e346ac34b74028ede1c6b4bcecf649d69b707b3ff9dc0fab453821b04d1e \ + --hash=sha256:7f51a7b4ead28d3fca8dda53216314a553b0f7a91ee8fc46a72b402a78c3e43d \ + --hash=sha256:82544e0e2d0c1811482d37eef297020a040c32e0687c1f6fc23a75b75db8062c \ + --hash=sha256:8807c87fa893527ae8a524c15fc505d9950d5e856f03dae5921b5e9aa3b8783b \ + --hash=sha256:889370d5174a741a62566c003ee8ddba4b04c3f09a97b8000092b7ca83ec9c49 \ + --hash=sha256:8b14c75979ce932c53b79976a395cb2a8cd3aaf14aef75e8c2cb55a330b9b49d \ + --hash=sha256:8c5f80e578427d4695adac6fdf4370c14a2feafdc8cb35549c219b90652536ae \ + --hash=sha256:8e9f3fabc445d0ce320ea2c59a75fe3ea591fdbdeebec5db6de530dd4b09412e \ + --hash=sha256:93f1aa311e8bb912e34f004cf186407a4e90eec4f0ecc0efd26056bf7eda0226 \ + --hash=sha256:94504ff66f278ab4b7e03e4cba7e7e400cb73bfa9d3d71f58d8972a8dc67e7a6 \ + --hash=sha256:967668420f36878a3c9ecb5ab33c9d0ff8d054f9c0233d995a6d25b0e95e1b6b \ + --hash=sha256:9880078f683466b7f567b8624bfc16cad65077be046b6e8abb53bed4eeb82dd3 \ + --hash=sha256:99a6b36f95c98839ad98f8c553d8507644c880cf1e0a57fe5e3a3f3969040882 \ + --hash=sha256:9a18fff090441a40ffda8a7f4f18f03dc56ae73f148f1832e109f9bffa85df15 \ + --hash=sha256:9add2e5b33d2cd765ad96d5eb734a5e795a0755f7fc49aa04f76d7ddda73fd70 \ + --hash=sha256:a793ac733e3d895d96f865f1806f160696422554e46d30105807fdc9841b9f7d \ + --hash=sha256:a86c2dd76ef71a773e70551a07318b8e52379f58dafa7ae1e0a4be78efd1ff16 \ + --hash=sha256:a8c1d566344aee826b74e472e16edae0a02e2a044f14f7c24e123002dcff1c05 \ + --hash=sha256:ac170e9e048b40c605358667aca3d94e98f604a18c44bdb4c102e67070f3ac9b \ + --hash=sha256:b264bf2cc96b5bc43ce0e852be995e400376bd87ceb363822e2cb1964fcdc737 \ + --hash=sha256:b8c8a419dfb02e91b453615c69568442e897aaf77561ee0064d789705ff37a92 \ + --hash=sha256:bc69c96735ab501419c432110016329bf0dea8898ce16fab97c6d9106dc0b348 \ + --hash=sha256:bef02cfcbded83473bdd86dd8d3729cd82b2e569b75844fb4ea08fee3c26ae41 \ + --hash=sha256:c0b5ca88a8928147b7b1e2dfa09f3b6c256bc1135a1338536cbc9ea13d3b7add \ + --hash=sha256:cc69949484171cc961e6ecd4a8911b9ce7a0d1f738fcae717177c231bf77437b \ + --hash=sha256:ced111c2e81506abd1dc142e6cd7b68dd53747b3b7ae5edbea4578c5eeff96b7 \ + --hash=sha256:d1299d7e964c13607efd148ca1f07dcbf27c3ab9e125d1d0ae1d580a1682399d \ + --hash=sha256:d1b604734bec94f05f81b360a272fc824334267426ae9905ff32dc2be433ab96 \ + --hash=sha256:d9a5f194cf730f2b24d6af1f833c14c10f41023da46a7f736f48b6d35061e76e \ + --hash=sha256:db36c27baed588a5a8346b971477b718fdc66cf5b80cbfbd914b4d6d355e44e2 \ + --hash=sha256:df0c7a16ebb94452d2909b9a7b3337940e9a87a824c4fc1c7c36bb4404cb0cde \ + --hash=sha256:e10a4b5a4b1192d74853cc71a5e9fd022594573926c2a3a4802020360aa719d8 \ + --hash=sha256:e624c789359f1a16f83f35e2c705d07663ff2b4d4479bad35621178d8f0f6ea4 \ + --hash=sha256:e690145a8c0c273c28d3b89d6fb32c45e0d9605b2293c10e650265bf5c11cfec \ + --hash=sha256:ea1608dd169da230a0ad602d5b1ebd39807ac96cae1845c3ceed39af08a5c6df \ + --hash=sha256:ea253b368eb41116011add00f8d5726762320b1bda892f744c91997b65754d73 \ + --hash=sha256:eb7e49a17fb8c77d3119d41a4523e432eb0c6932187c37deb6fbb00cc3028088 \ + --hash=sha256:ef12e259e7bc317c7597d4f6ef59b97b913e162d83b421dd0db3d6410f17a244 \ + --hash=sha256:f8429b17cbb746c3e043cb986328da023657e79d5ed258b711c06a70c2ea7537 \ + --hash=sha256:fa99973d2ed20417744fca0073390ad65ce225b546febb0580358e36aa90dba6 \ + --hash=sha256:faf79a302f834d9e8304fafdc11d0d042266667ac45209afa57e5efc998e3872 \ + --hash=sha256:fc31baa0c32a2ca660784d5af3b9487e13b61b3032cb01a115fce6588e1bed30 # via locust -requests==2.31.0 +requests==2.31.0 \ + --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ + --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via # -r requirements.in # locust -rich==13.7.0 +rich==13.7.0 \ + --hash=sha256:5cb5123b5cf9ee70584244246816e9114227e0b98ad9176eede6ad54bf5403fa \ + --hash=sha256:6da14c108c4866ee9520bbffa71f6fe3962e193b7da68720583850cd4548e235 # via # memray # textual -roundrobin==0.0.4 +roundrobin==0.0.4 \ + --hash=sha256:7e9d19a5bd6123d99993fb935fa86d25c88bb2096e493885f61737ed0f5e9abd # via locust -six==1.16.0 +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 # via # flask-cors # geventhttpclient -textual==0.50.1 +textual==0.50.1 \ + --hash=sha256:11bd87fe6c543358122c43db2e9dfc5940900ef9b8975502ab7043792928638b \ + --hash=sha256:415bef44b2dfa702d17ebb08637c0141eb54767cfbeafe60d07e62104183b56a # via memray -typing-extensions==4.9.0 +typing-extensions==4.9.0 \ + --hash=sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783 \ + --hash=sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd # via textual -uc-micro-py==1.0.3 +uc-micro-py==1.0.3 \ + --hash=sha256:d321b92cff673ec58027c04015fcaa8bb1e005478643ff4a500882eaab88c48a \ + --hash=sha256:db1dffff340817673d7b466ec86114a9dc0e9d4d9b5ba229d9d60e5c12600cd5 # via linkify-it-py -urllib3==2.2.0 +urllib3==2.2.0 \ + --hash=sha256:051d961ad0c62a94e50ecf1af379c3aba230c66c710493493560c0c223c49f20 \ + --hash=sha256:ce3711610ddce217e6d113a2732fafad960a03fd0318c91faa79481e35c11224 # via # elastic-transport # requests -werkzeug==3.0.1 +werkzeug==3.0.1 \ + --hash=sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc \ + --hash=sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10 # via # flask # flask-login # locust -wget==3.2 +wget==3.2 \ + --hash=sha256:35e630eca2aa50ce998b9b1a127bb26b30dfee573702782aa982f875e3f16061 # via -r requirements.in -zope-event==5.0 +zope-event==5.0 \ + --hash=sha256:2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26 \ + --hash=sha256:bac440d8d9891b4068e2b5a2c5e2c9765a9df762944bda6955f96bb9b91e67cd # via gevent -zope-interface==6.1 +zope-interface==6.1 \ + --hash=sha256:0c8cf55261e15590065039696607f6c9c1aeda700ceee40c70478552d323b3ff \ + --hash=sha256:13b7d0f2a67eb83c385880489dbb80145e9d344427b4262c49fbf2581677c11c \ + --hash=sha256:1f294a15f7723fc0d3b40701ca9b446133ec713eafc1cc6afa7b3d98666ee1ac \ + --hash=sha256:239a4a08525c080ff833560171d23b249f7f4d17fcbf9316ef4159f44997616f \ + --hash=sha256:2f8d89721834524a813f37fa174bac074ec3d179858e4ad1b7efd4401f8ac45d \ + --hash=sha256:2fdc7ccbd6eb6b7df5353012fbed6c3c5d04ceaca0038f75e601060e95345309 \ + --hash=sha256:34c15ca9248f2e095ef2e93af2d633358c5f048c49fbfddf5fdfc47d5e263736 \ + --hash=sha256:387545206c56b0315fbadb0431d5129c797f92dc59e276b3ce82db07ac1c6179 \ + --hash=sha256:43b576c34ef0c1f5a4981163b551a8781896f2a37f71b8655fd20b5af0386abb \ + --hash=sha256:57d0a8ce40ce440f96a2c77824ee94bf0d0925e6089df7366c2272ccefcb7941 \ + --hash=sha256:5a804abc126b33824a44a7aa94f06cd211a18bbf31898ba04bd0924fbe9d282d \ + --hash=sha256:67be3ca75012c6e9b109860820a8b6c9a84bfb036fbd1076246b98e56951ca92 \ + --hash=sha256:6af47f10cfc54c2ba2d825220f180cc1e2d4914d783d6fc0cd93d43d7bc1c78b \ + --hash=sha256:6dc998f6de015723196a904045e5a2217f3590b62ea31990672e31fbc5370b41 \ + --hash=sha256:70d2cef1bf529bff41559be2de9d44d47b002f65e17f43c73ddefc92f32bf00f \ + --hash=sha256:7ebc4d34e7620c4f0da7bf162c81978fce0ea820e4fa1e8fc40ee763839805f3 \ + --hash=sha256:964a7af27379ff4357dad1256d9f215047e70e93009e532d36dcb8909036033d \ + --hash=sha256:97806e9ca3651588c1baaebb8d0c5ee3db95430b612db354c199b57378312ee8 \ + --hash=sha256:9b9bc671626281f6045ad61d93a60f52fd5e8209b1610972cf0ef1bbe6d808e3 \ + --hash=sha256:9ffdaa5290422ac0f1688cb8adb1b94ca56cee3ad11f29f2ae301df8aecba7d1 \ + --hash=sha256:a0da79117952a9a41253696ed3e8b560a425197d4e41634a23b1507efe3273f1 \ + --hash=sha256:a41f87bb93b8048fe866fa9e3d0c51e27fe55149035dcf5f43da4b56732c0a40 \ + --hash=sha256:aa6fd016e9644406d0a61313e50348c706e911dca29736a3266fc9e28ec4ca6d \ + --hash=sha256:ad54ed57bdfa3254d23ae04a4b1ce405954969c1b0550cc2d1d2990e8b439de1 \ + --hash=sha256:b012d023b4fb59183909b45d7f97fb493ef7a46d2838a5e716e3155081894605 \ + --hash=sha256:b51b64432eed4c0744241e9ce5c70dcfecac866dff720e746d0a9c82f371dfa7 \ + --hash=sha256:bbe81def9cf3e46f16ce01d9bfd8bea595e06505e51b7baf45115c77352675fd \ + --hash=sha256:c9559138690e1bd4ea6cd0954d22d1e9251e8025ce9ede5d0af0ceae4a401e43 \ + --hash=sha256:e30506bcb03de8983f78884807e4fd95d8db6e65b69257eea05d13d519b83ac0 \ + --hash=sha256:e33e86fd65f369f10608b08729c8f1c92ec7e0e485964670b4d2633a4812d36b \ + --hash=sha256:e441e8b7d587af0414d25e8d05e27040d78581388eed4c54c30c0c91aad3a379 \ + --hash=sha256:e8bb9c990ca9027b4214fa543fd4025818dc95f8b7abce79d61dc8a2112b561a \ + --hash=sha256:ef43ee91c193f827e49599e824385ec7c7f3cd152d74cb1dfe02cb135f264d83 \ + --hash=sha256:ef467d86d3cfde8b39ea1b35090208b0447caaabd38405420830f7fd85fbdd56 \ + --hash=sha256:f89b28772fc2562ed9ad871c865f5320ef761a7fcc188a935e21fe8b31a38ca9 \ + --hash=sha256:fddbab55a2473f1d3b8833ec6b7ac31e8211b0aa608df5ab09ce07f3727326de # via gevent -# The following packages are considered to be unsafe in a requirements file: +# WARNING: The following packages were not pinned, but pip requires them to be +# pinned when the requirements file includes hashes and the requirement is not +# satisfied by a package already installed. Consider using the --allow-unsafe flag. # setuptools diff --git a/src/tests/core/models/test_media_factory.py b/src/tests/core/models/test_media_factory.py index b37de86a..b532186e 100644 --- a/src/tests/core/models/test_media_factory.py +++ b/src/tests/core/models/test_media_factory.py @@ -37,7 +37,6 @@ def test_video_make_from_url(self): video_url = "https://tattle-media.s3.amazonaws.com/test-data/tattle-search/cat_vid_2mb.mp4" result = VideoFactory.make_from_url(video_url) self.assertIsNotNone(result["path"]) - self.assertEqual(result["path"], "/tmp/vid.mp4") # @skip def test_video_make_from_file_on_disk(self): @@ -52,7 +51,6 @@ def test_audio_make_from_url(self): "https://raw.githubusercontent.com/tattle-made/feluda/main/src/core/operators/sample_data/audio.wav" ) self.assertIsNotNone(result["path"]) - self.assertEqual(result["path"], "/tmp/audio.wav") # @skip def test_audio_make_from_file_on_disk(self): diff --git a/src/worker/audiovec/Dockerfile.audio_worker b/src/worker/audiovec/Dockerfile.audio_worker index 13ba745d..40982e02 100644 --- a/src/worker/audiovec/Dockerfile.audio_worker +++ b/src/worker/audiovec/Dockerfile.audio_worker @@ -1,40 +1,73 @@ -FROM python:3.11-slim-bullseye AS base +### BUILDER IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS builder +ARG UID +ARG GID +# Fetch OS packages updates, upgrade packages, and install packages required for build RUN apt-get update \ && apt-get -y upgrade \ && apt-get install -y \ --no-install-recommends gcc build-essential \ --no-install-recommends libgl1-mesa-glx libglib2.0-0 \ --no-install-recommends python3-dev -RUN apt-get update && apt-get install -y --no-install-recommends vim zsh curl -RUN apt-get update && apt-get install -y --no-install-recommends wget # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app -WORKDIR /usr/app - -# Set venv -RUN python -m venv /usr/app/venv && chown -R python:python /usr/app/venv -ENV PATH="/usr/app/venv/bin:$PATH" - -RUN pip install --no-cache-dir --upgrade pip - -COPY --chown=python:python requirements.txt /usr/app/requirements.txt -RUN pip install --no-cache-dir -r requirements.txt -# install audio operator requirements -COPY --chown=python:python ./core/operators/audio_vec_embedding_requirements.txt /usr/app/core/operators/audio_vec_embedding_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/audio_vec_embedding_requirements.txt - -RUN apt-get purge -y --auto-remove \ - gcc build-essential \ - libgl1-mesa-glx libglib2.0-0 \ - python3-dev \ +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ +# Set working dir +WORKDIR /home/python/app + +# Create venv and change ownership recursively +RUN python -m venv /home/python/app/venv \ + && chown -R python:python /home/python/app/venv +# Set venv in path +ENV PATH="/home/python/app/venv/bin:$PATH" + +# Copy core and operator requirements +COPY --chown=python:python requirements.txt /home/python/app/requirements.txt +COPY --chown=python:python ./core/operators/audio_vec_embedding_requirements.txt /home/python/app/core/operators/audio_vec_embedding_requirements.txt + +# Run pip install +RUN pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/requirements.txt \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/core/operators/audio_vec_embedding_requirements.txt + +##################################### + + + +### PRODUCTION IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS production +ARG UID +ARG GID + +# Update image, install required utils, and remove cache +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get install -y --no-install-recommends vim zsh curl wget \ && rm -rf /var/lib/apt/lists/* -COPY --chown=python:python . /usr/app -EXPOSE 7000 +# Set python group and user, create home dir, create app dir, change ownership of app to user +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ + +# Set working dir +WORKDIR /home/python/app + +# Copy output from builder stage +COPY --from=builder /home/python/app /home/python/app + +# Copy all files and change ownership to unprivileged user +COPY --chown=python:python . /home/python/app + +# Set venv path +ENV PATH="/home/python/app/venv/bin:$PATH" + +# Set unprivileged user with group membership +USER python:python -FROM base AS debug -USER 999 +################################# diff --git a/src/worker/audiovec/Dockerfile.audio_worker_graviton b/src/worker/audiovec/Dockerfile.audio_worker_graviton index 3b75da82..82480406 100644 --- a/src/worker/audiovec/Dockerfile.audio_worker_graviton +++ b/src/worker/audiovec/Dockerfile.audio_worker_graviton @@ -1,31 +1,71 @@ -FROM python:3.11-slim-bullseye AS base +### BUILDER IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS builder +ARG UID +ARG GID +# Fetch OS packages updates, upgrade packages, and install packages required for build RUN apt-get update \ && apt-get -y upgrade \ && apt-get install -y \ --no-install-recommends gcc build-essential \ --no-install-recommends libgl1-mesa-glx libglib2.0-0 \ --no-install-recommends python3-dev -RUN apt-get update && apt-get install -y --no-install-recommends vim zsh curl -RUN apt-get update && apt-get install -y --no-install-recommends wget # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app -WORKDIR /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ +# Set working dir +WORKDIR /home/python/app -# Set venv -RUN python -m venv /usr/app/venv && chown -R python:python /usr/app/venv -ENV PATH="/usr/app/venv/bin:$PATH" +# Create venv and change ownership recursively +RUN python -m venv /home/python/app/venv \ + && chown -R python:python /home/python/app/venv +# Set venv in path +ENV PATH="/home/python/app/venv/bin:$PATH" -RUN pip install --no-cache-dir --upgrade pip +# Copy core and operator requirements +COPY --chown=python:python requirements.txt /home/python/app/requirements.txt +COPY --chown=python:python ./core/operators/audio_vec_embedding_requirements.txt /home/python/app/core/operators/audio_vec_embedding_requirements.txt -COPY --chown=python:python requirements.txt /usr/app/requirements.txt -RUN pip install --no-cache-dir -r requirements.txt -# install audio operator requirements -COPY --chown=python:python ./core/operators/audio_vec_embedding_requirements.txt /usr/app/core/operators/audio_vec_embedding_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/audio_vec_embedding_requirements.txt +# Run pip install +RUN pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/requirements.txt \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/core/operators/audio_vec_embedding_requirements.txt + +##################################### + + + +### PRODUCTION IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS production +ARG UID +ARG GID + +# Update image, install required utils, and remove cache +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get install -y --no-install-recommends vim zsh curl wget \ + && rm -rf /var/lib/apt/lists/* + +# Set python group and user, create home dir, create app dir, change ownership of app to user +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ + +# Set working dir +WORKDIR /home/python/app + +# Copy output from builder stage +COPY --from=builder /home/python/app /home/python/app + +# Copy all files and change ownership to unprivileged user +COPY --chown=python:python . /home/python/app + +# Set venv path +ENV PATH="/home/python/app/venv/bin:$PATH" ### AWS Graviton Optimization ### @@ -50,14 +90,7 @@ ENV OMP_PROC_BIND=false ENV OMP_PLACES=cores ### -RUN apt-get purge -y --auto-remove \ - gcc build-essential \ - libgl1-mesa-glx libglib2.0-0 \ - python3-dev \ - && rm -rf /var/lib/apt/lists/* - -COPY --chown=python:python . /usr/app -EXPOSE 7000 +# Set unprivileged user with group membership +USER python:python -FROM base AS debug -USER 999 +################################# diff --git a/src/worker/audiovec/audio_worker.py b/src/worker/audiovec/audio_worker.py index 5e9651fe..9a03be4a 100644 --- a/src/worker/audiovec/audio_worker.py +++ b/src/worker/audiovec/audio_worker.py @@ -6,6 +6,8 @@ from core.models.media_factory import AudioFactory from time import sleep from datetime import datetime +import numpy as np +import binascii log = Logger(__name__) @@ -29,6 +31,12 @@ def make_report_failed(data, status): def indexer(feluda): + + def calc_audio_vec_crc(audio_vector): + vec_arr = np.asarray(audio_vector) + arr_crc = binascii.crc32(vec_arr.tobytes(order='C')) + return arr_crc + def worker(ch, method, properties, body): print("MESSAGE RECEIVED") file_content = json.loads(body) @@ -37,6 +45,8 @@ def worker(ch, method, properties, body): log.info("Processing File") media_type = MediaType.AUDIO audio_vec = audio_vec_embedding.run(audio_path) + audio_vec_crc = calc_audio_vec_crc(audio_vec) + log.debug("audio_vec_crc:{}".format(audio_vec_crc)) doc = { "e_kosh_id": str(1231231), "dataset": "test-dataset-id", diff --git a/src/worker/hash/Dockerfile.hash_worker b/src/worker/hash/Dockerfile.hash_worker index fe971c05..4596a8d4 100644 --- a/src/worker/hash/Dockerfile.hash_worker +++ b/src/worker/hash/Dockerfile.hash_worker @@ -1,36 +1,70 @@ -FROM python:3.11-slim-bullseye AS base +### BUILDER IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS builder +ARG UID +ARG GID +# Fetch OS packages updates, upgrade packages, and install packages required for build RUN apt-get update \ && apt-get -y upgrade \ && apt-get install -y \ --no-install-recommends gcc build-essential \ --no-install-recommends libgl1-mesa-glx libglib2.0-0 \ --no-install-recommends python3-dev -RUN apt-get update && apt-get install -y --no-install-recommends vim zsh curl # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app -WORKDIR /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ +# Set working dir +WORKDIR /home/python/app -# Set venv -RUN python -m venv /usr/app/venv && chown -R python:python /usr/app/venv -ENV PATH="/usr/app/venv/bin:$PATH" +# Create venv and change ownership recursively +RUN python -m venv /home/python/app/venv \ + && chown -R python:python /home/python/app/venv +# Set venv in path +ENV PATH="/home/python/app/venv/bin:$PATH" -RUN pip install --no-cache-dir --upgrade pip +# Copy core and operator requirements +COPY --chown=python:python requirements.txt /home/python/app/requirements.txt -COPY --chown=python:python requirements.txt /usr/app/requirements.txt -RUN pip install --no-cache-dir -r requirements.txt +# Run pip install +RUN pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/requirements.txt -RUN apt-get purge -y --auto-remove \ - gcc build-essential \ - libgl1-mesa-glx libglib2.0-0 \ - python3-dev \ +##################################### + + +### PRODUCTION IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS production +ARG UID +ARG GID + +# Update image, install required utils, and remove cache +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get install -y --no-install-recommends vim zsh curl \ && rm -rf /var/lib/apt/lists/* -COPY --chown=python:python . /usr/app -EXPOSE 7000 +# Set python group and user, create home dir, create app dir, change ownership of app to user +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ + +# Set working dir +WORKDIR /home/python/app + +# Copy output from builder stage +COPY --from=builder /home/python/app /home/python/app + +# Copy all files and change ownership to unprivileged user +COPY --chown=python:python . /home/python/app + +# Set venv path +ENV PATH="/home/python/app/venv/bin:$PATH" + +# Set unprivileged user with group membership +USER python:python -FROM base AS debug -USER 999 \ No newline at end of file +################################# diff --git a/src/worker/hash/Dockerfile.hash_worker.graviton b/src/worker/hash/Dockerfile.hash_worker.graviton deleted file mode 100644 index 69161bb4..00000000 --- a/src/worker/hash/Dockerfile.hash_worker.graviton +++ /dev/null @@ -1,59 +0,0 @@ -FROM python:3.11-slim-bullseye AS base - -RUN apt-get update \ - && apt-get -y upgrade \ - && apt-get install -y \ - --no-install-recommends gcc build-essential \ - --no-install-recommends libgl1-mesa-glx libglib2.0-0 \ - --no-install-recommends python3-dev -RUN apt-get update && apt-get install -y --no-install-recommends vim zsh curl - -# Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app -WORKDIR /usr/app - -# Set venv -RUN python -m venv /usr/app/venv && chown -R python:python /usr/app/venv -ENV PATH="/usr/app/venv/bin:$PATH" - -RUN pip install --no-cache-dir --upgrade pip - -COPY --chown=python:python requirements.txt /usr/app/requirements.txt -RUN pip install --no-cache-dir -r requirements.txt - -### AWS Graviton Optimization ### - -# Graviton3(E) (e.g. c7g, c7gn and Hpc7g instances) supports BF16 format for ML acceleration. This can be enabled in oneDNN by setting the below environment variable -ENV DNNL_DEFAULT_FPMATH_MODE=BF16 - -# Enable primitive caching to avoid the redundant primitive allocation -# latency overhead. Please note this caching feature increases the -# memory footprint. Tune this cache capacity to a lower value to -# reduce the additional memory requirement. -ENV LRU_CACHE_CAPACITY=1024 - -# Enable Transparent huge page allocations from PyTorch C10 allocator -ENV THP_MEM_ALLOC_ENABLE=1 - -# Make sure the openmp threads are distributed across all the processes for multi process applications to avoid over subscription for the vcpus. For example if there is a single application process, then num_processes should be set to '1' so that all the vcpus are assigned to it with one-to-one mapping to omp threads -# RUN num_vcpus=8 -# RUN num_processes=1 -# RUN temp = $((1 > ($num_vcpus/$num_processes) ? 1 : ($num_vcpus/$num_processes))) -ENV OMP_NUM_THREADS=1 -ENV OMP_PROC_BIND=false -ENV OMP_PLACES=cores -### - -RUN apt-get purge -y --auto-remove \ - gcc build-essential \ - libgl1-mesa-glx libglib2.0-0 \ - python3-dev \ - && rm -rf /var/lib/apt/lists/* - -COPY --chown=python:python . /usr/app -EXPOSE 7000 - -FROM base AS debug -USER 999 \ No newline at end of file diff --git a/src/worker/hash/Dockerfile.hash_worker_graviton b/src/worker/hash/Dockerfile.hash_worker_graviton new file mode 100644 index 00000000..786c0b98 --- /dev/null +++ b/src/worker/hash/Dockerfile.hash_worker_graviton @@ -0,0 +1,94 @@ +### BUILDER IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS builder +ARG UID +ARG GID + +# Fetch OS packages updates, upgrade packages, and install packages required for build +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get install -y \ + --no-install-recommends gcc build-essential \ + --no-install-recommends libgl1-mesa-glx libglib2.0-0 \ + --no-install-recommends python3-dev + +# Set python user +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ +# Set working dir +WORKDIR /home/python/app + +# Create venv and change ownership recursively +RUN python -m venv /home/python/app/venv \ + && chown -R python:python /home/python/app/venv +# Set venv in path +ENV PATH="/home/python/app/venv/bin:$PATH" + +# Copy core and operator requirements +COPY --chown=python:python requirements.txt /home/python/app/requirements.txt + +# Run pip install +RUN pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/requirements.txt + +##################################### + + +### PRODUCTION IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS production +ARG UID +ARG GID + +# Update image, install required utils, and remove cache +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get install -y --no-install-recommends vim zsh curl \ + && rm -rf /var/lib/apt/lists/* + +# Set python group and user, create home dir, create app dir, change ownership of app to user +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ + +# Set working dir +WORKDIR /home/python/app + +# Copy output from builder stage +COPY --from=builder /home/python/app /home/python/app + +# Copy all files and change ownership to unprivileged user +COPY --chown=python:python . /home/python/app + +# Set venv path +ENV PATH="/home/python/app/venv/bin:$PATH" + +### AWS Graviton Optimization ### + +# Graviton3(E) (e.g. c7g, c7gn and Hpc7g instances) supports BF16 format for ML acceleration. This can be enabled in oneDNN by setting the below environment variable +ENV DNNL_DEFAULT_FPMATH_MODE=BF16 + +# Enable primitive caching to avoid the redundant primitive allocation +# latency overhead. Please note this caching feature increases the +# memory footprint. Tune this cache capacity to a lower value to +# reduce the additional memory requirement. +ENV LRU_CACHE_CAPACITY=1024 + +# Enable Transparent huge page allocations from PyTorch C10 allocator +ENV THP_MEM_ALLOC_ENABLE=1 + +# Make sure the openmp threads are distributed across all the processes for multi process applications to avoid over subscription for the vcpus. For example if there is a single application process, then num_processes should be set to '1' so that all the vcpus are assigned to it with one-to-one mapping to omp threads +# RUN num_vcpus=8 +# RUN num_processes=1 +# RUN temp = $((1 > ($num_vcpus/$num_processes) ? 1 : ($num_vcpus/$num_processes))) +ENV OMP_NUM_THREADS=1 +ENV OMP_PROC_BIND=false +ENV OMP_PLACES=cores +### + + +# Set unprivileged user with group membership +USER python:python + +################################# diff --git a/src/worker/vidvec/Dockerfile.video_worker b/src/worker/vidvec/Dockerfile.video_worker index 7b18178a..b81c7283 100644 --- a/src/worker/vidvec/Dockerfile.video_worker +++ b/src/worker/vidvec/Dockerfile.video_worker @@ -1,39 +1,72 @@ -FROM python:3.11-slim-bullseye AS base +### BUILDER IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS builder +ARG UID +ARG GID +# Fetch OS packages updates, upgrade packages, and install packages required for build RUN apt-get update \ && apt-get -y upgrade \ && apt-get install -y \ --no-install-recommends gcc build-essential \ --no-install-recommends libgl1-mesa-glx libglib2.0-0 \ --no-install-recommends python3-dev -RUN apt-get update && apt-get install -y --no-install-recommends vim zsh curl # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app -WORKDIR /usr/app - -# Set venv -RUN python -m venv /usr/app/venv && chown -R python:python /usr/app/venv -ENV PATH="/usr/app/venv/bin:$PATH" - -RUN pip install --no-cache-dir --upgrade pip - -COPY --chown=python:python requirements.txt /usr/app/requirements.txt -RUN pip install --no-cache-dir -r requirements.txt -# install video operator requirements -COPY --chown=python:python ./core/operators/vid_vec_rep_resnet_requirements.txt /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt - -RUN apt-get purge -y --auto-remove \ - gcc build-essential \ - libgl1-mesa-glx libglib2.0-0 \ - python3-dev \ +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ +# Set working dir +WORKDIR /home/python/app + +# Create venv and change ownership recursively +RUN python -m venv /home/python/app/venv \ + && chown -R python:python /home/python/app/venv +# Set venv in path +ENV PATH="/home/python/app/venv/bin:$PATH" + +# Copy core and operator requirements +COPY --chown=python:python requirements.txt /home/python/app/requirements.txt +COPY --chown=python:python ./core/operators/vid_vec_rep_resnet_requirements.txt /home/python/app/core/operators/vid_vec_rep_resnet_requirements.txt + +# Run pip install +RUN pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/requirements.txt \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/core/operators/vid_vec_rep_resnet_requirements.txt + +##################################### + + +### PRODUCTION IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS production +ARG UID +ARG GID + +# Update image, install required utils, and remove cache +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get install -y --no-install-recommends vim zsh curl \ && rm -rf /var/lib/apt/lists/* -COPY --chown=python:python . /usr/app -EXPOSE 7000 +# Set python group and user, create home dir, create app dir, change ownership of app to user +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ + +# Set working dir +WORKDIR /home/python/app + +# Copy output from builder stage +COPY --from=builder /home/python/app /home/python/app + +# Copy all files and change ownership to unprivileged user +COPY --chown=python:python . /home/python/app + +# Set venv path +ENV PATH="/home/python/app/venv/bin:$PATH" + +# Set unprivileged user with group membership +USER python:python -FROM base AS debug -USER 999 +################################# diff --git a/src/worker/vidvec/Dockerfile.video_worker_graviton b/src/worker/vidvec/Dockerfile.video_worker_graviton index f0f2d5be..a8cf3ca1 100644 --- a/src/worker/vidvec/Dockerfile.video_worker_graviton +++ b/src/worker/vidvec/Dockerfile.video_worker_graviton @@ -1,30 +1,70 @@ -FROM python:3.11-slim-bullseye AS base +### BUILDER IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS builder +ARG UID +ARG GID +# Fetch OS packages updates, upgrade packages, and install packages required for build RUN apt-get update \ && apt-get -y upgrade \ && apt-get install -y \ --no-install-recommends gcc build-essential \ --no-install-recommends libgl1-mesa-glx libglib2.0-0 \ --no-install-recommends python3-dev -RUN apt-get update && apt-get install -y --no-install-recommends vim zsh curl # Set python user -RUN groupadd -g 999 python && \ - useradd --create-home -r -u 999 -g python python -RUN mkdir /usr/app && chown python:python /usr/app -WORKDIR /usr/app +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ +# Set working dir +WORKDIR /home/python/app -# Set venv -RUN python -m venv /usr/app/venv && chown -R python:python /usr/app/venv -ENV PATH="/usr/app/venv/bin:$PATH" +# Create venv and change ownership recursively +RUN python -m venv /home/python/app/venv \ + && chown -R python:python /home/python/app/venv +# Set venv in path +ENV PATH="/home/python/app/venv/bin:$PATH" -RUN pip install --no-cache-dir --upgrade pip +# Copy core and operator requirements +COPY --chown=python:python requirements.txt /home/python/app/requirements.txt +COPY --chown=python:python ./core/operators/vid_vec_rep_resnet_requirements.txt /home/python/app/core/operators/vid_vec_rep_resnet_requirements.txt -COPY --chown=python:python requirements.txt /usr/app/requirements.txt -RUN pip install --no-cache-dir -r requirements.txt -# video requirments file -COPY --chown=python:python ./core/operators/vid_vec_rep_resnet_requirements.txt /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt -RUN pip install --no-cache-dir -r /usr/app/core/operators/vid_vec_rep_resnet_requirements.txt +# Run pip install +RUN pip install --no-cache-dir --upgrade pip \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/requirements.txt \ + && pip install --no-cache-dir --require-hashes --no-deps -r /home/python/app/core/operators/vid_vec_rep_resnet_requirements.txt + +##################################### + + +### PRODUCTION IMAGE ### +FROM --platform=$TARGETPLATFORM python:3.11-slim-bullseye@sha256:47863f26a5f2e0bfa903e7b658355940250979bd555b5e4f9f25da81647daff8 AS production +ARG UID +ARG GID + +# Update image, install required utils, and remove cache +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get install -y --no-install-recommends vim zsh curl \ + && rm -rf /var/lib/apt/lists/* + +# Set python group and user, create home dir, and create app dir for user +RUN groupadd -g $GID python \ + && useradd --create-home -r -u $UID -g python python \ + && mkdir /home/python/app \ + && chown -R python:python /home/python/app/ + +# Set working dir +WORKDIR /home/python/app + +# Copy output from builder stage +COPY --from=builder /home/python/app /home/python/app + +# Copy all files and change ownership to unprivileged user +COPY --chown=python:python . /home/python/app + +# Set venv path +ENV PATH="/home/python/app/venv/bin:$PATH" ### AWS Graviton Optimization ### @@ -49,14 +89,8 @@ ENV OMP_PROC_BIND=false ENV OMP_PLACES=cores ### -RUN apt-get purge -y --auto-remove \ - gcc build-essential \ - libgl1-mesa-glx libglib2.0-0 \ - python3-dev \ - && rm -rf /var/lib/apt/lists/* -COPY --chown=python:python . /usr/app -EXPOSE 7000 +# Set unprivileged user with group membership +USER python:python -FROM base AS debug -USER 999 +################################# diff --git a/src/worker/vidvec/video_worker.py b/src/worker/vidvec/video_worker.py index cfb0a540..96000f13 100644 --- a/src/worker/vidvec/video_worker.py +++ b/src/worker/vidvec/video_worker.py @@ -6,6 +6,8 @@ from core.models.media import MediaType from core.models.media_factory import VideoFactory from time import sleep +import numpy as np +import binascii log = Logger(__name__) @@ -49,6 +51,22 @@ def generator_doc(): def indexer(feluda): + + def calc_video_vec_crc(video_vec_gen): + count = 0 + combined_vec = [[]] + for vector in video_vec_gen: + if count == 0: + # skip first vector - mean of keyframes + count += 1 + else: + combined_vec.append(vector["vid_vec"]) + # remove first list which is empty + combined_vec = combined_vec[1:] + combined_vec_arr = np.asarray(combined_vec) + arr_crc = binascii.crc32(combined_vec_arr.tobytes(order='C')) + return arr_crc + def worker(ch, method, properties, body): print("MESSAGE RECEIVED") file_content = json.loads(body) @@ -56,6 +74,8 @@ def worker(ch, method, properties, body): try: log.info("Processing file") video_vec = vid_vec_rep_resnet.run(video_path) + video_vec_crc = calc_video_vec_crc(video_vec) + log.debug("video_vec_crc:{}".format(video_vec_crc)) doc = generate_document(video_path["path"], video_vec) media_type = MediaType.VIDEO result = feluda.store.store(media_type, doc)