From d9e84f25678aaf257e0b1bca334cda680e7ef5eb Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Mon, 9 Nov 2020 12:56:37 +1300 Subject: [PATCH] refactor(python): Use Poetry for package management In CI, since the packages are now installed in a virtualenv rather than globally, we have to activate the virtualenv at the start of jobs. The cattrs package has to be kept back to before version 1.1.0 until we either upgrade to Python 3.7 or AWS CDK moves to a dependency which doesn't transitively depend on Python 3.7. Issue linked on the relevant pyproject.toml line. This merges the production dependencies of the backend and infra subdirectories, which is not ideal. Once subproject support arrives we should pull this apart, maybe keeping only the development and test dependencies in the root. To mitigate this in the meantime, bundle.bash pulls out only those dependencies which the Lambda function needs. --- .github/workflows/ci.yml | 56 +- README.md | 21 +- backend/bundle.bash | 19 + backend/endpoints/datasets/bundle.sh | 8 - .../{endpoints/datasets => }/requirements.txt | 0 infra/data_stores/data_lake_stack.py | 33 +- infra/requirements.txt | 6 - poetry.lock | 2033 +++++++++++++++++ poetry.toml | 2 + pyproject.toml | 40 + requirements-dev.txt | 10 - 11 files changed, 2146 insertions(+), 82 deletions(-) create mode 100755 backend/bundle.bash delete mode 100644 backend/endpoints/datasets/bundle.sh rename backend/{endpoints/datasets => }/requirements.txt (100%) delete mode 100644 infra/requirements.txt create mode 100644 poetry.lock create mode 100644 poetry.toml delete mode 100644 requirements-dev.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82bef6355e..5e01636a3a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,32 +22,31 @@ jobs: - name: Install Python dependencies run: | python -m pip install --upgrade pip - pip install -r requirements-dev.txt - pip install -r infra/requirements.txt - pip install -r backend/endpoints/datasets/requirements.txt + python -m pip install poetry + python -m poetry install - name: Check last commit message if: github.event_name == 'push' run: | - gitlint + poetry run gitlint - name: Check all commit messages in Pull Request if: github.event_name == 'pull_request' run: > - gitlint --commits + poetry run gitlint --commits origin/${{ github.base_ref }}..${{ github.event.pull_request.head.sha }} - name: Check Python code formatting run: | - black . --check --diff + poetry run black . --check --diff - name: Check Python code quality run: | - pylint backend/ infra/ + poetry run pylint backend/ infra/ - name: Check Python code import statements run: | - isort . --check --diff + poetry run isort . --check --diff test: @@ -69,12 +68,12 @@ jobs: - name: Install Python dependencies run: | python -m pip install --upgrade pip - pip install -r requirements-dev.txt - pip install -r infra/requirements.txt + python -m pip install poetry + python -m poetry install - name: Run unit tests run: | - pytest tests/ + poetry run pytest tests/ test-infra: @@ -96,9 +95,8 @@ jobs: - name: Install Python dependencies run: | python -m pip install --upgrade pip - pip install -r requirements-dev.txt - pip install -r infra/requirements.txt - pip install -r backend/endpoints/datasets/requirements.txt + python -m pip install poetry + python -m poetry install - name: Use Node.js 12.x for CDK deployment uses: actions/setup-node@v2.1.2 @@ -110,7 +108,7 @@ jobs: run: npm install -g aws-cdk - name: Print CDK version - run: cdk --version + run: poetry run cdk --version - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 @@ -128,21 +126,21 @@ jobs: - name: Deploy AWS stack for testing run: | - cdk bootstrap aws://unknown-account/ap-southeast-2 - cdk deploy --require-approval never geospatial-data-lake + poetry run cdk bootstrap aws://unknown-account/ap-southeast-2 + poetry run cdk deploy --require-approval never geospatial-data-lake working-directory: infra - name: Run AWS infra tests run: | - pytest infra/tests/ + poetry run pytest infra/tests/ - name: Run AWS backend tests run: | - pytest backend/tests/ + poetry run pytest backend/tests/ - name: Destroy AWS stack used for testing run: | - cdk destroy --force geospatial-data-lake + poetry run cdk destroy --force geospatial-data-lake working-directory: infra @@ -167,8 +165,8 @@ jobs: - name: Install Python dependencies run: | python -m pip install --upgrade pip - pip install -r requirements-dev.txt - pip install -r infra/requirements.txt + python -m pip install poetry + python -m poetry install --no-dev - name: Use Node.js 12.x for CDK deployment uses: actions/setup-node@v2.1.2 @@ -180,7 +178,7 @@ jobs: run: npm install -g aws-cdk - name: Print CDK version - run: cdk --version + run: poetry run cdk --version # NONPROD DEPLOYMENT - name: (NonProd) Configure AWS credentials @@ -199,9 +197,11 @@ jobs: if: > github.ref == 'refs/heads/master' && github.repository == 'linz/geospatial-data-lake' + env: + DEPLOY_ENV: nonprod run: | - cdk bootstrap aws://unknown-account/ap-southeast-2 - DEPLOY_ENV=nonprod cdk deploy --require-approval never geospatial-data-lake + poetry run cdk bootstrap aws://unknown-account/ap-southeast-2 + poetry run cdk deploy --require-approval never geospatial-data-lake working-directory: infra # PROD DEPLOYMENT @@ -221,7 +221,9 @@ jobs: if: > startsWith(github.ref, 'release') && github.repository == 'linz/geospatial-data-lake' + env: + DEPLOY_ENV: prod run: | - cdk bootstrap aws://unknown-account/ap-southeast-2 - DEPLOY_ENV=prod cdk deploy --require-approval never geospatial-data-lake + poetry run cdk bootstrap aws://unknown-account/ap-southeast-2 + poetry run cdk deploy --require-approval never geospatial-data-lake working-directory: infra diff --git a/README.md b/README.md index 86b6ab6fd0..599be8d5ec 100644 --- a/README.md +++ b/README.md @@ -14,12 +14,19 @@ $ python3 -m venv .venv $ source .venv/bin/activate ``` -* Upgrade pip and install the required dependencies +* Upgrade pip ```bash $ pip install --upgrade pip ``` +* [Install Poetry](https://python-poetry.org/docs/#installation) + +* Install the dependencies: + +```bash +$ poetry install +``` ## AWS CDK Environment (AWS Infrastructure) * Install NVM (use latest version) @@ -50,12 +57,6 @@ $ npm install -g aws-cdk ## AWS Infrastructure Deployment (CDK Stack) -* Install Python CDK dependencies - -```bash -$ pip install -r infra/requirements.txt -``` - * Get AWS credentials (see: https://www.npmjs.com/package/aws-azure-login) ```bash @@ -72,12 +73,6 @@ $ cdk deploy --profile ## Development -* Install Python development dependencies - -```bash -$ pip install -r requirements-dev.txt -``` - * Install commit-msg git hook ```bash diff --git a/backend/bundle.bash b/backend/bundle.bash new file mode 100755 index 0000000000..72c3c6fc15 --- /dev/null +++ b/backend/bundle.bash @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -o errexit -o noclobber -o nounset + +python -m venv .venv +. .venv/bin/activate +python -m pip install --upgrade pip +python -m pip install poetry + +work_dir="$(mktemp --directory)" +all_requirements_file="${work_dir}/all-requirements.txt" +backend_requirements_file="${work_dir}/backend-requirements.txt" + +# Get requirements file for entries in requirements.txt +poetry export --output="$all_requirements_file" --without-hashes +grep --file=./requirements.txt "$all_requirements_file" > "$backend_requirements_file" + +pip install --requirement="$backend_requirements_file" --target=/asset-output +cp --archive --update --verbose ./endpoints /asset-output/ diff --git a/backend/endpoints/datasets/bundle.sh b/backend/endpoints/datasets/bundle.sh deleted file mode 100644 index 9b2a11188f..0000000000 --- a/backend/endpoints/datasets/bundle.sh +++ /dev/null @@ -1,8 +0,0 @@ -set -o errexit - -pip install --requirement=datasets/requirements.txt --target=/asset-output -mkdir --parents /asset-output/endpoints/datasets -touch /asset-output/endpoints/__init__.py -touch /asset-output/endpoints/datasets/__init__.py -cp --archive --update --verbose datasets/*.py /asset-output/endpoints/datasets/ -cp --archive --update --verbose utils.py /asset-output/endpoints/ diff --git a/backend/endpoints/datasets/requirements.txt b/backend/requirements.txt similarity index 100% rename from backend/endpoints/datasets/requirements.txt rename to backend/requirements.txt diff --git a/infra/data_stores/data_lake_stack.py b/infra/data_stores/data_lake_stack.py index 8831cb6a8d..12a2dac5f4 100644 --- a/infra/data_stores/data_lake_stack.py +++ b/infra/data_stores/data_lake_stack.py @@ -50,25 +50,22 @@ def __init__(self, scope: core.Construct, id: str, **kwargs) -> None: Tags.of(db_datasets_table).add("ApplicationLayer", "application-db") # Lambda Handler Functions - lambda_path = "../backend/endpoints/datasets" - dataset_handler_function = aws_lambda.Function( - self, - "datasets-endpoint-function", - function_name="datasets-endpoint", - handler="endpoints.datasets.entrypoint.lambda_handler", - runtime=aws_lambda.Runtime.PYTHON_3_6, - code=aws_lambda.Code.from_asset( - path=os.path.dirname(lambda_path), - bundling=core.BundlingOptions( - image=aws_lambda.Runtime.PYTHON_3_6.bundling_docker_image, # pylint:disable=no-member - command=[ - "bash", - "-c", - open(f"{lambda_path}/bundle.sh", "r").read(), - ], + project_path = ".." + with open(os.path.join(project_path, "backend/bundle.bash"), "r") as bundler: + dataset_handler_function = aws_lambda.Function( + self, + "datasets-endpoint-function", + function_name="datasets-endpoint", + handler="endpoints.datasets.entrypoint.lambda_handler", + runtime=aws_lambda.Runtime.PYTHON_3_6, + code=aws_lambda.Code.from_asset( + path=project_path, + bundling=core.BundlingOptions( + image=aws_lambda.Runtime.PYTHON_3_6.bundling_docker_image, # pylint:disable=no-member + command=["bash", "-c", bundler.read()], + ), ), - ), - ) + ) db_datasets_table.add_global_secondary_index( index_name="datasets_title", partition_key=aws_dynamodb.Attribute(name="sk", type=aws_dynamodb.AttributeType.STRING), diff --git a/infra/requirements.txt b/infra/requirements.txt deleted file mode 100644 index 42a8a0a5ef..0000000000 --- a/infra/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -aws-cdk.aws-s3 -aws-cdk.aws-iam -aws-cdk.aws-dynamodb -aws-cdk.aws-lambda -awscli -jsonschema diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 0000000000..50ca9d1490 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,2033 @@ +[[package]] +name = "appdirs" +version = "1.4.4" +description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "arrow" +version = "0.15.5" +description = "Better dates & times for Python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +python-dateutil = "*" + +[[package]] +name = "astroid" +version = "2.4.2" +description = "An abstract syntax tree for Python with inference support." +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +lazy-object-proxy = ">=1.4.0,<1.5.0" +six = ">=1.12,<2.0" +typed-ast = {version = ">=1.4.0,<1.5", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""} +wrapt = ">=1.11,<2.0" + +[[package]] +name = "atomicwrites" +version = "1.4.0" +description = "Atomic file writes." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "attrs" +version = "20.3.0" +description = "Classes Without Boilerplate" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "furo", "sphinx", "pre-commit"] +docs = ["furo", "sphinx", "zope.interface"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"] +tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"] + +[[package]] +name = "aws-cdk.assets" +version = "1.71.0" +description = "This module is deprecated. All types are now available under the core module" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.core" = "1.71.0" +"aws-cdk.cx-api" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.assets" +version = "1.72.0" +description = "This module is deprecated. All types are now available under the core module" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.core" = "1.72.0" +"aws-cdk.cx-api" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-applicationautoscaling" +version = "1.71.0" +description = "The CDK Construct Library for AWS::ApplicationAutoScaling" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-autoscaling-common" = "1.71.0" +"aws-cdk.aws-cloudwatch" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-applicationautoscaling" +version = "1.72.0" +description = "The CDK Construct Library for AWS::ApplicationAutoScaling" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-autoscaling-common" = "1.72.0" +"aws-cdk.aws-cloudwatch" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-autoscaling-common" +version = "1.71.0" +description = "Common implementation package for @aws-cdk/aws-autoscaling and @aws-cdk/aws-applicationautoscaling" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-autoscaling-common" +version = "1.72.0" +description = "Common implementation package for @aws-cdk/aws-autoscaling and @aws-cdk/aws-applicationautoscaling" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-cloudformation" +version = "1.71.0" +description = "The CDK Construct Library for AWS::CloudFormation" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-lambda" = "1.71.0" +"aws-cdk.aws-s3" = "1.71.0" +"aws-cdk.aws-sns" = "1.71.0" +"aws-cdk.core" = "1.71.0" +"aws-cdk.cx-api" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-cloudformation" +version = "1.72.0" +description = "The CDK Construct Library for AWS::CloudFormation" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-lambda" = "1.72.0" +"aws-cdk.aws-s3" = "1.72.0" +"aws-cdk.aws-sns" = "1.72.0" +"aws-cdk.core" = "1.72.0" +"aws-cdk.cx-api" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-cloudwatch" +version = "1.71.0" +description = "The CDK Construct Library for AWS::CloudWatch" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-cloudwatch" +version = "1.72.0" +description = "The CDK Construct Library for AWS::CloudWatch" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-codeguruprofiler" +version = "1.71.0" +description = "The CDK Construct Library for AWS::CodeGuruProfiler" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-codeguruprofiler" +version = "1.72.0" +description = "The CDK Construct Library for AWS::CodeGuruProfiler" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-dynamodb" +version = "1.71.0" +description = "The CDK Construct Library for AWS::DynamoDB" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-applicationautoscaling" = "1.71.0" +"aws-cdk.aws-cloudwatch" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-kms" = "1.71.0" +"aws-cdk.aws-lambda" = "1.71.0" +"aws-cdk.core" = "1.71.0" +"aws-cdk.custom-resources" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-dynamodb" +version = "1.72.0" +description = "The CDK Construct Library for AWS::DynamoDB" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-applicationautoscaling" = "1.72.0" +"aws-cdk.aws-cloudwatch" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-kms" = "1.72.0" +"aws-cdk.aws-lambda" = "1.72.0" +"aws-cdk.core" = "1.72.0" +"aws-cdk.custom-resources" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-ec2" +version = "1.71.0" +description = "The CDK Construct Library for AWS::EC2" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.assets" = "1.71.0" +"aws-cdk.aws-cloudwatch" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-kms" = "1.71.0" +"aws-cdk.aws-logs" = "1.71.0" +"aws-cdk.aws-s3" = "1.71.0" +"aws-cdk.aws-s3-assets" = "1.71.0" +"aws-cdk.aws-ssm" = "1.71.0" +"aws-cdk.cloud-assembly-schema" = "1.71.0" +"aws-cdk.core" = "1.71.0" +"aws-cdk.cx-api" = "1.71.0" +"aws-cdk.region-info" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-ec2" +version = "1.72.0" +description = "The CDK Construct Library for AWS::EC2" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.assets" = "1.72.0" +"aws-cdk.aws-cloudwatch" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-kms" = "1.72.0" +"aws-cdk.aws-logs" = "1.72.0" +"aws-cdk.aws-s3" = "1.72.0" +"aws-cdk.aws-s3-assets" = "1.72.0" +"aws-cdk.aws-ssm" = "1.72.0" +"aws-cdk.cloud-assembly-schema" = "1.72.0" +"aws-cdk.core" = "1.72.0" +"aws-cdk.cx-api" = "1.72.0" +"aws-cdk.region-info" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-efs" +version = "1.71.0" +description = "The CDK Construct Library for AWS::EFS" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-ec2" = "1.71.0" +"aws-cdk.aws-kms" = "1.71.0" +"aws-cdk.cloud-assembly-schema" = "1.71.0" +"aws-cdk.core" = "1.71.0" +"aws-cdk.cx-api" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-efs" +version = "1.72.0" +description = "The CDK Construct Library for AWS::EFS" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-ec2" = "1.72.0" +"aws-cdk.aws-kms" = "1.72.0" +"aws-cdk.cloud-assembly-schema" = "1.72.0" +"aws-cdk.core" = "1.72.0" +"aws-cdk.cx-api" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-events" +version = "1.71.0" +description = "Amazon EventBridge Construct Library" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-events" +version = "1.72.0" +description = "Amazon EventBridge Construct Library" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-iam" +version = "1.71.0" +description = "CDK routines for easily assigning correct and minimal IAM permissions" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.core" = "1.71.0" +"aws-cdk.region-info" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-iam" +version = "1.72.0" +description = "CDK routines for easily assigning correct and minimal IAM permissions" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.core" = "1.72.0" +"aws-cdk.region-info" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-kms" +version = "1.71.0" +description = "The CDK Construct Library for AWS::KMS" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-kms" +version = "1.72.0" +description = "The CDK Construct Library for AWS::KMS" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-lambda" +version = "1.71.0" +description = "The CDK Construct Library for AWS::Lambda" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-applicationautoscaling" = "1.71.0" +"aws-cdk.aws-cloudwatch" = "1.71.0" +"aws-cdk.aws-codeguruprofiler" = "1.71.0" +"aws-cdk.aws-ec2" = "1.71.0" +"aws-cdk.aws-efs" = "1.71.0" +"aws-cdk.aws-events" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-logs" = "1.71.0" +"aws-cdk.aws-s3" = "1.71.0" +"aws-cdk.aws-s3-assets" = "1.71.0" +"aws-cdk.aws-sqs" = "1.71.0" +"aws-cdk.core" = "1.71.0" +"aws-cdk.cx-api" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-lambda" +version = "1.72.0" +description = "The CDK Construct Library for AWS::Lambda" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-applicationautoscaling" = "1.72.0" +"aws-cdk.aws-cloudwatch" = "1.72.0" +"aws-cdk.aws-codeguruprofiler" = "1.72.0" +"aws-cdk.aws-ec2" = "1.72.0" +"aws-cdk.aws-efs" = "1.72.0" +"aws-cdk.aws-events" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-logs" = "1.72.0" +"aws-cdk.aws-s3" = "1.72.0" +"aws-cdk.aws-s3-assets" = "1.72.0" +"aws-cdk.aws-sqs" = "1.72.0" +"aws-cdk.core" = "1.72.0" +"aws-cdk.cx-api" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-logs" +version = "1.71.0" +description = "The CDK Construct Library for AWS::Logs" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-cloudwatch" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-s3-assets" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-logs" +version = "1.72.0" +description = "The CDK Construct Library for AWS::Logs" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-cloudwatch" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-s3-assets" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-s3" +version = "1.71.0" +description = "The CDK Construct Library for AWS::S3" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-events" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-kms" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-s3" +version = "1.72.0" +description = "The CDK Construct Library for AWS::S3" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-events" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-kms" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-s3-assets" +version = "1.71.0" +description = "Deploy local files and directories to S3" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.assets" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-kms" = "1.71.0" +"aws-cdk.aws-s3" = "1.71.0" +"aws-cdk.core" = "1.71.0" +"aws-cdk.cx-api" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-s3-assets" +version = "1.72.0" +description = "Deploy local files and directories to S3" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.assets" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-kms" = "1.72.0" +"aws-cdk.aws-s3" = "1.72.0" +"aws-cdk.core" = "1.72.0" +"aws-cdk.cx-api" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-sns" +version = "1.71.0" +description = "The CDK Construct Library for AWS::SNS" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-cloudwatch" = "1.71.0" +"aws-cdk.aws-events" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-kms" = "1.71.0" +"aws-cdk.aws-sqs" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-sns" +version = "1.72.0" +description = "The CDK Construct Library for AWS::SNS" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-cloudwatch" = "1.72.0" +"aws-cdk.aws-events" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-kms" = "1.72.0" +"aws-cdk.aws-sqs" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-sqs" +version = "1.71.0" +description = "The CDK Construct Library for AWS::SQS" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-cloudwatch" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-kms" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-sqs" +version = "1.72.0" +description = "The CDK Construct Library for AWS::SQS" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-cloudwatch" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-kms" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-ssm" +version = "1.71.0" +description = "The CDK Construct Library for AWS::SSM" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-kms" = "1.71.0" +"aws-cdk.cloud-assembly-schema" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.aws-ssm" +version = "1.72.0" +description = "The CDK Construct Library for AWS::SSM" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-kms" = "1.72.0" +"aws-cdk.cloud-assembly-schema" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.cloud-assembly-schema" +version = "1.71.0" +description = "Cloud Assembly Schema" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.cloud-assembly-schema" +version = "1.72.0" +description = "Cloud Assembly Schema" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.core" +version = "1.71.0" +description = "AWS Cloud Development Kit Core Library" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.cloud-assembly-schema" = "1.71.0" +"aws-cdk.cx-api" = "1.71.0" +"aws-cdk.region-info" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.core" +version = "1.72.0" +description = "AWS Cloud Development Kit Core Library" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.cloud-assembly-schema" = "1.72.0" +"aws-cdk.cx-api" = "1.72.0" +"aws-cdk.region-info" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.custom-resources" +version = "1.71.0" +description = "Constructs for implementing CDK custom resources" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-cloudformation" = "1.71.0" +"aws-cdk.aws-iam" = "1.71.0" +"aws-cdk.aws-lambda" = "1.71.0" +"aws-cdk.aws-logs" = "1.71.0" +"aws-cdk.aws-sns" = "1.71.0" +"aws-cdk.core" = "1.71.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.custom-resources" +version = "1.72.0" +description = "Constructs for implementing CDK custom resources" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.aws-cloudformation" = "1.72.0" +"aws-cdk.aws-iam" = "1.72.0" +"aws-cdk.aws-lambda" = "1.72.0" +"aws-cdk.aws-logs" = "1.72.0" +"aws-cdk.aws-sns" = "1.72.0" +"aws-cdk.core" = "1.72.0" +constructs = ">=3.2.0,<4.0.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.cx-api" +version = "1.71.0" +description = "Cloud executable protocol" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.cloud-assembly-schema" = "1.71.0" +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.cx-api" +version = "1.72.0" +description = "Cloud executable protocol" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +"aws-cdk.cloud-assembly-schema" = "1.72.0" +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.region-info" +version = "1.71.0" +description = "AWS region information, such as service principal names" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "aws-cdk.region-info" +version = "1.72.0" +description = "AWS region information, such as service principal names" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "awscli" +version = "1.18.173" +description = "Universal Command Line Environment for AWS." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +botocore = "1.19.13" +colorama = {version = ">=0.2.5,<0.4.4", markers = "python_version != \"3.4\""} +docutils = ">=0.10,<0.16" +PyYAML = {version = ">=3.10,<5.4", markers = "python_version != \"3.4\""} +rsa = {version = ">=3.1.2,<=4.5.0", markers = "python_version != \"3.4\""} +s3transfer = ">=0.3.0,<0.4.0" + +[[package]] +name = "black" +version = "20.8b0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +appdirs = "*" +attrs = ">=18.1.0" +click = ">=6.5" +dataclasses = {version = ">=0.6", markers = "python_version < \"3.7\""} +mypy-extensions = ">=0.4.3" +pathspec = ">=0.6,<1" +regex = ">=2020.1.8" +toml = ">=0.9.4" +typed-ast = ">=1.4.0" +typing-extensions = ">=3.7.4" + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.3.2)", "aiohttp-cors"] + +[[package]] +name = "boto3" +version = "1.16.13" +description = "The AWS SDK for Python" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +botocore = ">=1.19.13,<1.20.0" +jmespath = ">=0.7.1,<1.0.0" +s3transfer = ">=0.3.0,<0.4.0" + +[[package]] +name = "botocore" +version = "1.19.13" +description = "Low-level, data-driven core of boto 3." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +jmespath = ">=0.7.1,<1.0.0" +python-dateutil = ">=2.1,<3.0.0" +urllib3 = {version = ">=1.25.4,<1.26", markers = "python_version != \"3.4\""} + +[[package]] +name = "cattrs" +version = "1.0.0" +description = "Composable complex class support for attrs." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +attrs = ">=17.3" + +[package.extras] +dev = ["bumpversion", "wheel", "watchdog", "flake8", "tox", "coverage", "sphinx", "pytest", "hypothesis", "pendulum"] + +[[package]] +name = "cfgv" +version = "3.0.0" +description = "Validate configuration and produce human readable error messages." +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "click" +version = "7.0" +description = "Composable command line interface toolkit" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "colorama" +version = "0.4.3" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "constructs" +version = "3.2.11" +description = "A programming model for composable configuration" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +jsii = ">=1.14.0,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "constructs" +version = "3.2.17" +description = "A programming model for composable configuration" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +jsii = ">=1.14.1,<2.0.0" +publication = ">=0.0.3" + +[[package]] +name = "dataclasses" +version = "0.7" +description = "A backport of the dataclasses module for Python 3.6" +category = "dev" +optional = false +python-versions = ">=3.6, <3.7" + +[[package]] +name = "distlib" +version = "0.3.1" +description = "Distribution utilities" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "docutils" +version = "0.15.2" +description = "Docutils -- Python Documentation Utilities" +category = "main" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "filelock" +version = "3.0.12" +description = "A platform independent file lock." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "gitlint" +version = "0.14.0" +description = "Git commit message linter written in python, checks your commit messages for style." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +arrow = "0.15.5" +Click = "7.0" +sh = {version = "1.12.14", markers = "sys_platform != \"win32\""} + +[[package]] +name = "identify" +version = "1.5.9" +description = "File identification library for Python" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.extras] +license = ["editdistance"] + +[[package]] +name = "importlib-metadata" +version = "2.0.0" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx", "rst.linker"] +testing = ["packaging", "pep517", "importlib-resources (>=1.3)"] + +[[package]] +name = "importlib-resources" +version = "3.3.0" +description = "Read resources from Python packages" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" + +[package.dependencies] +zipp = {version = ">=0.4", markers = "python_version < \"3.8\""} + +[package.extras] +docs = ["sphinx", "rst.linker", "jaraco.packaging"] + +[[package]] +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "isort" +version = "5.6.4" +description = "A Python utility / library to sort Python imports." +category = "dev" +optional = false +python-versions = ">=3.6,<4.0" + +[package.extras] +pipfile_deprecated_finder = ["pipreqs", "requirementslib"] +requirements_deprecated_finder = ["pipreqs", "pip-api"] +colors = ["colorama (>=0.4.3,<0.5.0)"] + +[[package]] +name = "jmespath" +version = "0.10.0" +description = "JSON Matching Expressions" +category = "main" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "jsii" +version = "1.14.0" +description = "Python client for jsii runtime" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +attrs = ">=20.1,<21.0" +cattrs = ">=1.0,<2.0" +importlib-resources = {version = "*", markers = "python_version < \"3.7\""} +python-dateutil = "*" +typing-extensions = ">=3.7,<4.0" + +[[package]] +name = "jsii" +version = "1.14.1" +description = "Python client for jsii runtime" +category = "main" +optional = false +python-versions = "~=3.6" + +[package.dependencies] +attrs = ">=20.1,<21.0" +cattrs = {version = ">=1.0.0,<1.1.0", markers = "python_version < \"3.7\""} +importlib-resources = {version = "*", markers = "python_version < \"3.7\""} +python-dateutil = "*" +typing-extensions = ">=3.7,<4.0" + +[[package]] +name = "jsonschema" +version = "3.2.0" +description = "An implementation of JSON Schema validation for Python" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +attrs = ">=17.4.0" +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +pyrsistent = ">=0.14.0" +six = ">=1.11.0" + +[package.extras] +format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"] +format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"] + +[[package]] +name = "lazy-object-proxy" +version = "1.4.3" +description = "A fast and thorough lazy object proxy." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "mccabe" +version = "0.6.1" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "nodeenv" +version = "1.5.0" +description = "Node.js virtual environment builder" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "packaging" +version = "20.4" +description = "Core utilities for Python packages" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +pyparsing = ">=2.0.2" +six = "*" + +[[package]] +name = "pathspec" +version = "0.8.1" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pluggy" +version = "0.13.1" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.dependencies] +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} + +[package.extras] +dev = ["pre-commit", "tox"] + +[[package]] +name = "pre-commit" +version = "2.1.1" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +importlib-resources = {version = "*", markers = "python_version < \"3.7\""} +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +toml = "*" +virtualenv = ">=15.2" + +[[package]] +name = "publication" +version = "0.0.3" +description = "Publication helps you maintain public-api-friendly modules by preventing unintentional access to private implementation details via introspection." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "py" +version = "1.9.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pyasn1" +version = "0.4.8" +description = "ASN.1 types and codecs" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pylint" +version = "2.6.0" +description = "python code static checker" +category = "dev" +optional = false +python-versions = ">=3.5.*" + +[package.dependencies] +astroid = ">=2.4.0,<=2.5" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +isort = ">=4.2.5,<6" +mccabe = ">=0.6,<0.7" +toml = ">=0.7.1" + +[[package]] +name = "pynamodb" +version = "4.3.3" +description = "A Pythonic Interface to DynamoDB" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +botocore = ">=1.12.54" +python-dateutil = ">=2.1,<3.0.0" +six = "*" + +[package.extras] +signals = ["blinker (>=1.3,<2.0)"] + +[[package]] +name = "pyparsing" +version = "2.4.7" +description = "Python parsing module" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "pyrsistent" +version = "0.17.3" +description = "Persistent/Functional/Immutable data structures" +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "pytest" +version = "6.1.2" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} +attrs = ">=17.4.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<1.0" +py = ">=1.8.2" +toml = "*" + +[package.extras] +checkqa_mypy = ["mypy (==0.780)"] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] + +[[package]] +name = "python-dateutil" +version = "2.8.1" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pyyaml" +version = "5.3.1" +description = "YAML parser and emitter for Python" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "regex" +version = "2020.10.28" +description = "Alternative regular expression module, to replace re." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "rsa" +version = "4.5" +description = "Pure-Python RSA implementation" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" + +[package.dependencies] +pyasn1 = ">=0.1.3" + +[[package]] +name = "ruamel.yaml" +version = "0.15.100" +description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +docs = ["ryd"] +jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] + +[[package]] +name = "s3transfer" +version = "0.3.3" +description = "An Amazon S3 Transfer Manager" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +botocore = ">=1.12.36,<2.0a.0" + +[[package]] +name = "sh" +version = "1.12.14" +description = "Python subprocess replacement" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "six" +version = "1.15.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "typed-ast" +version = "1.4.1" +description = "a fork of Python 2 and 3 ast modules with type comment support" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "typing-extensions" +version = "3.7.4.3" +description = "Backported and Experimental Type Hints for Python 3.5+" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "urllib3" +version = "1.25.11" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" + +[package.extras] +brotli = ["brotlipy (>=0.6.0)"] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] + +[[package]] +name = "virtualenv" +version = "20.1.0" +description = "Virtual Python Environment builder" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.dependencies] +appdirs = ">=1.4.3,<2" +distlib = ">=0.3.1,<1" +filelock = ">=3.0.0,<4" +importlib-metadata = {version = ">=0.12,<3", markers = "python_version < \"3.8\""} +importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""} +six = ">=1.9.0,<2" + +[package.extras] +docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)"] +testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "pytest-xdist (>=1.31.0)", "packaging (>=20.0)", "xonsh (>=0.9.16)"] + +[[package]] +name = "wrapt" +version = "1.12.1" +description = "Module for decorators, wrappers and monkey patching." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "yamlfmt" +version = "1.1.0" +description = "An opinionated yaml formatter based on ruamel.yaml" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +"ruamel.yaml" = "<0.16" + +[[package]] +name = "yamllint" +version = "1.25.0" +description = "A linter for YAML files." +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.dependencies] +pathspec = ">=0.5.3" +pyyaml = "*" + +[[package]] +name = "zipp" +version = "3.4.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "jaraco.test (>=3.2.0)", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] + +[metadata] +lock-version = "1.1" +python-versions = "^3.6" +content-hash = "fce2d657dab25739086faf74c3957c0af4d1fa63ae322c0b3db8defa8c2c2272" + +[metadata.files] +appdirs = [ + {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"}, + {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"}, +] +arrow = [ + {file = "arrow-0.15.5-py2.py3-none-any.whl", hash = "sha256:70729bcc831da496ca3cb4b7e89472c8e2d27d398908155e0796179f6d2d41ee"}, + {file = "arrow-0.15.5.tar.gz", hash = "sha256:5390e464e2c5f76971b60ffa7ee29c598c7501a294bc9f5e6dadcb251a5d027b"}, +] +astroid = [ + {file = "astroid-2.4.2-py3-none-any.whl", hash = "sha256:bc58d83eb610252fd8de6363e39d4f1d0619c894b0ed24603b881c02e64c7386"}, + {file = "astroid-2.4.2.tar.gz", hash = "sha256:2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703"}, +] +atomicwrites = [ + {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, + {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, +] +attrs = [ + {file = "attrs-20.3.0-py2.py3-none-any.whl", hash = "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6"}, + {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"}, +] +"aws-cdk.assets" = [ + {file = "aws-cdk.assets-1.71.0.tar.gz", hash = "sha256:9e7e3a9932a44427c8505c32580f4191bddbf479332e92345e319658a2cfcef3"}, + {file = "aws_cdk.assets-1.71.0-py3-none-any.whl", hash = "sha256:6d1030a783a8a34071a9494ade03e7779a6c5a6acab3326eeb0795f2dbaa1266"}, + {file = "aws-cdk.assets-1.72.0.tar.gz", hash = "sha256:165af36248a2917b806accf622680cfc8c7dda19c3beb6930823292828c6734f"}, + {file = "aws_cdk.assets-1.72.0-py3-none-any.whl", hash = "sha256:d28060ada0af3c22683f216f91f2f1dad4db0307d0321704f300783d2a4d566e"}, +] +"aws-cdk.aws-applicationautoscaling" = [ + {file = "aws-cdk.aws-applicationautoscaling-1.71.0.tar.gz", hash = "sha256:19798f727e0b3ed8fef9b44b7b603b883af2294517adbea2e56246bcc3d3c380"}, + {file = "aws_cdk.aws_applicationautoscaling-1.71.0-py3-none-any.whl", hash = "sha256:d1872ed2178ff7d9029fc3ee8eb1583e5b78d798f753741dbfbfa53174a78604"}, + {file = "aws-cdk.aws-applicationautoscaling-1.72.0.tar.gz", hash = "sha256:22f69643e1e8bf4e806da3bec55ac17e117ea9f4ff914a595a10906b625876b5"}, + {file = "aws_cdk.aws_applicationautoscaling-1.72.0-py3-none-any.whl", hash = "sha256:d94acf7044ec298a234be622e35b73f108cdef0171faaf9763772304c0f87042"}, +] +"aws-cdk.aws-autoscaling-common" = [ + {file = "aws-cdk.aws-autoscaling-common-1.71.0.tar.gz", hash = "sha256:91308b803499a0f9ea4076e49456312bb639793b4a69905b05dbd6d2501226a9"}, + {file = "aws_cdk.aws_autoscaling_common-1.71.0-py3-none-any.whl", hash = "sha256:c47b0cf4aeed1b15c16e5ddca5e807211b2c4110bf46d5a3ed45ecf536942786"}, + {file = "aws-cdk.aws-autoscaling-common-1.72.0.tar.gz", hash = "sha256:772b6f93cb412af54f3219acd4fa0de42dbaaefb74e73bf3d9e333f850240be2"}, + {file = "aws_cdk.aws_autoscaling_common-1.72.0-py3-none-any.whl", hash = "sha256:20d7debf5255036c4337137e9c7bf7db1ea7c0272f92b30518477979e827572d"}, +] +"aws-cdk.aws-cloudformation" = [ + {file = "aws-cdk.aws-cloudformation-1.71.0.tar.gz", hash = "sha256:4e378653c7e7738f6f7bbf250aa0e3add895e89507b772162fe32bd37ae02073"}, + {file = "aws_cdk.aws_cloudformation-1.71.0-py3-none-any.whl", hash = "sha256:489d7649f13ce7ec3d0b4e303e8492db5d8136f7053c24ed5a79b445a13538d1"}, + {file = "aws-cdk.aws-cloudformation-1.72.0.tar.gz", hash = "sha256:59288908c825115a73e3e93c6adee24b4c44cbbb0500a79b8dea9208261597ee"}, + {file = "aws_cdk.aws_cloudformation-1.72.0-py3-none-any.whl", hash = "sha256:68d44dfe9b09b13ee796b8f0b8907a5bcb79e5cbd0cd4a3df132cf1096b832ed"}, +] +"aws-cdk.aws-cloudwatch" = [ + {file = "aws-cdk.aws-cloudwatch-1.71.0.tar.gz", hash = "sha256:12187915abd5445ff7d3f221f28f06db3e376e41c11f2b39f5abc3136829d1a6"}, + {file = "aws_cdk.aws_cloudwatch-1.71.0-py3-none-any.whl", hash = "sha256:5a0526c5c5d33d64279d283891e8489149fd628971671b4436b2978b14b1f00f"}, + {file = "aws-cdk.aws-cloudwatch-1.72.0.tar.gz", hash = "sha256:24882236ca9d912d222326fa819e10c7a561fce8453740163ec00707f251f86f"}, + {file = "aws_cdk.aws_cloudwatch-1.72.0-py3-none-any.whl", hash = "sha256:2162ad9016e5553ecfae996c3ac4945d1ef3a95b7b34e14181ab663bc9b1cde2"}, +] +"aws-cdk.aws-codeguruprofiler" = [ + {file = "aws-cdk.aws-codeguruprofiler-1.71.0.tar.gz", hash = "sha256:9d86815bc97edf30ca8e1504d2544667248189a3c2ad7a5aa3bf6d78a6beda4d"}, + {file = "aws_cdk.aws_codeguruprofiler-1.71.0-py3-none-any.whl", hash = "sha256:d7e6e105f1edb46cf5273acf23ce7f7bc98f26ffd4c3d1eef0488c8f9e26cbc3"}, + {file = "aws-cdk.aws-codeguruprofiler-1.72.0.tar.gz", hash = "sha256:12f5f8e25e30b1adb2423261078f2b6e5ea22af784ef46e7177612ff73468202"}, + {file = "aws_cdk.aws_codeguruprofiler-1.72.0-py3-none-any.whl", hash = "sha256:8f759c139af40a4a4f07ab2945caa9eadeb8f8fc9e8b1d45a63aa7c2b6de5c7c"}, +] +"aws-cdk.aws-dynamodb" = [ + {file = "aws-cdk.aws-dynamodb-1.71.0.tar.gz", hash = "sha256:37c1a4f70a4f7eff254fe221cba271efa8e32420631bdf581f0f21e9516b80e9"}, + {file = "aws_cdk.aws_dynamodb-1.71.0-py3-none-any.whl", hash = "sha256:9e94e04c75f878525094f4f31b36aa457417dd2131e4d8f038c1c8f0267e2df0"}, + {file = "aws-cdk.aws-dynamodb-1.72.0.tar.gz", hash = "sha256:344336b15723f1396a5d297654a57a92cca0e6ce0595e34444affad3a9db0863"}, + {file = "aws_cdk.aws_dynamodb-1.72.0-py3-none-any.whl", hash = "sha256:3c8d7ee429dc0d2051ad2f81cefd3c0fdd18edb0bbf6039579d119bda99f1c05"}, +] +"aws-cdk.aws-ec2" = [ + {file = "aws-cdk.aws-ec2-1.71.0.tar.gz", hash = "sha256:804185ba4d4c81711607cb97ceea1b0c1e6e879af718e5a21247fa815831fa53"}, + {file = "aws_cdk.aws_ec2-1.71.0-py3-none-any.whl", hash = "sha256:4d5aff77fcee9163219be35d989e32be2b722b26aba71404d1394e4bda7ad5ce"}, + {file = "aws-cdk.aws-ec2-1.72.0.tar.gz", hash = "sha256:8ee677b15b8ec83db9670a0d592b6fe4731bc6ecee18da39572aef25685b206b"}, + {file = "aws_cdk.aws_ec2-1.72.0-py3-none-any.whl", hash = "sha256:7c03f729dea63e5748ccd187543b1e7105152f79a959f334ec3d49c695e89bcb"}, +] +"aws-cdk.aws-efs" = [ + {file = "aws-cdk.aws-efs-1.71.0.tar.gz", hash = "sha256:a69d40bd95cd345faed75203f1537dbfb79650e525b798e28a3569c508707029"}, + {file = "aws_cdk.aws_efs-1.71.0-py3-none-any.whl", hash = "sha256:c970eef672bfe3518452fdb1dbf40586f8dd36decbcca0783ae7a75664a88509"}, + {file = "aws-cdk.aws-efs-1.72.0.tar.gz", hash = "sha256:5b369f72d7a79bf1321b2422cd7b8db6d5be382f17b11a770b48e8bab2860bfe"}, + {file = "aws_cdk.aws_efs-1.72.0-py3-none-any.whl", hash = "sha256:f3468a4a3877183ba1f90f0c8342854dd9115a16a499633364fafd223676cc5c"}, +] +"aws-cdk.aws-events" = [ + {file = "aws-cdk.aws-events-1.71.0.tar.gz", hash = "sha256:962c727a0f189fde9c61981d6e756d78a8ecced7b0689ce6a5c93d59553e9ff1"}, + {file = "aws_cdk.aws_events-1.71.0-py3-none-any.whl", hash = "sha256:38d64ada489896bd195a6f0b30dc4a233123823d144114f5c8492e9befc42a12"}, + {file = "aws-cdk.aws-events-1.72.0.tar.gz", hash = "sha256:f9cbbc8a7ad995d8c963a9e91d1f1fee20e53e57997040d6a4bdcb516c3b2a6c"}, + {file = "aws_cdk.aws_events-1.72.0-py3-none-any.whl", hash = "sha256:6786042ab47adcb35babe9f3a62784894c845d68f66bb83e1b843fff4f2fa2bf"}, +] +"aws-cdk.aws-iam" = [ + {file = "aws-cdk.aws-iam-1.71.0.tar.gz", hash = "sha256:676b2f7c02aa370b711069dc6dfc188235c65db9044b3c9d4681fa83795b02f1"}, + {file = "aws_cdk.aws_iam-1.71.0-py3-none-any.whl", hash = "sha256:6be9ab4738f342f55b5eff49a6486693f4a891ce7fb6132b73bfcc66eb20d009"}, + {file = "aws-cdk.aws-iam-1.72.0.tar.gz", hash = "sha256:05a46b87ae4ced7f6318ce9edcaffdfd6c0c2eaa8ed45d8acc02143c24a9792b"}, + {file = "aws_cdk.aws_iam-1.72.0-py3-none-any.whl", hash = "sha256:442b3e349114d965712c9c549b08c44ecb4ab82fd94748114489838afac89081"}, +] +"aws-cdk.aws-kms" = [ + {file = "aws-cdk.aws-kms-1.71.0.tar.gz", hash = "sha256:398be4ddb5aed6a77765a76542170cf364218c2e64a543f40541a0bde3dff505"}, + {file = "aws_cdk.aws_kms-1.71.0-py3-none-any.whl", hash = "sha256:d6cc10498b672871d7eda807b9d23bc4cfecfe396db8efb8bc32f0386380154a"}, + {file = "aws-cdk.aws-kms-1.72.0.tar.gz", hash = "sha256:cd7b0d71c2583f4bf77adc883bcee95cf8abbce166023cd3219e8c63cf42bdba"}, + {file = "aws_cdk.aws_kms-1.72.0-py3-none-any.whl", hash = "sha256:84066b4cddb79d67d826bff84e9b758aea3714e65d120f2ce4261b7f75ec3cd7"}, +] +"aws-cdk.aws-lambda" = [ + {file = "aws-cdk.aws-lambda-1.71.0.tar.gz", hash = "sha256:a577c1877455d9fa6e4e11cd1a95dabd9b2bbdd2e560db699047a3a22bb5b8f1"}, + {file = "aws_cdk.aws_lambda-1.71.0-py3-none-any.whl", hash = "sha256:118b8c54f2f78b3ea1eea1e199cbd7be2455b219d92d7882dc49de7b5e2d9ab5"}, + {file = "aws-cdk.aws-lambda-1.72.0.tar.gz", hash = "sha256:728e44ca64fda3c01dbeee1a048f7c671c8a7847df8b59ca7fbe4bc97600ec18"}, + {file = "aws_cdk.aws_lambda-1.72.0-py3-none-any.whl", hash = "sha256:c805a1f42be51ffc7dd0705d38fac9e0504496d34279d973938ec92ce851c012"}, +] +"aws-cdk.aws-logs" = [ + {file = "aws-cdk.aws-logs-1.71.0.tar.gz", hash = "sha256:f347402654008438bca78580f796e85dbdf2521ac5c3224cd3fc364a7ed7cf9d"}, + {file = "aws_cdk.aws_logs-1.71.0-py3-none-any.whl", hash = "sha256:a55d31c5eff40f1b07f62f1a52d063017e832d8bf4b838e0e6efba653ab65bff"}, + {file = "aws-cdk.aws-logs-1.72.0.tar.gz", hash = "sha256:47b5d00ef25da31209b8932fcf7f86d9b9914506e036195ea15979061a9ada54"}, + {file = "aws_cdk.aws_logs-1.72.0-py3-none-any.whl", hash = "sha256:fddec4f2bee535db20156b4cb8993395cdcb28a455d3d21caae806c8cd1cf1c2"}, +] +"aws-cdk.aws-s3" = [ + {file = "aws-cdk.aws-s3-1.71.0.tar.gz", hash = "sha256:d740ad6fb0713ce51f7db75166b83a589ca0dfc5ae159b708edd55d75d9cf98c"}, + {file = "aws_cdk.aws_s3-1.71.0-py3-none-any.whl", hash = "sha256:75c06090407078c952dfb606e4cd8c89d725510f3810285c0003eb6737f5cc4e"}, + {file = "aws-cdk.aws-s3-1.72.0.tar.gz", hash = "sha256:82d03ef753575a8c8ead4049a7d93ffa097c0ce9e4bbfafd562d5eb4a97a8133"}, + {file = "aws_cdk.aws_s3-1.72.0-py3-none-any.whl", hash = "sha256:fb9de1a0a30bca78d29d6f0620a601ccf1e8fb7c3a3e5dbaea97483bdd29108a"}, +] +"aws-cdk.aws-s3-assets" = [ + {file = "aws-cdk.aws-s3-assets-1.71.0.tar.gz", hash = "sha256:c8ee1ddb24f57d8092450532627658882555bc37ec11b03b57491cb0c8822156"}, + {file = "aws_cdk.aws_s3_assets-1.71.0-py3-none-any.whl", hash = "sha256:6776dfc96eb520b07ba85adbc7213c943f9ea7c739f1831f9801e1dacb28090f"}, + {file = "aws-cdk.aws-s3-assets-1.72.0.tar.gz", hash = "sha256:82c2f3e2a86b7383bd3096fdfd310e2bca9afcbadbeb9c49675cfc88891c04f5"}, + {file = "aws_cdk.aws_s3_assets-1.72.0-py3-none-any.whl", hash = "sha256:a3e574605658b097b40fe38952b12973c8f1e7522842877fa63de6a848e45514"}, +] +"aws-cdk.aws-sns" = [ + {file = "aws-cdk.aws-sns-1.71.0.tar.gz", hash = "sha256:ff76d04585b98abc4071516ea70f606a98e499f6bccda23737bcd8a4d4307dfe"}, + {file = "aws_cdk.aws_sns-1.71.0-py3-none-any.whl", hash = "sha256:42a890d16d2c95bf877766574e8929ecf96ebe8377f8f0e4b7faccd917b1833d"}, + {file = "aws-cdk.aws-sns-1.72.0.tar.gz", hash = "sha256:bf2fe01b5354d401d416187582010e65a1af4dfef8b539231f84237dd78829b4"}, + {file = "aws_cdk.aws_sns-1.72.0-py3-none-any.whl", hash = "sha256:0870c6ccbb420674f3ef3446b6ae8114eee7b6773ca70929344457d0256e3e45"}, +] +"aws-cdk.aws-sqs" = [ + {file = "aws-cdk.aws-sqs-1.71.0.tar.gz", hash = "sha256:8d8103f198b74f35853ec5bc971fd3afc47dbb5d9e04f12e258f45eda93105ec"}, + {file = "aws_cdk.aws_sqs-1.71.0-py3-none-any.whl", hash = "sha256:da19e5f3557c397d03320cca6a492871cf6d7dca56458ecfebad2039519e0df7"}, + {file = "aws-cdk.aws-sqs-1.72.0.tar.gz", hash = "sha256:8441911b4e0bb2a91750a2623961ff2fb853ee72ebd90fcdfc7ccea3a522a981"}, + {file = "aws_cdk.aws_sqs-1.72.0-py3-none-any.whl", hash = "sha256:b0cf7212946ec0b342d0e3fbc860492003160b20a53c08fc787b5f0a5f7eeb59"}, +] +"aws-cdk.aws-ssm" = [ + {file = "aws-cdk.aws-ssm-1.71.0.tar.gz", hash = "sha256:8aa44c34913ee176e5236ea064c5e29ea6324ef66ce4a450abf0aae55043e880"}, + {file = "aws_cdk.aws_ssm-1.71.0-py3-none-any.whl", hash = "sha256:bdda7995fab281c79a4a82a7ff999557b14bb2cc9e5d8df96f7143ccbaa0ae8a"}, + {file = "aws-cdk.aws-ssm-1.72.0.tar.gz", hash = "sha256:df9311f526e6e6fda320d58f094fb8671bb82d133f3720a9b66b7dec2c0ef4c1"}, + {file = "aws_cdk.aws_ssm-1.72.0-py3-none-any.whl", hash = "sha256:f6146c23ab5a43b1b880143c3402f3764517134b05fa67f89639811a3f807278"}, +] +"aws-cdk.cloud-assembly-schema" = [ + {file = "aws-cdk.cloud-assembly-schema-1.71.0.tar.gz", hash = "sha256:dc98e256844e4dab8cceb2f2e5899c22bd2bfb6fba685ccb2e73878c9ed374a2"}, + {file = "aws_cdk.cloud_assembly_schema-1.71.0-py3-none-any.whl", hash = "sha256:4b4ca7c17095685be48e142d61dc3c7c98f0ed2fced516bb670b3d98ee125af5"}, + {file = "aws-cdk.cloud-assembly-schema-1.72.0.tar.gz", hash = "sha256:302f5655261bf0781ce8480b82b35d47599915d78db6e0776613a6355ca7e959"}, + {file = "aws_cdk.cloud_assembly_schema-1.72.0-py3-none-any.whl", hash = "sha256:3c55c45c55bf9536d7718fdd588f4bb4c83555d123fc11548a0c1dfb3c44d8f4"}, +] +"aws-cdk.core" = [ + {file = "aws-cdk.core-1.71.0.tar.gz", hash = "sha256:25c93d30ced04c8d3ea84dc63ad3341b35397a441ca518766f9b4475a7fc1553"}, + {file = "aws_cdk.core-1.71.0-py3-none-any.whl", hash = "sha256:368b8cfde92f7d481722b813878a5fb5ffd5e7d0033cd0ca09aad8b63f8c6bdf"}, + {file = "aws-cdk.core-1.72.0.tar.gz", hash = "sha256:a25255250c2fb79de2741a22f79abb6ec78daca8e6067d0f480f40000a973c10"}, + {file = "aws_cdk.core-1.72.0-py3-none-any.whl", hash = "sha256:02b565e9de20dfa13c6a91160ba5f0748e127d78f1f66541c18843ed90320e2a"}, +] +"aws-cdk.custom-resources" = [ + {file = "aws-cdk.custom-resources-1.71.0.tar.gz", hash = "sha256:bc550473974077bf70af30741433c53b0f7a99aa08a2d475a7ba3b507bcbd1bd"}, + {file = "aws_cdk.custom_resources-1.71.0-py3-none-any.whl", hash = "sha256:25725f40ca28cf750fc835ad3a6f1b1c628aa7347841ee1313e67c23029ccf6f"}, + {file = "aws-cdk.custom-resources-1.72.0.tar.gz", hash = "sha256:2c524f89e283914147f2d8a9edcbd1e7920ed4114f841fa41f795638eec8c833"}, + {file = "aws_cdk.custom_resources-1.72.0-py3-none-any.whl", hash = "sha256:0908be0c5701e5076bd2c37762db3c7b32637c62d8d4b29ede92b0c6adff2f3b"}, +] +"aws-cdk.cx-api" = [ + {file = "aws-cdk.cx-api-1.71.0.tar.gz", hash = "sha256:38d8290722998daa83f5d484c8b91c9efa9fc9f03614768efe6cd7a9dfc3ebba"}, + {file = "aws_cdk.cx_api-1.71.0-py3-none-any.whl", hash = "sha256:bf6e9a4b57d248fc0680e084b36335a3ea86f8f1443043615072363685d757e7"}, + {file = "aws-cdk.cx-api-1.72.0.tar.gz", hash = "sha256:becfd1ded0f06f0e4a691c84bb6ef9c1256bfb45baf7d90ee70616f997ccf176"}, + {file = "aws_cdk.cx_api-1.72.0-py3-none-any.whl", hash = "sha256:0e543f9636ace9f7500e8a235f2cc5ceab0b4eb26e19354bff7c0f38a5bd1c39"}, +] +"aws-cdk.region-info" = [ + {file = "aws-cdk.region-info-1.71.0.tar.gz", hash = "sha256:48125eaa7015d1ece0222019c1a0a4f4d3da16057b27d359b3b28b612c05650f"}, + {file = "aws_cdk.region_info-1.71.0-py3-none-any.whl", hash = "sha256:9a75f1a835c396e637ec55f82fabc63c6d529027062c2908a0bc77e04383bf47"}, + {file = "aws-cdk.region-info-1.72.0.tar.gz", hash = "sha256:e18e61ee94fc88047cf5f5d85736805149ad0e4fe807f3074e39661618397290"}, + {file = "aws_cdk.region_info-1.72.0-py3-none-any.whl", hash = "sha256:90899ad4e91dd6e6ca6da1bc28f65b994ef3c28cdbf6f3d5fe4dea3e1187bfbb"}, +] +awscli = [ + {file = "awscli-1.18.173-py2.py3-none-any.whl", hash = "sha256:efefcaa5fa470935160354c716da59e18f10ba822e4c1e8a6cf1e927c23702a7"}, + {file = "awscli-1.18.173.tar.gz", hash = "sha256:a40e32ede33339c9c1931763d9d29d221f7fd940ec19f5ddd52a0ecb2f57dcd7"}, +] +black = [ + {file = "black-20.8b0.tar.gz", hash = "sha256:0fc6b2f00ccd34cc444d41f24967377c2bc6d0b53f333c56376405ff6cd6f789"}, +] +boto3 = [ + {file = "boto3-1.16.13-py2.py3-none-any.whl", hash = "sha256:23d2575b7bd01c4e7153f283c1d1c12d329dabf78a6279d4192f2e752bb67b1a"}, + {file = "boto3-1.16.13.tar.gz", hash = "sha256:cb3f4c2f2576153b845e5b4f325d54a04f4ca00c156f2063965432bfa5d714dd"}, +] +botocore = [ + {file = "botocore-1.19.13-py2.py3-none-any.whl", hash = "sha256:1b1b4cf5efd552ecc7f1ce0fc674d5fba56857db5ffe6394ee76edd1a568d7a6"}, + {file = "botocore-1.19.13.tar.gz", hash = "sha256:b3b4b8fa33620f015c52e426a92e7db21b5e667ed4785c5fbc484ebfdb2b5153"}, +] +cattrs = [ + {file = "cattrs-1.0.0-py2.py3-none-any.whl", hash = "sha256:616972ae3dfa6e623a40ad3cb845420e64942989152774ab055e5c2b2f89f997"}, + {file = "cattrs-1.0.0.tar.gz", hash = "sha256:b7ab5cf8ad127c42eefd01410c1c6e28569a45a255ea80ed968511873c433c7a"}, +] +cfgv = [ + {file = "cfgv-3.0.0-py2.py3-none-any.whl", hash = "sha256:f22b426ed59cd2ab2b54ff96608d846c33dfb8766a67f0b4a6ce130ce244414f"}, + {file = "cfgv-3.0.0.tar.gz", hash = "sha256:04b093b14ddf9fd4d17c53ebfd55582d27b76ed30050193c14e560770c5360eb"}, +] +click = [ + {file = "Click-7.0-py2.py3-none-any.whl", hash = "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13"}, + {file = "Click-7.0.tar.gz", hash = "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7"}, +] +colorama = [ + {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, + {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, +] +constructs = [ + {file = "constructs-3.2.11-py3-none-any.whl", hash = "sha256:df25beaf8077872c896ad8747ce33b961b0ca4050c5c7e3af923069ff21e1f68"}, + {file = "constructs-3.2.11.tar.gz", hash = "sha256:45eddf0cd4b33ed32f8c2105d02eb0e1e281619886048069624ae32845395af6"}, + {file = "constructs-3.2.17-py3-none-any.whl", hash = "sha256:90ba3152d1942203bd718ca42efe3d3836995e32d2425dd14105d5aafe30fda2"}, + {file = "constructs-3.2.17.tar.gz", hash = "sha256:298f2a75e8bc0223b0257964ccbeb39658c4e5afa5676969bda89c0769781bc1"}, +] +dataclasses = [ + {file = "dataclasses-0.7-py3-none-any.whl", hash = "sha256:3459118f7ede7c8bea0fe795bff7c6c2ce287d01dd226202f7c9ebc0610a7836"}, + {file = "dataclasses-0.7.tar.gz", hash = "sha256:494a6dcae3b8bcf80848eea2ef64c0cc5cd307ffc263e17cdf42f3e5420808e6"}, +] +distlib = [ + {file = "distlib-0.3.1-py2.py3-none-any.whl", hash = "sha256:8c09de2c67b3e7deef7184574fc060ab8a793e7adbb183d942c389c8b13c52fb"}, + {file = "distlib-0.3.1.zip", hash = "sha256:edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1"}, +] +docutils = [ + {file = "docutils-0.15.2-py2-none-any.whl", hash = "sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827"}, + {file = "docutils-0.15.2-py3-none-any.whl", hash = "sha256:6c4f696463b79f1fb8ba0c594b63840ebd41f059e92b31957c46b74a4599b6d0"}, + {file = "docutils-0.15.2.tar.gz", hash = "sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99"}, +] +filelock = [ + {file = "filelock-3.0.12-py3-none-any.whl", hash = "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836"}, + {file = "filelock-3.0.12.tar.gz", hash = "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59"}, +] +gitlint = [ + {file = "gitlint-0.14.0-py2.py3-none-any.whl", hash = "sha256:93031a896dd143b685530be567bb742d99eb3ecc633cefa432f73c3bf6c20f46"}, + {file = "gitlint-0.14.0.tar.gz", hash = "sha256:df28d82c2e2aaa48d6d89bed6af08d8b9706c2e8b3ce968decc87e86b1461edc"}, +] +identify = [ + {file = "identify-1.5.9-py2.py3-none-any.whl", hash = "sha256:5dd84ac64a9a115b8e0b27d1756b244b882ad264c3c423f42af8235a6e71ca12"}, + {file = "identify-1.5.9.tar.gz", hash = "sha256:c9504ba6a043ee2db0a9d69e43246bc138034895f6338d5aed1b41e4a73b1513"}, +] +importlib-metadata = [ + {file = "importlib_metadata-2.0.0-py2.py3-none-any.whl", hash = "sha256:cefa1a2f919b866c5beb7c9f7b0ebb4061f30a8a9bf16d609b000e2dfaceb9c3"}, + {file = "importlib_metadata-2.0.0.tar.gz", hash = "sha256:77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da"}, +] +importlib-resources = [ + {file = "importlib_resources-3.3.0-py2.py3-none-any.whl", hash = "sha256:a3d34a8464ce1d5d7c92b0ea4e921e696d86f2aa212e684451cb1482c8d84ed5"}, + {file = "importlib_resources-3.3.0.tar.gz", hash = "sha256:7b51f0106c8ec564b1bef3d9c588bc694ce2b92125bbb6278f4f2f5b54ec3592"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +isort = [ + {file = "isort-5.6.4-py3-none-any.whl", hash = "sha256:dcab1d98b469a12a1a624ead220584391648790275560e1a43e54c5dceae65e7"}, + {file = "isort-5.6.4.tar.gz", hash = "sha256:dcaeec1b5f0eca77faea2a35ab790b4f3680ff75590bfcb7145986905aab2f58"}, +] +jmespath = [ + {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"}, + {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"}, +] +jsii = [ + {file = "jsii-1.14.0-py3-none-any.whl", hash = "sha256:00d520a6f74f6bd46b6f0f3e242a40e5fcc423409747001f74c24a1aaa7234c4"}, + {file = "jsii-1.14.0.tar.gz", hash = "sha256:12c0dcb49b0da3bbd1ad661185ab2a52fdab86f5027476efcce8138f29f88115"}, + {file = "jsii-1.14.1-py3-none-any.whl", hash = "sha256:580e4fd38740b8a0c520db46f60c3e78aef6a6d01687c7ab8c28bfb74992310a"}, + {file = "jsii-1.14.1.tar.gz", hash = "sha256:f69086667a8b4fff586d9c0f26870260bf0f5a6ffcd379c7beb435c61a96a02e"}, +] +jsonschema = [ + {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, + {file = "jsonschema-3.2.0.tar.gz", hash = "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a"}, +] +lazy-object-proxy = [ + {file = "lazy-object-proxy-1.4.3.tar.gz", hash = "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0"}, + {file = "lazy_object_proxy-1.4.3-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:a2238e9d1bb71a56cd710611a1614d1194dc10a175c1e08d75e1a7bcc250d442"}, + {file = "lazy_object_proxy-1.4.3-cp27-cp27m-win32.whl", hash = "sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4"}, + {file = "lazy_object_proxy-1.4.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4677f594e474c91da97f489fea5b7daa17b5517190899cf213697e48d3902f5a"}, + {file = "lazy_object_proxy-1.4.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d"}, + {file = "lazy_object_proxy-1.4.3-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:d945239a5639b3ff35b70a88c5f2f491913eb94871780ebfabb2568bd58afc5a"}, + {file = "lazy_object_proxy-1.4.3-cp34-cp34m-win32.whl", hash = "sha256:9651375199045a358eb6741df3e02a651e0330be090b3bc79f6d0de31a80ec3e"}, + {file = "lazy_object_proxy-1.4.3-cp34-cp34m-win_amd64.whl", hash = "sha256:eba7011090323c1dadf18b3b689845fd96a61ba0a1dfbd7f24b921398affc357"}, + {file = "lazy_object_proxy-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:48dab84ebd4831077b150572aec802f303117c8cc5c871e182447281ebf3ac50"}, + {file = "lazy_object_proxy-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:ca0a928a3ddbc5725be2dd1cf895ec0a254798915fb3a36af0964a0a4149e3db"}, + {file = "lazy_object_proxy-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:194d092e6f246b906e8f70884e620e459fc54db3259e60cf69a4d66c3fda3449"}, + {file = "lazy_object_proxy-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:97bb5884f6f1cdce0099f86b907aa41c970c3c672ac8b9c8352789e103cf3156"}, + {file = "lazy_object_proxy-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:cb2c7c57005a6804ab66f106ceb8482da55f5314b7fcb06551db1edae4ad1531"}, + {file = "lazy_object_proxy-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:8d859b89baf8ef7f8bc6b00aa20316483d67f0b1cbf422f5b4dc56701c8f2ffb"}, + {file = "lazy_object_proxy-1.4.3-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:1be7e4c9f96948003609aa6c974ae59830a6baecc5376c25c92d7d697e684c08"}, + {file = "lazy_object_proxy-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d74bb8693bf9cf75ac3b47a54d716bbb1a92648d5f781fc799347cfc95952383"}, + {file = "lazy_object_proxy-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:9b15f3f4c0f35727d3a0fba4b770b3c4ebbb1fa907dbcc046a1d2799f3edd142"}, + {file = "lazy_object_proxy-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9254f4358b9b541e3441b007a0ea0764b9d056afdeafc1a5569eee1cc6c1b9ea"}, + {file = "lazy_object_proxy-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62"}, + {file = "lazy_object_proxy-1.4.3-cp38-cp38-win32.whl", hash = "sha256:5541cada25cd173702dbd99f8e22434105456314462326f06dba3e180f203dfd"}, + {file = "lazy_object_proxy-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239"}, +] +mccabe = [ + {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, + {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +nodeenv = [ + {file = "nodeenv-1.5.0-py2.py3-none-any.whl", hash = "sha256:5304d424c529c997bc888453aeaa6362d242b6b4631e90f3d4bf1b290f1c84a9"}, + {file = "nodeenv-1.5.0.tar.gz", hash = "sha256:ab45090ae383b716c4ef89e690c41ff8c2b257b85b309f01f3654df3d084bd7c"}, +] +packaging = [ + {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"}, + {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"}, +] +pathspec = [ + {file = "pathspec-0.8.1-py2.py3-none-any.whl", hash = "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d"}, + {file = "pathspec-0.8.1.tar.gz", hash = "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd"}, +] +pluggy = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] +pre-commit = [ + {file = "pre_commit-2.1.1-py2.py3-none-any.whl", hash = "sha256:09ebe467f43ce24377f8c2f200fe3cd2570d328eb2ce0568c8e96ce19da45fa6"}, + {file = "pre_commit-2.1.1.tar.gz", hash = "sha256:f8d555e31e2051892c7f7b3ad9f620bd2c09271d87e9eedb2ad831737d6211eb"}, +] +publication = [ + {file = "publication-0.0.3-py2.py3-none-any.whl", hash = "sha256:0248885351febc11d8a1098d5c8e3ab2dabcf3e8c0c96db1e17ecd12b53afbe6"}, + {file = "publication-0.0.3.tar.gz", hash = "sha256:68416a0de76dddcdd2930d1c8ef853a743cc96c82416c4e4d3b5d901c6276dc4"}, +] +py = [ + {file = "py-1.9.0-py2.py3-none-any.whl", hash = "sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2"}, + {file = "py-1.9.0.tar.gz", hash = "sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"}, +] +pyasn1 = [ + {file = "pyasn1-0.4.8-py2.4.egg", hash = "sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3"}, + {file = "pyasn1-0.4.8-py2.5.egg", hash = "sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf"}, + {file = "pyasn1-0.4.8-py2.6.egg", hash = "sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00"}, + {file = "pyasn1-0.4.8-py2.7.egg", hash = "sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8"}, + {file = "pyasn1-0.4.8-py2.py3-none-any.whl", hash = "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d"}, + {file = "pyasn1-0.4.8-py3.1.egg", hash = "sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86"}, + {file = "pyasn1-0.4.8-py3.2.egg", hash = "sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7"}, + {file = "pyasn1-0.4.8-py3.3.egg", hash = "sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576"}, + {file = "pyasn1-0.4.8-py3.4.egg", hash = "sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12"}, + {file = "pyasn1-0.4.8-py3.5.egg", hash = "sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2"}, + {file = "pyasn1-0.4.8-py3.6.egg", hash = "sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359"}, + {file = "pyasn1-0.4.8-py3.7.egg", hash = "sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776"}, + {file = "pyasn1-0.4.8.tar.gz", hash = "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"}, +] +pylint = [ + {file = "pylint-2.6.0-py3-none-any.whl", hash = "sha256:bfe68f020f8a0fece830a22dd4d5dddb4ecc6137db04face4c3420a46a52239f"}, + {file = "pylint-2.6.0.tar.gz", hash = "sha256:bb4a908c9dadbc3aac18860550e870f58e1a02c9f2c204fdf5693d73be061210"}, +] +pynamodb = [ + {file = "pynamodb-4.3.3-py2.py3-none-any.whl", hash = "sha256:739b3a02bb81f2739e8e7c0bb5174ec053a727c50295f6b20dfbab8cb953216a"}, + {file = "pynamodb-4.3.3.tar.gz", hash = "sha256:ced47c200073dbbfafb10b26931b9c9bf3c6b898f41dffa3676f5c2e2eddc2f0"}, +] +pyparsing = [ + {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, + {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, +] +pyrsistent = [ + {file = "pyrsistent-0.17.3.tar.gz", hash = "sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e"}, +] +pytest = [ + {file = "pytest-6.1.2-py3-none-any.whl", hash = "sha256:4288fed0d9153d9646bfcdf0c0428197dba1ecb27a33bb6e031d002fa88653fe"}, + {file = "pytest-6.1.2.tar.gz", hash = "sha256:c0a7e94a8cdbc5422a51ccdad8e6f1024795939cc89159a0ae7f0b316ad3823e"}, +] +python-dateutil = [ + {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"}, + {file = "python_dateutil-2.8.1-py2.py3-none-any.whl", hash = "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"}, +] +pyyaml = [ + {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"}, + {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"}, + {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"}, + {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"}, + {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"}, + {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"}, + {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"}, + {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"}, + {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"}, + {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"}, + {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"}, +] +regex = [ + {file = "regex-2020.10.28-cp27-cp27m-win32.whl", hash = "sha256:4b5a9bcb56cc146c3932c648603b24514447eafa6ce9295234767bf92f69b504"}, + {file = "regex-2020.10.28-cp27-cp27m-win_amd64.whl", hash = "sha256:c13d311a4c4a8d671f5860317eb5f09591fbe8259676b86a85769423b544451e"}, + {file = "regex-2020.10.28-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c454ad88e56e80e44f824ef8366bb7e4c3def12999151fd5c0ea76a18fe9aa3e"}, + {file = "regex-2020.10.28-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c8a2b7ccff330ae4c460aff36626f911f918555660cc28163417cb84ffb25789"}, + {file = "regex-2020.10.28-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4afa350f162551cf402bfa3cd8302165c8e03e689c897d185f16a167328cc6dd"}, + {file = "regex-2020.10.28-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:b88fa3b8a3469f22b4f13d045d9bd3eda797aa4e406fde0a2644bc92bbdd4bdd"}, + {file = "regex-2020.10.28-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:f43109822df2d3faac7aad79613f5f02e4eab0fc8ad7932d2e70e2a83bd49c26"}, + {file = "regex-2020.10.28-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:de7fd57765398d141949946c84f3590a68cf5887dac3fc52388df0639b01eda4"}, + {file = "regex-2020.10.28-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:9b6305295b6591e45f069d3553c54d50cc47629eb5c218aac99e0f7fafbf90a1"}, + {file = "regex-2020.10.28-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:bd904c0dec29bbd0769887a816657491721d5f545c29e30fd9d7a1a275dc80ab"}, + {file = "regex-2020.10.28-cp36-cp36m-win32.whl", hash = "sha256:8092a5a06ad9a7a247f2a76ace121183dc4e1a84c259cf9c2ce3bbb69fac3582"}, + {file = "regex-2020.10.28-cp36-cp36m-win_amd64.whl", hash = "sha256:49461446b783945597c4076aea3f49aee4b4ce922bd241e4fcf62a3e7c61794c"}, + {file = "regex-2020.10.28-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:297116e79074ec2a2f885d22db00ce6e88b15f75162c5e8b38f66ea734e73c64"}, + {file = "regex-2020.10.28-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:8ca9dca965bd86ea3631b975d63b0693566d3cc347e55786d5514988b6f5b84c"}, + {file = "regex-2020.10.28-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ea37320877d56a7f0a1e6a625d892cf963aa7f570013499f5b8d5ab8402b5625"}, + {file = "regex-2020.10.28-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:3a5f08039eee9ea195a89e180c5762bfb55258bfb9abb61a20d3abee3b37fd12"}, + {file = "regex-2020.10.28-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:cb905f3d2e290a8b8f1579d3984f2cfa7c3a29cc7cba608540ceeed18513f520"}, + {file = "regex-2020.10.28-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:96f99219dddb33e235a37283306834700b63170d7bb2a1ee17e41c6d589c8eb9"}, + {file = "regex-2020.10.28-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:227a8d2e5282c2b8346e7f68aa759e0331a0b4a890b55a5cfbb28bd0261b84c0"}, + {file = "regex-2020.10.28-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:2564def9ce0710d510b1fc7e5178ce2d20f75571f788b5197b3c8134c366f50c"}, + {file = "regex-2020.10.28-cp37-cp37m-win32.whl", hash = "sha256:a62162be05edf64f819925ea88d09d18b09bebf20971b363ce0c24e8b4aa14c0"}, + {file = "regex-2020.10.28-cp37-cp37m-win_amd64.whl", hash = "sha256:03855ee22980c3e4863dc84c42d6d2901133362db5daf4c36b710dd895d78f0a"}, + {file = "regex-2020.10.28-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf4f896c42c63d1f22039ad57de2644c72587756c0cfb3cc3b7530cfe228277f"}, + {file = "regex-2020.10.28-cp38-cp38-manylinux1_i686.whl", hash = "sha256:625116aca6c4b57c56ea3d70369cacc4d62fead4930f8329d242e4fe7a58ce4b"}, + {file = "regex-2020.10.28-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2dc522e25e57e88b4980d2bdd334825dbf6fa55f28a922fc3bfa60cc09e5ef53"}, + {file = "regex-2020.10.28-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:119e0355dbdd4cf593b17f2fc5dbd4aec2b8899d0057e4957ba92f941f704bf5"}, + {file = "regex-2020.10.28-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:cfcf28ed4ce9ced47b9b9670a4f0d3d3c0e4d4779ad4dadb1ad468b097f808aa"}, + {file = "regex-2020.10.28-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:b45bab9f224de276b7bc916f6306b86283f6aa8afe7ed4133423efb42015a898"}, + {file = "regex-2020.10.28-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:52e83a5f28acd621ba8e71c2b816f6541af7144b69cc5859d17da76c436a5427"}, + {file = "regex-2020.10.28-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:aacc8623ffe7999a97935eeabbd24b1ae701d08ea8f874a6ff050e93c3e658cf"}, + {file = "regex-2020.10.28-cp38-cp38-win32.whl", hash = "sha256:06b52815d4ad38d6524666e0d50fe9173533c9cc145a5779b89733284e6f688f"}, + {file = "regex-2020.10.28-cp38-cp38-win_amd64.whl", hash = "sha256:c3466a84fce42c2016113101018a9981804097bacbab029c2d5b4fcb224b89de"}, + {file = "regex-2020.10.28-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:127a9e0c0d91af572fbb9e56d00a504dbd4c65e574ddda3d45b55722462210de"}, + {file = "regex-2020.10.28-cp39-cp39-manylinux1_i686.whl", hash = "sha256:c2c6c56ee97485a127555c9595c069201b5161de9d05495fbe2132b5ac104786"}, + {file = "regex-2020.10.28-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:1ec66700a10e3c75f1f92cbde36cca0d3aaee4c73dfa26699495a3a30b09093c"}, + {file = "regex-2020.10.28-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:11116d424734fe356d8777f89d625f0df783251ada95d6261b4c36ad27a394bb"}, + {file = "regex-2020.10.28-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:f1fce1e4929157b2afeb4bb7069204d4370bab9f4fc03ca1fbec8bd601f8c87d"}, + {file = "regex-2020.10.28-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:3dfca201fa6b326239e1bccb00b915e058707028809b8ecc0cf6819ad233a740"}, + {file = "regex-2020.10.28-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:b8a686a6c98872007aa41fdbb2e86dc03b287d951ff4a7f1da77fb7f14113e4d"}, + {file = "regex-2020.10.28-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:c32c91a0f1ac779cbd73e62430de3d3502bbc45ffe5bb6c376015acfa848144b"}, + {file = "regex-2020.10.28-cp39-cp39-win32.whl", hash = "sha256:832339223b9ce56b7b15168e691ae654d345ac1635eeb367ade9ecfe0e66bee0"}, + {file = "regex-2020.10.28-cp39-cp39-win_amd64.whl", hash = "sha256:654c1635f2313d0843028487db2191530bca45af61ca85d0b16555c399625b0e"}, + {file = "regex-2020.10.28.tar.gz", hash = "sha256:dd3e6547ecf842a29cf25123fbf8d2461c53c8d37aa20d87ecee130c89b7079b"}, +] +rsa = [ + {file = "rsa-4.5-py2.py3-none-any.whl", hash = "sha256:35c5b5f6675ac02120036d97cf96f1fde4d49670543db2822ba5015e21a18032"}, + {file = "rsa-4.5.tar.gz", hash = "sha256:4d409f5a7d78530a4a2062574c7bd80311bc3af29b364e293aa9b03eea77714f"}, +] +"ruamel.yaml" = [ + {file = "ruamel.yaml-0.15.100-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:fc6471ef15b69e454cca82433ac5f84929d9f3e2d72b9e54b06850b6b7133cc0"}, + {file = "ruamel.yaml-0.15.100-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:ab8eeca4de4decf0d0a42cb6949d354da9fc70a2d9201f0dd55186c599b2e3a5"}, + {file = "ruamel.yaml-0.15.100-cp27-cp27m-win32.whl", hash = "sha256:847177699994f9c31adf78d1ef1ff8f069ef0241e744a3ee8b30fbdaa914cc1e"}, + {file = "ruamel.yaml-0.15.100-cp27-cp27m-win_amd64.whl", hash = "sha256:92a8ca79f9173cca29ca9663b49d9c936aefc4c8a76f39318b0218c8f3626438"}, + {file = "ruamel.yaml-0.15.100-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:63dc8c6147a4cf77efadf2ae0f34e89e03de79289298bb941b7ae333d5d4020b"}, + {file = "ruamel.yaml-0.15.100-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:ffc89770339191acbe5a15041950b5ad9daec7d659619b0ed9dad8c9c80c26f3"}, + {file = "ruamel.yaml-0.15.100-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7b750252e3d1ec5b53d03be508796c04a907060900c7d207280b7456650ebbfc"}, + {file = "ruamel.yaml-0.15.100-cp35-cp35m-win32.whl", hash = "sha256:44da2be1153e173f90ad8775d4ac4237a3c06cfbb9660c1c1980271621833faa"}, + {file = "ruamel.yaml-0.15.100-cp35-cp35m-win_amd64.whl", hash = "sha256:bd4b60b649f4a81086f70cd56eff4722018ef36a28094c396f1a53bf450bd579"}, + {file = "ruamel.yaml-0.15.100-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:38718e69270141c403b5fc539f774ed394568f8a5195b507991f5b690356facb"}, + {file = "ruamel.yaml-0.15.100-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:51d49c870aca850e652e2cd1c9bea9b52b77d13ad52b0556de496c1d264ea65f"}, + {file = "ruamel.yaml-0.15.100-cp36-cp36m-win32.whl", hash = "sha256:922d9e483c05d9000256640026f277fcc0c2e1e9271d05acada8e6cfb4c8b721"}, + {file = "ruamel.yaml-0.15.100-cp36-cp36m-win_amd64.whl", hash = "sha256:6b6025f9b6a557e15e9fdfda4d9af0b57cd8d59ff98e23a0097ab2d7c0540f07"}, + {file = "ruamel.yaml-0.15.100-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6672798c6b52a976a7b24e20665055852388c83198d88029d3c76e2197ac221a"}, + {file = "ruamel.yaml-0.15.100-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:08aaaa74ff66565024ecabf9ba2db212712382a21c0458f9a91c623a1fa83b34"}, + {file = "ruamel.yaml-0.15.100-cp37-cp37m-win32.whl", hash = "sha256:23f2efb872d2ebe3d5428b4f1a8f30cbf59f56e780c4981c155411ee65572673"}, + {file = "ruamel.yaml-0.15.100-cp37-cp37m-win_amd64.whl", hash = "sha256:4b1674a936cdae9735578d4fd64bcbc6cfbb77a1a8f7037a50c6e3874ba4c9d8"}, + {file = "ruamel.yaml-0.15.100.tar.gz", hash = "sha256:8e42f3067a59e819935a2926e247170ed93c8f0b2ab64526f888e026854db2e4"}, +] +s3transfer = [ + {file = "s3transfer-0.3.3-py2.py3-none-any.whl", hash = "sha256:2482b4259524933a022d59da830f51bd746db62f047d6eb213f2f8855dcb8a13"}, + {file = "s3transfer-0.3.3.tar.gz", hash = "sha256:921a37e2aefc64145e7b73d50c71bb4f26f46e4c9f414dc648c6245ff92cf7db"}, +] +sh = [ + {file = "sh-1.12.14-py2.py3-none-any.whl", hash = "sha256:ae3258c5249493cebe73cb4e18253a41ed69262484bad36fdb3efcb8ad8870bb"}, + {file = "sh-1.12.14.tar.gz", hash = "sha256:b52bf5833ed01c7b5c5fb73a7f71b3d98d48e9b9b8764236237bdc7ecae850fc"}, +] +six = [ + {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, + {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +typed-ast = [ + {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3"}, + {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb"}, + {file = "typed_ast-1.4.1-cp35-cp35m-win32.whl", hash = "sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919"}, + {file = "typed_ast-1.4.1-cp35-cp35m-win_amd64.whl", hash = "sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01"}, + {file = "typed_ast-1.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75"}, + {file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652"}, + {file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"}, + {file = "typed_ast-1.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:fcf135e17cc74dbfbc05894ebca928ffeb23d9790b3167a674921db19082401f"}, + {file = "typed_ast-1.4.1-cp36-cp36m-win32.whl", hash = "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1"}, + {file = "typed_ast-1.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa"}, + {file = "typed_ast-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614"}, + {file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41"}, + {file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b"}, + {file = "typed_ast-1.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f208eb7aff048f6bea9586e61af041ddf7f9ade7caed625742af423f6bae3298"}, + {file = "typed_ast-1.4.1-cp37-cp37m-win32.whl", hash = "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe"}, + {file = "typed_ast-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355"}, + {file = "typed_ast-1.4.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6"}, + {file = "typed_ast-1.4.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907"}, + {file = "typed_ast-1.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d"}, + {file = "typed_ast-1.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:7e4c9d7658aaa1fc80018593abdf8598bf91325af6af5cce4ce7c73bc45ea53d"}, + {file = "typed_ast-1.4.1-cp38-cp38-win32.whl", hash = "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c"}, + {file = "typed_ast-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4"}, + {file = "typed_ast-1.4.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34"}, + {file = "typed_ast-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:92c325624e304ebf0e025d1224b77dd4e6393f18aab8d829b5b7e04afe9b7a2c"}, + {file = "typed_ast-1.4.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d648b8e3bf2fe648745c8ffcee3db3ff903d0817a01a12dd6a6ea7a8f4889072"}, + {file = "typed_ast-1.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fac11badff8313e23717f3dada86a15389d0708275bddf766cca67a84ead3e91"}, + {file = "typed_ast-1.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:0d8110d78a5736e16e26213114a38ca35cb15b6515d535413b090bd50951556d"}, + {file = "typed_ast-1.4.1-cp39-cp39-win32.whl", hash = "sha256:b52ccf7cfe4ce2a1064b18594381bccf4179c2ecf7f513134ec2f993dd4ab395"}, + {file = "typed_ast-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:3742b32cf1c6ef124d57f95be609c473d7ec4c14d0090e5a5e05a15269fb4d0c"}, + {file = "typed_ast-1.4.1.tar.gz", hash = "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b"}, +] +typing-extensions = [ + {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, + {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, + {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, +] +urllib3 = [ + {file = "urllib3-1.25.11-py2.py3-none-any.whl", hash = "sha256:f5321fbe4bf3fefa0efd0bfe7fb14e90909eb62a48ccda331726b4319897dd5e"}, + {file = "urllib3-1.25.11.tar.gz", hash = "sha256:8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2"}, +] +virtualenv = [ + {file = "virtualenv-20.1.0-py2.py3-none-any.whl", hash = "sha256:b0011228208944ce71052987437d3843e05690b2f23d1c7da4263fde104c97a2"}, + {file = "virtualenv-20.1.0.tar.gz", hash = "sha256:b8d6110f493af256a40d65e29846c69340a947669eec8ce784fcf3dd3af28380"}, +] +wrapt = [ + {file = "wrapt-1.12.1.tar.gz", hash = "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"}, +] +yamlfmt = [ + {file = "yamlfmt-1.1.0-py2.py3-none-any.whl", hash = "sha256:138537815afd898528a0ec02d7fe9144b42f2b283af8387d5b03e8f9c0119b54"}, + {file = "yamlfmt-1.1.0.tar.gz", hash = "sha256:833037a4ad93dd89606d8b3ac9782087586d19817205ddd4c4befecc554ea631"}, +] +yamllint = [ + {file = "yamllint-1.25.0-py2.py3-none-any.whl", hash = "sha256:c7be4d0d2584a1b561498fa9acb77ad22eb434a109725c7781373ae496d823b3"}, + {file = "yamllint-1.25.0.tar.gz", hash = "sha256:b1549cbe5b47b6ba67bdeea31720f5c51431a4d0c076c1557952d841f7223519"}, +] +zipp = [ + {file = "zipp-3.4.0-py3-none-any.whl", hash = "sha256:102c24ef8f171fd729d46599845e95c7ab894a4cf45f5de11a44cc7444fb1108"}, + {file = "zipp-3.4.0.tar.gz", hash = "sha256:ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb"}, +] diff --git a/poetry.toml b/poetry.toml new file mode 100644 index 0000000000..ab1033bd37 --- /dev/null +++ b/poetry.toml @@ -0,0 +1,2 @@ +[virtualenvs] +in-project = true diff --git a/pyproject.toml b/pyproject.toml index c5cb757b6c..920f1133fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,3 +8,43 @@ use_parentheses = true include_trailing_comma = true multi_line_output = 3 force_grid_wrap = 0 + +[tool.poetry] +name = "geospatial-data-lake" +version = "0.1.0" +description = "Central storage, management and access for important geospatial datasets developed by LINZ" +authors = [ + "Bill M. Nelson ", + "Daniel Silk ", + "Ivan Mincik ", + "Sandro Santilli ", + "Simon Planzer ", + "Victor Engmark ", +] +license = "MIT" + +[tool.poetry.dependencies] +python = "^3.6" +"aws-cdk.aws-s3" = "*" +"aws-cdk.aws-iam" = "*" +"aws-cdk.aws-dynamodb" = "*" +"aws-cdk.aws-lambda" = "*" +awscli = "*" +cattrs = "<1.1.0" # https://github.com/aws/aws-cdk/issues/11255 +jsonschema = "*" +pynamodb = "*" + +[tool.poetry.dev-dependencies] +black = "*" +boto3 = "*" +gitlint = "*" +isort = "*" +pre-commit = "*" +pylint = "*" +pytest = "*" +yamlfmt = "*" +yamllint = "*" + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index cd2d2cae63..0000000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,10 +0,0 @@ -black==20.8b1 -boto3==1.15.7 -gitlint==0.13.1 -isort==5.4.2 -pre-commit==2.7.1 -pylint==2.6.0 -pytest==6.0.2 -ruamel.yaml==0.15.100 -yamlfmt==1.1.0 -yamllint==1.25.0