diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a55de6a..7cedf78 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -3,107 +3,66 @@ on: push: branches: - main -env: - TF_CLOUD_ORGANIZATION: "shughesuk" - CONFIG_DIRECTORY: "./" +permissions: + id-token: write # This is required for requesting tghe JWT + contents: read # This is required for actions/checkout jobs: - deploy-backend: - outputs: - sha: ${{ steps.short_sha.outputs.sha }} - environment: backend-production - concurrency: backend-production - permissions: - id-token: write - contents: read + deploy-cube: runs-on: ubuntu-latest steps: - - name: Checkout code + - name: Checkout repo uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub - uses: docker/login-action@v3 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Get short SHA - id: short_sha - run: echo "sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - name: Build and push Docker image - uses: docker/build-push-action@v5 + role-to-assume: arn:aws:iam::471881062455:role/system/github_actions_role + role-session-name: GitHub_to_AWS_sync_svc_cube + aws-region: us-east-1 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2.0.1 with: - context: . - push: true - tags: shughesuk/backend:${{ steps.short_sha.outputs.sha }} - run-migrations: - name: "Run Migrations" - runs-on: ubuntu-latest - needs: deploy-backend - permissions: - contents: read - id-token: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: configure aws credentials - uses: aws-actions/configure-aws-credentials@v4.0.2 + mask-password: "false" + + - name: Build, tag, and push docker image to Amazon ECR + env: + REGISTRY: ${{ steps.login-ecr.outputs.registry }} + REPOSITORY: sync-svc-cube + IMAGE_TAG: "${{ github.sha }}" + run: | + docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG . + docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG + + - name: Update cube-api Task Definition with latest image + id: cube-api-task-def + uses: aws-actions/amazon-ecs-render-task-definition@v1.6.2 with: - role-to-assume: arn:aws:iam::905418398753:role/github-actions-role - role-session-name: GitHub_to_AWS_via_FederatedOIDC - aws-region: "us-east-1" - - uses: prefix-dev/setup-pixi@v0.5.1 + task-definition-family: cube_api + container-name: cube-api + image: ${{ steps.login-ecr.outputs.registry }}/sync-svc-cube:${{ github.sha }} + + - name: Update cube-refresh-worker Task Definition with latest image + id: cube-refresh-worker-task-def + uses: aws-actions/amazon-ecs-render-task-definition@v1.6.2 with: - cache: true - locked: true - - name: Update task - run: pixi run python scripts/update_task.py --task-definition production --container-name backend-api --image shughesuk/backend:${{ needs.deploy-backend.outputs.sha }} - - name: Run migrations - run: pixi run python scripts/run_task.py --task-definition production --cluster production --command "pixi run python manage.py migrate" - terraform: - needs: - - deploy-backend - - run-migrations - name: "Terraform Apply" - runs-on: ubuntu-latest - permissions: - contents: read - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: terraform-apply - uses: dflook/terraform-apply@v1.42.0 + task-definition-family: cube_refresh_worker + container-name: cube-refresh-worker + image: ${{ steps.login-ecr.outputs.registry }}/sync-svc-cube:${{ github.sha }} + + - name: Deploy cube-api task definition + uses: aws-actions/amazon-ecs-deploy-task-definition@v2.3.0 with: - path: ./terraform - auto_approve: true - workspace: resume-workspace - variables: | - app_image = "shughesuk/backend:${{ needs.deploy-backend.outputs.sha }}" - env: - TERRAFORM_CLOUD_TOKENS: app.terraform.io=${{ secrets.TF_API_TOKEN }} - deploy-frontend: - needs: terraform - environment: frontend-production - concurrency: frontend-production - permissions: - id-token: write - contents: read - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: configure aws credentials - uses: aws-actions/configure-aws-credentials@v4.0.2 - with: - role-to-assume: arn:aws:iam::905418398753:role/github-actions-role - role-session-name: GitHub_to_AWS_via_FederatedOIDC - aws-region: "us-east-1" - - uses: prefix-dev/setup-pixi@v0.5.1 - env: - ACTIONS_STEP_DEBUG: true + task-definition: ${{ steps.cube-api-task-def.outputs.task-definition }} + service: cube_api + cluster: production + wait-for-service-stability: true + + - name: Deploy cube-refresh-worker task definition + uses: aws-actions/amazon-ecs-deploy-task-definition@v2.3.0 with: - cache: true - locked: true - - name: Deploy - run: pixi run frontend-deploy + task-definition: ${{ steps.cube-refresh-worker-task-def.outputs.task-definition }} + service: cube_refresh_worker + cluster: production + wait-for-service-stability: true diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml deleted file mode 100644 index 932b2a4..0000000 --- a/.github/workflows/pre-commit.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: CI -on: push -jobs: - pre-commit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: prefix-dev/setup-pixi@v0.5.1 - env: - ACTIONS_STEP_DEBUG: true - with: - cache: true - locked: true - - name: install frontend - run: pixi run frontend-install - - name: npm cache - id: npm-cache - uses: actions/cache@v4 - with: - path: frontend/node_modules - key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} - - uses: pre-commit/action@v3.0.1 diff --git a/.github/workflows/terraform-plan.yml b/.github/workflows/terraform-plan.yml deleted file mode 100644 index ce267e2..0000000 --- a/.github/workflows/terraform-plan.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: "Terraform Plan" -on: - pull_request: -env: - TF_CLOUD_ORGANIZATION: "shughesuk" - TF_API_TOKEN: "${{ secrets.TF_API_TOKEN }}" - TF_WORKSPACE: "resume-workspace" - CONFIG_DIRECTORY: "./" - TF_DIRECTORY: "./" - -jobs: - terraform: - name: "Terraform Plan" - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: write - steps: - - name: Checkout - uses: actions/checkout@v4 - - uses: prefix-dev/setup-pixi@v0.5.1 - with: - cache: true - locked: true - - name: Upload Configuration - uses: hashicorp/tfc-workflows-github/actions/upload-configuration@v1.0.0 - id: plan-upload - with: - workspace: ${{ env.TF_WORKSPACE }} - directory: ${{ env.CONFIG_DIRECTORY }} - speculative: true - - - name: Create Plan Run - uses: hashicorp/tfc-workflows-github/actions/create-run@v1.0.0 - id: plan-run - with: - workspace: ${{ env.TF_WORKSPACE }} - configuration_version: ${{ steps.plan-upload.outputs.configuration_version_id }} - plan_only: true - - name: Get Plan Output - uses: hashicorp/tfc-workflows-github/actions/plan-output@v1.0.0 - id: plan-output - with: - plan: ${{ fromJSON(steps.plan-run.outputs.payload).data.relationships.plan.data.id }} - - name: Update PR - uses: actions/github-script@v6 - id: plan-comment - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - // 1. Retrieve existing bot comments for the PR - const { data: comments } = await github.rest.issues.listComments({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.issue.number, - }); - const botComment = comments.find(comment => { - return comment.user.type === 'Bot' && comment.body.includes('Terraform Cloud Plan Output') - }); - const output = `#### Terraform Cloud Plan Output - \`\`\` - Plan: ${{ steps.plan-output.outputs.add }} to add, ${{ steps.plan-output.outputs.change }} to change, ${{ steps.plan-output.outputs.destroy }} to destroy. - \`\`\` - [Terraform Cloud Plan](${{ steps.plan-run.outputs.run_link }}) - `; - // 3. Delete previous comment so PR timeline makes sense - if (botComment) { - github.rest.issues.deleteComment({ - owner: context.repo.owner, - repo: context.repo.repo, - comment_id: botComment.id, - }); - } - github.rest.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: output - }); diff --git a/Dockerfile b/Dockerfile index c012152..0482573 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,6 @@ -FROM ghcr.io/prefix-dev/pixi:0.18.0-bookworm-slim +FROM cubejs/cube:v1.1.9 -COPY ./backend /opt/backend -COPY ./pixi.lock /opt/backend/pixi.lock -COPY ./pixi.toml /opt/backend/pixi.toml -WORKDIR /opt/backend/ -RUN pixi install -CMD pixi run uvicorn --port 80 --host 0.0.0.0 resume.asgi:application --log-config logging.yaml +COPY cube.js cube.js +COPY fetch.js fetch.js +RUN mkdir model +COPY model/ model/ diff --git a/README.md b/README.md index 8a42414..5409c56 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,42 @@ -# Samantha Hughes's Resume +# sync-svc-cube +A cube dev deployment creating a semantic layer for serving up a connected data model. -[![Deployment](https://github.com/shughes-uk/resume/actions/workflows/deploy.yml/badge.svg)](https://d3k3m107rwvrzt.cloudfront.net/) +## Standing up Cube locally +### Prerequisites +- Your machine is running docker +- You have an Auth0 user -## Getting Started +### Standing up Cube locally +1. Create a .env file at the root repo directory and add the following properties and get their values from dev: -The repo uses [pixi](https://prefix.dev/docs/pixi/overview). Install it with + 1.1. Add properties and values to setup authentication for auth0: + ``` + CUBEJS_JWK_URL + CUBEJS_JWT_AUDIENCE + CUBEJS_JWT_ISSUER + CUBEJS_JWT_ALGS + CUBEJS_JWT_CLAIMS_NAMESPACE + ``` -```shell -curl -fsSL https://pixi.sh/install.sh | bash -``` + 1.2. Add properties to connect to different Sync datastores like Postgres and Databricks Delta Tables + ``` + CUBEJS_DB_HOST + CUBEJS_DB_PORT + CUBEJS_DB_NAME + CUBEJS_DB_USER + CUBEJS_DB_PASS + CUBEJS_DB_TYPE + ``` -Then install everything you'll need +2. Build docker image `docker build -t sync-cube-image .` -```shell -pixi install -pixi run frontend-install -``` +3. Run `docker compose up` -Add the precommit with +4. Run `curl -X GET 'http://localhost:4000/livez'` to ensure cube is properly running -```shell -pre-commit install -``` +5. You should now have a running cube server! Happy cubing! You can navigate to `http://localhost:4000/` to play with the cube playground. -Start the frontend dev server with -```shell -pixi run frontend-dev -``` - -Start hacking! - -## Deployment - -All pushes to main are immediately deployed! +## Helpful Cube Dev documentation: +* https://cube.dev/ +* https://github.com/cube-js/cube \ No newline at end of file diff --git a/cube.js b/cube.js new file mode 100644 index 0000000..40a0237 --- /dev/null +++ b/cube.js @@ -0,0 +1,145 @@ +const fetchUniqueTenants = require("./fetch").fetchUniqueTenants; +const fetch = require("node-fetch"); +const tenantIdClaim = "https://synccomputing.com/sync_tenant_id"; +const tenantIdOverrideClaim = "https://synccomputing.com/sync_tenant_id_override"; +const cubeBasePath = "/sync-query"; +const port = process.env.PORT || 4000; + +exports.logger = (message, params) => { + console.log(JSON.stringify({ message, params })); +}; + +exports.telemetry = false; +exports.basePath = cubeBasePath; +exports.http = { + "cors": { + "allowedHeaders": ["*"], + } +}; +exports.scheduledRefreshTimer = 60 * 60 * 24; // this refreshs our data models every 24 hours + + +exports.contextToAppId = ({ securityContext }) => { + const syncTenantId = securityContext[tenantIdOverrideClaim] || + securityContext[tenantIdClaim]; + + if (!syncTenantId) { + throw new Error("You shall not pass! 🧙"); + } + + return `tenant_${syncTenantId}`; +}; + +exports.extendContext = (req) => { + return { + securityContext: { + ...req.securityContext, + token: req.headers.authorization, + } + } +} + +exports.scheduledRefreshContexts = async () => { + console.log("Running refresh contexts"); + const uniqueTenants = await fetchUniqueTenants(); + console.log(uniqueTenants); + return uniqueTenants; +}; + + +async function getCubeMeta(token) { + const CUBEJS_API_URL = `http://localhost:${port}`; + + try { + const response = await fetch(`${CUBEJS_API_URL}${cubeBasePath}/v1/meta`, { + method: "GET", + headers: { + Authorization: token, + }, + }); + + if (!response.ok) { + throw new Error(`HTTP error trying to retrieve cube metadata: ${response.status}`); + } + + const metaData = await response.json(); + return metaData; + } catch (err) { + console.error("Error fetching cube metadata:", err.message); + } +} + +const findAuxiliarySortDimFromCube = (cube, dim) => { + const auxDim = cube.dimensions.find( (cubeDim) => { + console.debug(`comparing ${cube.name}._sort_${dim} to ${cubeDim.name}`); + return `${cube.name}._sort_${dim}` == cubeDim.name; + }); + console.log(`Found aux sort dim ${JSON.stringify(auxDim)}`); + return auxDim; +} + +const findAuxiliarySortDim = (cubeOrViewName, dimension, metadata) => { + console.debug(`finding aux dims for: ${cubeOrViewName} ${dimension}`); + + let cube = metadata.cubes.find((model) => model.name == cubeOrViewName); + if (cube.type == "view") { + // get the og cube from the view's dimension + const viewDimension = cube.dimensions.find( (cubeDim) => cubeDim.name == `${cubeOrViewName}.${dimension}` ); + const parts = viewDimension.aliasMember.split("."); + const cubeFromAliasMember = parts[0]; + cube = metadata.cubes.find((model) => model.name == cubeFromAliasMember); + dimension = parts[1]; + console.debug(`Found og cube from view: ${cube.name} ${dimension}`) + } + + const auxSortDim = findAuxiliarySortDimFromCube(cube, dimension); + + return auxSortDim; +} + +const maybeUseAuxilarySortDim = (orderByClause, metadata) => { + const orderByPath = orderByClause[0] + const orderByDirection = orderByClause[1] // desc vs asc + const [cubeOrViewName, dim] = orderByPath.split("."); + const auxSortByDim = findAuxiliarySortDim(cubeOrViewName, dim, metadata); + + if (auxSortByDim && orderByDirection == "desc") { + // We only need to use an auxilary sort dimension to sort nulls last if descending order. + // Ascending order will already sort nulls last. + return [auxSortByDim.name, orderByDirection]; + } else { + return orderByClause; + } +}; + +const replaceOrderBy = (order, metadata) => { + const orderByQueries = []; + if (order && order.length > 0) { + order.forEach((orderByClause) => { + let newOrderDim = maybeUseAuxilarySortDim(orderByClause, metadata) + if (newOrderDim) { + orderByQueries.push(newOrderDim); + } else { + orderByQueries.push(orderByClause); + } + + }); + } + return orderByQueries; +}; + +exports.queryRewrite = async (query, { securityContext }) => { + if (query.order && query.order.length > 0 && query.ungrouped) { // we can skip if customer isn't ordering by anything + const metadata = await getCubeMeta(securityContext.token); + query.order = replaceOrderBy(query.order, metadata); + query.order.forEach((orderClause) => { + let orderByDimName = orderClause[0]; + if (!query.dimensions.includes(orderByDimName)) { + // We must add the auxiliary sort dimension in order for sorting to work + query.dimensions.push(orderByDimName); + } + }); + console.log(`Rewritten query: ${JSON.stringify(query)}`) + } + return query; +}; \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f3bed6c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,10 @@ +version: "2.2" + +services: + cube: + image: sync-cube-image + ports: + - 4000:4000 + - 15432:15432 + volumes: + - .:/cube/conf diff --git a/fetch.js b/fetch.js new file mode 100644 index 0000000..e80beb6 --- /dev/null +++ b/fetch.js @@ -0,0 +1,70 @@ +const { Pool } = require("pg"); + +const pool = new Pool({ + host: process.env.CUBEJS_DB_HOST, + port: process.env.CUBEJS_DB_PORT, + user: process.env.CUBEJS_DB_USER, + password: process.env.CUBEJS_DB_PASS, + database: process.env.CUBEJS_DB_NAME, + ssl: { + rejectUnauthorized: false // Heroku requires SSL but with this flag off + }, +}); +const tenantIdClaim = "https://synccomputing.com/sync_tenant_id"; + + +exports.fetchUniqueTagKeys = async (sync_tenant_id) => { + let client; + let tagKeys = []; + try { + console.log("looking up tags for: ", sync_tenant_id); + client = await pool.connect(); + const uniqueTagKeysQuery = ` +SELECT DISTINCT tag_key +FROM public.databricks_cluster_tags +WHERE sync_tenant_id = '${sync_tenant_id}' +`; + const result = await client.query(uniqueTagKeysQuery); + // remove special characters from the tag key name so we can expose as a dimension + tagKeys = result.rows.map((row) => row.tag_key.replace(/[^a-zA-Z0-9_]/g, '_')); + } catch(error) { + console.error(error) + } finally { + if (client) { + client.release(); + } + } + + return tagKeys; +}; + +exports.fetchUniqueTenants = async () => { + console.log("trying to fetch unique tenants") + let client; + let uniqueTenants = []; + try { + client = await pool.connect(); + const uniqueTenantsQuery = ` +SELECT DISTINCT sync_tenant_id +FROM public.user +WHERE sync_tenant_id IS NOT NULL and last_login > NOW() - INTERVAL '30 days'; +`; + const result = await client.query(uniqueTenantsQuery); + console.log(result); + uniqueTenants = result.rows.map((row) => { + const secContext = { "securityContext": {}}; + secContext["securityContext"][tenantIdClaim] = row.sync_tenant_id; + + return secContext; + }); + } catch(error) { + console.error('Error fetching unique tenants:', error); + } finally { + if (client) { + client.release(); + } + } + console.log("Found tenants: " + uniqueTenants) + return uniqueTenants +} + \ No newline at end of file diff --git a/model/cubes/active_project_insight.yml b/model/cubes/active_project_insight.yml new file mode 100644 index 0000000..9efe5db --- /dev/null +++ b/model/cubes/active_project_insight.yml @@ -0,0 +1,27 @@ +cubes: + - name: active_project_insight + sql: > + SELECT + project_id, + string_agg(project_insight_rule_name, ',' ORDER BY project_insight_rule_name) AS active_insight_rule_names + FROM public.expl_project_insight + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + AND ended_at IS NULL + AND project_insight_rule_name NOT IN ('InsightsEnabled', 'ScheduledInsightsEnabled') + GROUP BY project_id + data_source: default + extends: project_insight + + joins: + - name: project + sql: "{CUBE}.project_id = {project}.id" + relationship: many_to_one + + dimensions: + - name: active_insight_rule_names + sql: active_insight_rule_names + type: string + title: "Insights" + meta: { + filter: true + } diff --git a/model/cubes/databricks_apc_cluster.yml b/model/cubes/databricks_apc_cluster.yml new file mode 100644 index 0000000..96576d7 --- /dev/null +++ b/model/cubes/databricks_apc_cluster.yml @@ -0,0 +1,323 @@ +cubes: + - name: databricks_all_purpose_compute + sql: > + SELECT * + FROM databricks_all_purpose_compute + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: databricks_apc_cluster_tags + sql: "{CUBE}.id = {databricks_cluster_tags}.apc_id" + relationship: one_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + public: false + meta: { + filter: false + } + + - name: cluster_id + sql: cluster_id + public: true + type: string + meta: { + filter: true + } + + - name: spark_context_id + sql: spark_context_id + public: true + type: string + meta: { + filter: true + } + + - name: state + sql: state + public: true + type: string + meta: { + filter: true + } + + - name: state_message + sql: state_message + public: true + type: string + meta: { + filter: true + } + + - name: start_time + sql: start_time + public: true + type: time + meta: { + filter: true + } + + - name: terminated_time + sql: terminated_time + public: true + type: time + meta: { + filter: true + } + + - name: creator_user_name + sql: creator_user_name + public: true + type: string + meta: { + filter: true + } + + - name: cluster_source + sql: cluster_source + public: true + type: string + meta: { + filter: true + } + + - name: photon_enabled + sql: photon_enabled + public: true + type: boolean + meta: { + filter: true + } + + - name: is_apc + sql: is_apc + public: false + type: boolean + meta: { + filter: false + } + + - name: autoscaling_enabled + sql: autoscaling_enabled + public: true + type: boolean + meta: { + filter: true + } + + - name: cluster_log_destination + sql: cluster_log_destination + public: true + type: string + meta: { + filter: true + } + + - name: cluster_log_region + sql: cluster_log_region + public: true + type: string + + + - name: spark_jar_task + sql: spark_jar_task + public: true + type: string + meta: { + filter: false + } + + - name: notebook_path + sql: notebook_path + public: true + type: string + meta: { + filter: false + } + + - name: compute_type + sql: compute_type + public: false + type: string + meta: { + filter: false + } + + - name: autoscale_min_workers + sql: autoscale_min_workers + public: true + type: number + meta: { + filter: true + } + + - name: autoscale_max_workers + sql: autoscale_max_workers + public: true + type: number + meta: { + filter: true + } + + - name: num_workers + sql: num_workers + public: true + type: number + meta: { + filter: true + } + + - name: runtime_engine + sql: runtime_engine + public: true + type: string + meta: { + filter: true + } + + - name: ebs_volume_count + sql: ebs_volume_count + public: true + type: number + meta: { + filter: true + } + + - name: ebs_volume_type + sql: ebs_volume_type + public: true + type: string + meta: { + filter: true + } + + - name: ebs_volume_size + sql: ebs_volume_size + public: true + type: number + meta: { + filter: true + } + + - name: ebs_volume_iops + sql: ebs_volume_iops + public: true + type: number + meta: { + filter: true + } + + - name: cluster_path + sql: cluster_path + public: true + type: string + meta: { + filter: false + } + + - name: cluster_name + sql: cluster_name + public: true + type: string + meta: { + filter: true + } + + - name: spark_version + sql: spark_version + public: true + type: string + meta: { + filter: true + } + + - name: node_type_id + sql: node_type_id + public: true + type: string + meta: { + filter: true + } + + - name: driver_node_type_id + sql: driver_node_type_id + public: true + type: string + meta: { + filter: true + } + + - name: autotermination_minutes + sql: autotermination_minutes + public: true + type: number + + - name: enable_elastic_disk + sql: enable_elastic_disk + public: true + type: boolean + + - name: enable_local_disk_encryption + sql: enable_local_disk_encryption + public: true + type: boolean + + - name: data_security_mode + sql: data_security_mode + public: true + type: string + + - name: first_on_demand + sql: first_on_demand + public: true + type: number + + - name: availability + sql: availability + public: true + type: string + + - name: aws_zone_id + sql: aws_zone_id + public: true + type: string + + - name: aws_instance_profile_arn + sql: aws_instance_profile_arn + public: true + type: string + + - name: workspace_id + sql: workspace_id + public: true + type: string + meta: { + filter: false + } + + - name: status + sql: status + public: true + type: string + meta: { + filter: false + } + + - name: created_at + sql: created_at + public: true + type: time + meta: { + filter: false + } + + - name: updated_at + sql: updated_at + type: time + meta: { + filter: false + } diff --git a/model/cubes/databricks_apc_cluster_tags.js b/model/cubes/databricks_apc_cluster_tags.js new file mode 100644 index 0000000..daec64c --- /dev/null +++ b/model/cubes/databricks_apc_cluster_tags.js @@ -0,0 +1,40 @@ + +const fetchUniqueTagKeys = require("../fetch").fetchUniqueTagKeys; + +asyncModule(async () => { + const sync_tenant_id = COMPILE_CONTEXT.securityContext['https://synccomputing.com/sync_tenant_id_override'] || COMPILE_CONTEXT.securityContext['https://synccomputing.com/sync_tenant_id'] + const uniqueTagKeys = await fetchUniqueTagKeys(sync_tenant_id); + + const createDimension = (tagKey) => ({ + [`tag_${tagKey}`]: { + sql: (CUBE) => `${CUBE}.tag_${tagKey}`, + type: `string`, + }, + }) + + const asClause = uniqueTagKeys.map((tagKey) => `tag_${tagKey} TEXT`).join(', '); + + cube(`databricks_apc_cluster_tags`, { + sql: ` + SELECT + tags_join.apc_id, + cluster_tags.* + FROM public.databricks_all_purpose_compute_tags_join AS tags_join + LEFT OUTER JOIN ( + SELECT * + FROM crosstab( + 'SELECT id, tag_key, tag_value FROM databricks_cluster_tags WHERE sync_tenant_id = ''${sync_tenant_id}'' ORDER BY id, tag_key', + 'SELECT DISTINCT tag_key FROM databricks_cluster_tags WHERE sync_tenant_id = ''${sync_tenant_id}'' ORDER BY tag_key' + ) AS ct(id UUID, ${asClause}) + ) AS cluster_tags on tags_join.tag_id = cluster_tags.id + `, + + dimensions: uniqueTagKeys.reduce( + (all, tagKey) => ({ + ...all, + ...createDimension(tagKey), + }), + {} + ) + }); +}); diff --git a/model/cubes/databricks_cluster.yml b/model/cubes/databricks_cluster.yml new file mode 100644 index 0000000..9c30fa2 --- /dev/null +++ b/model/cubes/databricks_cluster.yml @@ -0,0 +1,318 @@ +cubes: + - name: databricks_cluster + sql: > + SELECT * + FROM public.databricks_cluster + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: databricks_run + sql: "{CUBE}.run_uuid = {databricks_run}.id" + relationship: many_to_one + + - name: project + sql: "{CUBE}.project_id = {project}.id" + relationship: many_to_one + + - name: databricks_run_cluster_tags + sql: "{CUBE}.id = {databricks_run_cluster_tags}.run_cluster_id" + relationship: one_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + public: false + + - name: cluster_id + sql: cluster_id + public: true + type: string + meta: { + filter: true + } + + - name: cluster_path + sql: cluster_path + public: true + type: string + meta: { + filter: true + } + + - name: run_id + sql: run_id + public: true + type: string + meta: { + filter: true + } + + - name: run_uuid + sql: run_uuid + type: string + public: false + meta: { + filter: false + } + + - name: photon_enabled + sql: photon_enabled + public: true + type: boolean + meta: { + filter: true + } + + - name: is_apc + sql: is_apc + public: true + type: boolean + title: "All-Purpose Cluster" + meta: { + filter: true + } + + - name: autoscaling_enabled + sql: autoscaling_enabled + public: true + type: boolean + meta: { + filter: true + } + + - name: spark_jar_task + sql: spark_jar_task + public: true + type: string + meta: { + filter: true + } + + - name: notebook_path + sql: notebook_path + public: true + type: string + + - name: compute_type + sql: compute_type + public: true + type: string + meta: { + filter: true + } + + - name: autoscale_min_workers + sql: autoscale_min_workers + public: true + type: number + meta: { + filter: true + } + + - name: autoscale_max_workers + sql: autoscale_max_workers + public: true + type: number + meta: { + filter: true + } + + - name: runtime_engine + sql: runtime_engine + public: true + type: string + + - name: ebs_volume_count + sql: ebs_volume_count + public: true + type: number + title: "EBS Volume Count" + + - name: ebs_volume_type + sql: ebs_volume_type + public: true + type: string + title: "EBS Volume Type" + + - name: ebs_volume_size + sql: ebs_volume_size + public: true + type: number + title: "EBS Volume Size" + + - name: ebs_volume_iops + sql: ebs_volume_iops + public: true + type: number + title: "EBS Volume IOPS" + + - name: ebs_volume_throughput + sql: ebs_volume_throughput + public: true + type: number + title: "EBS Volume Throughput" + + - name: project_id + sql: project_id + public: true + type: string + meta: { + filter: true + } + + - name: spark_context_id + sql: spark_context_id + public: true + type: string + + - name: cluster_source + sql: cluster_source + public: true + type: string + + - name: state + sql: state + public: true + type: string + + - name: state_message + sql: state_message + public: true + type: string + + - name: start_time + sql: start_time + public: true + type: number + + - name: terminated_time + sql: terminated_time + public: true + type: number + + - name: last_state_loss_time + sql: last_state_loss_time + public: true + type: number + + - name: init_scripts_safe_mode + sql: init_scripts_safe_mode + public: true + type: number + + - name: cluster_name + sql: cluster_name + public: true + type: string + meta: { + filter: true + } + + - name: spark_version + sql: spark_version + public: true + type: string + meta: { + filter: true + } + + - name: node_type_id + sql: node_type_id + public: true + type: string + meta: { + filter: true + } + + - name: driver_node_type_id + sql: driver_node_type_id + public: true + type: string + meta: { + filter: true + } + + - name: autotermination_minutes + sql: autotermination_minutes + public: true + type: number + + - name: enable_elastic_disk + sql: enable_elastic_disk + public: true + type: boolean + + - name: enable_local_disk_encryption + sql: enable_local_disk_encryption + public: true + type: boolean + + - name: num_workers + sql: num_workers + public: true + type: number + meta: { + filter: true + } + + - name: data_security_mode + sql: data_security_mode + public: true + type: string + + - name: first_on_demand + sql: first_on_demand + public: true + type: number + + - name: availability + sql: availability + public: true + type: string + + - name: aws_zone_id + sql: aws_zone_id + public: true + type: string + + - name: aws_instance_profile_arn + sql: aws_instance_profile_arn + public: true + type: string + + - name: cluster_log_destination + sql: cluster_log_destination + public: true + type: string + + - name: cluster_log_region + sql: cluster_log_region + public: true + type: string + + - name: workspace_id + sql: workspace_id + type: string + meta: { + filter: true + } + + - name: created_at + sql: created_at + type: time + + - name: updated_at + sql: updated_at + type: time + + measures: + - name: count + type: count + + pre_aggregations: + # Pre-aggregation definitions go here. + # Learn more in the documentation: https://cube.dev/docs/caching/pre-aggregations/getting-started + diff --git a/model/cubes/databricks_job.yml b/model/cubes/databricks_job.yml new file mode 100644 index 0000000..057575c --- /dev/null +++ b/model/cubes/databricks_job.yml @@ -0,0 +1,102 @@ +cubes: + - name: databricks_job + sql: > + SELECT * + FROM public.databricks_job + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' AND status = 'active' + data_source: default + + joins: + - name: databricks_run + sql: "{CUBE}.id = {databricks_run}.job_uuid" + relationship: one_to_many + + - name: latest_databricks_job_run + sql: "{CUBE}.id = {latest_databricks_job_run}.job_uuid" + relationship: one_to_one + + - name: databricks_job_cluster_spec + sql: "{CUBE}.id = {databricks_job_cluster_spec}.job_uuid" + relationship: one_to_many + + dimensions: + - name: id + sql: id + type: string + primary_key: true + public: false + meta: { + filter: false + } + + - name: description + sql: description + type: string + meta: { + filter: true + } + + - name: job_creator + sql: job_creator + type: string + meta: { + filter: true + } + + - name: job_id + sql: job_id + type: string + meta: { + filter: true + } + + - name: status + sql: status + type: string + meta: { + filter: false + } + + - name: name + sql: name + type: string + meta: { + filter: true + } + + - name: workspace_id + sql: workspace_id + type: string + meta: { + filter: true + } + + - name: job_created_time + sql: job_created_time + type: time + meta: { + filter: true + } + + - name: created_at + sql: created_at + type: time + meta: { + filter: false + } + + - name: updated_at + sql: updated_at + type: time + meta: { + filter: false + } + + measures: + - name: count + type: count + + pre_aggregations: + # Pre-aggregation definitions go here. + # Learn more in the documentation: https://cube.dev/docs/caching/pre-aggregations/getting-started + diff --git a/model/cubes/databricks_job_cluster_spec.yml b/model/cubes/databricks_job_cluster_spec.yml new file mode 100644 index 0000000..4d07a0e --- /dev/null +++ b/model/cubes/databricks_job_cluster_spec.yml @@ -0,0 +1,290 @@ +cubes: + - name: databricks_job_cluster_spec + sql: > + SELECT * + FROM databricks_job_cluster_spec + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: databricks_job + sql: "{CUBE}.job_uuid = {databricks_job}.id" + relationship: many_to_one + + - name: databricks_job_cluster_tags + sql: "{CUBE}.id = {databricks_job_cluster_tags}.job_cluster_spec_id" + relationship: one_to_one + + - name: project + sql: "{CUBE}.project_id = {project}.id" + relationship: one_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + public: false + meta: { + filter: false + } + + - name: workspace_id + sql: workspace_id + public: true + type: string + meta: { + filter: true + } + + - name: job_uuid + sql: job_uuid + public: false + type: string + meta: { + filter: false + } + + - name: job_id + sql: job_id + public: true + type: string + meta: { + filter: true + } + + - name: photon_enabled + sql: photon_enabled + public: true + type: boolean + meta: { + filter: true + } + + - name: is_apc + sql: is_apc + public: true + type: boolean + meta: { + filter: false + } + + - name: autoscaling_enabled + sql: autoscaling_enabled + public: true + type: boolean + meta: { + filter: true + } + + - name: cluster_log_destination + sql: cluster_log_destination + public: true + type: string + meta: { + filter: true + } + + - name: cluster_log_region + sql: cluster_log_region + public: true + type: string + + + - name: spark_jar_task + sql: spark_jar_task + public: true + type: string + meta: { + filter: true + } + + - name: notebook_path + sql: notebook_path + public: true + type: string + meta: { + filter: true + } + + - name: compute_type + sql: compute_type + public: true + type: string + meta: { + filter: true + } + + - name: autoscale_min_workers + sql: autoscale_min_workers + public: true + type: number + meta: { + filter: true + } + + - name: autoscale_max_workers + sql: autoscale_max_workers + public: true + type: number + meta: { + filter: true + } + + - name: num_workers + sql: num_workers + public: true + type: number + meta: { + filter: true + } + + - name: runtime_engine + sql: runtime_engine + public: true + type: string + meta: { + filter: true + } + + - name: ebs_volume_count + sql: ebs_volume_count + public: true + type: number + meta: { + filter: true + } + + - name: ebs_volume_type + sql: ebs_volume_type + public: true + type: string + meta: { + filter: true + } + + - name: ebs_volume_size + sql: ebs_volume_size + public: true + type: number + meta: { + filter: true + } + + - name: ebs_volume_iops + sql: ebs_volume_iops + public: true + type: number + meta: { + filter: true + } + + - name: cluster_path + sql: cluster_path + public: true + type: string + meta: { + filter: true + } + + - name: cluster_name + sql: cluster_name + public: true + type: string + meta: { + filter: true + } + + - name: spark_version + sql: spark_version + public: true + type: string + meta: { + filter: true + } + + - name: node_type_id + sql: node_type_id + public: true + type: string + meta: { + filter: true + } + + - name: driver_node_type_id + sql: driver_node_type_id + public: true + type: string + meta: { + filter: true + } + + - name: autotermination_minutes + sql: autotermination_minutes + public: true + type: number + + - name: enable_elastic_disk + sql: enable_elastic_disk + public: true + type: boolean + + - name: enable_local_disk_encryption + sql: enable_local_disk_encryption + public: true + type: boolean + + - name: num_workers + sql: num_workers + public: true + type: number + meta: { + filter: true + } + + - name: data_security_mode + sql: data_security_mode + public: true + type: string + + - name: first_on_demand + sql: first_on_demand + public: true + type: number + + - name: availability + sql: availability + public: true + type: string + + - name: aws_zone_id + sql: aws_zone_id + public: true + type: string + + - name: aws_instance_profile_arn + sql: aws_instance_profile_arn + public: true + type: string + + - name: workspace_id + sql: workspace_id + public: true + type: string + meta: { + filter: true + } + + - name: created_at + sql: created_at + type: time + meta: { + filter: false + } + + - name: updated_at + sql: updated_at + type: time + meta: { + filter: false + } \ No newline at end of file diff --git a/model/cubes/databricks_job_cluster_tags.js b/model/cubes/databricks_job_cluster_tags.js new file mode 100644 index 0000000..dc02972 --- /dev/null +++ b/model/cubes/databricks_job_cluster_tags.js @@ -0,0 +1,39 @@ +const fetchUniqueTagKeys = require("../fetch").fetchUniqueTagKeys; + +asyncModule(async () => { + const sync_tenant_id = COMPILE_CONTEXT.securityContext['https://synccomputing.com/sync_tenant_id_override'] || COMPILE_CONTEXT.securityContext['https://synccomputing.com/sync_tenant_id'] + const uniqueTagKeys = await fetchUniqueTagKeys(sync_tenant_id); + + const createDimension = (tagKey) => ({ + [`tag_${tagKey}`]: { + sql: (CUBE) => `${CUBE}.tag_${tagKey}`, + type: `string`, + }, + }) + + const asClause = uniqueTagKeys.map((tagKey) => `tag_${tagKey} TEXT`).join(', '); + + cube(`databricks_job_cluster_tags`, { + sql: ` + SELECT + tags_join.job_cluster_spec_id, + cluster_tags.* + FROM public.databricks_job_cluster_spec_cluster_tags_join AS tags_join + LEFT OUTER JOIN ( + SELECT * + FROM crosstab( + 'SELECT id, tag_key, tag_value FROM databricks_cluster_tags WHERE sync_tenant_id = ''${sync_tenant_id}'' ORDER BY id, tag_key', + 'SELECT DISTINCT tag_key FROM databricks_cluster_tags WHERE sync_tenant_id = ''${sync_tenant_id}'' ORDER BY tag_key' + ) AS ct(id UUID, ${asClause}) + ) AS cluster_tags on tags_join.tag_id = cluster_tags.id + `, + + dimensions: uniqueTagKeys.reduce( + (all, tagKey) => ({ + ...all, + ...createDimension(tagKey), + }), + {} + ) + }); +}); diff --git a/model/cubes/databricks_job_run_metrics.yml b/model/cubes/databricks_job_run_metrics.yml new file mode 100644 index 0000000..72a2e8d --- /dev/null +++ b/model/cubes/databricks_job_run_metrics.yml @@ -0,0 +1,213 @@ +cubes: + - name: databricks_job_run_metrics + sql: > + SELECT * + FROM public.databricks_job_run_metrics + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: spark_submission + sql: "{CUBE}.id = {spark_submission}.id" + relationship: one_to_one + + - name: latest_spark_submission + sql: "{CUBE}.id = {latest_spark_submission}.id" + relationship: one_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + public: false + + - name: dbx_cost_actual_usd + sql: dbx_cost_actual_usd + type: number + meta: { + filter: false + } + + - name: aws_ec2_ondemand_cost_actual_usd + sql: aws_ec2_ondemand_cost_actual_usd + type: number + meta: { + filter: false + } + + - name: aws_ec2_spot_cost_actual_usd + sql: aws_ec2_spot_cost_actual_usd + type: number + meta: { + filter: false + } + + - name: aws_ebs_gp2_cost_actual_usd + sql: aws_ebs_gp2_cost_actual_usd + type: number + meta: { + filter: false + } + + - name: aws_ebs_gp3_cost_actual_usd + sql: aws_ebs_gp3_cost_actual_usd + type: number + meta: { + filter: false + } + + - name: aws_ebs_st1_cost_actual_usd + sql: aws_ebs_st1_cost_actual_usd + type: number + meta: { + filter: false + } + + - name: azure_vm_ondemand_cost_actual_usd + sql: azure_vm_ondemand_cost_actual_usd + type: number + meta: { + filter: false + } + + - name: azure_vm_spot_cost_actual_usd + sql: azure_vm_spot_cost_actual_usd + type: number + meta: { + filter: false + } + + + - name: workload_core_hours + sql: workload_core_hours + type: number + meta: { + filter: false + } + title: "Core Hours" + + - name: cluster_duration_minutes + sql: cluster_duration_minutes + type: number + meta: { + filter: false + } + title: "Cluster Duration (min.)" + + - name: cluster_cost_actual_usd + sql: cluster_cost_actual_usd + type: number + meta: { + filter: false + } + title: "Cluster Cost" + + - name: spark_duration_minutes + sql: spark_duration_minutes + type: number + meta: { + filter: true, + unit: mins + } + title: "Spark Application Duration" + + - name: spark_cost_actual_usd + sql: spark_cost_actual_usd + type: number + meta: { + filter: true, + unit: usd + } + title: "Spark Application Cost" + + - name: spark_cost_lower_usd + sql: spark_cost_lower_usd + type: number + meta: { + filter: false + } + public: false + + - name: spark_cost_upper_usd + sql: spark_cost_upper_usd + type: number + meta: { + filter: false + } + public: false + + - name: spark_cost_requested_usd + sql: spark_cost_requested_usd + type: number + meta: { + filter: false + } + public: false + + - name: spark_cost_midpoint_usd + sql: spark_cost_midpoint_usd + type: number + meta: { + filter: false + } + public: false + + measures: + - name: count + type: count + + - name: total_spark_cost_actual_usd + sql: spark_cost_actual_usd + type: sum + + - name: total_workload_core_hours + sql: workload_core_hours + type: sum + + - name: total_dbx_cost_actual_usd + title: 'Est Databricks Cost (USD)' + sql: dbx_cost_actual_usd + type: sum + + - name: total_aws_ec2_ondemand_cost_actual_usd + sql: aws_ec2_ondemand_cost_actual_usd + type: sum + + - name: total_aws_ec2_spot_cost_actual_usd + sql: aws_ec2_spot_cost_actual_usd + type: sum + + - name: total_aws_ebs_gp2_cost_actual_usd + sql: aws_ebs_gp2_cost_actual_usd + type: sum + + - name: total_aws_ebs_gp3_cost_actual_usd + sql: aws_ebs_gp3_cost_actual_usd + type: sum + + - name: total_aws_ebs_st1_cost_actual_usd + sql: aws_ebs_st1_cost_actual_usd + type: sum + + - name: total_azure_vm_ondemand_cost_actual_usd + sql: azure_vm_ondemand_cost_actual_usd + type: sum + + - name: total_azure_vm_spot_cost_actual_usd + sql: azure_vm_spot_cost_actual_usd + type: sum + + - name: total_aws_cost_actual_usd + title: 'Est AWS Cost (USD)' + sql: "{total_aws_ec2_ondemand_cost_actual_usd} + + {total_aws_ec2_spot_cost_actual_usd} + + {total_aws_ebs_gp2_cost_actual_usd} + + {total_aws_ebs_gp3_cost_actual_usd} + + {total_aws_ebs_st1_cost_actual_usd}" + type: number + + - name: total_azure_cost_actual_usd + title: 'Est Azure Cost (USD)' + sql: "{total_azure_vm_ondemand_cost_actual_usd} + {total_azure_vm_spot_cost_actual_usd}" + type: number \ No newline at end of file diff --git a/model/cubes/databricks_performance_summary.yml b/model/cubes/databricks_performance_summary.yml new file mode 100644 index 0000000..a21fe7b --- /dev/null +++ b/model/cubes/databricks_performance_summary.yml @@ -0,0 +1,163 @@ +cubes: + - name: databricks_performance_summary + sql: > + SELECT * + FROM databricks_performance_summary + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + joins: [] + + dimensions: + - name: id + sql: id + public: false + type: string + primary_key: true + meta: { + filter: true + } + + - name: name + sql: name + title: 'Job' + public: true + type: string + meta: { + filter: true + } + + - name: workspace_id + sql: workspace_id + title: 'Workspace ID' + public: true + type: string + meta: { + filter: false + } + + - name: correlation_value + sql: correlation_value + public: true + type: string + meta: { + filter: true + } + + - name: correlation_value_type + sql: correlation_value_type + public: false + type: string + meta: { + filter: true + } + + - name: photon_enabled + sql: photon_enabled + public: true + type: boolean + meta: { + filter: true + } + + - name: autoscale_enabled + sql: autoscale_enabled + public: true + type: boolean + meta: { + filter: true + } + + - name: compute_type + sql: compute_type + title: 'Compute' + public: true + type: string + meta: { + filter: true, + type: 'select', + options: [ + "ALL_PURPOSE", + "JOBS", + "JOBS_LIGHT" + ] + } + + - name: aws_ebs_enabled + sql: aws_ebs_enabled + title: 'AWS EBS Enabled' + public: true + type: boolean + meta: { + filter: true + } + + - name: frequency + sql: frequency + public: true + type: string + meta: { + filter: true + } + + - name: variance + sql: variance + public: true + type: number + meta: { + filter: true + } + + - name: vcpu_count + sql: vcpu_count + title: 'Total vCPU' + public: true + type: number + meta: { + filter: true + } + + - name: avg_run_time + sql: avg_run_time + title: 'Avg Runtime' + public: true + type: number + meta: { + filter: true + } + + - name: top_job_score + sql: top_job_score + public: false + type: number + meta: { + filter: true + } + + - name: latest_run_date + sql: latest_run_date + type: time + meta: { + filter: true + } + + - name: creator + sql: creator + public: true + type: string + meta: { + filter: true + } + + - name: created_at + sql: created_at + type: time + meta: { + filter: false + } + + - name: updated_at + sql: updated_at + type: time + meta: { + filter: false + } diff --git a/model/cubes/databricks_run.yml b/model/cubes/databricks_run.yml new file mode 100644 index 0000000..b69bff2 --- /dev/null +++ b/model/cubes/databricks_run.yml @@ -0,0 +1,142 @@ +cubes: + - name: databricks_run + data_source: default + sql: > + SELECT * + FROM databricks_run + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + + joins: + - name: databricks_job + sql: "{CUBE}.job_uuid = {databricks_job}.id" + relationship: many_to_one + + - name: databricks_cluster + sql: "{CUBE}.id = {databricks_cluster}.run_uuid" + relationship: one_to_many + + dimensions: + - name: id + sql: id + type: string + primary_key: true + public: false + meta: { + filter: false + } + + - name: job_id + sql: job_id + type: string + + - name: job_uuid + sql: job_uuid + type: string + meta: { + filter: false + } + + - name: run_id + sql: run_id + type: string + + - name: creator_username + sql: creator_username + type: string + + - name: name + sql: name + type: string + + - name: workspace_id + sql: workspace_id + type: string + + - name: status + sql: status + type: string + + - name: run_type + sql: run_type + type: string + + - name: project_id + sql: project_id + type: string + public: false + meta: { + filter: false + } + + - name: created_at + sql: created_at + type: time + + - name: updated_at + sql: updated_at + type: time + + - name: start_time + sql: start_time + type: time + + - name: end_time + sql: end_time + type: time + + - name: execution_duration + sql: execution_duration + type: number + meta: { + filter: true, + unit: milliseconds + } + + - name: setup_duration + sql: setup_duration + type: number + meta: { + filter: true, + unit: milliseconds + } + + - name: cleanup_duration + sql: cleanup_duration + type: number + meta: { + filter: true, + unit: milliseconds + } + + - name: run_duration + sql: run_duration + type: number + meta: { + filter: true, + unit: milliseconds + } + + measures: + - name: count + type: count + + - name: total_execution_duration + sql: execution_duration + type: sum + + - name: total_setup_duration + sql: setup_duration + type: sum + + - name: total_cleanup_duration + sql: cleanup_duration + type: sum + + - name: total_run_duration + sql: run_duration + type: sum + + pre_aggregations: + # Pre-aggregation definitions go here. + # Learn more in the documentation: https://cube.dev/docs/caching/pre-aggregations/getting-started + diff --git a/model/cubes/databricks_run_cluster_tags.js b/model/cubes/databricks_run_cluster_tags.js new file mode 100644 index 0000000..87bcedf --- /dev/null +++ b/model/cubes/databricks_run_cluster_tags.js @@ -0,0 +1,40 @@ +const fetchUniqueTagKeys = require("../fetch").fetchUniqueTagKeys; + +asyncModule(async () => { + const sync_tenant_id = COMPILE_CONTEXT.securityContext['https://synccomputing.com/sync_tenant_id_override'] || COMPILE_CONTEXT.securityContext['https://synccomputing.com/sync_tenant_id'] + const uniqueTagKeys = await fetchUniqueTagKeys(sync_tenant_id); + + + const createDimension = (tagKey) => ({ + [`tag_${tagKey}`]: { + sql: (CUBE) => `${CUBE}.tag_${tagKey}`, + type: `string`, + }, + }) + + const asClause = uniqueTagKeys.map((tagKey) => `tag_${tagKey} TEXT`).join(', '); + + cube(`databricks_run_cluster_tags`, { + sql: ` + SELECT + tags_join.run_cluster_id, + cluster_tags.* + FROM public.databricks_run_cluster_tags_join AS tags_join + LEFT OUTER JOIN ( + SELECT * + FROM crosstab( + 'SELECT id, tag_key, tag_value FROM databricks_cluster_tags WHERE sync_tenant_id = ''${sync_tenant_id}'' ORDER BY id, tag_key', + 'SELECT DISTINCT tag_key FROM databricks_cluster_tags WHERE sync_tenant_id = ''${sync_tenant_id}'' ORDER BY tag_key' + ) AS ct(id UUID, ${asClause}) + ) AS cluster_tags on tags_join.tag_id = cluster_tags.id + `, + + dimensions: uniqueTagKeys.reduce( + (all, tagKey) => ({ + ...all, + ...createDimension(tagKey), + }), + {} + ), + }); +}); diff --git a/model/cubes/eligible_databricks_job_cluster_spec.yml b/model/cubes/eligible_databricks_job_cluster_spec.yml new file mode 100644 index 0000000..f4e0ab2 --- /dev/null +++ b/model/cubes/eligible_databricks_job_cluster_spec.yml @@ -0,0 +1,13 @@ +cubes: + - name: eligible_databricks_job_cluster_spec + sql: > + SELECT * + FROM databricks_job_cluster_spec AS eligible_databricks_job_cluster_spec + WHERE eligible_databricks_job_cluster_spec.sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' AND eligible_databricks_job_cluster_spec.is_apc = false AND eligible_databricks_job_cluster_spec.project_id IS NULL + data_source: default + extends: databricks_job_cluster_spec + + joins: + - name: databricks_job + sql: "{CUBE}.job_uuid = {databricks_job}.id" + relationship: many_to_one diff --git a/model/cubes/health_check_aggregate.yml b/model/cubes/health_check_aggregate.yml new file mode 100644 index 0000000..d420ab2 --- /dev/null +++ b/model/cubes/health_check_aggregate.yml @@ -0,0 +1,56 @@ +cubes: + - name: health_check_aggregate + sql: > + SELECT * + FROM health_check_aggregate + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: [ ] + + dimensions: + - name: id + sql: id + type: string + primary_key: true + public: false + meta: { + filter: true + } + + - name: date + sql: date + type: time + meta: { + filter: false + } + + - name: workspace_id + sql: workspace_id + public: true + type: string + meta: { + filter: true + } + + - name: core_hours + sql: core_hours + public: true + type: number + + - name: run_count + sql: run_count + public: true + type: number + + measures: + - name: count + type: count + + - name: agg_run_count + type: sum + sql: run_count + + - name: agg_core_hours + type: sum + sql: core_hours diff --git a/model/cubes/latest_databricks_job_run.yml b/model/cubes/latest_databricks_job_run.yml new file mode 100644 index 0000000..0775eba --- /dev/null +++ b/model/cubes/latest_databricks_job_run.yml @@ -0,0 +1,23 @@ +cubes: + - name: latest_databricks_job_run + data_source: default + extends: databricks_run + sql: > + SELECT latest_run.* + FROM ( + SELECT + latest_databricks_job_run.*, + ROW_NUMBER() OVER (PARTITION BY latest_databricks_job_run.job_uuid ORDER BY latest_databricks_job_run.start_time DESC) AS rn + FROM public.databricks_run latest_databricks_job_run + WHERE latest_databricks_job_run.sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' AND latest_databricks_job_run.job_uuid IS NOT NULL + ) latest_run + WHERE latest_run.rn = 1 + + joins: + - name: databricks_job + sql: "{CUBE}.job_uuid = {databricks_job}.id" + relationship: many_to_one + + - name: databricks_cluster + sql: "{CUBE}.id = {databricks_cluster}.run_uuid" + relationship: one_to_many \ No newline at end of file diff --git a/model/cubes/latest_spark_recommendation.yml b/model/cubes/latest_spark_recommendation.yml new file mode 100644 index 0000000..c0b10b7 --- /dev/null +++ b/model/cubes/latest_spark_recommendation.yml @@ -0,0 +1,10 @@ +cubes: + - name: latest_spark_recommendation + sql: > + SELECT * + FROM public.spark_recommendation + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + AND active = 'true' + data_source: default + extends: spark_recommendation + joins: [] \ No newline at end of file diff --git a/model/cubes/latest_spark_submission.yml b/model/cubes/latest_spark_submission.yml new file mode 100644 index 0000000..450389d --- /dev/null +++ b/model/cubes/latest_spark_submission.yml @@ -0,0 +1,8 @@ +cubes: + - name: latest_spark_submission + extends: spark_submission + + joins: + - name: databricks_job_run_metrics + sql: "{CUBE}.id = {databricks_job_run_metrics}.id" + relationship: one_to_one diff --git a/model/cubes/project.yml b/model/cubes/project.yml new file mode 100644 index 0000000..ff85374 --- /dev/null +++ b/model/cubes/project.yml @@ -0,0 +1,164 @@ +cubes: + - name: project + sql: > + SELECT * + FROM public.project as p + WHERE p.active = true + AND (p.model_id = 'UNASSIGNED' OR p.model_id = 'GRADIENT_ML') + AND sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: spark_submission + sql: "{CUBE}.id = {spark_submission}.project_id" + relationship: one_to_many + + - name: spark_recommendation + sql: "{CUBE}.id = {spark_recommendation}.project_id" + relationship: one_to_many + + - name: project_insight + sql: "{CUBE}.id = {project_insight}.project_id" + relationship: one_to_many + + - name: active_project_insight + sql: "{CUBE}.id = {active_project_insight}.project_id" + relationship: one_to_many + + - name: latest_spark_submission + sql: "{CUBE}.latest_submission_id = {latest_spark_submission}.id" + relationship: one_to_one + + - name: latest_spark_recommendation + sql: "{CUBE}.latest_recommendation_id = {latest_spark_recommendation}.id" + relationship: one_to_one + + - name: databricks_cluster + sql: "{CUBE}.id = {databricks_cluster}.project_id" + relationship: one_to_many + + - name: databricks_job_cluster_spec + sql: "{CUBE}.id = {databricks_job_cluster_spec}.project_id" + relationship: one_to_one + + - name: project_roi_stats + sql: "{CUBE}.latest_roi_stats_id = {project_roi_stats}.id" + relationship: one_to_one + + - name: project_settings + sql: "{CUBE}.project_settings_id = {project_settings}.id" + relationship: one_to_one + + - name: spark_project_sequence_step + sql: "{CUBE}.project_sequence_step_id = {spark_project_sequence_step}.id" + relationship: one_to_one + + - name: project_insight + sql: "{CUBE}.id = {project_insight}.project_id" + relationship: one_to_many + + - name: active_project_insight + sql: "{CUBE}.id = {active_project_insight}.project_id" + relationship: one_to_many + + dimensions: + - name: id + sql: id + type: string + primary_key: true + meta: { + type: 'uuid' + } + + - name: project_settings_id + sql: project_settings_id + type: string + public: false + primary_key: true + meta: { + type: 'uuid' + } + + - name: active + sql: active + type: boolean + meta: { + filter: false + } + + - name: product_code + sql: product_code + title: "Type" + type: string + meta: { + filter: true, + type: 'select', + options: [ + "azure-databricks", + "aws-databricks" + ] + } + + - name: app_id + sql: app_id + type: string + meta: { + filter: true + } + + - name: creator_id + sql: creator_id + type: string + meta: { + filter: false + } + + - name: model_id + sql: model_id + type: string + meta: { + filter: false + } + public: false + + - name: workflow_id + sql: workflow_id + type: string + meta: { + filter: false + } + + - name: estimated_savings + sql: estimated_savings + type: string + meta: { + filter: false + } + + - name: created_at + sql: created_at + type: time + meta: { + filter: false + } + + - name: updated_at + sql: updated_at + type: time + meta: { + filter: false + } + + measures: + - name: count + type: count + + - name: total_auto_apply_recs + type: count + sql: project_settings.auto_apply_recs + filters: + - sql: "{project_settings}.auto_apply_recs = true" + + - name: total_estimated_savings + type: sum + sql: estimated_savings \ No newline at end of file diff --git a/model/cubes/project_insight.yml b/model/cubes/project_insight.yml new file mode 100644 index 0000000..d2ee2ac --- /dev/null +++ b/model/cubes/project_insight.yml @@ -0,0 +1,42 @@ +cubes: + - name: project_insight + sql: > + SELECT * + FROM public.expl_project_insight as i + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: project + sql: "{CUBE}.project_id = {project}.id" + relationship: many_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + + - name: sync_tenant_id + sql: sync_tenant_id + type: string + + - name: project_id + sql: project_id + type: string + + - name: project_insight_rule_name + sql: project_insight_rule_name + type: string + + - name: insight_ended_at + sql: ended_at + type: time + + - name: insight_created_at + sql: created_at + type: time + + - name: insight_updated_at + sql: updated_at + type: time \ No newline at end of file diff --git a/model/cubes/project_roi_stats.yml b/model/cubes/project_roi_stats.yml new file mode 100644 index 0000000..aaae4c4 --- /dev/null +++ b/model/cubes/project_roi_stats.yml @@ -0,0 +1,115 @@ +cubes: + - name: project_roi_stats + sql: > + SELECT * + FROM public.project_roi_stats + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: project + sql: "{CUBE}.id = {project}.latest_roi_stats_id" + relationship: one_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + public: false + meta: { + filter: false + } + + - name: project_id + sql: project_id + type: string + meta: { + filter: false + } + + - name: created_at + sql: created_at + type: time + meta: { + filter: false + } + + - name: updated_at + sql: updated_at + type: time + meta: { + filter: false + } + + - name: mean_dollar_cost_unoptimized + sql: mean_dollar_cost_unoptimized + type: number + meta: { + filter: false + } + + - name: mean_dollar_cost_optimized + sql: mean_dollar_cost_optimized + type: number + meta: { + filter: false + } + + - name: savings_to_date + title: "Savings to Date" + type: number + case: + when: + - sql: "{CUBE}.dollar_savings_to_date < 0" + label: + sql: "NULL" + else: + label: + sql: "{CUBE}.dollar_savings_to_date" + meta: { + filter: true, + unit: usd + } + + - name: projected_annual_savings + type: number + title: "Projected Annual Savings" + case: + when: + - sql: "{CUBE}.projected_dollar_savings_annual < 0" + label: + sql: "NULL" + else: + label: + sql: "{CUBE}.projected_dollar_savings_annual" + meta: { + filter: true, + unit: usd + } + + - name: cost_percent_change + type: number + sql: "( + ({mean_dollar_cost_optimized} - {mean_dollar_cost_unoptimized}) / + NULLIF(CAST({mean_dollar_cost_unoptimized} as decimal), 0) + ) * 100" + title: "Cost Change %" + meta: { + type: 'percent' + } + + measures: + + - name: total_savings_to_date + sql: "{savings_to_date}" + type: sum + + - name: total_projected_annual_savings + sql: "{projected_annual_savings}" + type: sum + + pre_aggregations: + # Pre-aggregation definitions go here. + # Learn more in the documentation: https://cube.dev/docs/caching/pre-aggregations/getting-started + diff --git a/model/cubes/project_settings.yml b/model/cubes/project_settings.yml new file mode 100644 index 0000000..e3c32eb --- /dev/null +++ b/model/cubes/project_settings.yml @@ -0,0 +1,138 @@ +cubes: + - name: project_settings + sql: > + SELECT * + FROM public.project_settings + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: project + sql: "{CUBE}.id = {project}.project_settings_id" + relationship: one_to_one + + - name: databricks_job + sql: "{CUBE}.job_id = {databricks_job}.job_id AND {CUBE}.sync_tenant_id = {databricks_job}.sync_tenant_id" + relationship: many_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + meta: { + type: 'uuid' + } + + - name: project_id + sql: project_id + type: string + meta: { + type: 'uuid' + } + + - name: job_id + sql: job_id + type: string + meta: { + filter: true + } + + - name: workspace_id + sql: workspace_id + type: string + meta: { + type: 'uuid' + } + + - name: name + sql: name + type: string + meta: { + filter: true + } + + - name: description + sql: description + type: string + meta: { + filter: false + } + + - name: cluster_path + sql: cluster_path + type: string + meta: { + filter: false + } + + - name: auto_apply_recs + sql: auto_apply_recs + type: boolean + meta: { + filter: true + } + title: "Auto Apply Recommendations" + + - name: optimize_instance_size + sql: optimize_instance_size + type: boolean + meta: { + filter: false + } + + - name: optimize_worker_size + sql: optimize_worker_size + type: boolean + meta: { + filter: false + } + + - name: project_periodicity_type + sql: project_periodicity_type + type: boolean + meta: { + filter: false + } + + - name: hardware_override + sql: hardware_override + type: string + meta: { + filter: false + } + + - name: sla_minutes + sql: sla_minutes + type: number + meta: { + filter: false + } + + - name: fix_scaling_type + sql: fix_driver_type + type: boolean + meta: { + filter: false + } + + - name: created_at + sql: created_at + type: time + meta: { + filter: false + } + + - name: updated_at + sql: updated_at + type: time + meta: { + filter: false + } + + measures: + - name: total_auto_apply_recs + type: count + sql: auto_apply_recs + filters: + - sql: "{CUBE}.auto_apply_recs = true" \ No newline at end of file diff --git a/model/cubes/spark_project_sequence_step.yml b/model/cubes/spark_project_sequence_step.yml new file mode 100644 index 0000000..41c2e15 --- /dev/null +++ b/model/cubes/spark_project_sequence_step.yml @@ -0,0 +1,47 @@ +cubes: + - name: spark_project_sequence_step + sql: > + SELECT * + FROM public.spark_project_sequence_step + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + data_source: default + + joins: + - name: project + sql: "{CUBE}.id = {project}.project_sequence_step_id" + relationship: one_to_one + + - name: spark_recommendation + sql: "{CUBE}.id = {spark_recommendation}.project_sequence_step_id" + relationship: one_to_one + + + dimensions: + - name: id + sql: id + type: string + primary_key: true + meta: { + type: 'uuid' + } + + - name: phase + case: + when: + - sql: "{CUBE}.phase = 'LEARNING' OR {CUBE}.phase = 'REBASING'" + label: LEARNING + - sql: "{CUBE}.phase = 'OPTIMIZING'" + label: OPTIMIZING + - sql: "{CUBE}.phase is NULL" + label: MONITORING + type: string + meta: { + filter: true, + type: 'select', + options: [ + "LEARNING", + "OPTIMIZING", + "MONITORING" + ] + } + title: "Gradient State" diff --git a/model/cubes/spark_recommendation.yml b/model/cubes/spark_recommendation.yml new file mode 100644 index 0000000..7cc1ce6 --- /dev/null +++ b/model/cubes/spark_recommendation.yml @@ -0,0 +1,99 @@ +cubes: + - name: spark_recommendation + sql: > + SELECT * + FROM public.spark_recommendation + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' AND active = 'true' + data_source: default + joins: + - name: project + sql: "{CUBE}.project_id = {project}.id" + relationship: many_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + + - name: active + sql: active + type: boolean + meta: { + filter: false + } + + - name: creator_id + sql: creator_id + type: string + meta: { + filter: false + } + + - name: project_id + sql: project_id + type: string + meta: { + filter: false + } + + - name: state + type: string + case: + when: + - sql: "{CUBE}.state = 'PENDING' OR {CUBE}.state IS NULL" + label: pending_setup + - sql: "{CUBE}.state = 'SUCCESS'" + label: healthy + - sql: "{CUBE}.state = 'FAILURE'" + label: unhealthy + meta: { + filter: true, + options: [ + "pending_setup", + "healthy", + "unhealthy" + ] + } + + - name: error + sql: error + type: string + meta: { + filter: false + } + + - name: model_name + sql: model_name + type: string + meta: { + filter: false + } + + - name: created_at + sql: created_at + type: time + meta: { + filter: false + } + + - name: state_updated_at + sql: state_updated_at + type: time + meta: { + filter: false + } + + measures: + - name: count + type: count + + - name: count_pending_setups + type: count + sql: "{CUBE}.state = 'PENDING' OR {CUBE}.state IS NULL" + + + pre_aggregations: + # Pre-aggregation definitions go here. + # Learn more in the documentation: https://cube.dev/docs/caching/pre-aggregations/getting-started + diff --git a/model/cubes/spark_submission.yml b/model/cubes/spark_submission.yml new file mode 100644 index 0000000..5162c33 --- /dev/null +++ b/model/cubes/spark_submission.yml @@ -0,0 +1,153 @@ +cubes: + - name: spark_submission + sql: > + SELECT * + FROM public.spark_submission + WHERE sync_tenant_id = '{{ tenant_resolver(COMPILE_CONTEXT.securityContext) | safe }}' + AND active = 'true' + data_source: default + + joins: + - name: project + sql: "{CUBE}.project_id = {project}.id" + relationship: many_to_one + + - name: databricks_job_run_metrics + sql: "{CUBE}.id = {databricks_job_run_metrics}.id" + relationship: one_to_one + + - name: databricks_cluster + sql: "{CUBE}.cluster_id = {databricks_cluster}.cluster_id AND {CUBE}.run_id = {databricks_cluster}.run_id AND {CUBE}.sync_tenant_id = {databricks_cluster}.sync_tenant_id" + relationship: one_to_one + + dimensions: + - name: id + sql: id + type: string + primary_key: true + + - name: creator_id + sql: creator_id + type: string + meta: { + filter: false + } + + - name: unique_id + sql: unique_id + type: string + meta: { + filter: false + } + + - name: active + sql: active + type: string + meta: { + filter: false + } + + - name: implemented_recommendation_id + sql: implemented_recommendation_id + type: string + meta: { + filter: false + } + title: "Applied Recommendation ID" + + - name: project_id + sql: project_id + type: string + meta: { + filter: false + } + + - name: active_for_optimization + sql: active_for_optimization + type: boolean + meta: { + filter: false + } + + - name: state + sql: state + type: string + meta: { + filter: true + } + + - name: job_status + sql: job_status + type: string + meta: { + filter: true + } + title: "Job Status" + + - name: error + sql: error + type: string + meta: { + filter: false + } + + - name: created_at + sql: created_at + type: time + meta: { + filter: false + } + + - name: state_updated_at + sql: state_updated_at + type: time + meta: { + filter: true + } + title: "Last Monitored Date" + + - name: _sort_state_updated_at + sql: "coalesce(state_updated_at, '1900-01-01')" + type: time + meta: { + filter: true + } + + - name: sla_minutes + sql: sla_minutes + type: time + meta: { + filter: false + } + title: "SLA (min.)" + + - name: sla_status + sql: sla_status + type: string + meta: { + filter: false + } + title: "SLA Status" + + measures: + - name: count + type: count + + - name: total_recs_applied + sql: implemented_recommendation_id + type: count + + - name: total_dev_hours + sql: "({total_recs_applied} * 30) / 60" + type: number + + - name: total_sla_status_met + sql: sla_status + type: count + filters: + - sql: "{CUBE}.sla_status = 'MET'" + + - name: sla_status_met_percent + sql: "(CAST({total_sla_status_met} as decimal) / NULLIF(CAST({count} as decimal), 0)) * 100.0" + type: number + format: percent \ No newline at end of file diff --git a/model/globals.py b/model/globals.py new file mode 100644 index 0000000..371b1dc --- /dev/null +++ b/model/globals.py @@ -0,0 +1,20 @@ +from cube import TemplateContext + +template = TemplateContext() + +tenant_id_claim = 'https://synccomputing.com/sync_tenant_id' +tenant_id_override_claim = 'https://synccomputing.com/sync_tenant_id_override' + +@template.function('tenant_resolver') +def tenant_resolver(ctx) -> str: + if ctx is None: + raise Exception("You shall not pass! 🧙") + + sync_tenant_id = ( + ctx.get(tenant_id_override_claim) + or ctx.get(tenant_id_claim) + ) + + if sync_tenant_id is None: + raise Exception("You shall not pass! 🧙") + return sync_tenant_id \ No newline at end of file diff --git a/model/views/candidates_list.yml b/model/views/candidates_list.yml new file mode 100644 index 0000000..9c6d278 --- /dev/null +++ b/model/views/candidates_list.yml @@ -0,0 +1,19 @@ +views: + - name: candidates_list + + cubes: + - join_path: eligible_databricks_job_cluster_spec + includes: "*" + + - join_path: eligible_databricks_job_cluster_spec.databricks_job + prefix: true + includes: "*" + excludes: + - job_id + + - join_path: eligible_databricks_job_cluster_spec.databricks_job.latest_databricks_job_run + prefix: true + includes: "*" + excludes: + - job_id + - workspace_id \ No newline at end of file diff --git a/model/views/databricks_clusters.yml b/model/views/databricks_clusters.yml new file mode 100644 index 0000000..807fbb6 --- /dev/null +++ b/model/views/databricks_clusters.yml @@ -0,0 +1,14 @@ +views: + - name: databricks_clusters + + cubes: + - join_path: databricks_cluster + includes: + - node_type_id + - driver_node_type_id + - workspace_id + - count + + - join_path: databricks_cluster.databricks_run + includes: + - end_time \ No newline at end of file diff --git a/model/views/job_runs_charts.yml b/model/views/job_runs_charts.yml new file mode 100644 index 0000000..87c90bb --- /dev/null +++ b/model/views/job_runs_charts.yml @@ -0,0 +1,11 @@ +views: + - name: job_runs_charts + + cubes: + - join_path: health_check_aggregate + includes: + - id + - date + - workspace_id + - agg_run_count + - agg_core_hours \ No newline at end of file diff --git a/model/views/job_runs_list.yml b/model/views/job_runs_list.yml new file mode 100644 index 0000000..e9543bd --- /dev/null +++ b/model/views/job_runs_list.yml @@ -0,0 +1,21 @@ +views: + - name: job_runs_list + + cubes: + - join_path: databricks_performance_summary + includes: + - name + - workspace_id + - photon_enabled + - autoscale_enabled + - compute_type + - aws_ebs_enabled + - frequency + - variance + - vcpu_count + - avg_run_time + - latest_run_date + - correlation_value + - creator + - top_job_score + diff --git a/model/views/projects_aggregates.yml b/model/views/projects_aggregates.yml new file mode 100644 index 0000000..ce37400 --- /dev/null +++ b/model/views/projects_aggregates.yml @@ -0,0 +1,31 @@ +views: + - name: projects_aggregates + + cubes: + - join_path: project + includes: + - count + + - join_path: project.project_roi_stats + includes: + - total_savings_to_date + - total_projected_annual_savings + + - join_path: project.project_settings + includes: + - total_auto_apply_recs + + - join_path: project.spark_submission + includes: + - total_recs_applied + - sla_status_met_percent + - total_dev_hours + + - join_path: project.spark_recommendation + includes: + - count_pending_setups + + - join_path: project.spark_submission.databricks_job_run_metrics + includes: + - total_workload_core_hours + - total_spark_cost_actual_usd \ No newline at end of file diff --git a/model/views/projects_charts.yml b/model/views/projects_charts.yml new file mode 100644 index 0000000..c12ffe6 --- /dev/null +++ b/model/views/projects_charts.yml @@ -0,0 +1,54 @@ +views: + - name: projects_charts + meta: { + categories: [ + { + name: 'cost_breakdown', + type: 'string', + shortTitle: 'Cost Breakdown By Service', + measures: [ + 'projects_charts.total_dbx_cost_actual_usd', + 'projects_charts.total_aws_cost_actual_usd', + 'projects_charts.total_azure_cost_actual_usd', + ] + }, + { + name: 'auto_apply_recs', + type: 'boolean', + shortTitle: 'Auto Apply Recommendations', + measures: ['projects_charts.total_spark_cost_actual_usd'], + dimensions: ['projects_charts.auto_apply_recs'] + }, + { + name: 'name', + type: 'string', + shortTitle: 'Project Name', + measures: ['projects_charts.total_spark_cost_actual_usd'], + dimensions: ['projects_charts.name'] + } + ] + } + + cubes: + - join_path: project + includes: + - id + + - join_path: project.project_settings + includes: + - auto_apply_recs + - name + + - join_path: project.spark_submission + includes: + - project_id + - sla_status_met_percent + - created_at + + - join_path: project.spark_submission.databricks_job_run_metrics + includes: + - total_aws_cost_actual_usd + - total_azure_cost_actual_usd + - total_dbx_cost_actual_usd + - total_workload_core_hours + - total_spark_cost_actual_usd \ No newline at end of file diff --git a/model/views/projects_list.yml b/model/views/projects_list.yml new file mode 100644 index 0000000..fffe6b5 --- /dev/null +++ b/model/views/projects_list.yml @@ -0,0 +1,63 @@ +views: + - name: projects_list + + cubes: + - join_path: project + includes: + - id + - product_code + - app_id + - updated_at + + - join_path: project.project_settings + includes: + - name + - description + - workspace_id + - auto_apply_recs + + - join_path: project.latest_spark_submission + prefix: true + includes: + - state + - job_status + - state_updated_at + + - join_path: project.latest_spark_submission.databricks_job_run_metrics + prefix: true + includes: + - name: spark_cost_actual_usd + alias: spark_cost_usd + - name: spark_duration_minutes + alias: spark_duration_mins + + - join_path: project.latest_spark_recommendation + prefix: true + includes: + - state + + - join_path: project.project_settings.databricks_job + prefix: true + includes: + - name + - description + - job_creator + - job_created_time + - job_id + + - join_path: project.project_roi_stats + prefix: true + includes: + - savings_to_date + - projected_annual_savings + - cost_percent_change + + - join_path: project.spark_project_sequence_step + prefix: true + includes: + - phase + + - join_path: project.active_project_insight + prefix: true + includes: + - active_insight_rule_names \ No newline at end of file diff --git a/pixi.lock b/pixi.lock deleted file mode 100644 index 2e0adea..0000000 --- a/pixi.lock +++ /dev/null @@ -1,5769 +0,0 @@ -version: 4 -environments: - default: - channels: - - url: https://conda.anaconda.org/conda-forge/ - packages: - linux-64: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.11-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.8-h538f98c_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.6.9-h5d48c4d_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.10-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.17-h7f92143_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.3.2-h0bcb0bb_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.14-hd268abd_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.36-he0cd244_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.9.10-h35285c7_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.4.4-h0448019_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.13-h7f92143_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.17-h7f92143_6.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.36-py311h38be061_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.19.19-py311ha8d3014_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py311hb755f60_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py311hb3a22ac_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-40.0.2-py311h9b4c7bb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/curl-8.7.1-hca28451_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/docutils-0.19-py311h38be061_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.13.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.21.1-h27087fc_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/git-2.44.0-pl5321h709897a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.3.0-h3d44ed6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.35-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.7.1-hca28451_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.0-hf2295e7_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.2-h2797004_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.48.0-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4.20240210-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-20.9.0-hb753e55_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openjdk-21.0.2-haa376d0_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.43-hcad00b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.38-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.38-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py311h459d7ec_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.21-py311h2582759_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py311h459d7ec_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.0-h06160fa_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/terraform-1.7.5-ha8f183a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py311h9547e67_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.18-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-h8ee46fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h7f98852_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.3-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-recordproto-1.14.2-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda - - pypi: https://files.pythonhosted.org/packages/28/78/d31230046e58c207284c6b2c4e8d96e6d3cb4e52354721b944d3e1ee4aa5/annotated_types-0.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/9b/3664bb82cb1c5d7066152103beb3ea66b1f665abea489cd113ce4b98021f/boto3-1.34.84-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5b/a9/5217ec54ecd89d52ab410d3747f354eb5c77293fd2ab4982605e8ea34352/botocore-1.34.84-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f3/18/3e867ab37a24fdf073c1617b9c7830e06ec270b1ea4694a624038fc40a03/colorlog-6.8.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d3/31/32ce7eb77accc1678054fe951228766b47f9ec7d68d96d1caaa2611cbafe/Django-5.0.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/72/70/77c010fb24d7bebb6042354543f20f75cc7934944165d1a90091459e3d0b/django-allauth-0.61.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/fe/6a/3428ab5d1ec270e845f4ef064a7cefbf1339b4454788d77c00d36caa828c/django_cors_headers-4.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/f1/468b49cccba3b42dda571063a14c668bb0b53a1d5712426d18e36663bd53/django_environ-0.11.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4d/5d/e52a5a31c178418e626101b934ce30598dc0977483d8189e6d16af8aefdd/django_ninja-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ce/85/62825cabc6aad53104b7b6d12eb2ad74737d268630032d07b74d4444cb72/psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/16/ca/330c4f3bd983bb24ac12c7fd1e08c26c8aed70bc64498cf38c770321067f/pydantic-2.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b0/a5/5519e8416e85c58f0c06218310220acdd6c210d154e75da99ec4f5f0aca3/pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/2b/4f/e04a8067c7c96c364cef7ef73906504e2f40d690811c021e1a1901473a19/PyJWT-2.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e0/a5/c6ba13860bdf5525f1ab01e01cc667578d6f1efc8a1dba355700fb04c29b/python3_openid-3.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/99/b2/4b0796f93d8bd7188e47c198407f2999579599cd5a11e1ed8a66ee18b4ac/ruff-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/83/37/395cdb6ee92925fa211e55d8f07b9f93cf93f60d7d4ce5e66fd73f1ea986/s3transfer-0.10.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/5d/a0fdd88fd486b39ae1fd1a75ff75b4e29a0df96c0304d462fd407b82efe0/sqlparse-0.5.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/01/f3/936e209267d6ef7510322191003885de524fc48d1b43269810cd589ceaf5/typing_extensions-4.11.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/f5/cbb16fcbe277c1e0b8b3ddd188f2df0e0947f545c49119b589643632d156/uvicorn-0.29.0-py3-none-any.whl - linux-aarch64: - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/alsa-lib-1.2.11-h31becfc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-auth-0.7.8-h099566f_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-cal-0.6.9-h6a88f34_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-common-0.9.10-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-compression-0.2.17-hb4825c3_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-event-stream-0.3.2-h028cdfe_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-http-0.7.14-h0a9a19f_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-io-0.13.36-hcd54cbc_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-mqtt-0.9.10-hd720f31_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-s3-0.4.4-h937fcef_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-sdkutils-0.1.13-hb4825c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-checksums-0.1.17-hb4825c3_6.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/awscli-2.15.36-py311hec3470c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/awscrt-0.19.19-py311ha857846_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.1.0-py311h8715677_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h31becfc_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.28.1-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.2.2-hcefe29a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cairo-1.18.0-ha13f110_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.16.0-py311h7963103_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-40.0.2-py311h7774351_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/curl-8.7.1-h4e8248e_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/docutils-0.19-py311hfecb2dc_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.6.2-h2f0025b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.13.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/fontconfig-2.14.2-ha9a116f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/freetype-2.12.1-hf0a5ef3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gettext-0.22.5-h2f0025b_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gettext-tools-0.22.5-h2f0025b_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/giflib-5.2.2-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/git-2.44.0-pl5321he5f4d6e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/graphite2-1.3.13-h2f0025b_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/harfbuzz-8.3.0-hebeb849_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-73.2-h787c7f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.35-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/keyutils-1.6.1-h4e544f5_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/krb5-1.21.2-hc419048_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/lcms2-2.16-h922389a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.40-h2d8c526_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/lerc-4.0.0-h4de3ea5_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libasprintf-0.22.5-h7b6a552_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libasprintf-devel-0.22.5-h7b6a552_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcups-2.3.3-h405e4a8_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.7.1-h4e8248e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libdeflate-1.20-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libev-4.33-h31becfc_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.2-h2f0025b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-13.2.0-hf8544c7_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgettextpo-0.22.5-h2f0025b_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgettextpo-devel-0.22.5-h2f0025b_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.80.0-h9d8fbc1_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-13.2.0-hf8544c7_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.17-h31becfc_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libjpeg-turbo-3.0.0-h31becfc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.58.0-hb0e430d_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libpng-1.6.43-h194ca79_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.45.2-h194ca79_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.0-h492db2e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-13.2.0-h9a76618_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libtiff-4.6.0-hf980d43_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.48.0-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libwebp-base-1.3.2-h31becfc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcb-1.15-h2a766a3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.2.13-h31becfc_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.4.20240210-h0425590_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-20.9.0-hc1f8a26_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openjdk-21.0.2-hf79f348_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.2.1-h31becfc_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.43-hd0f9c67_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/perl-5.32.1-7_h31becfc_perl5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pixman-0.43.4-h2f0025b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.38-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.38-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pthread-stubs-0.4-hb9de7d4_1001.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.11.8-h43d1f9e_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.11-4_cp311.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.1-py311hcd402e7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.17.21-py311h1d6c08a_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.7-py311hcd402e7_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/s2n-1.4.0-h5a25046_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/terraform-1.7.5-h652cbe9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py311h098ece5_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.18-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-fixesproto-5.0-h3557bc0_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-inputproto-2.3.2-h3557bc0_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-kbproto-1.0.7-h3557bc0_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libice-1.1.1-h7935292_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libsm-1.2.4-h5a01bc2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libx11-1.8.9-h055a233_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxau-1.0.11-h31becfc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxdmcp-1.1.3-h3557bc0_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxext-1.3.4-h2a766a3_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxfixes-5.0.3-h3557bc0_1004.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxi-1.7.10-h3557bc0_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxrender-0.9.11-h7935292_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxt-1.3.0-h7935292_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxtst-1.2.3-hf897c2e_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-recordproto-1.14.2-hf897c2e_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-renderproto-0.11.1-h3557bc0_1002.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-xextproto-7.3.0-h2a766a3_1003.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-xproto-7.0.31-h3557bc0_1007.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-0.2.5-hf897c2e_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.2.13-h31becfc_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.5-h4c53e97_0.conda - - pypi: https://files.pythonhosted.org/packages/28/78/d31230046e58c207284c6b2c4e8d96e6d3cb4e52354721b944d3e1ee4aa5/annotated_types-0.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/9b/3664bb82cb1c5d7066152103beb3ea66b1f665abea489cd113ce4b98021f/boto3-1.34.84-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5b/a9/5217ec54ecd89d52ab410d3747f354eb5c77293fd2ab4982605e8ea34352/botocore-1.34.84-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e4/a6/7ee57823d46331ddc37dd00749c95b0edec2c79b15fc0d6e6efb532e89ac/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f3/18/3e867ab37a24fdf073c1617b9c7830e06ec270b1ea4694a624038fc40a03/colorlog-6.8.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d3/31/32ce7eb77accc1678054fe951228766b47f9ec7d68d96d1caaa2611cbafe/Django-5.0.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/72/70/77c010fb24d7bebb6042354543f20f75cc7934944165d1a90091459e3d0b/django-allauth-0.61.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/fe/6a/3428ab5d1ec270e845f4ef064a7cefbf1339b4454788d77c00d36caa828c/django_cors_headers-4.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/f1/468b49cccba3b42dda571063a14c668bb0b53a1d5712426d18e36663bd53/django_environ-0.11.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4d/5d/e52a5a31c178418e626101b934ce30598dc0977483d8189e6d16af8aefdd/django_ninja-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/81/0b/3adf561107c865928455891156d1dde5325253f7f4316fe56cd2c3f73570/psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/16/ca/330c4f3bd983bb24ac12c7fd1e08c26c8aed70bc64498cf38c770321067f/pydantic-2.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/11/6e/bf01c6a8133a4ad0b2bb1f6b20acd36a6aefab8ab8e098c6a9d66db1d303/pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/2b/4f/e04a8067c7c96c364cef7ef73906504e2f40d690811c021e1a1901473a19/PyJWT-2.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e0/a5/c6ba13860bdf5525f1ab01e01cc667578d6f1efc8a1dba355700fb04c29b/python3_openid-3.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/00/5c/bea349c531f50b8462470b49e5eff11a860f63b2796d8643d4e4e0722b64/ruff-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - - pypi: https://files.pythonhosted.org/packages/83/37/395cdb6ee92925fa211e55d8f07b9f93cf93f60d7d4ce5e66fd73f1ea986/s3transfer-0.10.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/5d/a0fdd88fd486b39ae1fd1a75ff75b4e29a0df96c0304d462fd407b82efe0/sqlparse-0.5.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/01/f3/936e209267d6ef7510322191003885de524fc48d1b43269810cd589ceaf5/typing_extensions-4.11.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/f5/cbb16fcbe277c1e0b8b3ddd188f2df0e0947f545c49119b589643632d156/uvicorn-0.29.0-py3-none-any.whl - osx-arm64: - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.8-h76f1ccf_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.6.9-hb1772db_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.10-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.17-hb1772db_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.3.2-hb5e90b3_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.7.14-hd747585_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.13.36-h1112932_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.9.10-h99ceed4_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.4.4-hc25d294_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.13-hb1772db_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.17-hb1772db_6.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/awscli-2.15.36-py311h267d04e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/awscrt-0.19.19-py311h39eef5c_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py311ha891d26_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.28.1-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py311h4a08483_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-40.0.2-py311h507f6e9_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/curl-8.7.1-h2d989ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distro-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/docutils-0.19-py311h267d04e_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.13.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gettext-0.21.1-h0186832_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/git-2.44.0-pl5321h015987d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.35-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.2-h92f50d5_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.7.1-h2d989ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-16.0.6-h4653b0c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.45.2-h091b4b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.48.0-h93a5062_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.2.13-h53f4e23_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4.20240210-h078ce10_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-20.9.0-h3b52c9b_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjdk-21.0.2-hbeb2e11_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.2.1-h0d3ecfb_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.43-h26f9a81_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/perl-5.32.1-7_h4614cfb_perl5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.38-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.38-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.8-hdf0ec26_0_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-4_cp311.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py311heffc1b2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.17.21-py311he2be06e_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.7-py311heffc1b2_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/terraform-1.7.5-h75b854d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py311he4fd1f5_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.18-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.2.13-h53f4e23_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda - - pypi: https://files.pythonhosted.org/packages/28/78/d31230046e58c207284c6b2c4e8d96e6d3cb4e52354721b944d3e1ee4aa5/annotated_types-0.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/9b/3664bb82cb1c5d7066152103beb3ea66b1f665abea489cd113ce4b98021f/boto3-1.34.84-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5b/a9/5217ec54ecd89d52ab410d3747f354eb5c77293fd2ab4982605e8ea34352/botocore-1.34.84-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/f3/18/3e867ab37a24fdf073c1617b9c7830e06ec270b1ea4694a624038fc40a03/colorlog-6.8.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d3/31/32ce7eb77accc1678054fe951228766b47f9ec7d68d96d1caaa2611cbafe/Django-5.0.4-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/72/70/77c010fb24d7bebb6042354543f20f75cc7934944165d1a90091459e3d0b/django-allauth-0.61.1.tar.gz - - pypi: https://files.pythonhosted.org/packages/fe/6a/3428ab5d1ec270e845f4ef064a7cefbf1339b4454788d77c00d36caa828c/django_cors_headers-4.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c4/f1/468b49cccba3b42dda571063a14c668bb0b53a1d5712426d18e36663bd53/django_environ-0.11.2-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4d/5d/e52a5a31c178418e626101b934ce30598dc0977483d8189e6d16af8aefdd/django_ninja-1.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/7a/1f/a6cf0cdf944253f7c45d90fbc876cc8bed5cc9942349306245715c0d88d6/psycopg2_binary-2.9.9-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/16/ca/330c4f3bd983bb24ac12c7fd1e08c26c8aed70bc64498cf38c770321067f/pydantic-2.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/24/9982df86dc57155fdbaacecb3dc09d28fdbb19632b1294fd2ddd8f0274dd/pydantic_core-2.18.1-cp311-cp311-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/2b/4f/e04a8067c7c96c364cef7ef73906504e2f40d690811c021e1a1901473a19/PyJWT-2.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e0/a5/c6ba13860bdf5525f1ab01e01cc667578d6f1efc8a1dba355700fb04c29b/python3_openid-3.2.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/c5/59/8416cddfcc65b710d79374358a81632f2c4810326e8391d5a3c23f1cc422/ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl - - pypi: https://files.pythonhosted.org/packages/83/37/395cdb6ee92925fa211e55d8f07b9f93cf93f60d7d4ce5e66fd73f1ea986/s3transfer-0.10.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/43/5d/a0fdd88fd486b39ae1fd1a75ff75b4e29a0df96c0304d462fd407b82efe0/sqlparse-0.5.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/01/f3/936e209267d6ef7510322191003885de524fc48d1b43269810cd589ceaf5/typing_extensions-4.11.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/73/f5/cbb16fcbe277c1e0b8b3ddd188f2df0e0947f545c49119b589643632d156/uvicorn-0.29.0-py3-none-any.whl -packages: -- kind: conda - name: _libgcc_mutex - version: '0.1' - build: conda_forge - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 - md5: d7c89558ba9fa0495403155b64376d81 - license: None - size: 2562 - timestamp: 1578324546067 -- kind: conda - name: _openmp_mutex - version: '4.5' - build: 2_gnu - build_number: 16 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 - md5: 73aaf86a425cc6e73fcf236a5a46396d - depends: - - _libgcc_mutex 0.1 conda_forge - - libgomp >=7.5.0 - constrains: - - openmp_impl 9999 - license: BSD-3-Clause - license_family: BSD - size: 23621 - timestamp: 1650670423406 -- kind: conda - name: _openmp_mutex - version: '4.5' - build: 2_gnu - build_number: 16 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-2_gnu.tar.bz2 - sha256: 3702bef2f0a4d38bd8288bbe54aace623602a1343c2cfbefd3fa188e015bebf0 - md5: 6168d71addc746e8f2b8d57dfd2edcea - depends: - - libgomp >=7.5.0 - constrains: - - openmp_impl 9999 - license: BSD-3-Clause - license_family: BSD - size: 23712 - timestamp: 1650670790230 -- kind: conda - name: alsa-lib - version: 1.2.11 - build: h31becfc_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/alsa-lib-1.2.11-h31becfc_1.conda - sha256: d062bc712dd307714dfdb0f7da095a510c138c5db76321494a516ac127f9e5cf - md5: 76bf292a85a0556cef4f500420cabe6c - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - license_family: GPL - size: 584152 - timestamp: 1709396718705 -- kind: conda - name: alsa-lib - version: 1.2.11 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.11-hd590300_1.conda - sha256: 0e2b75b9834a6e520b13db516f7cf5c9cea8f0bbc9157c978444173dacb98fec - md5: 0bb492cca54017ea314b809b1ee3a176 - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - license_family: GPL - size: 554699 - timestamp: 1709396557528 -- kind: pypi - name: annotated-types - version: 0.6.0 - url: https://files.pythonhosted.org/packages/28/78/d31230046e58c207284c6b2c4e8d96e6d3cb4e52354721b944d3e1ee4aa5/annotated_types-0.6.0-py3-none-any.whl - sha256: 0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43 - requires_dist: - - typing-extensions >=4.0.0 ; python_version < '3.9' - requires_python: '>=3.8' -- kind: pypi - name: asgiref - version: 3.8.1 - url: https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl - sha256: 3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47 - requires_dist: - - typing-extensions >=4 ; python_version < '3.11' - - pytest ; extra == 'tests' - - pytest-asyncio ; extra == 'tests' - - mypy >=0.800 ; extra == 'tests' - requires_python: '>=3.8' -- kind: conda - name: aws-c-auth - version: 0.7.8 - build: h099566f_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-auth-0.7.8-h099566f_2.conda - sha256: 46597c89e5176da1d298465ae939b746e6174c4a2f56d7598c2913f76cd80bf7 - md5: efae35d8a5fd543d2ce54cb3ea467651 - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-c-sdkutils >=0.1.13,<0.1.14.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 107643 - timestamp: 1702039704109 -- kind: conda - name: aws-c-auth - version: 0.7.8 - build: h538f98c_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.7.8-h538f98c_2.conda - sha256: b06ef95458fc70af4230c9c6690011235cd25288752ff7aa25492fc6d1c0e028 - md5: d42aebb91e28e2fee2a0218cfbff2c90 - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-c-sdkutils >=0.1.13,<0.1.14.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 102992 - timestamp: 1702039736949 -- kind: conda - name: aws-c-auth - version: 0.7.8 - build: h76f1ccf_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.7.8-h76f1ccf_2.conda - sha256: 36f3bb471e30b10bc8f640c2857eabeb12ce03157271d07e7ea42ce55ef30993 - md5: b9b6f495ef60a7841727b2b10d80a51e - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-c-sdkutils >=0.1.13,<0.1.14.0a0 - license: Apache-2.0 - license_family: Apache - size: 88444 - timestamp: 1702040220734 -- kind: conda - name: aws-c-cal - version: 0.6.9 - build: h5d48c4d_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.6.9-h5d48c4d_2.conda - sha256: ec56734a24eee51e2f89bec3d686dd2c4dbb09d0305248b1d14e4c748065dc23 - md5: 9e51dfd5da37c1817d2a850188861987 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - - openssl >=3.2.0,<4.0a0 - license: Apache-2.0 - license_family: Apache - size: 55554 - timestamp: 1701212359409 -- kind: conda - name: aws-c-cal - version: 0.6.9 - build: h6a88f34_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-cal-0.6.9-h6a88f34_2.conda - sha256: 790c4ec12dfa2ab73a469abf9d7ed137bc4dea520067dbe89c0bb70fbdc7309c - md5: 1983efb12b3f103966e9b3b57bc9b06f - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - - openssl >=3.2.0,<4.0a0 - license: Apache-2.0 - license_family: Apache - size: 48372 - timestamp: 1701212451264 -- kind: conda - name: aws-c-cal - version: 0.6.9 - build: hb1772db_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.6.9-hb1772db_2.conda - sha256: 7059960c1e765461227da57112fa3aabcef2292c83499d0440da46ec938ba017 - md5: 412ec63d1ac917e45f3206dd29dcc7e8 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - license: Apache-2.0 - license_family: Apache - size: 39662 - timestamp: 1701212885323 -- kind: conda - name: aws-c-common - version: 0.9.10 - build: h31becfc_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-common-0.9.10-h31becfc_0.conda - sha256: 9f79f82d7d942b25d42d72676b5a504a9567d624b8cf7ec45102f293358fa4b9 - md5: bf24e70a2b2c2bac4d0e35088a487259 - depends: - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 232115 - timestamp: 1701169732571 -- kind: conda - name: aws-c-common - version: 0.9.10 - build: h93a5062_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.9.10-h93a5062_0.conda - sha256: 3269c3773d02262132cff14819bb606360c2ca44cdf9373e1a67f118c7a5232b - md5: 7b7bd1f14689ddec8131a0c4111790ca - license: Apache-2.0 - license_family: Apache - size: 204196 - timestamp: 1701169900533 -- kind: conda - name: aws-c-common - version: 0.9.10 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.9.10-hd590300_0.conda - sha256: dba8a20acedc6bc3574e4068c196969881462ad831aae267d25fbc9409785a6b - md5: 93729f7a54b25cb135ac2b67ea3a7603 - depends: - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 225475 - timestamp: 1701169650086 -- kind: conda - name: aws-c-compression - version: 0.2.17 - build: h7f92143_7 - build_number: 7 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.17-h7f92143_7.conda - sha256: ce508018c1109d4e5c6b65695639deaa2beea31edc39145bb810efb13ffed2c3 - md5: c55a1a0c1419fcdfce6d21c41b0f92ab - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 19185 - timestamp: 1701212362896 -- kind: conda - name: aws-c-compression - version: 0.2.17 - build: hb1772db_7 - build_number: 7 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.2.17-hb1772db_7.conda - sha256: e74330ffc64ac9bd9eb89c1e9d1004fe9b2aa689ecf8d5a94fdb17438237659b - md5: 5363bbd9ffcea69e9ef383766dcc49e0 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - license: Apache-2.0 - license_family: Apache - size: 18255 - timestamp: 1701212799172 -- kind: conda - name: aws-c-compression - version: 0.2.17 - build: hb4825c3_7 - build_number: 7 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-compression-0.2.17-hb4825c3_7.conda - sha256: 1f5e63559df3b62fdcc2bdf7790303defc23c2cc4a08eb2882dc0423df14f9d5 - md5: b9f7771957697dadf265ef5871cd72f6 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 19908 - timestamp: 1701212387878 -- kind: conda - name: aws-c-event-stream - version: 0.3.2 - build: h028cdfe_8 - build_number: 8 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-event-stream-0.3.2-h028cdfe_8.conda - sha256: 3dc8e1b14dcecedc71a4d84e21d89587e18098bd0543450d9f8ecac5cddee727 - md5: d0c9f0409784ec5a3c475f28a0c7787a - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 55364 - timestamp: 1701263269510 -- kind: conda - name: aws-c-event-stream - version: 0.3.2 - build: h0bcb0bb_8 - build_number: 8 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.3.2-h0bcb0bb_8.conda - sha256: d2855cd791a95648ac773aa6561c61f9e77450f123c8aa82eea1d66e90d5bfb1 - md5: 21dafb60b5854f82b196f32e5857dec6 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 54136 - timestamp: 1701263274039 -- kind: conda - name: aws-c-event-stream - version: 0.3.2 - build: hb5e90b3_8 - build_number: 8 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.3.2-hb5e90b3_8.conda - sha256: c9495e5133feacacef792a8f3101f1e44464144c603fccd7f1b6262975983094 - md5: 43263bfb2e9a2cc4162bcf90ce9c73b9 - depends: - - __osx >=10.9 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - - libcxx >=16.0.6 - license: Apache-2.0 - license_family: Apache - size: 47429 - timestamp: 1701263443184 -- kind: conda - name: aws-c-http - version: 0.7.14 - build: h0a9a19f_3 - build_number: 3 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-http-0.7.14-h0a9a19f_3.conda - sha256: 33a06f12de64ccc604472c8a3f939b26bf73b483ba7c27da712cbd7cd4122137 - md5: 5d5cad062d363145417996813ceb5e03 - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-compression >=0.2.17,<0.2.18.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 187672 - timestamp: 1701248647459 -- kind: conda - name: aws-c-http - version: 0.7.14 - build: hd268abd_3 - build_number: 3 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.14-hd268abd_3.conda - sha256: ff7e6252a299a59b7e6494723ef3043ba31643ec2a750b8593037bc757a2c4fa - md5: 0b0f7174a0f94d2c9a02fb24f6fc0d00 - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-compression >=0.2.17,<0.2.18.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 194249 - timestamp: 1701248521692 -- kind: conda - name: aws-c-http - version: 0.7.14 - build: hd747585_3 - build_number: 3 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.7.14-hd747585_3.conda - sha256: 71dc46c49e033aa3eedb43433981334b85623f7b7ea6b65ea99d9bb0cd0a2f46 - md5: 7c2b05d673ad261a1fb5711350e645a5 - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-compression >=0.2.17,<0.2.18.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - license: Apache-2.0 - license_family: Apache - size: 150984 - timestamp: 1701248891898 -- kind: conda - name: aws-c-io - version: 0.13.36 - build: h1112932_3 - build_number: 3 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.13.36-h1112932_3.conda - sha256: 8770803baa7323891abcf892e36abce13d6f67d675ebe91ab538621f90e8319f - md5: 732c739df5de131665801871650c2399 - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - license: Apache-2.0 - license_family: Apache - size: 136832 - timestamp: 1703277731454 -- kind: conda - name: aws-c-io - version: 0.13.36 - build: hcd54cbc_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-io-0.13.36-hcd54cbc_2.conda - sha256: cfa36b413f86bf815613507ed6db779d44198a8cf7abbcd1d67a3f44aef88675 - md5: 85b6057b66ada2d0242a01529f960493 - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - - s2n >=1.4.0,<1.4.1.0a0 - license: Apache-2.0 - license_family: Apache - size: 159957 - timestamp: 1702039111938 -- kind: conda - name: aws-c-io - version: 0.13.36 - build: he0cd244_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.36-he0cd244_2.conda - sha256: 7426f7444cd43cd7a649670c7330c163b40f40aa832e82be873d9de91e49b05e - md5: c930336aa72995f1b5459b51df3ba841 - depends: - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - - s2n >=1.4.0,<1.4.1.0a0 - license: Apache-2.0 - license_family: Apache - size: 156952 - timestamp: 1702039096578 -- kind: conda - name: aws-c-mqtt - version: 0.9.10 - build: h35285c7_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.9.10-h35285c7_2.conda - sha256: 246276b22393302b4e9acb934ec40bb78d3be74e7bd2c110272b46c5370a60ee - md5: 0cca0a3d7dc82f219ac46635478952f6 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 164618 - timestamp: 1701264087679 -- kind: conda - name: aws-c-mqtt - version: 0.9.10 - build: h99ceed4_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.9.10-h99ceed4_2.conda - sha256: 537ea079e4d44606134f64220d4676afe16487470725d8075778017ae3d8e9eb - md5: e65083cbeba6dd468c960107b08d89d3 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - license: Apache-2.0 - license_family: Apache - size: 118280 - timestamp: 1701264068201 -- kind: conda - name: aws-c-mqtt - version: 0.9.10 - build: hd720f31_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-mqtt-0.9.10-hd720f31_2.conda - sha256: 60efe4e049c20364d967afa50ce2213e96b96f7892c37dd7b0cca9dbc8caf812 - md5: b8a3e756c867120f24ca8308ce9c4bd0 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 146612 - timestamp: 1701263736177 -- kind: conda - name: aws-c-s3 - version: 0.4.4 - build: h0448019_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.4.4-h0448019_0.conda - sha256: 04142edf1a574e137a9e30a4f4e9b9448e219b6f4216a782ceaed933f27852a6 - md5: f27f792aa83c7be3ee96d09a637a6474 - depends: - - aws-c-auth >=0.7.8,<0.7.9.0a0 - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - - libgcc-ng >=12 - - openssl >=3.2.0,<4.0a0 - license: Apache-2.0 - license_family: Apache - size: 103004 - timestamp: 1702065571082 -- kind: conda - name: aws-c-s3 - version: 0.4.4 - build: h937fcef_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-s3-0.4.4-h937fcef_0.conda - sha256: 13aa37db302921fdd2c2c710565d0c51285771f13c09c4f8c57f4404ca80ccd8 - md5: 709fc2da7cec72eb3d3ccad1785dd73d - depends: - - aws-c-auth >=0.7.8,<0.7.9.0a0 - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - - libgcc-ng >=12 - - openssl >=3.2.0,<4.0a0 - license: Apache-2.0 - license_family: Apache - size: 107672 - timestamp: 1702065600078 -- kind: conda - name: aws-c-s3 - version: 0.4.4 - build: hc25d294_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.4.4-hc25d294_0.conda - sha256: 41d07738151cddec125e614c734c4c1c2c826044bf4d051ee6dcf19a2b682ef3 - md5: 9043dd3856a16bd99ba30ab54c3a6f0d - depends: - - aws-c-auth >=0.7.8,<0.7.9.0a0 - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - license: Apache-2.0 - license_family: Apache - size: 88540 - timestamp: 1702065765958 -- kind: conda - name: aws-c-sdkutils - version: 0.1.13 - build: h7f92143_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.13-h7f92143_0.conda - sha256: 8696e7023fde7c4588db8aedd08ffc0b4041c8449bd9edd50f237534cbcfac93 - md5: a4a83424ad4eab023c6e5b4adf264006 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 53339 - timestamp: 1701999463183 -- kind: conda - name: aws-c-sdkutils - version: 0.1.13 - build: hb1772db_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.1.13-hb1772db_0.conda - sha256: d9a89a98fea5d371cf0370c3f43479450932de070e960961d834624d00ead950 - md5: 90291cf2e5e350b154f3fe1de4390af8 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - license: Apache-2.0 - license_family: Apache - size: 47384 - timestamp: 1701999707452 -- kind: conda - name: aws-c-sdkutils - version: 0.1.13 - build: hb4825c3_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-sdkutils-0.1.13-hb4825c3_0.conda - sha256: 4ea06792464b0971ceca48f5cdc16d87a76080fcd1e056d7ee2d873fb3feb84e - md5: 41d238e1fae2eccd206d977be845649b - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 55071 - timestamp: 1701999496951 -- kind: conda - name: aws-checksums - version: 0.1.17 - build: h7f92143_6 - build_number: 6 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.17-h7f92143_6.conda - sha256: ac2082211e7d5fd3036f9abd7e398ef67d5327efb3808f17a30fcab59acacbfb - md5: 46bd4e9c2fd10de83bae22f0bb71139b - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 50162 - timestamp: 1701246709430 -- kind: conda - name: aws-checksums - version: 0.1.17 - build: hb1772db_6 - build_number: 6 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.1.17-hb1772db_6.conda - sha256: 9c72adde6dd106aa0ce0bc21252a9a5c9645c9efb93b5f9c08a914e45a3ad78c - md5: da58c3c6dcf40cfa69a0a74a7acf355c - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - license: Apache-2.0 - license_family: Apache - size: 49237 - timestamp: 1701247014330 -- kind: conda - name: aws-checksums - version: 0.1.17 - build: hb4825c3_6 - build_number: 6 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-checksums-0.1.17-hb4825c3_6.conda - sha256: 6ae4b9b8009f6e12e2c7f4ddb11097692fc543f03a2257158e9eece976d65833 - md5: 87890bbef540f39f9bf3e1fac630f877 - depends: - - aws-c-common >=0.9.10,<0.9.11.0a0 - - libgcc-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 50009 - timestamp: 1701246717008 -- kind: conda - name: awscli - version: 2.15.36 - build: py311h267d04e_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/awscli-2.15.36-py311h267d04e_0.conda - sha256: 80930d6df2a65e45c3dd9c65babdd7bca4b2aa1b07b59a389b1c2d8739bd1b6a - md5: 036cbedcb1e5cd60821bd509b5fe2833 - depends: - - awscrt >=0.19.18,<=0.19.19 - - colorama >=0.2.5,<0.4.7 - - cryptography >=3.3.2,<=40.0.2 - - distro >=1.5.0,<1.9.0 - - docutils >=0.10,<0.20 - - jmespath >=0.7.1,<1.1.0 - - prompt_toolkit >=3.0.24,<3.0.39 - - pyopenssl <23.2 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python-dateutil >=2.1,<=2.8.2 - - python_abi 3.11.* *_cp311 - - ruamel.yaml >=0.15.0,<=0.17.21 - - ruamel.yaml.clib >=0.2.0,<=0.2.7 - - urllib3 >=1.25.4,<1.27 - license: Apache-2.0 - purls: - - pkg:pypi/awscli - size: 12201620 - timestamp: 1712357008687 -- kind: conda - name: awscli - version: 2.15.36 - build: py311h38be061_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscli-2.15.36-py311h38be061_0.conda - sha256: c08fc829eaa27492641a2986b223908dae5754f5bdfad6044669eaddca4dda46 - md5: 35fadefc4c313331f16a59d1a8e746ef - depends: - - awscrt >=0.19.18,<=0.19.19 - - colorama >=0.2.5,<0.4.7 - - cryptography >=3.3.2,<=40.0.2 - - distro >=1.5.0,<1.9.0 - - docutils >=0.10,<0.20 - - jmespath >=0.7.1,<1.1.0 - - prompt_toolkit >=3.0.24,<3.0.39 - - pyopenssl <23.2 - - python >=3.11,<3.12.0a0 - - python-dateutil >=2.1,<=2.8.2 - - python_abi 3.11.* *_cp311 - - ruamel.yaml >=0.15.0,<=0.17.21 - - ruamel.yaml.clib >=0.2.0,<=0.2.7 - - urllib3 >=1.25.4,<1.27 - license: Apache-2.0 - purls: - - pkg:pypi/awscli - size: 12174194 - timestamp: 1712356748886 -- kind: conda - name: awscli - version: 2.15.36 - build: py311hec3470c_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/awscli-2.15.36-py311hec3470c_0.conda - sha256: bbe9108cf35045bd2f06753d1d83a981c8a5e294f6db8612a73e48765a0d7f45 - md5: 1216ef2825d0c6e54207855957891e31 - depends: - - awscrt >=0.19.18,<=0.19.19 - - colorama >=0.2.5,<0.4.7 - - cryptography >=3.3.2,<=40.0.2 - - distro >=1.5.0,<1.9.0 - - docutils >=0.10,<0.20 - - jmespath >=0.7.1,<1.1.0 - - prompt_toolkit >=3.0.24,<3.0.39 - - pyopenssl <23.2 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python-dateutil >=2.1,<=2.8.2 - - python_abi 3.11.* *_cp311 - - ruamel.yaml >=0.15.0,<=0.17.21 - - ruamel.yaml.clib >=0.2.0,<=0.2.7 - - urllib3 >=1.25.4,<1.27 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/awscli - size: 12174452 - timestamp: 1712356771034 -- kind: conda - name: awscrt - version: 0.19.19 - build: py311h39eef5c_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/awscrt-0.19.19-py311h39eef5c_2.conda - sha256: e23d13d54ded2740d398fadd9beb9ab78ef84fdc5a56480320bec3ba2ae9cd78 - md5: 21a76448e38a79b5163106aeab0110bc - depends: - - aws-c-auth >=0.7.8,<0.7.9.0a0 - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-event-stream >=0.3.2,<0.3.3.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-c-mqtt >=0.9.10,<0.9.11.0a0 - - aws-c-s3 >=0.4.4,<0.4.5.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/awscrt - size: 183210 - timestamp: 1702083269344 -- kind: conda - name: awscrt - version: 0.19.19 - build: py311ha857846_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/awscrt-0.19.19-py311ha857846_2.conda - sha256: 7f671fd1426c9f0b2c6c0cfa6705f375cef70c1c5f6fe1624cc344b8ac0762f9 - md5: 87f6043c985cb9c0578c2a593a5ed54e - depends: - - aws-c-auth >=0.7.8,<0.7.9.0a0 - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-event-stream >=0.3.2,<0.3.3.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-c-mqtt >=0.9.10,<0.9.11.0a0 - - aws-c-s3 >=0.4.4,<0.4.5.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - s2n >=1.4.0,<1.4.1.0a0 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/awscrt - size: 199674 - timestamp: 1702083014072 -- kind: conda - name: awscrt - version: 0.19.19 - build: py311ha8d3014_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/awscrt-0.19.19-py311ha8d3014_2.conda - sha256: d44f230870c552131975bbef7c3e047ca33e9c1e4dd74a4040a20f2ecf246558 - md5: 0f45101c4f9c6e195619a2308975937a - depends: - - aws-c-auth >=0.7.8,<0.7.9.0a0 - - aws-c-cal >=0.6.9,<0.6.10.0a0 - - aws-c-common >=0.9.10,<0.9.11.0a0 - - aws-c-event-stream >=0.3.2,<0.3.3.0a0 - - aws-c-http >=0.7.14,<0.7.15.0a0 - - aws-c-io >=0.13.36,<0.13.37.0a0 - - aws-c-mqtt >=0.9.10,<0.9.11.0a0 - - aws-c-s3 >=0.4.4,<0.4.5.0a0 - - aws-checksums >=0.1.17,<0.1.18.0a0 - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - s2n >=1.4.0,<1.4.1.0a0 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/awscrt - size: 192515 - timestamp: 1702082946440 -- kind: pypi - name: boto3 - version: 1.34.84 - url: https://files.pythonhosted.org/packages/43/9b/3664bb82cb1c5d7066152103beb3ea66b1f665abea489cd113ce4b98021f/boto3-1.34.84-py3-none-any.whl - sha256: 7a02f44af32095946587d748ebeb39c3fa15b9d7275307ff612a6760ead47e04 - requires_dist: - - botocore <1.35.0, >=1.34.84 - - jmespath <2.0.0, >=0.7.1 - - s3transfer <0.11.0, >=0.10.0 - - botocore[crt] <2.0a0, >=1.21.0 ; extra == 'crt' - requires_python: '>=3.8' -- kind: pypi - name: botocore - version: 1.34.84 - url: https://files.pythonhosted.org/packages/5b/a9/5217ec54ecd89d52ab410d3747f354eb5c77293fd2ab4982605e8ea34352/botocore-1.34.84-py3-none-any.whl - sha256: da1ae0a912e69e10daee2a34dafd6c6c106450d20b8623665feceb2d96c173eb - requires_dist: - - jmespath <2.0.0, >=0.7.1 - - python-dateutil <3.0.0, >=2.1 - - urllib3 <1.27, >=1.25.4 ; python_version < '3.10' - - urllib3 !=2.2.0, <3, >=1.25.4 ; python_version >= '3.10' - - awscrt ==0.19.19 ; extra == 'crt' - requires_python: '>=3.8' -- kind: conda - name: brotli-python - version: 1.1.0 - build: py311h8715677_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/brotli-python-1.1.0-py311h8715677_1.conda - sha256: f108fced985f7aa4457564c1e8f49cc5166d2e82bfdc120657c61888cd1f3a53 - md5: 22c060f41b1407ed9f40ce6468bdc338 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - constrains: - - libbrotlicommon 1.1.0 h31becfc_1 - license: MIT - license_family: MIT - size: 355054 - timestamp: 1695990590279 -- kind: conda - name: brotli-python - version: 1.1.0 - build: py311ha891d26_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py311ha891d26_1.conda - sha256: 2d78c79ccf2c17236c52ef217a4c34b762eb7908a6903d94439f787aac1c8f4b - md5: 5e802b015e33447d1283d599d21f052b - depends: - - libcxx >=15.0.7 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - constrains: - - libbrotlicommon 1.1.0 hb547adb_1 - license: MIT - license_family: MIT - size: 343332 - timestamp: 1695991223439 -- kind: conda - name: brotli-python - version: 1.1.0 - build: py311hb755f60_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py311hb755f60_1.conda - sha256: 559093679e9fdb6061b7b80ca0f9a31fe6ffc213f1dae65bc5c82e2cd1a94107 - md5: cce9e7c3f1c307f2a5fb08a2922d6164 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - constrains: - - libbrotlicommon 1.1.0 hd590300_1 - license: MIT - license_family: MIT - size: 351340 - timestamp: 1695990160360 -- kind: conda - name: bzip2 - version: 1.0.8 - build: h31becfc_5 - build_number: 5 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h31becfc_5.conda - sha256: b9f170990625cb1eeefaca02e091dc009a64264b077166d8ed7aeb7a09e923b0 - md5: a64e35f01e0b7a2a152eca87d33b9c87 - depends: - - libgcc-ng >=12 - license: bzip2-1.0.6 - license_family: BSD - size: 189668 - timestamp: 1699280060686 -- kind: conda - name: bzip2 - version: 1.0.8 - build: h93a5062_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h93a5062_5.conda - sha256: bfa84296a638bea78a8bb29abc493ee95f2a0218775642474a840411b950fe5f - md5: 1bbc659ca658bfd49a481b5ef7a0f40f - license: bzip2-1.0.6 - license_family: BSD - size: 122325 - timestamp: 1699280294368 -- kind: conda - name: bzip2 - version: 1.0.8 - build: hd590300_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hd590300_5.conda - sha256: 242c0c324507ee172c0e0dd2045814e746bb303d1eb78870d182ceb0abc726a8 - md5: 69b8b6202a07720f448be700e300ccf4 - depends: - - libgcc-ng >=12 - license: bzip2-1.0.6 - license_family: BSD - size: 254228 - timestamp: 1699279927352 -- kind: conda - name: c-ares - version: 1.28.1 - build: h31becfc_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.28.1-h31becfc_0.conda - sha256: 0d7b310411f069975053ee5ce750fc6d8c368607164ce2a921a7a1a068dc137b - md5: a8da75795c853c5fe6d8d1947e16eea8 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 176103 - timestamp: 1711819570996 -- kind: conda - name: c-ares - version: 1.28.1 - build: h93a5062_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.28.1-h93a5062_0.conda - sha256: 2fc553d7a75e912efbdd6b82cd7916cc9cb2773e6cd873b77e02d631dd7be698 - md5: 04f776a6139f7eafc2f38668570eb7db - license: MIT - license_family: MIT - size: 150488 - timestamp: 1711819630164 -- kind: conda - name: c-ares - version: 1.28.1 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.28.1-hd590300_0.conda - sha256: cb25063f3342149c7924b21544109696197a9d774f1407567477d4f3026bf38a - md5: dcde58ff9a1f30b0037a2315d1846d1f - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 168875 - timestamp: 1711819445938 -- kind: conda - name: ca-certificates - version: 2024.2.2 - build: hbcca054_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.2.2-hbcca054_0.conda - sha256: 91d81bfecdbb142c15066df70cc952590ae8991670198f92c66b62019b251aeb - md5: 2f4327a1cbe7f022401b236e915a5fef - license: ISC - size: 155432 - timestamp: 1706843687645 -- kind: conda - name: ca-certificates - version: 2024.2.2 - build: hcefe29a_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ca-certificates-2024.2.2-hcefe29a_0.conda - sha256: 0f6b34d835e26e5fa97cca4985dc46f0aba551a3a23f07c6f13cca2542b8c642 - md5: 57c226edb90c4e973b9b7503537dd339 - license: ISC - size: 155738 - timestamp: 1706845723412 -- kind: conda - name: ca-certificates - version: 2024.2.2 - build: hf0a4a13_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.2.2-hf0a4a13_0.conda - sha256: 49bc3439816ac72d0c0e0f144b8cc870fdcc4adec2e861407ec818d8116b2204 - md5: fb416a1795f18dcc5a038bc2dc54edf9 - license: ISC - size: 155725 - timestamp: 1706844034242 -- kind: conda - name: cairo - version: 1.18.0 - build: h3faef2a_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.0-h3faef2a_0.conda - sha256: 142e2639a5bc0e99c44d76f4cc8dce9c6a2d87330c4beeabb128832cd871a86e - md5: f907bb958910dc404647326ca80c263e - depends: - - fontconfig >=2.14.2,<3.0a0 - - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=73.2,<74.0a0 - - libgcc-ng >=12 - - libglib >=2.78.0,<3.0a0 - - libpng >=1.6.39,<1.7.0a0 - - libstdcxx-ng >=12 - - libxcb >=1.15,<1.16.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - pixman >=0.42.2,<1.0a0 - - xorg-libice >=1.1.1,<2.0a0 - - xorg-libsm >=1.2.4,<2.0a0 - - xorg-libx11 >=1.8.6,<2.0a0 - - xorg-libxext >=1.3.4,<2.0a0 - - xorg-libxrender >=0.9.11,<0.10.0a0 - - zlib - license: LGPL-2.1-only or MPL-1.1 - size: 982351 - timestamp: 1697028423052 -- kind: conda - name: cairo - version: 1.18.0 - build: ha13f110_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/cairo-1.18.0-ha13f110_0.conda - sha256: 79b6323661b535d90aaec0eac0e91ccda88cc5917d9e597a03d7de183bc22f26 - md5: 425111f8cc6945c5d1307357dd819b9b - depends: - - fontconfig >=2.14.2,<3.0a0 - - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=73.2,<74.0a0 - - libgcc-ng >=12 - - libglib >=2.78.0,<3.0a0 - - libpng >=1.6.39,<1.7.0a0 - - libstdcxx-ng >=12 - - libxcb >=1.15,<1.16.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - pixman >=0.42.2,<1.0a0 - - xorg-libice >=1.1.1,<2.0a0 - - xorg-libsm >=1.2.4,<2.0a0 - - xorg-libx11 >=1.8.6,<2.0a0 - - xorg-libxext >=1.3.4,<2.0a0 - - xorg-libxrender >=0.9.11,<0.10.0a0 - - zlib - license: LGPL-2.1-only or MPL-1.1 - size: 983779 - timestamp: 1697028424329 -- kind: pypi - name: certifi - version: 2024.2.2 - url: https://files.pythonhosted.org/packages/ba/06/a07f096c664aeb9f01624f858c3add0a4e913d6c96257acb4fce61e7de14/certifi-2024.2.2-py3-none-any.whl - sha256: dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1 - requires_python: '>=3.6' -- kind: conda - name: cffi - version: 1.16.0 - build: py311h4a08483_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.16.0-py311h4a08483_0.conda - sha256: 9430416328fe2a28e206e703de771817064c8613a79a6a21fe7107f6a783104c - md5: cbdde0484a47b40e6ce2a4e5aaeb48d7 - depends: - - libffi >=3.4,<4.0a0 - - pycparser - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 292511 - timestamp: 1696002194472 -- kind: conda - name: cffi - version: 1.16.0 - build: py311h7963103_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/cffi-1.16.0-py311h7963103_0.conda - sha256: e5ed24fd673ac9b9576e301b3e0b5d9625a8149e780a5d7b319bf93c33a2c828 - md5: 724e9c95346e0545543124bd3237ed7a - depends: - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - pycparser - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 318926 - timestamp: 1696003134298 -- kind: conda - name: cffi - version: 1.16.0 - build: py311hb3a22ac_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.16.0-py311hb3a22ac_0.conda - sha256: b71c94528ca0c35133da4b7ef69b51a0b55eeee570376057f3d2ad60c3ab1444 - md5: b3469563ac5e808b0cd92810d0697043 - depends: - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - pycparser - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 300207 - timestamp: 1696001873452 -- kind: conda - name: cfgv - version: 3.3.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2 - sha256: fbc03537a27ef756162c49b1d0608bf7ab12fa5e38ceb8563d6f4859e835ac5c - md5: ebb5f5f7dc4f1a3780ef7ea7738db08c - depends: - - python >=3.6.1 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cfgv - size: 10788 - timestamp: 1629909423398 -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 - requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/e4/a6/7ee57823d46331ddc37dd00749c95b0edec2c79b15fc0d6e6efb532e89ac/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - sha256: f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f - requires_python: '>=3.7.0' -- kind: pypi - name: charset-normalizer - version: 3.3.2 - url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl - sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e - requires_python: '>=3.7.0' -- kind: pypi - name: click - version: 8.1.7 - url: https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl - sha256: ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 - requires_dist: - - colorama ; platform_system == 'Windows' - - importlib-metadata ; python_version < '3.8' - requires_python: '>=3.7' -- kind: conda - name: colorama - version: 0.4.6 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_0.tar.bz2 - sha256: 2c1b2e9755ce3102bca8d69e8f26e4f087ece73f50418186aee7c74bef8e1698 - md5: 3faab06a954c2a04039983f2c4a50d99 - depends: - - python >=3.7 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/colorama - size: 25170 - timestamp: 1666700778190 -- kind: pypi - name: colorlog - version: 6.8.2 - url: https://files.pythonhosted.org/packages/f3/18/3e867ab37a24fdf073c1617b9c7830e06ec270b1ea4694a624038fc40a03/colorlog-6.8.2-py3-none-any.whl - sha256: 4dcbb62368e2800cb3c5abd348da7e53f6c362dda502ec27c560b2e58a66bd33 - requires_dist: - - colorama ; sys_platform == 'win32' - - black ; extra == 'development' - - flake8 ; extra == 'development' - - mypy ; extra == 'development' - - pytest ; extra == 'development' - - types-colorama ; extra == 'development' - requires_python: '>=3.6' -- kind: conda - name: cryptography - version: 40.0.2 - build: py311h507f6e9_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-40.0.2-py311h507f6e9_0.conda - sha256: 2c10a11166f3199795efb6ceceb4dd4557c38f40d568df8af2b829e4597dc360 - md5: 09ebc937e6441f174bf76ea8f3b789ce - depends: - - cffi >=1.12 - - openssl >=3.1.0,<4.0a0 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT - license_family: BSD - size: 1217158 - timestamp: 1681509482280 -- kind: conda - name: cryptography - version: 40.0.2 - build: py311h7774351_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-40.0.2-py311h7774351_0.conda - sha256: d700f7d710537e147fab6f29015b4dee405775ee9daf06ddb81eaf7cf1c68dcc - md5: 39cc183b67153dbdd840981276c301d0 - depends: - - cffi >=1.12 - - libgcc-ng >=12 - - openssl >=3.1.0,<4.0a0 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT - license_family: BSD - size: 1536453 - timestamp: 1681509020434 -- kind: conda - name: cryptography - version: 40.0.2 - build: py311h9b4c7bb_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/cryptography-40.0.2-py311h9b4c7bb_0.conda - sha256: e0f62e90e664ce33054c7839ee10a975e0a80010c2691e99679319f60decca9f - md5: 4df4df92db0b9168c11b72460baec870 - depends: - - cffi >=1.12 - - libgcc-ng >=12 - - openssl >=3.1.0,<4.0a0 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT - license_family: BSD - size: 1580501 - timestamp: 1681508893845 -- kind: conda - name: curl - version: 8.7.1 - build: h2d989ff_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/curl-8.7.1-h2d989ff_0.conda - sha256: 7b780958e4c42811f926e6182484ea20b5ecb37e7722dad1a229d2e102607e8c - md5: 480f81b812f8ba1f3ce1a47ec08c0072 - depends: - - krb5 >=1.21.2,<1.22.0a0 - - libcurl 8.7.1 h2d989ff_0 - - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: curl - license_family: MIT - size: 150581 - timestamp: 1711548609202 -- kind: conda - name: curl - version: 8.7.1 - build: h4e8248e_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/curl-8.7.1-h4e8248e_0.conda - sha256: ebfd9f53e8e4fa9bdece1a314dbdfebdd04950c9cd6d901d4e4c8e3dee7228e8 - md5: ae0c1ba268a20a908c13fc518c775c78 - depends: - - krb5 >=1.21.2,<1.22.0a0 - - libcurl 8.7.1 h4e8248e_0 - - libgcc-ng >=12 - - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: curl - license_family: MIT - size: 168467 - timestamp: 1711548148931 -- kind: conda - name: curl - version: 8.7.1 - build: hca28451_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/curl-8.7.1-hca28451_0.conda - sha256: 30935854620a6d48a3b5f1b940aefb19aeb37cef02bf58cd38288bbf620fc74d - md5: d2dd5466be2ce818f8097847341da63d - depends: - - krb5 >=1.21.2,<1.22.0a0 - - libcurl 8.7.1 hca28451_0 - - libgcc-ng >=12 - - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: curl - license_family: MIT - size: 164864 - timestamp: 1711548139831 -- kind: pypi - name: defusedxml - version: 0.7.1 - url: https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl - sha256: a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61 - requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*' -- kind: conda - name: distlib - version: 0.3.8 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.8-pyhd8ed1ab_0.conda - sha256: 3ff11acdd5cc2f80227682966916e878e45ced94f59c402efb94911a5774e84e - md5: db16c66b759a64dc5183d69cc3745a52 - depends: - - python 2.7|>=3.6 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/distlib - size: 274915 - timestamp: 1702383349284 -- kind: conda - name: distro - version: 1.8.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/distro-1.8.0-pyhd8ed1ab_0.conda - sha256: 0d01c4da6d4f0a935599210f82ac0630fa9aeb4fc37cbbc78043a932a39ec4f3 - md5: 67999c5465064480fa8016d00ac768f6 - depends: - - python >=3.6 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/distro - size: 40854 - timestamp: 1675116355989 -- kind: pypi - name: django - version: 5.0.4 - url: https://files.pythonhosted.org/packages/d3/31/32ce7eb77accc1678054fe951228766b47f9ec7d68d96d1caaa2611cbafe/Django-5.0.4-py3-none-any.whl - sha256: 916423499d75d62da7aa038d19aef23d23498d8df229775eb0a6309ee1013775 - requires_dist: - - asgiref <4, >=3.7.0 - - sqlparse >=0.3.1 - - tzdata ; sys_platform == 'win32' - - argon2-cffi >=19.1.0 ; extra == 'argon2' - - bcrypt ; extra == 'bcrypt' - requires_python: '>=3.10' -- kind: pypi - name: django-allauth - version: 0.61.1 - url: https://files.pythonhosted.org/packages/72/70/77c010fb24d7bebb6042354543f20f75cc7934944165d1a90091459e3d0b/django-allauth-0.61.1.tar.gz - sha256: 5b4ae515ea74f54f0041210692eee10c309ad15ddbbd03d3620693c75e3f7945 - requires_dist: - - django >=3.2 - - python3-openid >=3.0.8 - - requests-oauthlib >=0.3.0 - - requests >=2.0.0 - - pyjwt[crypto] >=1.7 - - qrcode >=7.0.0 ; extra == 'mfa' - - python3-saml <2.0.0, >=1.15.0 ; extra == 'saml' - requires_python: '>=3.7' -- kind: pypi - name: django-cors-headers - version: 4.3.1 - url: https://files.pythonhosted.org/packages/fe/6a/3428ab5d1ec270e845f4ef064a7cefbf1339b4454788d77c00d36caa828c/django_cors_headers-4.3.1-py3-none-any.whl - sha256: 0b1fd19297e37417fc9f835d39e45c8c642938ddba1acce0c1753d3edef04f36 - requires_dist: - - asgiref >=3.6 - - django >=3.2 - requires_python: '>=3.8' -- kind: pypi - name: django-environ - version: 0.11.2 - url: https://files.pythonhosted.org/packages/c4/f1/468b49cccba3b42dda571063a14c668bb0b53a1d5712426d18e36663bd53/django_environ-0.11.2-py2.py3-none-any.whl - sha256: 0ff95ab4344bfeff693836aa978e6840abef2e2f1145adff7735892711590c05 - requires_dist: - - coverage[toml] >=5.0a4 ; extra == 'develop' - - pytest >=4.6.11 ; extra == 'develop' - - furo ==2021.8.*, >=2021.8.17b43 ; extra == 'develop' - - sphinx >=3.5.0 ; extra == 'develop' - - sphinx-notfound-page ; extra == 'develop' - - furo ==2021.8.*, >=2021.8.17b43 ; extra == 'docs' - - sphinx >=3.5.0 ; extra == 'docs' - - sphinx-notfound-page ; extra == 'docs' - - coverage[toml] >=5.0a4 ; extra == 'testing' - - pytest >=4.6.11 ; extra == 'testing' - requires_python: '>=3.6,<4' -- kind: pypi - name: django-ninja - version: 1.1.0 - url: https://files.pythonhosted.org/packages/4d/5d/e52a5a31c178418e626101b934ce30598dc0977483d8189e6d16af8aefdd/django_ninja-1.1.0-py3-none-any.whl - sha256: 6330c3497061d9fd1f43c1200f85c13aab7687110e2899f8304e5aa476c10b44 - requires_dist: - - django >=3.1 - - pydantic >=2.0, <3.0.0 - - pre-commit ; extra == 'dev' - - mkdocs ; extra == 'doc' - - mkdocs-material ; extra == 'doc' - - markdown-include ; extra == 'doc' - - mkdocstrings ; extra == 'doc' - - pytest ; extra == 'test' - - pytest-cov ; extra == 'test' - - pytest-django ; extra == 'test' - - pytest-asyncio ; extra == 'test' - - psycopg2-binary ; extra == 'test' - - mypy ==1.7.1 ; extra == 'test' - - ruff ==0.1.7 ; extra == 'test' - - django-stubs ; extra == 'test' - requires_python: '>=3.7' -- kind: conda - name: docutils - version: '0.19' - build: py311h267d04e_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/docutils-0.19-py311h267d04e_1.tar.bz2 - sha256: e6e04b96cbfc40303d08e63f2c0a3a2c9c47704360fb77fc1385121249294387 - md5: 0db0a38a4d71859f2629b0811c613210 - depends: - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: LicenseRef-Public-Domain-Dedictation and BSD-2-Clause and LicenseRef-PSF-2.1.1 and GPL-3.0-or-later - purls: - - pkg:pypi/docutils - size: 975156 - timestamp: 1666755185967 -- kind: conda - name: docutils - version: '0.19' - build: py311h38be061_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/docutils-0.19-py311h38be061_1.tar.bz2 - sha256: ec7760e5a1d065b97ac32d12f7c70f19937040d8bb52a9f16573b65c6832c67a - md5: 599159b0740e9b82e7eef0e8471be3c2 - depends: - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: LicenseRef-Public-Domain-Dedictation and BSD-2-Clause and LicenseRef-PSF-2.1.1 and GPL-3.0-or-later - purls: - - pkg:pypi/docutils - size: 977628 - timestamp: 1666754970660 -- kind: conda - name: docutils - version: '0.19' - build: py311hfecb2dc_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/docutils-0.19-py311hfecb2dc_1.tar.bz2 - sha256: 51828a13faa672540b30134e5f370af757ed28fa094be4a9be4d2578bc2db36b - md5: b89a1dad2979b8c4593625b291aeb867 - depends: - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: LicenseRef-Public-Domain-Dedictation and BSD-2-Clause and LicenseRef-PSF-2.1.1 and GPL-3.0-or-later - purls: - - pkg:pypi/docutils - size: 965017 - timestamp: 1666755602176 -- kind: conda - name: expat - version: 2.6.2 - build: h2f0025b_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.6.2-h2f0025b_0.conda - sha256: a7a998faf6b9ed71d8c5c67f996e7faa52a7b9b02ed2d2f2ab6cfa1db8e5aca4 - md5: 6d31100ba1e12773b4f1ef0693fb0169 - depends: - - libexpat 2.6.2 h2f0025b_0 - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 128302 - timestamp: 1710362329008 -- kind: conda - name: expat - version: 2.6.2 - build: h59595ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.2-h59595ed_0.conda - sha256: 89916c536ae5b85bb8bf0cfa27d751e274ea0911f04e4a928744735c14ef5155 - md5: 53fb86322bdb89496d7579fe3f02fd61 - depends: - - libexpat 2.6.2 h59595ed_0 - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 137627 - timestamp: 1710362144873 -- kind: conda - name: filelock - version: 3.13.3 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.13.3-pyhd8ed1ab_0.conda - sha256: 3bb2b4b8b97160ee7d2ed40b9dbc78555932274e82ef314c8a400a1d17aa4626 - md5: ff15f46b0d34308f4d40c1c51df07592 - depends: - - python >=3.7 - license: Unlicense - purls: - - pkg:pypi/filelock - size: 15611 - timestamp: 1711394721380 -- kind: conda - name: font-ttf-dejavu-sans-mono - version: '2.37' - build: hab24e00_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b - md5: 0c96522c6bdaed4b1566d11387caaf45 - license: BSD-3-Clause - license_family: BSD - size: 397370 - timestamp: 1566932522327 -- kind: conda - name: font-ttf-inconsolata - version: '3.000' - build: h77eed37_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c - md5: 34893075a5c9e55cdafac56607368fc6 - license: OFL-1.1 - license_family: Other - size: 96530 - timestamp: 1620479909603 -- kind: conda - name: font-ttf-source-code-pro - version: '2.038' - build: h77eed37_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 - md5: 4d59c254e01d9cde7957100457e2d5fb - license: OFL-1.1 - license_family: Other - size: 700814 - timestamp: 1620479612257 -- kind: conda - name: font-ttf-ubuntu - version: '0.83' - build: h77eed37_1 - build_number: 1 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_1.conda - sha256: 056c85b482d58faab5fd4670b6c1f5df0986314cca3bc831d458b22e4ef2c792 - md5: 6185f640c43843e5ad6fd1c5372c3f80 - license: LicenseRef-Ubuntu-Font-Licence-Version-1.0 - license_family: Other - size: 1619820 - timestamp: 1700944216729 -- kind: conda - name: fontconfig - version: 2.14.2 - build: h14ed4e7_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.2-h14ed4e7_0.conda - sha256: 155d534c9037347ea7439a2c6da7c24ffec8e5dd278889b4c57274a1d91e0a83 - md5: 0f69b688f52ff6da70bccb7ff7001d1d - depends: - - expat >=2.5.0,<3.0a0 - - freetype >=2.12.1,<3.0a0 - - libgcc-ng >=12 - - libuuid >=2.32.1,<3.0a0 - - libzlib >=1.2.13,<1.3.0a0 - license: MIT - license_family: MIT - size: 272010 - timestamp: 1674828850194 -- kind: conda - name: fontconfig - version: 2.14.2 - build: ha9a116f_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/fontconfig-2.14.2-ha9a116f_0.conda - sha256: 71143b04d9beeb76264a54cb42a2953ff858a95f7383531fcb3a33ac6433e7f6 - md5: 6d2d19ea85f9d41534cd28fdefd59a25 - depends: - - expat >=2.5.0,<3.0a0 - - freetype >=2.12.1,<3.0a0 - - libgcc-ng >=12 - - libuuid >=2.32.1,<3.0a0 - - libzlib >=1.2.13,<1.3.0a0 - license: MIT - license_family: MIT - size: 280375 - timestamp: 1674830224830 -- kind: conda - name: fonts-conda-ecosystem - version: '1' - build: '0' - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 - md5: fee5683a3f04bd15cbd8318b096a27ab - depends: - - fonts-conda-forge - license: BSD-3-Clause - license_family: BSD - size: 3667 - timestamp: 1566974674465 -- kind: conda - name: fonts-conda-forge - version: '1' - build: '0' - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - sha256: 53f23a3319466053818540bcdf2091f253cbdbab1e0e9ae7b9e509dcaa2a5e38 - md5: f766549260d6815b0c52253f1fb1bb29 - depends: - - font-ttf-dejavu-sans-mono - - font-ttf-inconsolata - - font-ttf-source-code-pro - - font-ttf-ubuntu - license: BSD-3-Clause - license_family: BSD - size: 4102 - timestamp: 1566932280397 -- kind: conda - name: freetype - version: 2.12.1 - build: h267a509_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda - sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6 - md5: 9ae35c3d96db2c94ce0cef86efdfa2cb - depends: - - libgcc-ng >=12 - - libpng >=1.6.39,<1.7.0a0 - - libzlib >=1.2.13,<1.3.0a0 - license: GPL-2.0-only OR FTL - size: 634972 - timestamp: 1694615932610 -- kind: conda - name: freetype - version: 2.12.1 - build: hf0a5ef3_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/freetype-2.12.1-hf0a5ef3_2.conda - sha256: 7af93030f4407f076dce181062360efac2cd54dce863b5d7765287a6f5382537 - md5: a5ab74c5bd158c3d5532b66d8d83d907 - depends: - - libgcc-ng >=12 - - libpng >=1.6.39,<1.7.0a0 - - libzlib >=1.2.13,<1.3.0a0 - license: GPL-2.0-only OR FTL - size: 642092 - timestamp: 1694617858496 -- kind: conda - name: gettext - version: 0.21.1 - build: h0186832_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/gettext-0.21.1-h0186832_0.tar.bz2 - sha256: 093b2f96dc4b48e4952ab8946facec98b34b708a056251fc19c23c3aad30039e - md5: 63d2ff6fddfa74e5458488fd311bf635 - depends: - - libiconv >=1.17,<2.0a0 - license: LGPL-2.1-or-later AND GPL-3.0-or-later - size: 4021036 - timestamp: 1665674192347 -- kind: conda - name: gettext - version: 0.21.1 - build: h27087fc_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/gettext-0.21.1-h27087fc_0.tar.bz2 - sha256: 4fcfedc44e4c9a053f0416f9fc6ab6ed50644fca3a761126dbd00d09db1f546a - md5: 14947d8770185e5153fdd04d4673ed37 - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later AND GPL-3.0-or-later - size: 4320628 - timestamp: 1665673494324 -- kind: conda - name: gettext - version: 0.22.5 - build: h2f0025b_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gettext-0.22.5-h2f0025b_2.conda - sha256: 2a55989e078485473cd6963ec094a2e51c66693a2112079a45ebc6fafe067277 - md5: 2cb8df031115b66a564f2eb225fb4c48 - depends: - - gettext-tools 0.22.5 h2f0025b_2 - - libasprintf 0.22.5 h7b6a552_2 - - libasprintf-devel 0.22.5 h7b6a552_2 - - libgcc-ng >=12 - - libgettextpo 0.22.5 h2f0025b_2 - - libgettextpo-devel 0.22.5 h2f0025b_2 - - libstdcxx-ng >=12 - license: LGPL-2.1-or-later AND GPL-3.0-or-later - size: 475799 - timestamp: 1712512430871 -- kind: conda - name: gettext-tools - version: 0.22.5 - build: h2f0025b_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/gettext-tools-0.22.5-h2f0025b_2.conda - sha256: a2fe02e43b7e0c042e01c83873da8c6c179d2cb1af04ecaf8a8c0d47d2390168 - md5: dba96ed6fd0a19c5e52000b12221a726 - depends: - - libgcc-ng >=12 - license: GPL-3.0-or-later - license_family: GPL - size: 2993665 - timestamp: 1712512399997 -- kind: conda - name: giflib - version: 5.2.2 - build: h31becfc_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/giflib-5.2.2-h31becfc_0.conda - sha256: a79dc3bd54c4fb1f249942ee2d5b601a76ecf9614774a4cff9af49adfa458db2 - md5: 2f809afaf0ba1ea4135dce158169efac - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 82124 - timestamp: 1712692444545 -- kind: conda - name: giflib - version: 5.2.2 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - sha256: aac402a8298f0c0cc528664249170372ef6b37ac39fdc92b40601a6aed1e32ff - md5: 3bf7b9fd5a7136126e0234db4b87c8b6 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 77248 - timestamp: 1712692454246 -- kind: conda - name: git - version: 2.44.0 - build: pl5321h015987d_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/git-2.44.0-pl5321h015987d_0.conda - sha256: 61b43057c5a8f9d1d2df30f964c248104b66ae043abb92291c7b51333af8abba - md5: eb3388f18347bb1eddf3b4591fb1b158 - depends: - - curl - - gettext - - libexpat >=2.5.0,<3.0a0 - - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - pcre2 >=10.43,<10.44.0a0 - - perl 5.* - license: GPL-2.0-or-later and LGPL-2.1-or-later - size: 8024215 - timestamp: 1708780908300 -- kind: conda - name: git - version: 2.44.0 - build: pl5321h709897a_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/git-2.44.0-pl5321h709897a_0.conda - sha256: 3ca58462b1c79a288587f8bdb82aa55829586e3f1635650988ab95d845b1b68e - md5: 6817894081347566c0f097216bb36faa - depends: - - curl - - gettext - - libexpat >=2.5.0,<3.0a0 - - libgcc-ng >=12 - - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - pcre2 >=10.43,<10.44.0a0 - - perl 5.* - license: GPL-2.0-or-later and LGPL-2.1-or-later - size: 10704256 - timestamp: 1708780321622 -- kind: conda - name: git - version: 2.44.0 - build: pl5321he5f4d6e_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/git-2.44.0-pl5321he5f4d6e_0.conda - sha256: dd4ca421f46879fa96082330e7c5767cf33ab3c9267d5c8ddbdffce35aa039f4 - md5: 9effdf1971f2847be8fdc5c8ad9c9d37 - depends: - - curl - - gettext - - libexpat >=2.5.0,<3.0a0 - - libgcc-ng >=12 - - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - pcre2 >=10.43,<10.44.0a0 - - perl 5.* - license: GPL-2.0-or-later and LGPL-2.1-or-later - size: 12454974 - timestamp: 1708783508132 -- kind: conda - name: graphite2 - version: 1.3.13 - build: h2f0025b_1003 - build_number: 1003 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/graphite2-1.3.13-h2f0025b_1003.conda - sha256: c7585e1fb536120583790080f3b3875c04d5f2d64eafbc87e9aa39895e4118c0 - md5: f33009add6a08358bc12d114ceec1304 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: LGPL-2.0-or-later - license_family: LGPL - size: 99453 - timestamp: 1711634223220 -- kind: conda - name: graphite2 - version: 1.3.13 - build: h59595ed_1003 - build_number: 1003 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h59595ed_1003.conda - sha256: 0595b009f20f8f60f13a6398e7cdcbd2acea5f986633adcf85f5a2283c992add - md5: f87c7b7c2cb45f323ffbce941c78ab7c - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: LGPL-2.0-or-later - license_family: LGPL - size: 96855 - timestamp: 1711634169756 -- kind: pypi - name: h11 - version: 0.14.0 - url: https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl - sha256: e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761 - requires_dist: - - typing-extensions ; python_version < '3.8' - requires_python: '>=3.7' -- kind: conda - name: harfbuzz - version: 8.3.0 - build: h3d44ed6_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-8.3.0-h3d44ed6_0.conda - sha256: 4b55aea03b18a4084b750eee531ad978d4a3690f63019132c26c6ad26bbe3aed - md5: 5a6f6c00ef982a9bc83558d9ac8f64a0 - depends: - - cairo >=1.18.0,<2.0a0 - - freetype >=2.12.1,<3.0a0 - - graphite2 - - icu >=73.2,<74.0a0 - - libgcc-ng >=12 - - libglib >=2.78.1,<3.0a0 - - libstdcxx-ng >=12 - license: MIT - license_family: MIT - size: 1547473 - timestamp: 1699925311766 -- kind: conda - name: harfbuzz - version: 8.3.0 - build: hebeb849_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/harfbuzz-8.3.0-hebeb849_0.conda - sha256: f6f39bb13d0070565e8975ad5f23005ce894655422a1c50089e6d754c69be084 - md5: 1c06a74f88f085c2af16809fe4c31b73 - depends: - - cairo >=1.18.0,<2.0a0 - - freetype >=2.12.1,<3.0a0 - - graphite2 - - icu >=73.2,<74.0a0 - - libgcc-ng >=12 - - libglib >=2.78.1,<3.0a0 - - libstdcxx-ng >=12 - license: MIT - license_family: MIT - size: 1583124 - timestamp: 1699927567410 -- kind: conda - name: icu - version: '73.2' - build: h59595ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/icu-73.2-h59595ed_0.conda - sha256: e12fd90ef6601da2875ebc432452590bc82a893041473bc1c13ef29001a73ea8 - md5: cc47e1facc155f91abd89b11e48e72ff - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: MIT - license_family: MIT - size: 12089150 - timestamp: 1692900650789 -- kind: conda - name: icu - version: '73.2' - build: h787c7f5_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-73.2-h787c7f5_0.conda - sha256: aedb9c911ede5596c87e1abd763ed940fab680d71fdb953bce8e4094119d47b3 - md5: 9d3c29d71f28452a2e843aff8cbe09d2 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: MIT - license_family: MIT - size: 12237094 - timestamp: 1692900632394 -- kind: conda - name: icu - version: '73.2' - build: hc8870d7_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/icu-73.2-hc8870d7_0.conda - sha256: ff9cd0c6cd1349954c801fb443c94192b637e1b414514539f3c49c56a39f51b1 - md5: 8521bd47c0e11c5902535bb1a17c565f - license: MIT - license_family: MIT - size: 11997841 - timestamp: 1692902104771 -- kind: conda - name: identify - version: 2.5.35 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/identify-2.5.35-pyhd8ed1ab_0.conda - sha256: 971683b13d1b820157bef9993c63dd8b0611d2d60fc4b522da163aee2e70e518 - md5: 9472bfd206a2b7bb8143835e37667054 - depends: - - python >=3.6 - - ukkonen - license: MIT - license_family: MIT - size: 78364 - timestamp: 1708283690891 -- kind: pypi - name: idna - version: '3.7' - url: https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl - sha256: 82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 - requires_python: '>=3.5' -- kind: conda - name: jmespath - version: 1.0.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_0.tar.bz2 - sha256: 95ac5f9ee95fd4e34dc051746fc86016d3d4f6abefed113e2ede049d59ec2991 - md5: 2cfa3e1cf3fb51bb9b17acc5b5e9ea11 - depends: - - python >=3.7 - license: MIT - license_family: MIT - purls: - - pkg:pypi/jmespath - size: 21003 - timestamp: 1655568358125 -- kind: conda - name: keyutils - version: 1.6.1 - build: h166bdaf_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb - md5: 30186d27e2c9fa62b45fb1476b7200e3 - depends: - - libgcc-ng >=10.3.0 - license: LGPL-2.1-or-later - size: 117831 - timestamp: 1646151697040 -- kind: conda - name: keyutils - version: 1.6.1 - build: h4e544f5_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/keyutils-1.6.1-h4e544f5_0.tar.bz2 - sha256: 6d4233d97a9b38acbb26e1268bcf8c10a8e79c2aed7e5a385ec3769967e3e65b - md5: 1f24853e59c68892452ef94ddd8afd4b - depends: - - libgcc-ng >=10.3.0 - license: LGPL-2.1-or-later - size: 112327 - timestamp: 1646166857935 -- kind: conda - name: krb5 - version: 1.21.2 - build: h659d440_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.2-h659d440_0.conda - sha256: 259bfaae731989b252b7d2228c1330ef91b641c9d68ff87dae02cbae682cb3e4 - md5: cd95826dbd331ed1be26bdf401432844 - depends: - - keyutils >=1.6.1,<2.0a0 - - libedit >=3.1.20191231,<3.2.0a0 - - libedit >=3.1.20191231,<4.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - openssl >=3.1.2,<4.0a0 - license: MIT - license_family: MIT - size: 1371181 - timestamp: 1692097755782 -- kind: conda - name: krb5 - version: 1.21.2 - build: h92f50d5_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.2-h92f50d5_0.conda - sha256: 70bdb9b4589ec7c7d440e485ae22b5a352335ffeb91a771d4c162996c3070875 - md5: 92f1cff174a538e0722bf2efb16fc0b2 - depends: - - libcxx >=15.0.7 - - libedit >=3.1.20191231,<3.2.0a0 - - libedit >=3.1.20191231,<4.0a0 - - openssl >=3.1.2,<4.0a0 - license: MIT - license_family: MIT - size: 1195575 - timestamp: 1692098070699 -- kind: conda - name: krb5 - version: 1.21.2 - build: hc419048_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/krb5-1.21.2-hc419048_0.conda - sha256: c3f24ead49fb7d7c29fae491bec3f090f63d77a46954eadbc4463f137e2b42cd - md5: 55b51af37bf6fdcfe06f140e62e8c8db - depends: - - keyutils >=1.6.1,<2.0a0 - - libedit >=3.1.20191231,<3.2.0a0 - - libedit >=3.1.20191231,<4.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - openssl >=3.1.2,<4.0a0 - license: MIT - license_family: MIT - size: 1473397 - timestamp: 1692097651347 -- kind: conda - name: lcms2 - version: '2.16' - build: h922389a_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/lcms2-2.16-h922389a_0.conda - sha256: be4847b1014d3cbbc524a53bdbf66182f86125775020563e11d914c8468dd97d - md5: ffdd8267a04c515e7ce69c727b051414 - depends: - - libgcc-ng >=12 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 - license: MIT - license_family: MIT - size: 296219 - timestamp: 1701647961116 -- kind: conda - name: lcms2 - version: '2.16' - build: hb7c19ff_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda - sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 - md5: 51bb7010fc86f70eee639b4bb7a894f5 - depends: - - libgcc-ng >=12 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.6.0,<4.7.0a0 - license: MIT - license_family: MIT - size: 245247 - timestamp: 1701647787198 -- kind: conda - name: ld_impl_linux-64 - version: '2.40' - build: h41732ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.40-h41732ed_0.conda - sha256: f6cc89d887555912d6c61b295d398cff9ec982a3417d38025c45d5dd9b9e79cd - md5: 7aca3059a1729aa76c597603f10b0dd3 - constrains: - - binutils_impl_linux-64 2.40 - license: GPL-3.0-only - license_family: GPL - size: 704696 - timestamp: 1674833944779 -- kind: conda - name: ld_impl_linux-aarch64 - version: '2.40' - build: h2d8c526_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.40-h2d8c526_0.conda - sha256: 1ba06e8645094b340b4aee23603a6abb1b0383788180e65f3de34e655c5f577c - md5: 16246d69e945d0b1969a6099e7c5d457 - constrains: - - binutils_impl_linux-aarch64 2.40 - license: GPL-3.0-only - license_family: GPL - size: 738776 - timestamp: 1674833843183 -- kind: conda - name: lerc - version: 4.0.0 - build: h27087fc_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 - sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12 - md5: 76bbff344f0134279f225174e9064c8f - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 281798 - timestamp: 1657977462600 -- kind: conda - name: lerc - version: 4.0.0 - build: h4de3ea5_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/lerc-4.0.0-h4de3ea5_0.tar.bz2 - sha256: 2d09ef9b7796d83364957e420b41c32d94e628c3f0520b61c332518a7b5cd586 - md5: 1a0ffc65e03ce81559dbcb0695ad1476 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: Apache-2.0 - license_family: Apache - size: 262096 - timestamp: 1657978241894 -- kind: conda - name: libasprintf - version: 0.22.5 - build: h7b6a552_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libasprintf-0.22.5-h7b6a552_2.conda - sha256: 8c2b54f0d9fd4331feb995f04eb9d5819de11fa8f33e5c5c392e7ff326106331 - md5: 1c027a1a3c07fe94729870c85ef44cfd - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: LGPL-2.1-or-later - size: 42533 - timestamp: 1712512336201 -- kind: conda - name: libasprintf-devel - version: 0.22.5 - build: h7b6a552_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libasprintf-devel-0.22.5-h7b6a552_2.conda - sha256: 36610080b9dd4022783a9cd47e1028df7ee4f4a541145f6f71ddc66c5a1e021b - md5: 47aeae64e19437c16e1c2afdad154cd8 - depends: - - libasprintf 0.22.5 h7b6a552_2 - - libgcc-ng >=12 - license: LGPL-2.1-or-later - size: 34395 - timestamp: 1712512362335 -- kind: conda - name: libcups - version: 2.3.3 - build: h405e4a8_4 - build_number: 4 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcups-2.3.3-h405e4a8_4.conda - sha256: f9007d5ca44741de72f9d7be03e74c911b61af062ed7a3761594675f30f5890c - md5: d42c670b0c96c1795fd859d5e0275a55 - depends: - - krb5 >=1.21.1,<1.22.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: Apache-2.0 - license_family: Apache - size: 4551247 - timestamp: 1689195336749 -- kind: conda - name: libcups - version: 2.3.3 - build: h4637d8d_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-h4637d8d_4.conda - sha256: bc67b9b21078c99c6bd8595fe7e1ed6da1f721007726e717f0449de7032798c4 - md5: d4529f4dff3057982a7617c7ac58fde3 - depends: - - krb5 >=1.21.1,<1.22.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: Apache-2.0 - license_family: Apache - size: 4519402 - timestamp: 1689195353551 -- kind: conda - name: libcurl - version: 8.7.1 - build: h2d989ff_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.7.1-h2d989ff_0.conda - sha256: 973ac9368efca712a8fd19fe68524d7d9a3087fd88ad6b7fcdf60c3d2e19a498 - md5: 34b9171710f0d9bf093d55bdc36ff355 - depends: - - krb5 >=1.21.2,<1.22.0a0 - - libnghttp2 >=1.58.0,<2.0a0 - - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: curl - license_family: MIT - size: 358080 - timestamp: 1711548548174 -- kind: conda - name: libcurl - version: 8.7.1 - build: h4e8248e_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.7.1-h4e8248e_0.conda - sha256: 2e2c716875ee48947e4e7a56823c810b5a3d98013ae44d0b55cdfd337f77d693 - md5: 4e38af63e8603414534bbebdd9885021 - depends: - - krb5 >=1.21.2,<1.22.0a0 - - libgcc-ng >=12 - - libnghttp2 >=1.58.0,<2.0a0 - - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: curl - license_family: MIT - size: 409751 - timestamp: 1711548134067 -- kind: conda - name: libcurl - version: 8.7.1 - build: hca28451_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.7.1-hca28451_0.conda - sha256: 82a75e9a5d9ee5b2f487d850ec5d4edc18a56eb9527608a95a916c40baae3843 - md5: 755c7f876815003337d2c61ff5d047e5 - depends: - - krb5 >=1.21.2,<1.22.0a0 - - libgcc-ng >=12 - - libnghttp2 >=1.58.0,<2.0a0 - - libssh2 >=1.11.0,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: curl - license_family: MIT - size: 398293 - timestamp: 1711548114077 -- kind: conda - name: libcxx - version: 16.0.6 - build: h4653b0c_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-16.0.6-h4653b0c_0.conda - sha256: 11d3fb51c14832d9e4f6d84080a375dec21ea8a3a381a1910e67ff9cedc20355 - md5: 9d7d724faf0413bf1dbc5a85935700c8 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 1160232 - timestamp: 1686896993785 -- kind: conda - name: libdeflate - version: '1.20' - build: h31becfc_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libdeflate-1.20-h31becfc_0.conda - sha256: 01efbc296d47de9861100d9a9ad2c7f682adc71a0e9b9b040a35b454d1ccd3bd - md5: 018592a3d691662f451f89d0de474a20 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 69943 - timestamp: 1711196586503 -- kind: conda - name: libdeflate - version: '1.20' - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.20-hd590300_0.conda - sha256: f8e0f25c382b1d0b87a9b03887a34dbd91485453f1ea991fef726dba57373612 - md5: 8e88f9389f1165d7c0936fe40d9a9a79 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 71500 - timestamp: 1711196523408 -- kind: conda - name: libedit - version: 3.1.20191231 - build: hc8eb9b7_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - sha256: 3912636197933ecfe4692634119e8644904b41a58f30cad9d1fc02f6ba4d9fca - md5: 30e4362988a2623e9eb34337b83e01f9 - depends: - - ncurses >=6.2,<7.0.0a0 - license: BSD-2-Clause - license_family: BSD - size: 96607 - timestamp: 1597616630749 -- kind: conda - name: libedit - version: 3.1.20191231 - build: he28a2e2_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf - md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 - depends: - - libgcc-ng >=7.5.0 - - ncurses >=6.2,<7.0.0a0 - license: BSD-2-Clause - license_family: BSD - size: 123878 - timestamp: 1597616541093 -- kind: conda - name: libedit - version: 3.1.20191231 - build: he28a2e2_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - sha256: debc31fb2f07ba2b0363f90e455873670734082822926ba4a9556431ec0bf36d - md5: 29371161d77933a54fccf1bb66b96529 - depends: - - libgcc-ng >=7.5.0 - - ncurses >=6.2,<7.0.0a0 - license: BSD-2-Clause - license_family: BSD - size: 134104 - timestamp: 1597617110769 -- kind: conda - name: libev - version: '4.33' - build: h31becfc_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libev-4.33-h31becfc_2.conda - sha256: 973af77e297f1955dd1f69c2cbdc5ab9dfc88388a5576cd152cda178af0fd006 - md5: a9a13cb143bbaa477b1ebaefbe47a302 - depends: - - libgcc-ng >=12 - license: BSD-2-Clause - license_family: BSD - size: 115123 - timestamp: 1702146237623 -- kind: conda - name: libev - version: '4.33' - build: h93a5062_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - sha256: 95cecb3902fbe0399c3a7e67a5bed1db813e5ab0e22f4023a5e0f722f2cc214f - md5: 36d33e440c31857372a72137f78bacf5 - license: BSD-2-Clause - license_family: BSD - size: 107458 - timestamp: 1702146414478 -- kind: conda - name: libev - version: '4.33' - build: hd590300_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 - md5: 172bf1cd1ff8629f2b1179945ed45055 - depends: - - libgcc-ng >=12 - license: BSD-2-Clause - license_family: BSD - size: 112766 - timestamp: 1702146165126 -- kind: conda - name: libexpat - version: 2.6.2 - build: h2f0025b_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.6.2-h2f0025b_0.conda - sha256: 07453df3232a649f39fb4d1e68cfe1c78c3457764f85225f6f3ccd1bdd9818a4 - md5: 1b9f46b804a2c3c5d7fd6a80b77c35f9 - depends: - - libgcc-ng >=12 - constrains: - - expat 2.6.2.* - license: MIT - license_family: MIT - size: 72544 - timestamp: 1710362309065 -- kind: conda - name: libexpat - version: 2.6.2 - build: h59595ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.2-h59595ed_0.conda - sha256: 331bb7c7c05025343ebd79f86ae612b9e1e74d2687b8f3179faec234f986ce19 - md5: e7ba12deb7020dd080c6c70e7b6f6a3d - depends: - - libgcc-ng >=12 - constrains: - - expat 2.6.2.* - license: MIT - license_family: MIT - size: 73730 - timestamp: 1710362120304 -- kind: conda - name: libexpat - version: 2.6.2 - build: hebf3989_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.2-hebf3989_0.conda - sha256: ba7173ac30064ea901a4c9fb5a51846dcc25512ceb565759be7d18cbf3e5415e - md5: e3cde7cfa87f82f7cb13d482d5e0ad09 - constrains: - - expat 2.6.2.* - license: MIT - license_family: MIT - size: 63655 - timestamp: 1710362424980 -- kind: conda - name: libffi - version: 3.4.2 - build: h3422bc3_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca - md5: 086914b672be056eb70fd4285b6783b6 - license: MIT - license_family: MIT - size: 39020 - timestamp: 1636488587153 -- kind: conda - name: libffi - version: 3.4.2 - build: h3557bc0_5 - build_number: 5 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.4.2-h3557bc0_5.tar.bz2 - sha256: 7e9258a102480757fe3faeb225a3ca04dffd10fecd2a958c65cdb4cdf75f2c3c - md5: dddd85f4d52121fab0a8b099c5e06501 - depends: - - libgcc-ng >=9.4.0 - license: MIT - license_family: MIT - size: 59450 - timestamp: 1636488255090 -- kind: conda - name: libffi - version: 3.4.2 - build: h7f98852_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e - md5: d645c6d2ac96843a2bfaccd2d62b3ac3 - depends: - - libgcc-ng >=9.4.0 - license: MIT - license_family: MIT - size: 58292 - timestamp: 1636488182923 -- kind: conda - name: libgcc-ng - version: 13.2.0 - build: h807b86a_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-13.2.0-h807b86a_5.conda - sha256: d32f78bfaac282cfe5205f46d558704ad737b8dbf71f9227788a5ca80facaba4 - md5: d4ff227c46917d3b4565302a2bbb276b - depends: - - _libgcc_mutex 0.1 conda_forge - - _openmp_mutex >=4.5 - constrains: - - libgomp 13.2.0 h807b86a_5 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 770506 - timestamp: 1706819192021 -- kind: conda - name: libgcc-ng - version: 13.2.0 - build: hf8544c7_5 - build_number: 5 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-13.2.0-hf8544c7_5.conda - sha256: 869e44e1cf329198f5bea56c146207ed639b24b6281187159435b9499ecb3959 - md5: dee934e640275d9e74e7bbd455f25162 - depends: - - _openmp_mutex >=4.5 - constrains: - - libgomp 13.2.0 hf8544c7_5 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 456795 - timestamp: 1706820691781 -- kind: conda - name: libgettextpo - version: 0.22.5 - build: h2f0025b_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgettextpo-0.22.5-h2f0025b_2.conda - sha256: 591e448ca1bdc4c77d694ec76178fc693c394813a68149a5d83799e45c89c4c3 - md5: 0e5887b1c0a764c098102729ed80afee - depends: - - libgcc-ng >=12 - license: GPL-3.0-or-later - license_family: GPL - size: 200431 - timestamp: 1712512353023 -- kind: conda - name: libgettextpo-devel - version: 0.22.5 - build: h2f0025b_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgettextpo-devel-0.22.5-h2f0025b_2.conda - sha256: 83c9e0ab845176a9b1738c0415a007f2b9bcc2f23e5520f9e17d8454b0f92676 - md5: 63e625fa42d34b50b8814447a17771bd - depends: - - libgcc-ng >=12 - - libgettextpo 0.22.5 h2f0025b_2 - license: GPL-3.0-or-later - license_family: GPL - size: 36999 - timestamp: 1712512372984 -- kind: conda - name: libglib - version: 2.80.0 - build: h9d8fbc1_4 - build_number: 4 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libglib-2.80.0-h9d8fbc1_4.conda - sha256: 2d6e2315a592276b9ca03aa9a6dabd5348f627ab924b68eda06cf3d4acfbf82d - md5: b4772c0eb20b89e6866b46d9ffa66242 - depends: - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - pcre2 >=10.43,<10.44.0a0 - constrains: - - glib 2.80.0 *_4 - license: LGPL-2.1-or-later - size: 2990202 - timestamp: 1712589847250 -- kind: conda - name: libglib - version: 2.80.0 - build: hf2295e7_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.80.0-hf2295e7_4.conda - sha256: 99983c2514dd99da1bab50e9a25ed16cfc1d46aca0385c3be177c8e299731b51 - md5: 0269d2b7fa89f4a37cdee5ad6161f6cc - depends: - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - libiconv >=1.17,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - pcre2 >=10.43,<10.44.0a0 - constrains: - - glib 2.80.0 *_4 - license: LGPL-2.1-or-later - size: 2900260 - timestamp: 1712589943666 -- kind: conda - name: libgomp - version: 13.2.0 - build: h807b86a_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-13.2.0-h807b86a_5.conda - sha256: 0d3d4b1b0134283ea02d58e8eb5accf3655464cf7159abf098cc694002f8d34e - md5: d211c42b9ce49aee3734fdc828731689 - depends: - - _libgcc_mutex 0.1 conda_forge - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 419751 - timestamp: 1706819107383 -- kind: conda - name: libgomp - version: 13.2.0 - build: hf8544c7_5 - build_number: 5 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-13.2.0-hf8544c7_5.conda - sha256: a98d4f242a351feb7983a28e7d6a0ca51da764c6233ea3dfc776975a3aba8a01 - md5: 379be2f115ffb73860e4e260dd2170b7 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 423091 - timestamp: 1706820564165 -- kind: conda - name: libiconv - version: '1.17' - build: h0d3ecfb_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda - sha256: bc7de5097b97bcafcf7deaaed505f7ce02f648aac8eccc0d5a47cc599a1d0304 - md5: 69bda57310071cf6d2b86caf11573d2d - license: LGPL-2.1-only - size: 676469 - timestamp: 1702682458114 -- kind: conda - name: libiconv - version: '1.17' - build: h31becfc_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.17-h31becfc_2.conda - sha256: a30e09d089cb75a0d5b8e5c354694c1317da98261185ed65aa3793e741060614 - md5: 9a8eb13f14de7d761555a98712e6df65 - depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - size: 705787 - timestamp: 1702684557134 -- kind: conda - name: libiconv - version: '1.17' - build: hd590300_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda - sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 - md5: d66573916ffcf376178462f1b61c941e - depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - size: 705775 - timestamp: 1702682170569 -- kind: conda - name: libjpeg-turbo - version: 3.0.0 - build: h31becfc_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libjpeg-turbo-3.0.0-h31becfc_1.conda - sha256: 675bc1f2a8581cd34a86c412663ec29c5f90c1d9f8d11866aa1ade5cdbdf8429 - md5: ed24e702928be089d9ba3f05618515c6 - depends: - - libgcc-ng >=12 - constrains: - - jpeg <0.0.0a - license: IJG AND BSD-3-Clause AND Zlib - size: 647126 - timestamp: 1694475003570 -- kind: conda - name: libjpeg-turbo - version: 3.0.0 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda - sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f - md5: ea25936bb4080d843790b586850f82b8 - depends: - - libgcc-ng >=12 - constrains: - - jpeg <0.0.0a - license: IJG AND BSD-3-Clause AND Zlib - size: 618575 - timestamp: 1694474974816 -- kind: conda - name: libnghttp2 - version: 1.58.0 - build: h47da74e_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.58.0-h47da74e_1.conda - sha256: 1910c5306c6aa5bcbd623c3c930c440e9c77a5a019008e1487810e3c1d3716cb - md5: 700ac6ea6d53d5510591c4344d5c989a - depends: - - c-ares >=1.23.0,<2.0a0 - - libev >=4.33,<4.34.0a0 - - libev >=4.33,<5.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.0,<4.0a0 - license: MIT - license_family: MIT - size: 631936 - timestamp: 1702130036271 -- kind: conda - name: libnghttp2 - version: 1.58.0 - build: ha4dd798_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.58.0-ha4dd798_1.conda - sha256: fc97aaaf0c6d0f508be313d86c2705b490998d382560df24be918b8e977802cd - md5: 1813e066bfcef82de579a0be8a766df4 - depends: - - __osx >=10.9 - - c-ares >=1.23.0,<2.0a0 - - libcxx >=16.0.6 - - libev >=4.33,<4.34.0a0 - - libev >=4.33,<5.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.0,<4.0a0 - license: MIT - license_family: MIT - size: 565451 - timestamp: 1702130473930 -- kind: conda - name: libnghttp2 - version: 1.58.0 - build: hb0e430d_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.58.0-hb0e430d_1.conda - sha256: ecc11e4f92f9d5830a90d42b4db55c66c4ad531e00dcf30d55171d934a568cb5 - md5: 8f724cdddffa79152de61f5564a3526b - depends: - - c-ares >=1.23.0,<2.0a0 - - libev >=4.33,<4.34.0a0 - - libev >=4.33,<5.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.0,<4.0a0 - license: MIT - license_family: MIT - size: 677508 - timestamp: 1702130071743 -- kind: conda - name: libnsl - version: 2.0.1 - build: h31becfc_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libnsl-2.0.1-h31becfc_0.conda - sha256: fd18c2b75d7411096428d36a70b36b1a17e31f7b8956b6905d145792d49e97f8 - md5: c14f32510f694e3185704d89967ec422 - depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - license_family: GPL - size: 34501 - timestamp: 1697358973269 -- kind: conda - name: libnsl - version: 2.0.1 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 - md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 - depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - license_family: GPL - size: 33408 - timestamp: 1697359010159 -- kind: conda - name: libpng - version: 1.6.43 - build: h194ca79_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libpng-1.6.43-h194ca79_0.conda - sha256: 6f408f3d6854f86e223289f0dda12562b047c7a1fdf3636c67ec39afcd141f43 - md5: 1123e504d9254dd9494267ab9aba95f0 - depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: zlib-acknowledgement - size: 294380 - timestamp: 1708782876525 -- kind: conda - name: libpng - version: 1.6.43 - build: h2797004_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.43-h2797004_0.conda - sha256: 502f6ff148ac2777cc55ae4ade01a8fc3543b4ffab25c4e0eaa15f94e90dd997 - md5: 009981dd9cfcaa4dbfa25ffaed86bcae - depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: zlib-acknowledgement - size: 288221 - timestamp: 1708780443939 -- kind: conda - name: libsqlite - version: 3.45.2 - build: h091b4b1_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.45.2-h091b4b1_0.conda - sha256: 7c234320a1a2132b9cc972aaa06bb215bb220a5b1addb0bed7a5a321c805920e - md5: 9d07427ee5bd9afd1e11ce14368a48d6 - depends: - - libzlib >=1.2.13,<1.3.0a0 - license: Unlicense - size: 825300 - timestamp: 1710255078823 -- kind: conda - name: libsqlite - version: 3.45.2 - build: h194ca79_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.45.2-h194ca79_0.conda - sha256: 0ce6de6369c04386cfc8696b1f795f425843789609ae2e04e7a1eb7deae62a8b - md5: bf4c96a21fbfc6a6ef6a7781a534a4e0 - depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: Unlicense - size: 1038462 - timestamp: 1710253998432 -- kind: conda - name: libsqlite - version: 3.45.2 - build: h2797004_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.45.2-h2797004_0.conda - sha256: 8cdbeb7902729e319510a82d7c642402981818702b58812af265ef55d1315473 - md5: 866983a220e27a80cb75e85cb30466a1 - depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: Unlicense - size: 857489 - timestamp: 1710254744982 -- kind: conda - name: libssh2 - version: 1.11.0 - build: h0841786_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.0-h0841786_0.conda - sha256: 50e47fd9c4f7bf841a11647ae7486f65220cfc988ec422a4475fe8d5a823824d - md5: 1f5a58e686b13bcfde88b93f547d23fe - depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.1.1,<4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 271133 - timestamp: 1685837707056 -- kind: conda - name: libssh2 - version: 1.11.0 - build: h492db2e_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.0-h492db2e_0.conda - sha256: 409163dd4a888b9266369f1bce57b5ca56c216e34249637c3e10eb404e356171 - md5: 45532845e121677ad328c9af9953f161 - depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.1.1,<4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 284335 - timestamp: 1685837600415 -- kind: conda - name: libssh2 - version: 1.11.0 - build: h7a5bd25_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.0-h7a5bd25_0.conda - sha256: bb57d0c53289721fff1eeb3103a1c6a988178e88d8a8f4345b0b91a35f0e0015 - md5: 029f7dc931a3b626b94823bc77830b01 - depends: - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.1.1,<4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 255610 - timestamp: 1685837894256 -- kind: conda - name: libstdcxx-ng - version: 13.2.0 - build: h7e041cc_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-13.2.0-h7e041cc_5.conda - sha256: a56c5b11f1e73a86e120e6141a42d9e935a99a2098491ac9e15347a1476ce777 - md5: f6f6600d18a4047b54f803cf708b868a - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 3834139 - timestamp: 1706819252496 -- kind: conda - name: libstdcxx-ng - version: 13.2.0 - build: h9a76618_5 - build_number: 5 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-13.2.0-h9a76618_5.conda - sha256: c209f23a8a497fc87107a68b6bbc8d2089cf15fd4015b558dfdce63544379b05 - md5: 1b79d37dce0fad96bdf3de03925f43b4 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 3752658 - timestamp: 1706820778418 -- kind: conda - name: libtiff - version: 4.6.0 - build: h1dd3fc0_3 - build_number: 3 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.6.0-h1dd3fc0_3.conda - sha256: fc3b210f9584a92793c07396cb93e72265ff3f1fa7ca629128bf0a50d5cb15e4 - md5: 66f03896ffbe1a110ffda05c7a856504 - depends: - - lerc >=4.0.0,<5.0a0 - - libdeflate >=1.20,<1.21.0a0 - - libgcc-ng >=12 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libstdcxx-ng >=12 - - libwebp-base >=1.3.2,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - xz >=5.2.6,<6.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: HPND - size: 282688 - timestamp: 1711217970425 -- kind: conda - name: libtiff - version: 4.6.0 - build: hf980d43_3 - build_number: 3 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libtiff-4.6.0-hf980d43_3.conda - sha256: 8f578c4e5acf94479b698aea284b2ebfeb32dc3ae99a60c7ef5e07c7003d98cc - md5: b6f3abf5726ae33094bee238b4eb492f - depends: - - lerc >=4.0.0,<5.0a0 - - libdeflate >=1.20,<1.21.0a0 - - libgcc-ng >=12 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libstdcxx-ng >=12 - - libwebp-base >=1.3.2,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - xz >=5.2.6,<6.0a0 - - zstd >=1.5.5,<1.6.0a0 - license: HPND - size: 316525 - timestamp: 1711218038581 -- kind: conda - name: libuuid - version: 2.38.1 - build: h0b41bf4_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 - md5: 40b61aab5c7ba9ff276c41cfffe6b80b - depends: - - libgcc-ng >=12 - license: BSD-3-Clause - license_family: BSD - size: 33601 - timestamp: 1680112270483 -- kind: conda - name: libuuid - version: 2.38.1 - build: hb4cce97_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.38.1-hb4cce97_0.conda - sha256: 616277b0c5f7616c2cdf36f6c316ea3f9aa5bb35f2d4476a349ab58b9b91675f - md5: 000e30b09db0b7c775b21695dff30969 - depends: - - libgcc-ng >=12 - license: BSD-3-Clause - license_family: BSD - size: 35720 - timestamp: 1680113474501 -- kind: conda - name: libuv - version: 1.48.0 - build: h31becfc_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libuv-1.48.0-h31becfc_0.conda - sha256: 8be03c6a43e17fdf574e2c29f1f8b917ba2842b5f4662b51d577960a3083fc2c - md5: 97f754b22f63a943345bd807e1d51e01 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 635472 - timestamp: 1709913320273 -- kind: conda - name: libuv - version: 1.48.0 - build: h93a5062_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.48.0-h93a5062_0.conda - sha256: 60bed2a7a85096387ab0381cbc32ea2da7f8dd99bd90e440983019c0cdd96ad1 - md5: abfd49e80f13453b62a56be226120ea8 - license: MIT - license_family: MIT - size: 405988 - timestamp: 1709913494015 -- kind: conda - name: libuv - version: 1.48.0 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.48.0-hd590300_0.conda - sha256: b7c0e8a0c93c2621be7645b37123d4e8d27e8a974da26a3fba47a9c37711aa7f - md5: 7e8b914b1062dd4386e3de4d82a3ead6 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 899979 - timestamp: 1709913354710 -- kind: conda - name: libwebp-base - version: 1.3.2 - build: h31becfc_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libwebp-base-1.3.2-h31becfc_1.conda - sha256: 65f96a2671cacb81eadf26d65ba29038a1f12fe5ba4652b1789fac920f332099 - md5: 675c1f4aa320704b899f4eb350a69418 - depends: - - libgcc-ng >=12 - constrains: - - libwebp 1.3.2 - license: BSD-3-Clause - license_family: BSD - size: 355942 - timestamp: 1712603681172 -- kind: conda - name: libwebp-base - version: 1.3.2 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.3.2-hd590300_1.conda - sha256: c230e238646d0481851a44086767581cf7e112f27e97bb1c0b89175a079d961d - md5: 049b7df8bae5e184d1de42cdf64855f8 - depends: - - libgcc-ng >=12 - constrains: - - libwebp 1.3.2 - license: BSD-3-Clause - license_family: BSD - size: 434659 - timestamp: 1712602397804 -- kind: conda - name: libxcb - version: '1.15' - build: h0b41bf4_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.15-h0b41bf4_0.conda - sha256: a670902f0a3173a466c058d2ac22ca1dd0df0453d3a80e0212815c20a16b0485 - md5: 33277193f5b92bad9fdd230eb700929c - depends: - - libgcc-ng >=12 - - pthread-stubs - - xorg-libxau - - xorg-libxdmcp - license: MIT - license_family: MIT - size: 384238 - timestamp: 1682082368177 -- kind: conda - name: libxcb - version: '1.15' - build: h2a766a3_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcb-1.15-h2a766a3_0.conda - sha256: d159fcdb8b74187b0bd32f2d9b3a9191bc8b786a97e413aa66e19c39ba7050a0 - md5: eb3d8c8170e3d03f2564ed2024aa00c8 - depends: - - libgcc-ng >=12 - - pthread-stubs - - xorg-libxau - - xorg-libxdmcp - license: MIT - license_family: MIT - size: 388526 - timestamp: 1682083614077 -- kind: conda - name: libxcrypt - version: 4.4.36 - build: h31becfc_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.36-h31becfc_1.conda - sha256: 6b46c397644091b8a26a3048636d10b989b1bf266d4be5e9474bf763f828f41f - md5: b4df5d7d4b63579d081fd3a4cf99740e - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - size: 114269 - timestamp: 1702724369203 -- kind: conda - name: libxcrypt - version: 4.4.36 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c - md5: 5aa797f8787fe7a17d1b0821485b5adc - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - size: 100393 - timestamp: 1702724383534 -- kind: conda - name: libzlib - version: 1.2.13 - build: h31becfc_5 - build_number: 5 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.2.13-h31becfc_5.conda - sha256: aeeefbb61e5e8227e53566d5e42dbb49e120eb99109996bf0dbfde8f180747a7 - md5: b213aa87eea9491ef7b129179322e955 - depends: - - libgcc-ng >=12 - constrains: - - zlib 1.2.13 *_5 - license: Zlib - license_family: Other - size: 67036 - timestamp: 1686575148440 -- kind: conda - name: libzlib - version: 1.2.13 - build: h53f4e23_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.2.13-h53f4e23_5.conda - sha256: ab1c8aefa2d54322a63aaeeefe9cf877411851738616c4068e0dccc66b9c758a - md5: 1a47f5236db2e06a320ffa0392f81bd8 - constrains: - - zlib 1.2.13 *_5 - license: Zlib - license_family: Other - size: 48102 - timestamp: 1686575426584 -- kind: conda - name: libzlib - version: 1.2.13 - build: hd590300_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-hd590300_5.conda - sha256: 370c7c5893b737596fd6ca0d9190c9715d89d888b8c88537ae1ef168c25e82e4 - md5: f36c115f1ee199da648e0597ec2047ad - depends: - - libgcc-ng >=12 - constrains: - - zlib 1.2.13 *_5 - license: Zlib - license_family: Other - size: 61588 - timestamp: 1686575217516 -- kind: conda - name: ncurses - version: 6.4.20240210 - build: h0425590_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.4.20240210-h0425590_0.conda - sha256: 4223dc34e2bddd37bf995158ae481e00be375b287d539bc7a0532634c0fc63b7 - md5: c1a1612ddaee95c83abfa0b2ec858626 - depends: - - libgcc-ng >=12 - license: X11 AND BSD-3-Clause - size: 926594 - timestamp: 1710866633409 -- kind: conda - name: ncurses - version: 6.4.20240210 - build: h078ce10_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.4.20240210-h078ce10_0.conda - sha256: 06f0905791575e2cd3aa961493c56e490b3d82ad9eb49f1c332bd338b0216911 - md5: 616ae8691e6608527d0071e6766dcb81 - license: X11 AND BSD-3-Clause - size: 820249 - timestamp: 1710866874348 -- kind: conda - name: ncurses - version: 6.4.20240210 - build: h59595ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.4.20240210-h59595ed_0.conda - sha256: aa0f005b6727aac6507317ed490f0904430584fa8ca722657e7f0fb94741de81 - md5: 97da8860a0da5413c7c98a3b3838a645 - depends: - - libgcc-ng >=12 - license: X11 AND BSD-3-Clause - size: 895669 - timestamp: 1710866638986 -- kind: conda - name: nodeenv - version: 1.8.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.8.0-pyhd8ed1ab_0.conda - sha256: 1320306234552717149f36f825ddc7e27ea295f24829e9db4cc6ceaff0b032bd - md5: 2a75b296096adabbabadd5e9782e5fcc - depends: - - python 2.7|>=3.7 - - setuptools - license: BSD-3-Clause - license_family: BSD - size: 34358 - timestamp: 1683893151613 -- kind: conda - name: nodejs - version: 20.9.0 - build: h3b52c9b_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-20.9.0-h3b52c9b_1.conda - sha256: 4f33e8c92630066d99fd2a354e91e7476a2fb54db53ccb1f2c8e89569ba009b4 - md5: 330e20595d3cabf3231d8415baecfec8 - depends: - - icu >=73.2,<74.0a0 - - libcxx >=16 - - libuv >=1.48.0,<1.49.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zlib - license: MIT - license_family: MIT - size: 11774781 - timestamp: 1711543164343 -- kind: conda - name: nodejs - version: 20.9.0 - build: hb753e55_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/nodejs-20.9.0-hb753e55_1.conda - sha256: 51056ec0687effa5ec90e54460435f7f96975e7554df3489dce21a79a29be703 - md5: b1913a348ca9b487ffa637087806a50f - depends: - - __glibc >=2.17,<3.0.a0 - - icu >=73.2,<74.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libuv >=1.48.0,<1.49.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zlib - license: MIT - license_family: MIT - size: 17139855 - timestamp: 1711529850433 -- kind: conda - name: nodejs - version: 20.9.0 - build: hc1f8a26_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/nodejs-20.9.0-hc1f8a26_1.conda - sha256: 9555a54c2d4615e4671a72136a4fcbf1d53f193dcf9d15b6ebd4c214f0b964c8 - md5: 78408fb6c4927e6b1df513c776ff0525 - depends: - - icu >=73.2,<74.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libuv >=1.48.0,<1.49.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - openssl >=3.2.1,<4.0a0 - - zlib - license: MIT - license_family: MIT - size: 17477248 - timestamp: 1711536261457 -- kind: pypi - name: oauthlib - version: 3.2.2 - url: https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl - sha256: 8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca - requires_dist: - - cryptography >=3.0.0 ; extra == 'rsa' - - blinker >=1.4.0 ; extra == 'signals' - - cryptography >=3.0.0 ; extra == 'signedtoken' - - pyjwt <3, >=2.0.0 ; extra == 'signedtoken' - requires_python: '>=3.6' -- kind: conda - name: openjdk - version: 21.0.2 - build: haa376d0_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openjdk-21.0.2-haa376d0_0.conda - sha256: f70beadcea1071ef8194608ea7d2b43b66526633d3ce151a5c4b100f333088ec - md5: 7a09477431ec850c8eeb8b0066dc29a6 - depends: - - alsa-lib >=1.2.10,<1.3.0.0a0 - - fontconfig >=2.14.2,<3.0a0 - - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - giflib >=5.2.1,<5.3.0a0 - - harfbuzz >=8.3.0,<9.0a0 - - lcms2 >=2.16,<3.0a0 - - libcups >=2.3.3,<2.4.0a0 - - libgcc-ng >=12 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.39,<1.7.0a0 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - - xorg-libx11 >=1.8.7,<2.0a0 - - xorg-libxext >=1.3.4,<2.0a0 - - xorg-libxi - - xorg-libxrender >=0.9.11,<0.10.0a0 - - xorg-libxt >=1.3.0,<2.0a0 - - xorg-libxtst - license: GPL-2.0-or-later WITH Classpath-exception-2.0 - license_family: GPL - size: 180865078 - timestamp: 1705732115829 -- kind: conda - name: openjdk - version: 21.0.2 - build: hbeb2e11_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/openjdk-21.0.2-hbeb2e11_0.conda - sha256: 7d052a0d29a44aff407d2a8868289fddcc34f03460e4f1d2557c78e30300e3bf - md5: 18c49f26880ec3db8165d8dea0367433 - depends: - - libcxx >=15 - - libzlib >=1.2.13,<1.3.0a0 - license: GPL-2.0-or-later WITH Classpath-exception-2.0 - license_family: GPL - size: 175873351 - timestamp: 1705730321478 -- kind: conda - name: openjdk - version: 21.0.2 - build: hf79f348_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/openjdk-21.0.2-hf79f348_0.conda - sha256: 40b2f3a086df8fe667e27643e38c080241629afe8c4229e44ed595ad85d0cb64 - md5: 46acb4613caaa1963fcab52a3f4d2633 - depends: - - alsa-lib >=1.2.10,<1.3.0.0a0 - - fontconfig >=2.14.2,<3.0a0 - - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - giflib >=5.2.1,<5.3.0a0 - - harfbuzz >=8.3.0,<9.0a0 - - lcms2 >=2.16,<3.0a0 - - libcups >=2.3.3,<2.4.0a0 - - libgcc-ng >=12 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.39,<1.7.0a0 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - - xorg-libx11 >=1.8.7,<2.0a0 - - xorg-libxext >=1.3.4,<2.0a0 - - xorg-libxi - - xorg-libxrender >=0.9.11,<0.10.0a0 - - xorg-libxt >=1.3.0,<2.0a0 - - xorg-libxtst - license: GPL-2.0-or-later WITH Classpath-exception-2.0 - license_family: GPL - size: 174290156 - timestamp: 1705734213025 -- kind: conda - name: openssl - version: 3.2.1 - build: h0d3ecfb_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.2.1-h0d3ecfb_1.conda - sha256: 519dc941d7ab0ebf31a2878d85c2f444450e7c5f6f41c4d07252c6bb3417b78b - md5: eb580fb888d93d5d550c557323ac5cee - depends: - - ca-certificates - constrains: - - pyopenssl >=22.1 - license: Apache-2.0 - license_family: Apache - size: 2855250 - timestamp: 1710793435903 -- kind: conda - name: openssl - version: 3.2.1 - build: h31becfc_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.2.1-h31becfc_1.conda - sha256: 055a26e99ebc12ae0cf23266a0e62e71b59b8ce8cafb1ebb87e375ef9c758d7b - md5: e95eb18d256edc72058e0dc9be5338a0 - depends: - - ca-certificates - - libgcc-ng >=12 - constrains: - - pyopenssl >=22.1 - license: Apache-2.0 - license_family: Apache - size: 3380844 - timestamp: 1710793424665 -- kind: conda - name: openssl - version: 3.2.1 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.2.1-hd590300_1.conda - sha256: 2c689444ed19a603be457284cf2115ee728a3fafb7527326e96054dee7cdc1a7 - md5: 9d731343cff6ee2e5a25c4a091bf8e2a - depends: - - ca-certificates - - libgcc-ng >=12 - constrains: - - pyopenssl >=22.1 - license: Apache-2.0 - license_family: Apache - size: 2865379 - timestamp: 1710793235846 -- kind: conda - name: pcre2 - version: '10.43' - build: h26f9a81_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.43-h26f9a81_0.conda - sha256: 4bf7b5fa091f5e7ab0b78778458be1e81c1ffa182b63795734861934945a63a7 - md5: 1ddc87f00014612830f3235b5ad6d821 - depends: - - bzip2 >=1.0.8,<2.0a0 - - libzlib >=1.2.13,<1.3.0a0 - license: BSD-3-Clause - license_family: BSD - size: 615219 - timestamp: 1708118184900 -- kind: conda - name: pcre2 - version: '10.43' - build: hcad00b1_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.43-hcad00b1_0.conda - sha256: 766dd986a7ed6197676c14699000bba2625fd26c8a890fcb7a810e5cf56155bc - md5: 8292dea9e022d9610a11fce5e0896ed8 - depends: - - bzip2 >=1.0.8,<2.0a0 - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: BSD-3-Clause - license_family: BSD - size: 950847 - timestamp: 1708118050286 -- kind: conda - name: pcre2 - version: '10.43' - build: hd0f9c67_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.43-hd0f9c67_0.conda - sha256: 1bac2077caa28f0764f955e522468b98316b99b2d0904e9d93a01297fe1b7ba2 - md5: 1275fa549338ecdc8b7793589ac09150 - depends: - - bzip2 >=1.0.8,<2.0a0 - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: BSD-3-Clause - license_family: BSD - size: 880930 - timestamp: 1708117999756 -- kind: conda - name: perl - version: 5.32.1 - build: 7_h31becfc_perl5 - build_number: 7 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/perl-5.32.1-7_h31becfc_perl5.conda - sha256: d78296134263b5bf476cad838ded65451e7162db756f9997c5d06b08122572ed - md5: 17d019cb2a6c72073c344e98e40dfd61 - depends: - - libgcc-ng >=12 - - libxcrypt >=4.4.36 - license: GPL-1.0-or-later OR Artistic-1.0-Perl - size: 13338804 - timestamp: 1703310557094 -- kind: conda - name: perl - version: 5.32.1 - build: 7_h4614cfb_perl5 - build_number: 7 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/perl-5.32.1-7_h4614cfb_perl5.conda - sha256: b0c55040d2994fd6bf2f83786561d92f72306d982d6ea12889acad24a9bf43b8 - md5: ba3cbe93f99e896765422cc5f7c3a79e - license: GPL-1.0-or-later OR Artistic-1.0-Perl - size: 14439531 - timestamp: 1703311335652 -- kind: conda - name: perl - version: 5.32.1 - build: 7_hd590300_perl5 - build_number: 7 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/perl-5.32.1-7_hd590300_perl5.conda - sha256: 9ec32b6936b0e37bcb0ed34f22ec3116e75b3c0964f9f50ecea5f58734ed6ce9 - md5: f2cfec9406850991f4e3d960cc9e3321 - depends: - - libgcc-ng >=12 - - libxcrypt >=4.4.36 - license: GPL-1.0-or-later OR Artistic-1.0-Perl - size: 13344463 - timestamp: 1703310653947 -- kind: conda - name: pixman - version: 0.43.2 - build: h59595ed_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.43.2-h59595ed_0.conda - sha256: 366d28e2a0a191d6c535e234741e0cd1d94d713f76073d8af4a5ccb2a266121e - md5: 71004cbf7924e19c02746ccde9fd7123 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: MIT - license_family: MIT - size: 386826 - timestamp: 1706549500138 -- kind: conda - name: pixman - version: 0.43.4 - build: h2f0025b_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/pixman-0.43.4-h2f0025b_0.conda - sha256: e145b0d89c800326a20d1afd86c74f9422b81549b17fe53add46c2fa43a4c93e - md5: 81b2ddea4b0eca188da9c5a7aa4b0cff - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: MIT - license_family: MIT - size: 295064 - timestamp: 1709240909660 -- kind: conda - name: platformdirs - version: 4.2.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.2.0-pyhd8ed1ab_0.conda - sha256: 2ebfb971236ab825dd79dd6086ea742a9901008ffb9c6222c1f2b5172a8039d3 - md5: a0bc3eec34b0fab84be6b2da94e98e20 - depends: - - python >=3.8 - license: MIT - license_family: MIT - purls: - - pkg:pypi/platformdirs - size: 20210 - timestamp: 1706713564353 -- kind: conda - name: pre-commit - version: 3.7.0 - build: pyha770c72_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pre-commit-3.7.0-pyha770c72_0.conda - sha256: b7a1d56fb1374df77019521bbcbe109ff17337181c4d392918e5ec1a10a9df87 - md5: 846ba0877cda9c4f11e13720cacd1968 - depends: - - cfgv >=2.0.0 - - identify >=1.0.0 - - nodeenv >=0.11.1 - - python >=3.9 - - pyyaml >=5.1 - - virtualenv >=20.10.0 - license: MIT - license_family: MIT - size: 180574 - timestamp: 1711480432386 -- kind: conda - name: prompt-toolkit - version: 3.0.38 - build: pyha770c72_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.38-pyha770c72_0.conda - sha256: 78c2f3c6195ec350d7d6e5fa3e43274ca8191c181c97a867e2920faaeec0e9bc - md5: 59ba1bf8ea558751a0d391249a248765 - depends: - - python >=3.7 - - wcwidth - constrains: - - prompt_toolkit 3.0.38 - license: BSD-3-Clause - license_family: BSD - size: 269375 - timestamp: 1677601102637 -- kind: conda - name: prompt_toolkit - version: 3.0.38 - build: hd8ed1ab_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.38-hd8ed1ab_0.conda - sha256: c0f24a75d27918eb33f86902aa6024783d128a89eb3a169bcb22f24163a422b3 - md5: 45b74f64d8808eda7e6f6e6b1d641fd2 - depends: - - prompt-toolkit >=3.0.38,<3.0.39.0a0 - license: BSD-3-Clause - license_family: BSD - size: 6402 - timestamp: 1677601110741 -- kind: pypi - name: psycopg2-binary - version: 2.9.9 - url: https://files.pythonhosted.org/packages/ce/85/62825cabc6aad53104b7b6d12eb2ad74737d268630032d07b74d4444cb72/psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 977646e05232579d2e7b9c59e21dbe5261f403a88417f6a6512e70d3f8a046be - requires_python: '>=3.7' -- kind: pypi - name: psycopg2-binary - version: 2.9.9 - url: https://files.pythonhosted.org/packages/81/0b/3adf561107c865928455891156d1dde5325253f7f4316fe56cd2c3f73570/psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - sha256: 143072318f793f53819048fdfe30c321890af0c3ec7cb1dfc9cc87aa88241de2 - requires_python: '>=3.7' -- kind: pypi - name: psycopg2-binary - version: 2.9.9 - url: https://files.pythonhosted.org/packages/7a/1f/a6cf0cdf944253f7c45d90fbc876cc8bed5cc9942349306245715c0d88d6/psycopg2_binary-2.9.9-cp311-cp311-macosx_11_0_arm64.whl - sha256: 1ea665f8ce695bcc37a90ee52de7a7980be5161375d42a0b6c6abedbf0d81f0f - requires_python: '>=3.7' -- kind: conda - name: pthread-stubs - version: '0.4' - build: h36c2ea0_1001 - build_number: 1001 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2 - sha256: 67c84822f87b641d89df09758da498b2d4558d47b920fd1d3fe6d3a871e000ff - md5: 22dad4df6e8630e8dff2428f6f6a7036 - depends: - - libgcc-ng >=7.5.0 - license: MIT - license_family: MIT - size: 5625 - timestamp: 1606147468727 -- kind: conda - name: pthread-stubs - version: '0.4' - build: hb9de7d4_1001 - build_number: 1001 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/pthread-stubs-0.4-hb9de7d4_1001.tar.bz2 - sha256: f1d7ff5e06cc515ec82010537813c796369f8e9dde46ce3f4fa1a9f70bc7db7d - md5: d0183ec6ce0b5aaa3486df25fa5f0ded - depends: - - libgcc-ng >=7.5.0 - license: MIT - license_family: MIT - size: 5657 - timestamp: 1606147738742 -- kind: conda - name: pycparser - version: '2.22' - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyhd8ed1ab_0.conda - sha256: 406001ebf017688b1a1554b49127ca3a4ac4626ec0fd51dc75ffa4415b720b64 - md5: 844d9eb3b43095b031874477f7d70088 - depends: - - python >=3.8 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pycparser - size: 105098 - timestamp: 1711811634025 -- kind: pypi - name: pydantic - version: 2.7.0 - url: https://files.pythonhosted.org/packages/16/ca/330c4f3bd983bb24ac12c7fd1e08c26c8aed70bc64498cf38c770321067f/pydantic-2.7.0-py3-none-any.whl - sha256: 9dee74a271705f14f9a1567671d144a851c675b072736f0a7b2608fd9e495352 - requires_dist: - - annotated-types >=0.4.0 - - pydantic-core ==2.18.1 - - typing-extensions >=4.6.1 - - email-validator >=2.0.0 ; extra == 'email' - requires_python: '>=3.8' -- kind: pypi - name: pydantic-core - version: 2.18.1 - url: https://files.pythonhosted.org/packages/b0/a5/5519e8416e85c58f0c06218310220acdd6c210d154e75da99ec4f5f0aca3/pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 68717c38a68e37af87c4da20e08f3e27d7e4212e99e96c3d875fbf3f4812abfc - requires_dist: - - typing-extensions >=4.6.0, !=4.7.0 - requires_python: '>=3.8' -- kind: pypi - name: pydantic-core - version: 2.18.1 - url: https://files.pythonhosted.org/packages/11/6e/bf01c6a8133a4ad0b2bb1f6b20acd36a6aefab8ab8e098c6a9d66db1d303/pydantic_core-2.18.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - sha256: 5f7973c381283783cd1043a8c8f61ea5ce7a3a58b0369f0ee0ee975eaf2f2a1b - requires_dist: - - typing-extensions >=4.6.0, !=4.7.0 - requires_python: '>=3.8' -- kind: pypi - name: pydantic-core - version: 2.18.1 - url: https://files.pythonhosted.org/packages/d1/24/9982df86dc57155fdbaacecb3dc09d28fdbb19632b1294fd2ddd8f0274dd/pydantic_core-2.18.1-cp311-cp311-macosx_11_0_arm64.whl - sha256: 7a5d83efc109ceddb99abd2c1316298ced2adb4570410defe766851a804fcd5b - requires_dist: - - typing-extensions >=4.6.0, !=4.7.0 - requires_python: '>=3.8' -- kind: pypi - name: pyjwt - version: 2.8.0 - url: https://files.pythonhosted.org/packages/2b/4f/e04a8067c7c96c364cef7ef73906504e2f40d690811c021e1a1901473a19/PyJWT-2.8.0-py3-none-any.whl - sha256: 59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 - requires_dist: - - typing-extensions ; python_version <= '3.7' - - cryptography >=3.4.0 ; extra == 'crypto' - - sphinx <5.0.0, >=4.5.0 ; extra == 'dev' - - sphinx-rtd-theme ; extra == 'dev' - - zope-interface ; extra == 'dev' - - cryptography >=3.4.0 ; extra == 'dev' - - pytest <7.0.0, >=6.0.0 ; extra == 'dev' - - coverage[toml] ==5.0.4 ; extra == 'dev' - - pre-commit ; extra == 'dev' - - sphinx <5.0.0, >=4.5.0 ; extra == 'docs' - - sphinx-rtd-theme ; extra == 'docs' - - zope-interface ; extra == 'docs' - - pytest <7.0.0, >=6.0.0 ; extra == 'tests' - - coverage[toml] ==5.0.4 ; extra == 'tests' - requires_python: '>=3.7' -- kind: conda - name: pyopenssl - version: 23.1.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.1.1-pyhd8ed1ab_0.conda - sha256: 458428cb867f70f2af2a4ed59d382291ea3eb3f10490196070a15d1d71d5432a - md5: 0b34aa3ab7e7ccb1765a03dd9ed29938 - depends: - - cryptography >=38.0.0,<41 - - python >=3.6 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/pyopenssl - size: 128079 - timestamp: 1680037561734 -- kind: conda - name: pysocks - version: 1.7.1 - build: pyha2e5f31_6 - build_number: 6 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2 - sha256: a42f826e958a8d22e65b3394f437af7332610e43ee313393d1cf143f0a2d274b - md5: 2a7de29fb590ca14b5243c4c812c8025 - depends: - - __unix - - python >=3.8 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pysocks - size: 18981 - timestamp: 1661604969727 -- kind: conda - name: python - version: 3.11.8 - build: h43d1f9e_0_cpython - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.11.8-h43d1f9e_0_cpython.conda - sha256: 4dbd3ac5f760cbf8c613df0a29d970ed1e8235101be1fa74ccd833300661706f - md5: fec01f7d8fdfec9c4881a1c9bdbc959e - depends: - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-aarch64 >=2.36.1 - - libexpat >=2.5.0,<3.0a0 - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.45.1,<4.0a0 - - libuuid >=2.38.1,<3.0a0 - - libxcrypt >=4.4.36 - - libzlib >=1.2.13,<1.3.0a0 - - ncurses >=6.4,<7.0a0 - - openssl >=3.2.1,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.11.* *_cp311 - license: Python-2.0 - size: 15317480 - timestamp: 1708116052369 -- kind: conda - name: python - version: 3.11.8 - build: hab00c5b_0_cpython - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.8-hab00c5b_0_cpython.conda - sha256: f33559d7127b6a892854bc3b2b4be1406c3be9537d658cb13edae57c8c0b5a11 - md5: 2fdc314ee058eda0114738a9309d3683 - depends: - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.5.0,<3.0a0 - - libffi >=3.4,<4.0a0 - - libgcc-ng >=12 - - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.45.1,<4.0a0 - - libuuid >=2.38.1,<3.0a0 - - libxcrypt >=4.4.36 - - libzlib >=1.2.13,<1.3.0a0 - - ncurses >=6.4,<7.0a0 - - openssl >=3.2.1,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.11.* *_cp311 - license: Python-2.0 - size: 30754113 - timestamp: 1708118457486 -- kind: conda - name: python - version: 3.11.8 - build: hdf0ec26_0_cpython - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.8-hdf0ec26_0_cpython.conda - sha256: 6c9bbac137759e013e6a50593c7cf10a06032fcb1ef3a994c598c7a95e73a8e1 - md5: 8f4076d960f17f19ae8b2f66727ea1c6 - depends: - - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.5.0,<3.0a0 - - libffi >=3.4,<4.0a0 - - libsqlite >=3.45.1,<4.0a0 - - libzlib >=1.2.13,<1.3.0a0 - - ncurses >=6.4,<7.0a0 - - openssl >=3.2.1,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.11.* *_cp311 - license: Python-2.0 - size: 14623079 - timestamp: 1708116925163 -- kind: conda - name: python-dateutil - version: 2.8.2 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2 - sha256: 54d7785c7678166aa45adeaccfc1d2b8c3c799ca2dc05d4a82bb39b1968bd7da - md5: dd999d1cc9f79e67dbb855c8924c7984 - depends: - - python >=3.6 - - six >=1.5 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/python-dateutil - size: 245987 - timestamp: 1626286448716 -- kind: pypi - name: python-dotenv - version: 1.0.1 - url: https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl - sha256: f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a - requires_dist: - - click >=5.0 ; extra == 'cli' - requires_python: '>=3.8' -- kind: pypi - name: python3-openid - version: 3.2.0 - url: https://files.pythonhosted.org/packages/e0/a5/c6ba13860bdf5525f1ab01e01cc667578d6f1efc8a1dba355700fb04c29b/python3_openid-3.2.0-py3-none-any.whl - sha256: 6626f771e0417486701e0b4daff762e7212e820ca5b29fcc0d05f6f8736dfa6b - requires_dist: - - defusedxml - - mysql-connector-python ; extra == 'mysql' - - psycopg2 ; extra == 'postgresql' -- kind: conda - name: python_abi - version: '3.11' - build: 4_cp311 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.11-4_cp311.conda - sha256: 0be3ac1bf852d64f553220c7e6457e9c047dfb7412da9d22fbaa67e60858b3cf - md5: d786502c97404c94d7d58d258a445a65 - constrains: - - python 3.11.* *_cpython - license: BSD-3-Clause - license_family: BSD - size: 6385 - timestamp: 1695147338551 -- kind: conda - name: python_abi - version: '3.11' - build: 4_cp311 - build_number: 4 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/python_abi-3.11-4_cp311.conda - sha256: 135a21de5721a2667613529b4ac50a9454979bf969fa99d74b6e5ad9a4ff284d - md5: 89983f987dfee288f94ddb2ee550ea60 - constrains: - - python 3.11.* *_cpython - license: BSD-3-Clause - license_family: BSD - size: 6384 - timestamp: 1695147390555 -- kind: conda - name: python_abi - version: '3.11' - build: 4_cp311 - build_number: 4 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.11-4_cp311.conda - sha256: 4837089c477b9b84fa38a17f453e6634e68237267211b27a8a2f5ccd847f4e55 - md5: 8d3751bc73d3bbb66f216fa2331d5649 - constrains: - - python 3.11.* *_cpython - license: BSD-3-Clause - license_family: BSD - size: 6492 - timestamp: 1695147509940 -- kind: conda - name: pyyaml - version: 6.0.1 - build: py311h459d7ec_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.1-py311h459d7ec_1.conda - sha256: 28729ef1ffa7f6f9dfd54345a47c7faac5d34296d66a2b9891fb147f4efe1348 - md5: 52719a74ad130de8fb5d047dc91f247a - depends: - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - size: 200626 - timestamp: 1695373818537 -- kind: conda - name: pyyaml - version: 6.0.1 - build: py311hcd402e7_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.1-py311hcd402e7_1.conda - sha256: bee3c9c09f9d099a4e5c49a274160c25f5a5b7d0e1faf16a3348b2704351e620 - md5: 78775409be46d19acb2b453f1f2c4757 - depends: - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - size: 193459 - timestamp: 1695373744445 -- kind: conda - name: pyyaml - version: 6.0.1 - build: py311heffc1b2_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.1-py311heffc1b2_1.conda - sha256: b155f5c27f0e2951256774628c4b91fdeee3267018eef29897a74e3d1316c8b0 - md5: d310bfbb8230b9175c0cbc10189ad804 - depends: - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - size: 187795 - timestamp: 1695373829282 -- kind: conda - name: readline - version: '8.2' - build: h8228510_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 - md5: 47d31b792659ce70f470b5c82fdfb7a4 - depends: - - libgcc-ng >=12 - - ncurses >=6.3,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 281456 - timestamp: 1679532220005 -- kind: conda - name: readline - version: '8.2' - build: h8fc344f_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/readline-8.2-h8fc344f_1.conda - sha256: 4c99f7417419734e3797d45bc355e61c26520e111893b0d7087a01a7fbfbe3dd - md5: 105eb1e16bf83bfb2eb380a48032b655 - depends: - - libgcc-ng >=12 - - ncurses >=6.3,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 294092 - timestamp: 1679532238805 -- kind: conda - name: readline - version: '8.2' - build: h92ec313_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 - md5: 8cbb776a2f641b943d413b3e19df71f4 - depends: - - ncurses >=6.3,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 250351 - timestamp: 1679532511311 -- kind: pypi - name: requests - version: 2.31.0 - url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl - sha256: 58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f - requires_dist: - - charset-normalizer <4, >=2 - - idna <4, >=2.5 - - urllib3 <3, >=1.21.1 - - certifi >=2017.4.17 - - pysocks !=1.5.7, >=1.5.6 ; extra == 'socks' - - chardet <6, >=3.0.2 ; extra == 'use_chardet_on_py3' - requires_python: '>=3.7' -- kind: pypi - name: requests-oauthlib - version: 2.0.0 - url: https://files.pythonhosted.org/packages/3b/5d/63d4ae3b9daea098d5d6f5da83984853c1bbacd5dc826764b249fe119d24/requests_oauthlib-2.0.0-py2.py3-none-any.whl - sha256: 7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36 - requires_dist: - - oauthlib >=3.0.0 - - requests >=2.0.0 - - oauthlib[signedtoken] >=3.0.0 ; extra == 'rsa' - requires_python: '>=3.4' -- kind: conda - name: ruamel.yaml - version: 0.17.21 - build: py311h1d6c08a_3 - build_number: 3 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml-0.17.21-py311h1d6c08a_3.conda - sha256: 8e6f2401a9da66d03f13c5152b02b44e6d7633787cb9aa04a4ff786cf8494625 - md5: 0beea8160c8bc09421e7fbb04f920dee - depends: - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - ruamel.yaml.clib >=0.1.2 - - setuptools - license: MIT - license_family: MIT - purls: - - pkg:pypi/ruamel-yaml - size: 260163 - timestamp: 1678273219101 -- kind: conda - name: ruamel.yaml - version: 0.17.21 - build: py311h2582759_3 - build_number: 3 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.21-py311h2582759_3.conda - sha256: bbf5aff9519226e7cf98a7df4b4d0b0de97991c64515a6ddcaca91d4c822226e - md5: d47e33b1053996205f29896708c91a3d - depends: - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - - ruamel.yaml.clib >=0.1.2 - - setuptools - license: MIT - license_family: MIT - purls: - - pkg:pypi/ruamel-yaml - size: 259873 - timestamp: 1678273124540 -- kind: conda - name: ruamel.yaml - version: 0.17.21 - build: py311he2be06e_3 - build_number: 3 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.17.21-py311he2be06e_3.conda - sha256: 01a5e068e125b71e85e732f0e449296592881e74a7718d21cde3f4c9cf35d215 - md5: c964b671afc5b881fc3e20e5db12bf46 - depends: - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - - ruamel.yaml.clib >=0.1.2 - - setuptools - license: MIT - license_family: MIT - purls: - - pkg:pypi/ruamel-yaml - size: 260384 - timestamp: 1678273424672 -- kind: conda - name: ruamel.yaml.clib - version: 0.2.7 - build: py311h459d7ec_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py311h459d7ec_2.conda - sha256: cfd060725d39f136618547ecb8a593d82d460725fb447849815c26418c360c35 - md5: 56bc3fe5180c0b23e05c7a5708153ac7 - depends: - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 134322 - timestamp: 1695997009048 -- kind: conda - name: ruamel.yaml.clib - version: 0.2.7 - build: py311hcd402e7_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.7-py311hcd402e7_2.conda - sha256: d82b7063b5752c360ea56b672778249cca95217b1d3167e3aeb76fcc75e51a00 - md5: 10fad26bcf4222541f156415f11cbdc3 - depends: - - libgcc-ng >=12 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 127531 - timestamp: 1695997126564 -- kind: conda - name: ruamel.yaml.clib - version: 0.2.7 - build: py311heffc1b2_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.7-py311heffc1b2_2.conda - sha256: 0c2d1a27afa009d3630b5944ac5fd10df95b92ab5c91c7390ddfc93ee5488349 - md5: c167b931a12c70f9c1fbf927da7ff0be - depends: - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 113666 - timestamp: 1695997356455 -- kind: pypi - name: ruff - version: 0.3.7 - url: https://files.pythonhosted.org/packages/99/b2/4b0796f93d8bd7188e47c198407f2999579599cd5a11e1ed8a66ee18b4ac/ruff-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - sha256: 6c44e0149f1d8b48c4d5c33d88c677a4aa22fd09b1683d6a7ff55b816b5d074f - requires_python: '>=3.7' -- kind: pypi - name: ruff - version: 0.3.7 - url: https://files.pythonhosted.org/packages/00/5c/bea349c531f50b8462470b49e5eff11a860f63b2796d8643d4e4e0722b64/ruff-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl - sha256: d28bdf3d7dc71dd46929fafeec98ba89b7c3550c3f0978e36389b5631b793663 - requires_python: '>=3.7' -- kind: pypi - name: ruff - version: 0.3.7 - url: https://files.pythonhosted.org/packages/c5/59/8416cddfcc65b710d79374358a81632f2c4810326e8391d5a3c23f1cc422/ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl - sha256: 0e8377cccb2f07abd25e84fc5b2cbe48eeb0fea9f1719cad7caedb061d70e5ce - requires_python: '>=3.7' -- kind: conda - name: s2n - version: 1.4.0 - build: h06160fa_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.4.0-h06160fa_0.conda - sha256: f6cc2bdcb5d809bbaae218e03bdefef4a309d1fc7ccc9444fda59bd4553a83f8 - md5: 3d1b58d2664d96f9fbc0afe5e1d04632 - depends: - - libgcc-ng >=12 - - openssl >=3.2.0,<4.0a0 - license: Apache-2.0 - license_family: Apache - size: 329669 - timestamp: 1701891861649 -- kind: conda - name: s2n - version: 1.4.0 - build: h5a25046_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/s2n-1.4.0-h5a25046_0.conda - sha256: 56263f7c56b100d7ed2cc0b8e32987d040eb277881cfeac5c04b2ecf4a18e5b4 - md5: 59c83693b08b1e8738742751493419f9 - depends: - - libgcc-ng >=12 - - openssl >=3.2.0,<4.0a0 - license: Apache-2.0 - license_family: Apache - size: 325373 - timestamp: 1701891919216 -- kind: pypi - name: s3transfer - version: 0.10.1 - url: https://files.pythonhosted.org/packages/83/37/395cdb6ee92925fa211e55d8f07b9f93cf93f60d7d4ce5e66fd73f1ea986/s3transfer-0.10.1-py3-none-any.whl - sha256: ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d - requires_dist: - - botocore <2.0a0, >=1.33.2 - - botocore[crt] <2.0a0, >=1.33.2 ; extra == 'crt' - requires_python: '>=3.8' -- kind: conda - name: setuptools - version: 69.2.0 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/setuptools-69.2.0-pyhd8ed1ab_0.conda - sha256: 78a75c75a5dacda6de5f4056c9c990141bdaf4f64245673a590594d00bc63713 - md5: da214ecd521a720a9d521c68047682dc - depends: - - python >=3.8 - license: MIT - license_family: MIT - purls: - - pkg:pypi/setuptools - size: 471183 - timestamp: 1710344615844 -- kind: conda - name: six - version: 1.16.0 - build: pyh6c4a22f_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 - md5: e5f25f8dbc060e9a8d912e432202afc2 - depends: - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/six - size: 14259 - timestamp: 1620240338595 -- kind: pypi - name: sqlparse - version: 0.5.0 - url: https://files.pythonhosted.org/packages/43/5d/a0fdd88fd486b39ae1fd1a75ff75b4e29a0df96c0304d462fd407b82efe0/sqlparse-0.5.0-py3-none-any.whl - sha256: c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663 - requires_dist: - - build ; extra == 'dev' - - hatch ; extra == 'dev' - - sphinx ; extra == 'doc' - requires_python: '>=3.8' -- kind: conda - name: terraform - version: 1.7.5 - build: h652cbe9_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/terraform-1.7.5-h652cbe9_0.conda - sha256: 6c3646b1d41bf353996b704c77fe03b07829d4424a6cf3d7560247ef5c693ff1 - md5: 7835148c92a43d942eb3753f906b18cf - license: BUSL-1.1 - size: 17351074 - timestamp: 1710378318319 -- kind: conda - name: terraform - version: 1.7.5 - build: h75b854d_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/terraform-1.7.5-h75b854d_0.conda - sha256: 2d8134c0fea2ec05900c20d97be8f91f0e469b0c2b3393a725141c7cd3fcb365 - md5: 0f6b8ed4a06df6454e6245eb0be8ef26 - license: BUSL-1.1 - size: 18461278 - timestamp: 1710378659877 -- kind: conda - name: terraform - version: 1.7.5 - build: ha8f183a_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/terraform-1.7.5-ha8f183a_0.conda - sha256: 3e586964c5f3ebb1547d571d1db2c822d3539a165eaced11b51a183ae9920645 - md5: 6e09de703dd60a6005a03af1135c1e55 - license: BUSL-1.1 - size: 19341903 - timestamp: 1710378377972 -- kind: conda - name: tk - version: 8.6.13 - build: h194ca79_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-h194ca79_0.conda - sha256: 7fa27cc512d3a783f38bd16bbbffc008807372499d5b65d089a8e43bde9db267 - md5: f75105e0585851f818e0009dd1dde4dc - depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: TCL - license_family: BSD - size: 3351802 - timestamp: 1695506242997 -- kind: conda - name: tk - version: 8.6.13 - build: h5083fa2_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - sha256: 72457ad031b4c048e5891f3f6cb27a53cb479db68a52d965f796910e71a403a8 - md5: b50a57ba89c32b62428b71a875291c9b - depends: - - libzlib >=1.2.13,<1.3.0a0 - license: TCL - license_family: BSD - size: 3145523 - timestamp: 1699202432999 -- kind: conda - name: tk - version: 8.6.13 - build: noxft_h4845f30_101 - build_number: 101 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e - md5: d453b98d9c83e71da0741bb0ff4d76bc - depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: TCL - license_family: BSD - size: 3318875 - timestamp: 1699202167581 -- kind: pypi - name: typing-extensions - version: 4.11.0 - url: https://files.pythonhosted.org/packages/01/f3/936e209267d6ef7510322191003885de524fc48d1b43269810cd589ceaf5/typing_extensions-4.11.0-py3-none-any.whl - sha256: c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a - requires_python: '>=3.8' -- kind: conda - name: tzdata - version: 2024a - build: h0c530f3_0 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h0c530f3_0.conda - sha256: 7b2b69c54ec62a243eb6fba2391b5e443421608c3ae5dbff938ad33ca8db5122 - md5: 161081fc7cec0bfda0d86d7cb595f8d8 - license: LicenseRef-Public-Domain - size: 119815 - timestamp: 1706886945727 -- kind: conda - name: ukkonen - version: 1.0.1 - build: py311h098ece5_4 - build_number: 4 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/ukkonen-1.0.1-py311h098ece5_4.conda - sha256: 2d843a9510db35ab5ab0e39ba2d868a95c88e54dfc0e085bb09e0e0badd81500 - md5: a2b05b820bc0ac6572e242424e2a15d0 - depends: - - cffi - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 14829 - timestamp: 1695549589804 -- kind: conda - name: ukkonen - version: 1.0.1 - build: py311h9547e67_4 - build_number: 4 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py311h9547e67_4.conda - sha256: c2d33e998f637b594632eba3727529171a06eb09896e36aa42f1ebcb03779472 - md5: 586da7df03b68640de14dc3e8bcbf76f - depends: - - cffi - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - python >=3.11,<3.12.0a0 - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 13961 - timestamp: 1695549513130 -- kind: conda - name: ukkonen - version: 1.0.1 - build: py311he4fd1f5_4 - build_number: 4 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py311he4fd1f5_4.conda - sha256: 384fc81a34e248019d43a115386f77859ab63e0e6f12dade486d76359703743f - md5: 5d5ab5c5af32931e03608034f4a5fd75 - depends: - - cffi - - libcxx >=15.0.7 - - python >=3.11,<3.12.0a0 - - python >=3.11,<3.12.0a0 *_cpython - - python_abi 3.11.* *_cp311 - license: MIT - license_family: MIT - size: 13958 - timestamp: 1695549884615 -- kind: conda - name: urllib3 - version: 1.26.18 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.18-pyhd8ed1ab_0.conda - sha256: 1cc0bab65a6ad0f5a8bd7657760a4fb4e670d30377f9dab88b792977cb3687e7 - md5: bf61cfd2a7f212efba378167a07d4a6a - depends: - - brotli-python >=1.0.9 - - pysocks >=1.5.6,<2.0,!=1.5.7 - - python >=3.7 - license: MIT - license_family: MIT - purls: - - pkg:pypi/urllib3 - size: 115175 - timestamp: 1697813579644 -- kind: pypi - name: uvicorn - version: 0.29.0 - url: https://files.pythonhosted.org/packages/73/f5/cbb16fcbe277c1e0b8b3ddd188f2df0e0947f545c49119b589643632d156/uvicorn-0.29.0-py3-none-any.whl - sha256: 2c2aac7ff4f4365c206fd773a39bf4ebd1047c238f8b8268ad996829323473de - requires_dist: - - click >=7.0 - - h11 >=0.8 - - typing-extensions >=4.0 ; python_version < '3.11' - - colorama >=0.4 ; sys_platform == 'win32' and extra == 'standard' - - httptools >=0.5.0 ; extra == 'standard' - - python-dotenv >=0.13 ; extra == 'standard' - - pyyaml >=5.1 ; extra == 'standard' - - uvloop !=0.15.0, !=0.15.1, >=0.14.0 ; (sys_platform != 'win32' and (sys_platform != 'cygwin' and platform_python_implementation != 'PyPy')) and extra == 'standard' - - watchfiles >=0.13 ; extra == 'standard' - - websockets >=10.4 ; extra == 'standard' - requires_python: '>=3.8' -- kind: conda - name: virtualenv - version: 20.25.1 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.25.1-pyhd8ed1ab_0.conda - sha256: 1ced4445cf72cd9dc344ad04bdaf703a08cc428c8c46e4bda928ad79786ee153 - md5: 8797a4e26be36880a603aba29c785352 - depends: - - distlib <1,>=0.3.7 - - filelock <4,>=3.12.2 - - platformdirs <5,>=3.9.1 - - python >=3.8 - license: MIT - license_family: MIT - purls: - - pkg:pypi/virtualenv - size: 3148218 - timestamp: 1708602229963 -- kind: conda - name: wcwidth - version: 0.2.13 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.13-pyhd8ed1ab_0.conda - sha256: b6cd2fee7e728e620ec736d8dfee29c6c9e2adbd4e695a31f1d8f834a83e57e3 - md5: 68f0738df502a14213624b288c60c9ad - depends: - - python >=3.8 - license: MIT - license_family: MIT - purls: - - pkg:pypi/wcwidth - size: 32709 - timestamp: 1704731373922 -- kind: conda - name: xorg-fixesproto - version: '5.0' - build: h3557bc0_1002 - build_number: 1002 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-fixesproto-5.0-h3557bc0_1002.tar.bz2 - sha256: f22351d3ca1bc6130b474c52d35b02078941ba65e3c3621b630d853ed7ffe946 - md5: d83ed0a123097ef38c744f8aa8a814f4 - depends: - - libgcc-ng >=9.3.0 - - xorg-xextproto - license: MIT - license_family: MIT - size: 9135 - timestamp: 1617480316800 -- kind: conda - name: xorg-fixesproto - version: '5.0' - build: h7f98852_1002 - build_number: 1002 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2 - sha256: 5d2af1b40f82128221bace9466565eca87c97726bb80bbfcd03871813f3e1876 - md5: 65ad6e1eb4aed2b0611855aff05e04f6 - depends: - - libgcc-ng >=9.3.0 - - xorg-xextproto - license: MIT - license_family: MIT - size: 9122 - timestamp: 1617479697350 -- kind: conda - name: xorg-inputproto - version: 2.3.2 - build: h3557bc0_1002 - build_number: 1002 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-inputproto-2.3.2-h3557bc0_1002.tar.bz2 - sha256: d75eaa12b1e57c8e4fc6548006da94ee15175c3efe483069b77c2cc82ba846a1 - md5: 4930bec8521a4673b69db6e60cc3da08 - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 19680 - timestamp: 1610028138894 -- kind: conda - name: xorg-inputproto - version: 2.3.2 - build: h7f98852_1002 - build_number: 1002 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-h7f98852_1002.tar.bz2 - sha256: 6c8c2803de0f643f8bad16ece3f9a7259e4a49247543239c182d66d5e3a129a7 - md5: bcd1b3396ec6960cbc1d2855a9e60b2b - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 19602 - timestamp: 1610027678228 -- kind: conda - name: xorg-kbproto - version: 1.0.7 - build: h3557bc0_1002 - build_number: 1002 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-kbproto-1.0.7-h3557bc0_1002.tar.bz2 - sha256: 421c0a115b31f02082f95c8f06dbba48b2274718f66a72d64d5102141e5a8731 - md5: ec8ce6b3dac3945a4010559a6284b755 - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 27369 - timestamp: 1610028170368 -- kind: conda - name: xorg-kbproto - version: 1.0.7 - build: h7f98852_1002 - build_number: 1002 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2 - sha256: e90b0a6a5d41776f11add74aa030f789faf4efd3875c31964d6f9cfa63a10dd1 - md5: 4b230e8381279d76131116660f5a241a - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 27338 - timestamp: 1610027759842 -- kind: conda - name: xorg-libice - version: 1.1.1 - build: h7935292_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libice-1.1.1-h7935292_0.conda - sha256: c889673c9313798372bea7c93640e853561bda5ba361b265ad4b14d7d1295235 - md5: 025968e2637bca910b9b3e7f6743beff - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 60321 - timestamp: 1685308489806 -- kind: conda - name: xorg-libice - version: 1.1.1 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.1-hd590300_0.conda - sha256: 5aa9b3682285bb2bf1a8adc064cb63aff76ef9178769740d855abb42b0d24236 - md5: b462a33c0be1421532f28bfe8f4a7514 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 58469 - timestamp: 1685307573114 -- kind: conda - name: xorg-libsm - version: 1.2.4 - build: h5a01bc2_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libsm-1.2.4-h5a01bc2_0.conda - sha256: 2678975d4001f1123752ceabf9e2810cab51f740624320077de1ab12b537b498 - md5: d788eca20ecd63bad8eea7219e5c5fb7 - depends: - - libgcc-ng >=12 - - libuuid >=2.38.1,<3.0a0 - - xorg-libice >=1.1.1,<2.0a0 - license: MIT - license_family: MIT - size: 28634 - timestamp: 1685454576261 -- kind: conda - name: xorg-libsm - version: 1.2.4 - build: h7391055_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.4-h7391055_0.conda - sha256: 089ad5f0453c604e18985480218a84b27009e9e6de9a0fa5f4a20b8778ede1f1 - md5: 93ee23f12bc2e684548181256edd2cf6 - depends: - - libgcc-ng >=12 - - libuuid >=2.38.1,<3.0a0 - - xorg-libice >=1.1.1,<2.0a0 - license: MIT - license_family: MIT - size: 27433 - timestamp: 1685453649160 -- kind: conda - name: xorg-libx11 - version: 1.8.9 - build: h055a233_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libx11-1.8.9-h055a233_0.conda - sha256: fe6adc8f0ab7ea026b8ccd5c8c8843e5a01f49bcd193eacec9af1626f0db1194 - md5: d5f0529d3568a2ce38a9aed44a9a8029 - depends: - - libgcc-ng >=12 - - libxcb >=1.15,<1.16.0a0 - - xorg-kbproto - - xorg-xextproto >=7.3.0,<8.0a0 - - xorg-xproto - license: MIT - license_family: MIT - size: 851567 - timestamp: 1712415736293 -- kind: conda - name: xorg-libx11 - version: 1.8.9 - build: h8ee46fc_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.9-h8ee46fc_0.conda - sha256: 3e53ba247f1ad68353f18aceba5bf8ce87e3dea930de85d36946844a7658c9fb - md5: 077b6e8ad6a3ddb741fce2496dd01bec - depends: - - libgcc-ng >=12 - - libxcb >=1.15,<1.16.0a0 - - xorg-kbproto - - xorg-xextproto >=7.3.0,<8.0a0 - - xorg-xproto - license: MIT - license_family: MIT - size: 828060 - timestamp: 1712415742569 -- kind: conda - name: xorg-libxau - version: 1.0.11 - build: h31becfc_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxau-1.0.11-h31becfc_0.conda - sha256: c00a8909e783ba7f4ada7256f0385ae46fc21322f4090fa396c80b4481abd5f4 - md5: 13de34f69cb73165dbe08c1e9148bedb - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 15380 - timestamp: 1684638889756 -- kind: conda - name: xorg-libxau - version: 1.0.11 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.11-hd590300_0.conda - sha256: 309751371d525ce50af7c87811b435c176915239fc9e132b99a25d5e1703f2d4 - md5: 2c80dc38fface310c9bd81b17037fee5 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 14468 - timestamp: 1684637984591 -- kind: conda - name: xorg-libxdmcp - version: 1.1.3 - build: h3557bc0_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxdmcp-1.1.3-h3557bc0_0.tar.bz2 - sha256: 2aad9a0b57796170b8fb40317598fd79cfc7ae27fa7fb68c417d815e44499d59 - md5: a6c9016ae1ca5c47a3603ed4cd65fedd - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 19916 - timestamp: 1610072242320 -- kind: conda - name: xorg-libxdmcp - version: 1.1.3 - build: h7f98852_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2 - sha256: 4df7c5ee11b8686d3453e7f3f4aa20ceef441262b49860733066c52cfd0e4a77 - md5: be93aabceefa2fac576e971aef407908 - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 19126 - timestamp: 1610071769228 -- kind: conda - name: xorg-libxext - version: 1.3.4 - build: h0b41bf4_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h0b41bf4_2.conda - sha256: 73e5cfbdff41ef8a844441f884412aa5a585a0f0632ec901da035a03e1fe1249 - md5: 82b6df12252e6f32402b96dacc656fec - depends: - - libgcc-ng >=12 - - xorg-libx11 >=1.7.2,<2.0a0 - - xorg-xextproto - license: MIT - license_family: MIT - size: 50143 - timestamp: 1677036907815 -- kind: conda - name: xorg-libxext - version: 1.3.4 - build: h2a766a3_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxext-1.3.4-h2a766a3_2.conda - sha256: 16eff29fb70b2f89b9120d112d2d5df1bf7bd4e95d1e5baafabc61dac4977fa8 - md5: 0cea7d840c8eeaa4e349e0b4775c826d - depends: - - libgcc-ng >=12 - - xorg-libx11 >=1.7.2,<2.0a0 - - xorg-xextproto - license: MIT - license_family: MIT - size: 50856 - timestamp: 1677037784530 -- kind: conda - name: xorg-libxfixes - version: 5.0.3 - build: h3557bc0_1004 - build_number: 1004 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxfixes-5.0.3-h3557bc0_1004.tar.bz2 - sha256: c6d38bfb9d9a9ab4c1331700a29970d6fa4894bb1e2585300a21d75ac3c0ee8d - md5: 8c639389f12135ddc2bb23497d6d1918 - depends: - - libgcc-ng >=9.3.0 - - xorg-fixesproto - - xorg-libx11 >=1.7.0,<2.0a0 - license: MIT - license_family: MIT - size: 18684 - timestamp: 1617718455442 -- kind: conda - name: xorg-libxfixes - version: 5.0.3 - build: h7f98852_1004 - build_number: 1004 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2 - sha256: 1e426a1abb774ef1dcf741945ed5c42ad12ea2dc7aeed7682d293879c3e1e4c3 - md5: e9a21aa4d5e3e5f1aed71e8cefd46b6a - depends: - - libgcc-ng >=9.3.0 - - xorg-fixesproto - - xorg-libx11 >=1.7.0,<2.0a0 - license: MIT - license_family: MIT - size: 18145 - timestamp: 1617717802636 -- kind: conda - name: xorg-libxi - version: 1.7.10 - build: h3557bc0_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxi-1.7.10-h3557bc0_0.tar.bz2 - sha256: cc750f04be99affd279ed11741d4921a56ae45d85472dbf1c84c0503a95c0020 - md5: 02eaabe40f65695705a288757f1d56b5 - depends: - - libgcc-ng >=9.3.0 - - xorg-inputproto - - xorg-libx11 >=1.7.0,<2.0a0 - - xorg-libxext 1.3.* - - xorg-libxfixes 5.0.* - license: MIT - license_family: MIT - size: 48543 - timestamp: 1620071478169 -- kind: conda - name: xorg-libxi - version: 1.7.10 - build: h7f98852_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h7f98852_0.tar.bz2 - sha256: 745c1284a96b4282fe6fe122b2643e1e8c26a7ff40b733a8f4b61357238c4e68 - md5: e77615e5141cad5a2acaa043d1cf0ca5 - depends: - - libgcc-ng >=9.3.0 - - xorg-inputproto - - xorg-libx11 >=1.7.0,<2.0a0 - - xorg-libxext 1.3.* - - xorg-libxfixes 5.0.* - license: MIT - license_family: MIT - size: 47287 - timestamp: 1620070911951 -- kind: conda - name: xorg-libxrender - version: 0.9.11 - build: h7935292_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxrender-0.9.11-h7935292_0.conda - sha256: 15ab433c3b565d92bbd9dc83e469bb4ff1076f9002f7cd142b8a39e1b6cbcfab - md5: 8c96b84f7fb97a3cd533a14dbdcd6626 - depends: - - libgcc-ng >=12 - - xorg-libx11 >=1.8.6,<2.0a0 - - xorg-renderproto - license: MIT - license_family: MIT - size: 37477 - timestamp: 1688300682978 -- kind: conda - name: xorg-libxrender - version: 0.9.11 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.11-hd590300_0.conda - sha256: 26da4d1911473c965c32ce2b4ff7572349719eaacb88a066db8d968a4132c3f7 - md5: ed67c36f215b310412b2af935bf3e530 - depends: - - libgcc-ng >=12 - - xorg-libx11 >=1.8.6,<2.0a0 - - xorg-renderproto - license: MIT - license_family: MIT - size: 37770 - timestamp: 1688300707994 -- kind: conda - name: xorg-libxt - version: 1.3.0 - build: h7935292_1 - build_number: 1 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxt-1.3.0-h7935292_1.conda - sha256: 0ff787391ce7bb68613859a4d9ed36271d1a504567d16d94bf1c90f0b42edb91 - md5: e7732988f34df29a9815142f3e402962 - depends: - - libgcc-ng >=12 - - xorg-kbproto - - xorg-libice >=1.1.1,<2.0a0 - - xorg-libsm >=1.2.4,<2.0a0 - - xorg-libx11 >=1.8.6,<2.0a0 - - xorg-xproto - license: MIT - license_family: MIT - size: 384097 - timestamp: 1690288529060 -- kind: conda - name: xorg-libxt - version: 1.3.0 - build: hd590300_1 - build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.0-hd590300_1.conda - sha256: e7648d1efe2e858c4bc63ccf4a637c841dc971b37ded85a01be97a5e240fecfa - md5: ae92aab42726eb29d16488924f7312cb - depends: - - libgcc-ng >=12 - - xorg-kbproto - - xorg-libice >=1.1.1,<2.0a0 - - xorg-libsm >=1.2.4,<2.0a0 - - xorg-libx11 >=1.8.6,<2.0a0 - - xorg-xproto - license: MIT - license_family: MIT - size: 379256 - timestamp: 1690288540492 -- kind: conda - name: xorg-libxtst - version: 1.2.3 - build: h7f98852_1002 - build_number: 1002 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.3-h7f98852_1002.tar.bz2 - sha256: 9a51ae2869b9a47735539dada9d85534418a765d1461c9f91fe7564f3ee75e87 - md5: a220b1a513e19d5cb56c1311d44f12e6 - depends: - - libgcc-ng >=9.3.0 - - xorg-inputproto - - xorg-libx11 >=1.7.1,<2.0a0 - - xorg-libxext 1.3.* - - xorg-libxi 1.7.* - - xorg-recordproto - license: MIT - license_family: MIT - size: 32110 - timestamp: 1621515716498 -- kind: conda - name: xorg-libxtst - version: 1.2.3 - build: hf897c2e_1002 - build_number: 1002 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-libxtst-1.2.3-hf897c2e_1002.tar.bz2 - sha256: 7f0a88c0a3f3f8cb44b83050be2b4bcdec9dbfbcebe22725c0617db8be0da1c6 - md5: 7ac9802b9b0d37b0d87ddb94f82bbb70 - depends: - - libgcc-ng >=9.3.0 - - xorg-inputproto - - xorg-libx11 >=1.7.1,<2.0a0 - - xorg-libxext 1.3.* - - xorg-libxi 1.7.* - - xorg-recordproto - license: MIT - license_family: MIT - size: 32539 - timestamp: 1621515984601 -- kind: conda - name: xorg-recordproto - version: 1.14.2 - build: h7f98852_1002 - build_number: 1002 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-recordproto-1.14.2-h7f98852_1002.tar.bz2 - sha256: 4b91d48fed368c83eafd03891ebfd5bae0a03adc087ebea8a680ae22da99a85f - md5: 2f835e6c386e73c6faaddfe9eda67e98 - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 8014 - timestamp: 1621340029114 -- kind: conda - name: xorg-recordproto - version: 1.14.2 - build: hf897c2e_1002 - build_number: 1002 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-recordproto-1.14.2-hf897c2e_1002.tar.bz2 - sha256: 1d12c2aec5123dd5539b2b54cd04c8b891fe4eeae4eb1e8787fbcb3f5f1c630e - md5: 551442b00294d5efe6f013093566cbf6 - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 8002 - timestamp: 1621340342658 -- kind: conda - name: xorg-renderproto - version: 0.11.1 - build: h3557bc0_1002 - build_number: 1002 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-renderproto-0.11.1-h3557bc0_1002.tar.bz2 - sha256: e57e8b4a58f8c3b5011bf6cd66f499fca9fc5067981bb33f828750b168c3698d - md5: 01cbfe96ce66b78a9a270ac305791dd2 - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 9612 - timestamp: 1614866892676 -- kind: conda - name: xorg-renderproto - version: 0.11.1 - build: h7f98852_1002 - build_number: 1002 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2 - sha256: 38942930f233d1898594dd9edf4b0c0786f3dbc12065a0c308634c37fd936034 - md5: 06feff3d2634e3097ce2fe681474b534 - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 9621 - timestamp: 1614866326326 -- kind: conda - name: xorg-xextproto - version: 7.3.0 - build: h0b41bf4_1003 - build_number: 1003 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h0b41bf4_1003.conda - sha256: b8dda3b560e8a7830fe23be1c58cc41f407b2e20ae2f3b6901eb5842ba62b743 - md5: bce9f945da8ad2ae9b1d7165a64d0f87 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 30270 - timestamp: 1677036833037 -- kind: conda - name: xorg-xextproto - version: 7.3.0 - build: h2a766a3_1003 - build_number: 1003 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-xextproto-7.3.0-h2a766a3_1003.conda - sha256: 62298f1c7b963f3a5921a65d9cb6aae82c3ec8b3069319c8264c5b0a3d190286 - md5: 32de1e4422c986e3b6eff59e7edc4d04 - depends: - - libgcc-ng >=12 - license: MIT - license_family: MIT - size: 30267 - timestamp: 1677037618141 -- kind: conda - name: xorg-xproto - version: 7.0.31 - build: h3557bc0_1007 - build_number: 1007 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xorg-xproto-7.0.31-h3557bc0_1007.tar.bz2 - sha256: 7711ca1898e6f74a8434931fe6c0593ff7201277778aa09ea012d8be8bc7a7f5 - md5: 987e98faa0ad2c667bbea6b6aae260bc - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 74831 - timestamp: 1607291481791 -- kind: conda - name: xorg-xproto - version: 7.0.31 - build: h7f98852_1007 - build_number: 1007 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2 - sha256: f197bb742a17c78234c24605ad1fe2d88b1d25f332b75d73e5ba8cf8fbc2a10d - md5: b4a4381d54784606820704f7b5f05a15 - depends: - - libgcc-ng >=9.3.0 - license: MIT - license_family: MIT - size: 74922 - timestamp: 1607291557628 -- kind: conda - name: xz - version: 5.2.6 - build: h166bdaf_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 - md5: 2161070d867d1b1204ea749c8eec4ef0 - depends: - - libgcc-ng >=12 - license: LGPL-2.1 and GPL-2.0 - size: 418368 - timestamp: 1660346797927 -- kind: conda - name: xz - version: 5.2.6 - build: h57fd34a_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - sha256: 59d78af0c3e071021cfe82dc40134c19dab8cdf804324b62940f5c8cd71803ec - md5: 39c6b54e94014701dd157f4f576ed211 - license: LGPL-2.1 and GPL-2.0 - size: 235693 - timestamp: 1660346961024 -- kind: conda - name: xz - version: 5.2.6 - build: h9cdd2b7_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/xz-5.2.6-h9cdd2b7_0.tar.bz2 - sha256: 93f58a7b393adf41fa007ac8c55978765e957e90cd31877ece1e5a343cb98220 - md5: 83baad393a31d59c20b63ba4da6592df - depends: - - libgcc-ng >=12 - license: LGPL-2.1 and GPL-2.0 - size: 440555 - timestamp: 1660348056328 -- kind: conda - name: yaml - version: 0.2.5 - build: h3422bc3_2 - build_number: 2 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 - sha256: 93181a04ba8cfecfdfb162fc958436d868cc37db504c58078eab4c1a3e57fbb7 - md5: 4bb3f014845110883a3c5ee811fd84b4 - license: MIT - license_family: MIT - size: 88016 - timestamp: 1641347076660 -- kind: conda - name: yaml - version: 0.2.5 - build: h7f98852_2 - build_number: 2 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 - sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535 - md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae - depends: - - libgcc-ng >=9.4.0 - license: MIT - license_family: MIT - size: 89141 - timestamp: 1641346969816 -- kind: conda - name: yaml - version: 0.2.5 - build: hf897c2e_2 - build_number: 2 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-0.2.5-hf897c2e_2.tar.bz2 - sha256: 8bc601d6dbe249eba44b3c456765265cd8f42ef1e778f8df9b0c9c88b8558d7e - md5: b853307650cb226731f653aa623936a4 - depends: - - libgcc-ng >=9.4.0 - license: MIT - license_family: MIT - size: 92927 - timestamp: 1641347626613 -- kind: conda - name: zlib - version: 1.2.13 - build: h31becfc_5 - build_number: 5 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.2.13-h31becfc_5.conda - sha256: aa3e9d46b13d1959faf634f03d929d7dec950dc1b84a8ff109f7f0e3f364b562 - md5: 96866c7301479abaf8308c50958c71a4 - depends: - - libgcc-ng >=12 - - libzlib 1.2.13 h31becfc_5 - license: Zlib - license_family: Other - size: 95842 - timestamp: 1686575155348 -- kind: conda - name: zlib - version: 1.2.13 - build: h53f4e23_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.2.13-h53f4e23_5.conda - sha256: de0ee1e24aa6867058d3b852a15c8d7f49f262f5828772700c647186d4a96bbe - md5: a08383f223b10b71492d27566fafbf6c - depends: - - libzlib 1.2.13 h53f4e23_5 - license: Zlib - license_family: Other - size: 79577 - timestamp: 1686575471024 -- kind: conda - name: zlib - version: 1.2.13 - build: hd590300_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-hd590300_5.conda - sha256: 9887a04d7e7cb14bd2b52fa01858f05a6d7f002c890f618d9fcd864adbfecb1b - md5: 68c34ec6149623be41a1933ab996a209 - depends: - - libgcc-ng >=12 - - libzlib 1.2.13 hd590300_5 - license: Zlib - license_family: Other - size: 92825 - timestamp: 1686575231103 -- kind: conda - name: zstd - version: 1.5.5 - build: h4c53e97_0 - subdir: linux-aarch64 - url: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.5-h4c53e97_0.conda - sha256: d1e070029e9d07a3f25e6ed082d507b0f3cff1b109dd18d0b091a5c7b86dd07b - md5: b74eb9dbb5c3c15cb3cee7cbdf198c75 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: BSD-3-Clause - license_family: BSD - size: 528989 - timestamp: 1693151197934 -- kind: conda - name: zstd - version: 1.5.5 - build: h4f39d0f_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.5-h4f39d0f_0.conda - sha256: 7e1fe6057628bbb56849a6741455bbb88705bae6d6646257e57904ac5ee5a481 - md5: 5b212cfb7f9d71d603ad891879dc7933 - depends: - - libzlib >=1.2.13,<1.3.0a0 - license: BSD-3-Clause - license_family: BSD - size: 400508 - timestamp: 1693151393180 -- kind: conda - name: zstd - version: 1.5.5 - build: hfc55251_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.5-hfc55251_0.conda - sha256: 607cbeb1a533be98ba96cf5cdf0ddbb101c78019f1fda063261871dad6248609 - md5: 04b88013080254850d6c01ed54810589 - depends: - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - libzlib >=1.2.13,<1.3.0a0 - license: BSD-3-Clause - license_family: BSD - size: 545199 - timestamp: 1693151163452 diff --git a/pixi.toml b/pixi.toml deleted file mode 100644 index 72207e8..0000000 --- a/pixi.toml +++ /dev/null @@ -1,52 +0,0 @@ -[project] -authors = ["shughes.uk "] -channels = ["conda-forge"] -description = "Add a short description here" -name = "resume" -platforms = ["linux-64", "linux-aarch64", "osx-arm64"] -version = "0.1.0" - -[tasks] -backend-collect-statics = { cmd = "ENV_NAME=dev python manage.py collectstatic --noinput", cwd = "backend" } -backend-dev = { cmd = "DEBUG=True ENV_NAME=dev uvicorn resume.asgi:application --reload --log-config logging.yaml", cwd = "backend" } -backend-migrations = { cmd = "python manage.py migrate", cwd = "backend" } -frontend-autogen-client = { cmd = "rm -rf src/api-client && npm run autogen-client", cwd = "frontend", depends_on = [ - "frontend-install", -] } -frontend-build = { cmd = "npm run build", cwd = "frontend", depends_on = [ - "frontend-lint", -] } -frontend-deploy = { cmd = "python scripts/deploy_frontend.py", cwd = ".", depends_on = [ - "backend-collect-statics", - "frontend-build", -] } -frontend-dev = { cmd = "npm run dev", cwd = "frontend" } -frontend-format = { cmd = "npm run format", cwd = "frontend" } -frontend-install = { cmd = "npm install", cwd = "frontend" } -frontend-lint = { cmd = "npm run lint", cwd = "frontend", depends_on = [ - "frontend-install", -] } -terraform-format = { cmd = "terraform fmt", cwd = "terraform" } - -[dependencies] -awscli = ">=2.15.36,<2.16" -git = ">=2.44.0,<2.45" -nodejs = ">=20.9.0,<20.10" -openjdk = ">=21.0.2,<21.1" -pre-commit = ">=3.7.0,<3.8" -python = ">=3.11.0,<3.12" -terraform = ">=1.7.5,<1.8" - -[pypi-dependencies] -boto3 = "*" -click = "*" -colorlog = "*" -django = "*" -django-allauth = "*" -django-cors-headers = "*" -django-environ = "*" -django-ninja = "*" -psycopg2-binary = "*" -python-dotenv = "*" -ruff = "*" -uvicorn = "*" diff --git a/scripts/deploy_frontend.py b/scripts/deploy_frontend.py deleted file mode 100644 index d67760b..0000000 --- a/scripts/deploy_frontend.py +++ /dev/null @@ -1,89 +0,0 @@ -import mimetypes -import sys -import time -from concurrent.futures import ThreadPoolExecutor, wait -from pathlib import Path - -import boto3 -import click - - -def get_ssm_parameter(name): - # get ssm parameter - client = boto3.client("ssm", region_name="us-east-1") - response = client.get_parameter(Name=name) - return response["Parameter"]["Value"] - - -def upload_file_to_s3(parent: Path, file: Path, bucket: str, subdir: Path, s3): - if file.is_file(): - # detect content type - content_type = mimetypes.guess_type(str(file))[0] - if content_type is None: - content_type = "application/octet-stream" - fp = ( - str(subdir / file.relative_to(parent)) - if subdir - else str(file.relative_to(parent)) - ) - s3.upload_file( - Filename=str(file), - Bucket=bucket, - Key=fp, - ExtraArgs={"ContentType": content_type}, - ) - click.echo(f"Uploaded {file} to s3://{bucket}/{fp}") - - -def upload_directory_to_s3(bucket: str, path: Path, subdir: Path = Path(".")): - with ThreadPoolExecutor(max_workers=20) as executor: - futures = [] - client = boto3.client("s3") - for file in path.rglob("*"): - future = executor.submit( - upload_file_to_s3, path, file, bucket, subdir, client - ) - futures.append(future) - - # Wait for all futures to complete - wait(futures) - - -def create_cloudfront_invalidation(distribution_id: str): - client = boto3.client("cloudfront") - client.create_invalidation( - DistributionId=distribution_id, - InvalidationBatch={ - "Paths": {"Quantity": 1, "Items": ["/*"]}, - "CallerReference": time.strftime("%Y%m%d%H%M%S"), - }, - ) - click.echo(f"Created CloudFront invalidation for {distribution_id}") - - -@click.command() -def deploy_frontend(): - click.echo("Deploying frontend") - # check frontend is built - for subdir, path in [ - (Path("./"), Path("frontend/dist")), - (Path("static"), Path("backend/staticfiles")), - ]: - if not path.exists(): - click.echo( - f"{path} is not built." - " Run `pixi run frontend-build` " - "or `pixi run backend-collect-statics`" - ) - sys.exit(1) - target_bucket = get_ssm_parameter("/resume/s3/bucket") - # upload to s3 - upload_directory_to_s3(target_bucket, path, subdir) - # reset cloudfront distribution - cloudfront_distribution_id = get_ssm_parameter("/resume/cdn/distribution_id") - create_cloudfront_invalidation(cloudfront_distribution_id) - click.echo("Deployment complete") - - -if __name__ == "__main__": - deploy_frontend.main() diff --git a/scripts/run_task.py b/scripts/run_task.py deleted file mode 100644 index 8b7577d..0000000 --- a/scripts/run_task.py +++ /dev/null @@ -1,67 +0,0 @@ -import boto3 -import click - - -@click.command() -@click.option("--task-definition", required=True, help="Name of the task definition") -@click.option("--command", required=True, help="Command to override in the task") -@click.option("--cluster", required=True, help="Name of the ECS cluster") -def run_task(task_definition, command, cluster): - ecs_client = boto3.client("ecs") - response = ecs_client.run_task( - cluster=cluster, - taskDefinition=task_definition, - networkConfiguration={ - "awsvpcConfiguration": { - "subnets": ["subnet-0d312fb2adaf1b85f"], - "securityGroups": [ - "sg-0411c5d85b23bf4ff", - ], - "assignPublicIp": "ENABLED", - } - }, - overrides={ - "containerOverrides": [{"name": "backend-api", "command": command.split()}] - }, - ) - task_arn = response["tasks"][0]["taskArn"] - wait_on_task_stop(cluster, task_arn) - click.echo("Task stopped") - task_detail = fetch_task_detail(cluster=cluster, task_arn=task_arn) - targetContainer = next( - c for c in task_detail["containers"] if c["name"] == "backend-api" - ) - if task_detail["stopCode"] != "EssentialContainerExited": - raise click.ClickException(f"Task Stopped {task_detail['stoppedReason']}") - - if targetContainer.get("exitCode"): - if targetContainer["exitCode"] != 0: - raise click.ClickException( - f"Container exited with exit code {targetContainer['exitCode']}" - ) - if targetContainer.get("reason"): - raise click.ClickException(f"Container stopped {targetContainer['reason']}") - click.echo("Task completed") - - -def wait_on_task_stop(cluster: str, task_arn: str): - task_detail = fetch_task_detail(cluster, task_arn=task_arn) - notified_status = "" - while task_detail.get("lastStatus") != "STOPPED": - if task_detail.get("lastStatus") != notified_status: - click.echo( - f"[Task Status Changed] : {task_detail.get('notifiedStatus')}" - f" - {task_detail['lastStatus']}" - ) - notified_status = task_detail["lastStatus"] - task_detail = fetch_task_detail(cluster, task_detail["taskArn"]) - - -def fetch_task_detail(cluster: str, task_arn: str): - client = boto3.client("ecs") - tasks = client.describe_tasks(cluster=cluster, tasks=[task_arn]).get("tasks") - return tasks[0] - - -if __name__ == "__main__": - run_task() diff --git a/scripts/update_task.py b/scripts/update_task.py deleted file mode 100644 index a17087f..0000000 --- a/scripts/update_task.py +++ /dev/null @@ -1,43 +0,0 @@ -import boto3 -import click - - -@click.command() -@click.option("--task-definition", required=True, help="Name of the task definition") -@click.option("--container-name", required=True, help="Name of the container to update") -@click.option("--image", required=True, help="New image URI") -def update_task_definition(task_definition, container_name, image): - ecs = boto3.client("ecs") - - # Retrieve the current task definition - response = ecs.describe_task_definition(taskDefinition=task_definition) - current_task_def = response["taskDefinition"] - - # Create a new task definition with the updated image - new_task_def = {**current_task_def, "containerDefinitions": []} - - # Update the image for the specified container - for container_def in current_task_def["containerDefinitions"]: - if container_def["name"] == container_name: - container_def["image"] = image - new_task_def["containerDefinitions"].append(container_def) - new_task_def.pop("taskDefinitionArn") - new_task_def.pop("revision") - new_task_def.pop("status") - new_task_def.pop("requiresAttributes") - new_task_def.pop("compatibilities") - new_task_def.pop("registeredAt") - new_task_def.pop("registeredBy") - - # Register the new task definition - response = ecs.register_task_definition(**new_task_def) - new_task_def_arn = response["taskDefinition"]["taskDefinitionArn"] - - click.echo( - "Task definition updated successfully." - f" New task definition ARN: {new_task_def_arn}" - ) - - -if __name__ == "__main__": - update_task_definition() diff --git a/terraform/cloudfront.tf b/terraform/cloudfront.tf index 3c1a039..1640f95 100644 --- a/terraform/cloudfront.tf +++ b/terraform/cloudfront.tf @@ -25,20 +25,20 @@ resource "aws_cloudfront_distribution" "sync_svc_cube_cdn" { domain_name = local.api_domain_name origin_id = local.api_domain_name - vpc_origin_config { - vpc_origin_id = aws_cloudfront_vpc_origin.alb.id - origin_keepalive_timeout = 5 - origin_read_timeout = 30 - } - - # custom_origin_config { - # http_port = 80 - # https_port = 443 + # vpc_origin_config { + # vpc_origin_id = aws_cloudfront_vpc_origin.alb.id # origin_keepalive_timeout = 5 - # origin_protocol_policy = "match-viewer" # origin_read_timeout = 30 - # origin_ssl_protocols = ["TLSv1.2"] # } + + custom_origin_config { + http_port = 80 + https_port = 443 + origin_keepalive_timeout = 5 + origin_protocol_policy = "match-viewer" + origin_read_timeout = 30 + origin_ssl_protocols = ["TLSv1.2"] + } } default_cache_behavior { diff --git a/terraform/ecr.tf b/terraform/ecr.tf new file mode 100644 index 0000000..e360052 --- /dev/null +++ b/terraform/ecr.tf @@ -0,0 +1,33 @@ +resource "aws_ecr_repository" "sync_svc_cube_repo" { + name = "sync-svc-cube" + image_tag_mutability = "IMMUTABLE" + + image_scanning_configuration { + scan_on_push = true + } +} + +resource "aws_ecr_lifecycle_policy" "sync_svc_cube_lf_policy" { + repository = aws_ecr_repository.sync_svc_cube_repo.name + + policy = <