From bf0c0b72c9b99466e1ddfc9f4157c7a0d5722e09 Mon Sep 17 00:00:00 2001 From: Ryan Gerstenkorn Date: Fri, 9 Apr 2021 19:13:52 -0700 Subject: [PATCH 1/3] Update dependencies Also removes a few unnecessary dev packages. --- poetry.lock | 1160 ++++++++++++++++-------------------------------- pyproject.toml | 6 +- 2 files changed, 395 insertions(+), 771 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4fa0b9f..4c43982 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,14 +1,3 @@ -[[package]] -name = "arrow" -version = "0.17.0" -description = "Better dates & times for Python" -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -python-dateutil = ">=2.7.0" - [[package]] name = "atomicwrites" version = "1.4.0" @@ -31,52 +20,9 @@ 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-lambda-builders" -version = "1.2.0" -description = "Python library to compile, build & package AWS Lambda functions for several runtimes & frameworks." -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" - -[package.dependencies] -six = ">=1.11,<2.0" - -[package.extras] -dev = ["coverage (==5.3)", "pytest-cov (==2.10.1)", "parameterized (==0.7.4)", "futures (==3.2.0)", "pathlib2 (==2.3.2)", "astroid (>=1.6.0,<1.7.0)", "pylint (>=1.9.5,<1.10.0)", "pytest (>=4.6.11,<4.7.0)", "mock (==3.0.5)", "backports.tempfile (==1.0)", "flake8 (==3.3.0)", "isort (>=4.2.5,<5)", "pylint (>=2.6.0,<2.7.0)", "pytest (>=6.1.1)", "mock (==4.0.2)", "black (==20.8b1)", "flake8 (==3.8.4)"] - -[[package]] -name = "aws-sam-cli" -version = "1.18.1" -description = "AWS SAM CLI is a CLI tool for local development and testing of Serverless applications" -category = "dev" -optional = true -python-versions = ">=3.6, <=4.0, !=4.0" - -[package.dependencies] -aws-lambda-builders = "1.2.0" -aws-sam-translator = "1.34.0" -boto3 = ">=1.14,<2.0" -chevron = ">=0.12,<1.0" -click = ">=7.1,<8.0" -cookiecutter = ">=1.7.2,<1.8.0" -dateparser = ">=0.7,<1.0" -docker = ">=4.2.0,<4.3.0" -Flask = ">=1.1.2,<1.2.0" -jmespath = ">=0.10.0,<0.11.0" -python-dateutil = ">=2.6,<2.8.1" -PyYAML = ">=5.3,<6.0" -requests = "2.23.0" -serverlessrepo = "0.1.10" -tomlkit = "0.7.0" -watchdog = "0.10.3" - -[package.extras] -dev = ["coverage (==5.3)", "pytest-cov (==2.10.1)", "pylint (>=2.6.0,<2.7.0)", "mypy (==0.790)", "boto3-stubs[essential] (>=1.14,<2.0)", "pytest (==6.1.1)", "parameterized (==0.7.4)", "pytest-xdist (==2.1.0)", "pytest-forked (==1.3.0)", "pytest-timeout (==1.4.2)", "pytest-rerunfailures (==9.1.1)", "black (==20.8b1)"] - [[package]] name = "aws-sam-translator" -version = "1.34.0" +version = "1.35.0" description = "AWS SAM Translator is a library that transform SAM templates into AWS CloudFormation templates" category = "dev" optional = false @@ -88,11 +34,11 @@ jsonschema = ">=3.2,<4.0" six = ">=1.15,<2.0" [package.extras] -dev = ["coverage (>=5.3,<6.0)", "flake8 (>=3.8.4,<3.9.0)", "tox (>=3.20.1,<3.21.0)", "pytest-cov (>=2.10.1,<2.11.0)", "pylint (>=1.7.2,<2.0)", "pyyaml (>=5.3.1,<5.4.0)", "mock (>=3.0.5,<4.0.0)", "parameterized (>=0.7.4,<0.8.0)", "requests (>=2.24.0,<2.25.0)", "docopt (>=0.6.2,<0.7.0)", "pytest (>=4.6.11,<4.7.0)", "pytest (>=6.1.1,<6.2.0)", "black (==20.8b1)"] +dev = ["coverage (>=5.3,<6.0)", "flake8 (>=3.8.4,<3.9.0)", "tox (>=3.20.1,<3.21.0)", "pytest-cov (>=2.10.1,<2.11.0)", "pylint (>=1.7.2,<2.0)", "pyyaml (>=5.3.1,<5.4.0)", "mock (>=3.0.5,<4.0.0)", "parameterized (>=0.7.4,<0.8.0)", "click (>=7.1,<8.0)", "dateparser (>=0.7,<1.0)", "requests (>=2.24.0,<2.25.0)", "docopt (>=0.6.2,<0.7.0)", "pathlib2 (>=2.3.5)", "pytest (>=4.6.11,<4.7.0)", "pytest (>=6.1.1,<6.2.0)", "black (==20.8b1)"] [[package]] name = "aws-xray-sdk" -version = "2.6.0" +version = "2.7.0" description = "The AWS X-Ray SDK for Python (the SDK) enables Python developers to record and emit information from within their applications to the AWS X-Ray service." category = "dev" optional = false @@ -101,20 +47,8 @@ python-versions = "*" [package.dependencies] botocore = ">=1.11.3" future = "*" -jsonpickle = "*" wrapt = "*" -[[package]] -name = "binaryornot" -version = "0.4.4" -description = "Ultra-lightweight pure Python package to check if a file is binary or text." -category = "dev" -optional = true -python-versions = "*" - -[package.dependencies] -chardet = ">=3.0.2" - [[package]] name = "boto" version = "2.49.0" @@ -125,295 +59,295 @@ python-versions = "*" [[package]] name = "boto3" -version = "1.17.7" +version = "1.17.49" description = "The AWS SDK for Python" category = "main" optional = false python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" [package.dependencies] -botocore = ">=1.20.7,<1.21.0" +botocore = ">=1.20.49,<1.21.0" jmespath = ">=0.7.1,<1.0.0" s3transfer = ">=0.3.0,<0.4.0" [[package]] name = "boto3-stubs" -version = "1.17.7.0" -description = "Type annotations for boto3 1.17.7, generated by mypy-boto3-buider 4.4.0" +version = "1.17.49.0" +description = "Type annotations for boto3 1.17.49, generated by mypy-boto3-buider 4.4.0" category = "dev" optional = false python-versions = ">=3.6" [package.dependencies] -mypy-boto3-ebs = {version = "1.17.7.0", optional = true, markers = "extra == \"ebs\""} -mypy-boto3-ec2 = {version = "1.17.7.0", optional = true, markers = "extra == \"ec2\""} +mypy-boto3-ebs = {version = "1.17.49.0", optional = true, markers = "extra == \"ebs\""} +mypy-boto3-ec2 = {version = "1.17.49.0", optional = true, markers = "extra == \"ec2\""} typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [package.extras] -accessanalyzer = ["mypy-boto3-accessanalyzer (==1.17.7.0)"] -acm = ["mypy-boto3-acm (==1.17.7.0)"] -acm-pca = ["mypy-boto3-acm-pca (==1.17.7.0)"] -alexaforbusiness = ["mypy-boto3-alexaforbusiness (==1.17.7.0)"] -all = ["mypy-boto3-accessanalyzer (==1.17.7.0)", "mypy-boto3-acm (==1.17.7.0)", "mypy-boto3-acm-pca (==1.17.7.0)", "mypy-boto3-alexaforbusiness (==1.17.7.0)", "mypy-boto3-amp (==1.17.7.0)", "mypy-boto3-amplify (==1.17.7.0)", "mypy-boto3-amplifybackend (==1.17.7.0)", "mypy-boto3-apigateway (==1.17.7.0)", "mypy-boto3-apigatewaymanagementapi (==1.17.7.0)", "mypy-boto3-apigatewayv2 (==1.17.7.0)", "mypy-boto3-appconfig (==1.17.7.0)", "mypy-boto3-appflow (==1.17.7.0)", "mypy-boto3-appintegrations (==1.17.7.0)", "mypy-boto3-application-autoscaling (==1.17.7.0)", "mypy-boto3-application-insights (==1.17.7.0)", "mypy-boto3-appmesh (==1.17.7.0)", "mypy-boto3-appstream (==1.17.7.0)", "mypy-boto3-appsync (==1.17.7.0)", "mypy-boto3-athena (==1.17.7.0)", "mypy-boto3-auditmanager (==1.17.7.0)", "mypy-boto3-autoscaling (==1.17.7.0)", "mypy-boto3-autoscaling-plans (==1.17.7.0)", "mypy-boto3-backup (==1.17.7.0)", "mypy-boto3-batch (==1.17.7.0)", "mypy-boto3-braket (==1.17.7.0)", "mypy-boto3-budgets (==1.17.7.0)", "mypy-boto3-ce (==1.17.7.0)", "mypy-boto3-chime (==1.17.7.0)", "mypy-boto3-cloud9 (==1.17.7.0)", "mypy-boto3-clouddirectory (==1.17.7.0)", "mypy-boto3-cloudformation (==1.17.7.0)", "mypy-boto3-cloudfront (==1.17.7.0)", "mypy-boto3-cloudhsm (==1.17.7.0)", "mypy-boto3-cloudhsmv2 (==1.17.7.0)", "mypy-boto3-cloudsearch (==1.17.7.0)", "mypy-boto3-cloudsearchdomain (==1.17.7.0)", "mypy-boto3-cloudtrail (==1.17.7.0)", "mypy-boto3-cloudwatch (==1.17.7.0)", "mypy-boto3-codeartifact (==1.17.7.0)", "mypy-boto3-codebuild (==1.17.7.0)", "mypy-boto3-codecommit (==1.17.7.0)", "mypy-boto3-codedeploy (==1.17.7.0)", "mypy-boto3-codeguru-reviewer (==1.17.7.0)", "mypy-boto3-codeguruprofiler (==1.17.7.0)", "mypy-boto3-codepipeline (==1.17.7.0)", "mypy-boto3-codestar (==1.17.7.0)", "mypy-boto3-codestar-connections (==1.17.7.0)", "mypy-boto3-codestar-notifications (==1.17.7.0)", "mypy-boto3-cognito-identity (==1.17.7.0)", "mypy-boto3-cognito-idp (==1.17.7.0)", "mypy-boto3-cognito-sync (==1.17.7.0)", "mypy-boto3-comprehend (==1.17.7.0)", "mypy-boto3-comprehendmedical (==1.17.7.0)", "mypy-boto3-compute-optimizer (==1.17.7.0)", "mypy-boto3-config (==1.17.7.0)", "mypy-boto3-connect (==1.17.7.0)", "mypy-boto3-connect-contact-lens (==1.17.7.0)", "mypy-boto3-connectparticipant (==1.17.7.0)", "mypy-boto3-cur (==1.17.7.0)", "mypy-boto3-customer-profiles (==1.17.7.0)", "mypy-boto3-databrew (==1.17.7.0)", "mypy-boto3-dataexchange (==1.17.7.0)", "mypy-boto3-datapipeline (==1.17.7.0)", "mypy-boto3-datasync (==1.17.7.0)", "mypy-boto3-dax (==1.17.7.0)", "mypy-boto3-detective (==1.17.7.0)", "mypy-boto3-devicefarm (==1.17.7.0)", "mypy-boto3-devops-guru (==1.17.7.0)", "mypy-boto3-directconnect (==1.17.7.0)", "mypy-boto3-discovery (==1.17.7.0)", "mypy-boto3-dlm (==1.17.7.0)", "mypy-boto3-dms (==1.17.7.0)", "mypy-boto3-docdb (==1.17.7.0)", "mypy-boto3-ds (==1.17.7.0)", "mypy-boto3-dynamodb (==1.17.7.0)", "mypy-boto3-dynamodbstreams (==1.17.7.0)", "mypy-boto3-ebs (==1.17.7.0)", "mypy-boto3-ec2 (==1.17.7.0)", "mypy-boto3-ec2-instance-connect (==1.17.7.0)", "mypy-boto3-ecr (==1.17.7.0)", "mypy-boto3-ecr-public (==1.17.7.0)", "mypy-boto3-ecs (==1.17.7.0)", "mypy-boto3-efs (==1.17.7.0)", "mypy-boto3-eks (==1.17.7.0)", "mypy-boto3-elastic-inference (==1.17.7.0)", "mypy-boto3-elasticache (==1.17.7.0)", "mypy-boto3-elasticbeanstalk (==1.17.7.0)", "mypy-boto3-elastictranscoder (==1.17.7.0)", "mypy-boto3-elb (==1.17.7.0)", "mypy-boto3-elbv2 (==1.17.7.0)", "mypy-boto3-emr (==1.17.7.0)", "mypy-boto3-emr-containers (==1.17.7.0)", "mypy-boto3-es (==1.17.7.0)", "mypy-boto3-events (==1.17.7.0)", "mypy-boto3-firehose (==1.17.7.0)", "mypy-boto3-fms (==1.17.7.0)", "mypy-boto3-forecast (==1.17.7.0)", "mypy-boto3-forecastquery (==1.17.7.0)", "mypy-boto3-frauddetector (==1.17.7.0)", "mypy-boto3-fsx (==1.17.7.0)", "mypy-boto3-gamelift (==1.17.7.0)", "mypy-boto3-glacier (==1.17.7.0)", "mypy-boto3-globalaccelerator (==1.17.7.0)", "mypy-boto3-glue (==1.17.7.0)", "mypy-boto3-greengrass (==1.17.7.0)", "mypy-boto3-greengrassv2 (==1.17.7.0)", "mypy-boto3-groundstation (==1.17.7.0)", "mypy-boto3-guardduty (==1.17.7.0)", "mypy-boto3-health (==1.17.7.0)", "mypy-boto3-healthlake (==1.17.7.0)", "mypy-boto3-honeycode (==1.17.7.0)", "mypy-boto3-iam (==1.17.7.0)", "mypy-boto3-identitystore (==1.17.7.0)", "mypy-boto3-imagebuilder (==1.17.7.0)", "mypy-boto3-importexport (==1.17.7.0)", "mypy-boto3-inspector (==1.17.7.0)", "mypy-boto3-iot (==1.17.7.0)", "mypy-boto3-iot-data (==1.17.7.0)", "mypy-boto3-iot-jobs-data (==1.17.7.0)", "mypy-boto3-iot1click-devices (==1.17.7.0)", "mypy-boto3-iot1click-projects (==1.17.7.0)", "mypy-boto3-iotanalytics (==1.17.7.0)", "mypy-boto3-iotdeviceadvisor (==1.17.7.0)", "mypy-boto3-iotevents (==1.17.7.0)", "mypy-boto3-iotevents-data (==1.17.7.0)", "mypy-boto3-iotfleethub (==1.17.7.0)", "mypy-boto3-iotsecuretunneling (==1.17.7.0)", "mypy-boto3-iotsitewise (==1.17.7.0)", "mypy-boto3-iotthingsgraph (==1.17.7.0)", "mypy-boto3-iotwireless (==1.17.7.0)", "mypy-boto3-ivs (==1.17.7.0)", "mypy-boto3-kafka (==1.17.7.0)", "mypy-boto3-kendra (==1.17.7.0)", "mypy-boto3-kinesis (==1.17.7.0)", "mypy-boto3-kinesis-video-archived-media (==1.17.7.0)", "mypy-boto3-kinesis-video-media (==1.17.7.0)", "mypy-boto3-kinesis-video-signaling (==1.17.7.0)", "mypy-boto3-kinesisanalytics (==1.17.7.0)", "mypy-boto3-kinesisanalyticsv2 (==1.17.7.0)", "mypy-boto3-kinesisvideo (==1.17.7.0)", "mypy-boto3-kms (==1.17.7.0)", "mypy-boto3-lakeformation (==1.17.7.0)", "mypy-boto3-lambda (==1.17.7.0)", "mypy-boto3-lex-models (==1.17.7.0)", "mypy-boto3-lex-runtime (==1.17.7.0)", "mypy-boto3-lexv2-models (==1.17.7.0)", "mypy-boto3-lexv2-runtime (==1.17.7.0)", "mypy-boto3-license-manager (==1.17.7.0)", "mypy-boto3-lightsail (==1.17.7.0)", "mypy-boto3-location (==1.17.7.0)", "mypy-boto3-logs (==1.17.7.0)", "mypy-boto3-lookoutvision (==1.17.7.0)", "mypy-boto3-machinelearning (==1.17.7.0)", "mypy-boto3-macie (==1.17.7.0)", "mypy-boto3-macie2 (==1.17.7.0)", "mypy-boto3-managedblockchain (==1.17.7.0)", "mypy-boto3-marketplace-catalog (==1.17.7.0)", "mypy-boto3-marketplace-entitlement (==1.17.7.0)", "mypy-boto3-marketplacecommerceanalytics (==1.17.7.0)", "mypy-boto3-mediaconnect (==1.17.7.0)", "mypy-boto3-mediaconvert (==1.17.7.0)", "mypy-boto3-medialive (==1.17.7.0)", "mypy-boto3-mediapackage (==1.17.7.0)", "mypy-boto3-mediapackage-vod (==1.17.7.0)", "mypy-boto3-mediastore (==1.17.7.0)", "mypy-boto3-mediastore-data (==1.17.7.0)", "mypy-boto3-mediatailor (==1.17.7.0)", "mypy-boto3-meteringmarketplace (==1.17.7.0)", "mypy-boto3-mgh (==1.17.7.0)", "mypy-boto3-migrationhub-config (==1.17.7.0)", "mypy-boto3-mobile (==1.17.7.0)", "mypy-boto3-mq (==1.17.7.0)", "mypy-boto3-mturk (==1.17.7.0)", "mypy-boto3-mwaa (==1.17.7.0)", "mypy-boto3-neptune (==1.17.7.0)", "mypy-boto3-network-firewall (==1.17.7.0)", "mypy-boto3-networkmanager (==1.17.7.0)", "mypy-boto3-opsworks (==1.17.7.0)", "mypy-boto3-opsworkscm (==1.17.7.0)", "mypy-boto3-organizations (==1.17.7.0)", "mypy-boto3-outposts (==1.17.7.0)", "mypy-boto3-personalize (==1.17.7.0)", "mypy-boto3-personalize-events (==1.17.7.0)", "mypy-boto3-personalize-runtime (==1.17.7.0)", "mypy-boto3-pi (==1.17.7.0)", "mypy-boto3-pinpoint (==1.17.7.0)", "mypy-boto3-pinpoint-email (==1.17.7.0)", "mypy-boto3-pinpoint-sms-voice (==1.17.7.0)", "mypy-boto3-polly (==1.17.7.0)", "mypy-boto3-pricing (==1.17.7.0)", "mypy-boto3-qldb (==1.17.7.0)", "mypy-boto3-qldb-session (==1.17.7.0)", "mypy-boto3-quicksight (==1.17.7.0)", "mypy-boto3-ram (==1.17.7.0)", "mypy-boto3-rds (==1.17.7.0)", "mypy-boto3-rds-data (==1.17.7.0)", "mypy-boto3-redshift (==1.17.7.0)", "mypy-boto3-redshift-data (==1.17.7.0)", "mypy-boto3-rekognition (==1.17.7.0)", "mypy-boto3-resource-groups (==1.17.7.0)", "mypy-boto3-resourcegroupstaggingapi (==1.17.7.0)", "mypy-boto3-robomaker (==1.17.7.0)", "mypy-boto3-route53 (==1.17.7.0)", "mypy-boto3-route53domains (==1.17.7.0)", "mypy-boto3-route53resolver (==1.17.7.0)", "mypy-boto3-s3 (==1.17.7.0)", "mypy-boto3-s3control (==1.17.7.0)", "mypy-boto3-s3outposts (==1.17.7.0)", "mypy-boto3-sagemaker (==1.17.7.0)", "mypy-boto3-sagemaker-a2i-runtime (==1.17.7.0)", "mypy-boto3-sagemaker-edge (==1.17.7.0)", "mypy-boto3-sagemaker-featurestore-runtime (==1.17.7.0)", "mypy-boto3-sagemaker-runtime (==1.17.7.0)", "mypy-boto3-savingsplans (==1.17.7.0)", "mypy-boto3-schemas (==1.17.7.0)", "mypy-boto3-sdb (==1.17.7.0)", "mypy-boto3-secretsmanager (==1.17.7.0)", "mypy-boto3-securityhub (==1.17.7.0)", "mypy-boto3-serverlessrepo (==1.17.7.0)", "mypy-boto3-service-quotas (==1.17.7.0)", "mypy-boto3-servicecatalog (==1.17.7.0)", "mypy-boto3-servicecatalog-appregistry (==1.17.7.0)", "mypy-boto3-servicediscovery (==1.17.7.0)", "mypy-boto3-ses (==1.17.7.0)", "mypy-boto3-sesv2 (==1.17.7.0)", "mypy-boto3-shield (==1.17.7.0)", "mypy-boto3-signer (==1.17.7.0)", "mypy-boto3-sms (==1.17.7.0)", "mypy-boto3-sms-voice (==1.17.7.0)", "mypy-boto3-snowball (==1.17.7.0)", "mypy-boto3-sns (==1.17.7.0)", "mypy-boto3-sqs (==1.17.7.0)", "mypy-boto3-ssm (==1.17.7.0)", "mypy-boto3-sso (==1.17.7.0)", "mypy-boto3-sso-admin (==1.17.7.0)", "mypy-boto3-sso-oidc (==1.17.7.0)", "mypy-boto3-stepfunctions (==1.17.7.0)", "mypy-boto3-storagegateway (==1.17.7.0)", "mypy-boto3-sts (==1.17.7.0)", "mypy-boto3-support (==1.17.7.0)", "mypy-boto3-swf (==1.17.7.0)", "mypy-boto3-synthetics (==1.17.7.0)", "mypy-boto3-textract (==1.17.7.0)", "mypy-boto3-timestream-query (==1.17.7.0)", "mypy-boto3-timestream-write (==1.17.7.0)", "mypy-boto3-transcribe (==1.17.7.0)", "mypy-boto3-transfer (==1.17.7.0)", "mypy-boto3-translate (==1.17.7.0)", "mypy-boto3-waf (==1.17.7.0)", "mypy-boto3-waf-regional (==1.17.7.0)", "mypy-boto3-wafv2 (==1.17.7.0)", "mypy-boto3-wellarchitected (==1.17.7.0)", "mypy-boto3-workdocs (==1.17.7.0)", "mypy-boto3-worklink (==1.17.7.0)", "mypy-boto3-workmail (==1.17.7.0)", "mypy-boto3-workmailmessageflow (==1.17.7.0)", "mypy-boto3-workspaces (==1.17.7.0)", "mypy-boto3-xray (==1.17.7.0)"] -amp = ["mypy-boto3-amp (==1.17.7.0)"] -amplify = ["mypy-boto3-amplify (==1.17.7.0)"] -amplifybackend = ["mypy-boto3-amplifybackend (==1.17.7.0)"] -apigateway = ["mypy-boto3-apigateway (==1.17.7.0)"] -apigatewaymanagementapi = ["mypy-boto3-apigatewaymanagementapi (==1.17.7.0)"] -apigatewayv2 = ["mypy-boto3-apigatewayv2 (==1.17.7.0)"] -appconfig = ["mypy-boto3-appconfig (==1.17.7.0)"] -appflow = ["mypy-boto3-appflow (==1.17.7.0)"] -appintegrations = ["mypy-boto3-appintegrations (==1.17.7.0)"] -application-autoscaling = ["mypy-boto3-application-autoscaling (==1.17.7.0)"] -application-insights = ["mypy-boto3-application-insights (==1.17.7.0)"] -appmesh = ["mypy-boto3-appmesh (==1.17.7.0)"] -appstream = ["mypy-boto3-appstream (==1.17.7.0)"] -appsync = ["mypy-boto3-appsync (==1.17.7.0)"] -athena = ["mypy-boto3-athena (==1.17.7.0)"] -auditmanager = ["mypy-boto3-auditmanager (==1.17.7.0)"] -autoscaling = ["mypy-boto3-autoscaling (==1.17.7.0)"] -autoscaling-plans = ["mypy-boto3-autoscaling-plans (==1.17.7.0)"] -backup = ["mypy-boto3-backup (==1.17.7.0)"] -batch = ["mypy-boto3-batch (==1.17.7.0)"] -braket = ["mypy-boto3-braket (==1.17.7.0)"] -budgets = ["mypy-boto3-budgets (==1.17.7.0)"] -ce = ["mypy-boto3-ce (==1.17.7.0)"] -chime = ["mypy-boto3-chime (==1.17.7.0)"] -cloud9 = ["mypy-boto3-cloud9 (==1.17.7.0)"] -clouddirectory = ["mypy-boto3-clouddirectory (==1.17.7.0)"] -cloudformation = ["mypy-boto3-cloudformation (==1.17.7.0)"] -cloudfront = ["mypy-boto3-cloudfront (==1.17.7.0)"] -cloudhsm = ["mypy-boto3-cloudhsm (==1.17.7.0)"] -cloudhsmv2 = ["mypy-boto3-cloudhsmv2 (==1.17.7.0)"] -cloudsearch = ["mypy-boto3-cloudsearch (==1.17.7.0)"] -cloudsearchdomain = ["mypy-boto3-cloudsearchdomain (==1.17.7.0)"] -cloudtrail = ["mypy-boto3-cloudtrail (==1.17.7.0)"] -cloudwatch = ["mypy-boto3-cloudwatch (==1.17.7.0)"] -codeartifact = ["mypy-boto3-codeartifact (==1.17.7.0)"] -codebuild = ["mypy-boto3-codebuild (==1.17.7.0)"] -codecommit = ["mypy-boto3-codecommit (==1.17.7.0)"] -codedeploy = ["mypy-boto3-codedeploy (==1.17.7.0)"] -codeguru-reviewer = ["mypy-boto3-codeguru-reviewer (==1.17.7.0)"] -codeguruprofiler = ["mypy-boto3-codeguruprofiler (==1.17.7.0)"] -codepipeline = ["mypy-boto3-codepipeline (==1.17.7.0)"] -codestar = ["mypy-boto3-codestar (==1.17.7.0)"] -codestar-connections = ["mypy-boto3-codestar-connections (==1.17.7.0)"] -codestar-notifications = ["mypy-boto3-codestar-notifications (==1.17.7.0)"] -cognito-identity = ["mypy-boto3-cognito-identity (==1.17.7.0)"] -cognito-idp = ["mypy-boto3-cognito-idp (==1.17.7.0)"] -cognito-sync = ["mypy-boto3-cognito-sync (==1.17.7.0)"] -comprehend = ["mypy-boto3-comprehend (==1.17.7.0)"] -comprehendmedical = ["mypy-boto3-comprehendmedical (==1.17.7.0)"] -compute-optimizer = ["mypy-boto3-compute-optimizer (==1.17.7.0)"] -config = ["mypy-boto3-config (==1.17.7.0)"] -connect = ["mypy-boto3-connect (==1.17.7.0)"] -connect-contact-lens = ["mypy-boto3-connect-contact-lens (==1.17.7.0)"] -connectparticipant = ["mypy-boto3-connectparticipant (==1.17.7.0)"] -cur = ["mypy-boto3-cur (==1.17.7.0)"] -customer-profiles = ["mypy-boto3-customer-profiles (==1.17.7.0)"] -databrew = ["mypy-boto3-databrew (==1.17.7.0)"] -dataexchange = ["mypy-boto3-dataexchange (==1.17.7.0)"] -datapipeline = ["mypy-boto3-datapipeline (==1.17.7.0)"] -datasync = ["mypy-boto3-datasync (==1.17.7.0)"] -dax = ["mypy-boto3-dax (==1.17.7.0)"] -detective = ["mypy-boto3-detective (==1.17.7.0)"] -devicefarm = ["mypy-boto3-devicefarm (==1.17.7.0)"] -devops-guru = ["mypy-boto3-devops-guru (==1.17.7.0)"] -directconnect = ["mypy-boto3-directconnect (==1.17.7.0)"] -discovery = ["mypy-boto3-discovery (==1.17.7.0)"] -dlm = ["mypy-boto3-dlm (==1.17.7.0)"] -dms = ["mypy-boto3-dms (==1.17.7.0)"] -docdb = ["mypy-boto3-docdb (==1.17.7.0)"] -ds = ["mypy-boto3-ds (==1.17.7.0)"] -dynamodb = ["mypy-boto3-dynamodb (==1.17.7.0)"] -dynamodbstreams = ["mypy-boto3-dynamodbstreams (==1.17.7.0)"] -ebs = ["mypy-boto3-ebs (==1.17.7.0)"] -ec2 = ["mypy-boto3-ec2 (==1.17.7.0)"] -ec2-instance-connect = ["mypy-boto3-ec2-instance-connect (==1.17.7.0)"] -ecr = ["mypy-boto3-ecr (==1.17.7.0)"] -ecr-public = ["mypy-boto3-ecr-public (==1.17.7.0)"] -ecs = ["mypy-boto3-ecs (==1.17.7.0)"] -efs = ["mypy-boto3-efs (==1.17.7.0)"] -eks = ["mypy-boto3-eks (==1.17.7.0)"] -elastic-inference = ["mypy-boto3-elastic-inference (==1.17.7.0)"] -elasticache = ["mypy-boto3-elasticache (==1.17.7.0)"] -elasticbeanstalk = ["mypy-boto3-elasticbeanstalk (==1.17.7.0)"] -elastictranscoder = ["mypy-boto3-elastictranscoder (==1.17.7.0)"] -elb = ["mypy-boto3-elb (==1.17.7.0)"] -elbv2 = ["mypy-boto3-elbv2 (==1.17.7.0)"] -emr = ["mypy-boto3-emr (==1.17.7.0)"] -emr-containers = ["mypy-boto3-emr-containers (==1.17.7.0)"] -es = ["mypy-boto3-es (==1.17.7.0)"] -essential = ["mypy-boto3-cloudformation (==1.17.7.0)", "mypy-boto3-dynamodb (==1.17.7.0)", "mypy-boto3-ec2 (==1.17.7.0)", "mypy-boto3-lambda (==1.17.7.0)", "mypy-boto3-rds (==1.17.7.0)", "mypy-boto3-s3 (==1.17.7.0)", "mypy-boto3-sqs (==1.17.7.0)"] -events = ["mypy-boto3-events (==1.17.7.0)"] -firehose = ["mypy-boto3-firehose (==1.17.7.0)"] -fms = ["mypy-boto3-fms (==1.17.7.0)"] -forecast = ["mypy-boto3-forecast (==1.17.7.0)"] -forecastquery = ["mypy-boto3-forecastquery (==1.17.7.0)"] -frauddetector = ["mypy-boto3-frauddetector (==1.17.7.0)"] -fsx = ["mypy-boto3-fsx (==1.17.7.0)"] -gamelift = ["mypy-boto3-gamelift (==1.17.7.0)"] -glacier = ["mypy-boto3-glacier (==1.17.7.0)"] -globalaccelerator = ["mypy-boto3-globalaccelerator (==1.17.7.0)"] -glue = ["mypy-boto3-glue (==1.17.7.0)"] -greengrass = ["mypy-boto3-greengrass (==1.17.7.0)"] -greengrassv2 = ["mypy-boto3-greengrassv2 (==1.17.7.0)"] -groundstation = ["mypy-boto3-groundstation (==1.17.7.0)"] -guardduty = ["mypy-boto3-guardduty (==1.17.7.0)"] -health = ["mypy-boto3-health (==1.17.7.0)"] -healthlake = ["mypy-boto3-healthlake (==1.17.7.0)"] -honeycode = ["mypy-boto3-honeycode (==1.17.7.0)"] -iam = ["mypy-boto3-iam (==1.17.7.0)"] -identitystore = ["mypy-boto3-identitystore (==1.17.7.0)"] -imagebuilder = ["mypy-boto3-imagebuilder (==1.17.7.0)"] -importexport = ["mypy-boto3-importexport (==1.17.7.0)"] -inspector = ["mypy-boto3-inspector (==1.17.7.0)"] -iot = ["mypy-boto3-iot (==1.17.7.0)"] -iot-data = ["mypy-boto3-iot-data (==1.17.7.0)"] -iot-jobs-data = ["mypy-boto3-iot-jobs-data (==1.17.7.0)"] -iot1click-devices = ["mypy-boto3-iot1click-devices (==1.17.7.0)"] -iot1click-projects = ["mypy-boto3-iot1click-projects (==1.17.7.0)"] -iotanalytics = ["mypy-boto3-iotanalytics (==1.17.7.0)"] -iotdeviceadvisor = ["mypy-boto3-iotdeviceadvisor (==1.17.7.0)"] -iotevents = ["mypy-boto3-iotevents (==1.17.7.0)"] -iotevents-data = ["mypy-boto3-iotevents-data (==1.17.7.0)"] -iotfleethub = ["mypy-boto3-iotfleethub (==1.17.7.0)"] -iotsecuretunneling = ["mypy-boto3-iotsecuretunneling (==1.17.7.0)"] -iotsitewise = ["mypy-boto3-iotsitewise (==1.17.7.0)"] -iotthingsgraph = ["mypy-boto3-iotthingsgraph (==1.17.7.0)"] -iotwireless = ["mypy-boto3-iotwireless (==1.17.7.0)"] -ivs = ["mypy-boto3-ivs (==1.17.7.0)"] -kafka = ["mypy-boto3-kafka (==1.17.7.0)"] -kendra = ["mypy-boto3-kendra (==1.17.7.0)"] -kinesis = ["mypy-boto3-kinesis (==1.17.7.0)"] -kinesis-video-archived-media = ["mypy-boto3-kinesis-video-archived-media (==1.17.7.0)"] -kinesis-video-media = ["mypy-boto3-kinesis-video-media (==1.17.7.0)"] -kinesis-video-signaling = ["mypy-boto3-kinesis-video-signaling (==1.17.7.0)"] -kinesisanalytics = ["mypy-boto3-kinesisanalytics (==1.17.7.0)"] -kinesisanalyticsv2 = ["mypy-boto3-kinesisanalyticsv2 (==1.17.7.0)"] -kinesisvideo = ["mypy-boto3-kinesisvideo (==1.17.7.0)"] -kms = ["mypy-boto3-kms (==1.17.7.0)"] -lakeformation = ["mypy-boto3-lakeformation (==1.17.7.0)"] -lambda = ["mypy-boto3-lambda (==1.17.7.0)"] -lex-models = ["mypy-boto3-lex-models (==1.17.7.0)"] -lex-runtime = ["mypy-boto3-lex-runtime (==1.17.7.0)"] -lexv2-models = ["mypy-boto3-lexv2-models (==1.17.7.0)"] -lexv2-runtime = ["mypy-boto3-lexv2-runtime (==1.17.7.0)"] -license-manager = ["mypy-boto3-license-manager (==1.17.7.0)"] -lightsail = ["mypy-boto3-lightsail (==1.17.7.0)"] -location = ["mypy-boto3-location (==1.17.7.0)"] -logs = ["mypy-boto3-logs (==1.17.7.0)"] -lookoutvision = ["mypy-boto3-lookoutvision (==1.17.7.0)"] -machinelearning = ["mypy-boto3-machinelearning (==1.17.7.0)"] -macie = ["mypy-boto3-macie (==1.17.7.0)"] -macie2 = ["mypy-boto3-macie2 (==1.17.7.0)"] -managedblockchain = ["mypy-boto3-managedblockchain (==1.17.7.0)"] -marketplace-catalog = ["mypy-boto3-marketplace-catalog (==1.17.7.0)"] -marketplace-entitlement = ["mypy-boto3-marketplace-entitlement (==1.17.7.0)"] -marketplacecommerceanalytics = ["mypy-boto3-marketplacecommerceanalytics (==1.17.7.0)"] -mediaconnect = ["mypy-boto3-mediaconnect (==1.17.7.0)"] -mediaconvert = ["mypy-boto3-mediaconvert (==1.17.7.0)"] -medialive = ["mypy-boto3-medialive (==1.17.7.0)"] -mediapackage = ["mypy-boto3-mediapackage (==1.17.7.0)"] -mediapackage-vod = ["mypy-boto3-mediapackage-vod (==1.17.7.0)"] -mediastore = ["mypy-boto3-mediastore (==1.17.7.0)"] -mediastore-data = ["mypy-boto3-mediastore-data (==1.17.7.0)"] -mediatailor = ["mypy-boto3-mediatailor (==1.17.7.0)"] -meteringmarketplace = ["mypy-boto3-meteringmarketplace (==1.17.7.0)"] -mgh = ["mypy-boto3-mgh (==1.17.7.0)"] -migrationhub-config = ["mypy-boto3-migrationhub-config (==1.17.7.0)"] -mobile = ["mypy-boto3-mobile (==1.17.7.0)"] -mq = ["mypy-boto3-mq (==1.17.7.0)"] -mturk = ["mypy-boto3-mturk (==1.17.7.0)"] -mwaa = ["mypy-boto3-mwaa (==1.17.7.0)"] -neptune = ["mypy-boto3-neptune (==1.17.7.0)"] -network-firewall = ["mypy-boto3-network-firewall (==1.17.7.0)"] -networkmanager = ["mypy-boto3-networkmanager (==1.17.7.0)"] -opsworks = ["mypy-boto3-opsworks (==1.17.7.0)"] -opsworkscm = ["mypy-boto3-opsworkscm (==1.17.7.0)"] -organizations = ["mypy-boto3-organizations (==1.17.7.0)"] -outposts = ["mypy-boto3-outposts (==1.17.7.0)"] -personalize = ["mypy-boto3-personalize (==1.17.7.0)"] -personalize-events = ["mypy-boto3-personalize-events (==1.17.7.0)"] -personalize-runtime = ["mypy-boto3-personalize-runtime (==1.17.7.0)"] -pi = ["mypy-boto3-pi (==1.17.7.0)"] -pinpoint = ["mypy-boto3-pinpoint (==1.17.7.0)"] -pinpoint-email = ["mypy-boto3-pinpoint-email (==1.17.7.0)"] -pinpoint-sms-voice = ["mypy-boto3-pinpoint-sms-voice (==1.17.7.0)"] -polly = ["mypy-boto3-polly (==1.17.7.0)"] -pricing = ["mypy-boto3-pricing (==1.17.7.0)"] -qldb = ["mypy-boto3-qldb (==1.17.7.0)"] -qldb-session = ["mypy-boto3-qldb-session (==1.17.7.0)"] -quicksight = ["mypy-boto3-quicksight (==1.17.7.0)"] -ram = ["mypy-boto3-ram (==1.17.7.0)"] -rds = ["mypy-boto3-rds (==1.17.7.0)"] -rds-data = ["mypy-boto3-rds-data (==1.17.7.0)"] -redshift = ["mypy-boto3-redshift (==1.17.7.0)"] -redshift-data = ["mypy-boto3-redshift-data (==1.17.7.0)"] -rekognition = ["mypy-boto3-rekognition (==1.17.7.0)"] -resource-groups = ["mypy-boto3-resource-groups (==1.17.7.0)"] -resourcegroupstaggingapi = ["mypy-boto3-resourcegroupstaggingapi (==1.17.7.0)"] -robomaker = ["mypy-boto3-robomaker (==1.17.7.0)"] -route53 = ["mypy-boto3-route53 (==1.17.7.0)"] -route53domains = ["mypy-boto3-route53domains (==1.17.7.0)"] -route53resolver = ["mypy-boto3-route53resolver (==1.17.7.0)"] -s3 = ["mypy-boto3-s3 (==1.17.7.0)"] -s3control = ["mypy-boto3-s3control (==1.17.7.0)"] -s3outposts = ["mypy-boto3-s3outposts (==1.17.7.0)"] -sagemaker = ["mypy-boto3-sagemaker (==1.17.7.0)"] -sagemaker-a2i-runtime = ["mypy-boto3-sagemaker-a2i-runtime (==1.17.7.0)"] -sagemaker-edge = ["mypy-boto3-sagemaker-edge (==1.17.7.0)"] -sagemaker-featurestore-runtime = ["mypy-boto3-sagemaker-featurestore-runtime (==1.17.7.0)"] -sagemaker-runtime = ["mypy-boto3-sagemaker-runtime (==1.17.7.0)"] -savingsplans = ["mypy-boto3-savingsplans (==1.17.7.0)"] -schemas = ["mypy-boto3-schemas (==1.17.7.0)"] -sdb = ["mypy-boto3-sdb (==1.17.7.0)"] -secretsmanager = ["mypy-boto3-secretsmanager (==1.17.7.0)"] -securityhub = ["mypy-boto3-securityhub (==1.17.7.0)"] -serverlessrepo = ["mypy-boto3-serverlessrepo (==1.17.7.0)"] -service-quotas = ["mypy-boto3-service-quotas (==1.17.7.0)"] -servicecatalog = ["mypy-boto3-servicecatalog (==1.17.7.0)"] -servicecatalog-appregistry = ["mypy-boto3-servicecatalog-appregistry (==1.17.7.0)"] -servicediscovery = ["mypy-boto3-servicediscovery (==1.17.7.0)"] -ses = ["mypy-boto3-ses (==1.17.7.0)"] -sesv2 = ["mypy-boto3-sesv2 (==1.17.7.0)"] -shield = ["mypy-boto3-shield (==1.17.7.0)"] -signer = ["mypy-boto3-signer (==1.17.7.0)"] -sms = ["mypy-boto3-sms (==1.17.7.0)"] -sms-voice = ["mypy-boto3-sms-voice (==1.17.7.0)"] -snowball = ["mypy-boto3-snowball (==1.17.7.0)"] -sns = ["mypy-boto3-sns (==1.17.7.0)"] -sqs = ["mypy-boto3-sqs (==1.17.7.0)"] -ssm = ["mypy-boto3-ssm (==1.17.7.0)"] -sso = ["mypy-boto3-sso (==1.17.7.0)"] -sso-admin = ["mypy-boto3-sso-admin (==1.17.7.0)"] -sso-oidc = ["mypy-boto3-sso-oidc (==1.17.7.0)"] -stepfunctions = ["mypy-boto3-stepfunctions (==1.17.7.0)"] -storagegateway = ["mypy-boto3-storagegateway (==1.17.7.0)"] -sts = ["mypy-boto3-sts (==1.17.7.0)"] -support = ["mypy-boto3-support (==1.17.7.0)"] -swf = ["mypy-boto3-swf (==1.17.7.0)"] -synthetics = ["mypy-boto3-synthetics (==1.17.7.0)"] -textract = ["mypy-boto3-textract (==1.17.7.0)"] -timestream-query = ["mypy-boto3-timestream-query (==1.17.7.0)"] -timestream-write = ["mypy-boto3-timestream-write (==1.17.7.0)"] -transcribe = ["mypy-boto3-transcribe (==1.17.7.0)"] -transfer = ["mypy-boto3-transfer (==1.17.7.0)"] -translate = ["mypy-boto3-translate (==1.17.7.0)"] -waf = ["mypy-boto3-waf (==1.17.7.0)"] -waf-regional = ["mypy-boto3-waf-regional (==1.17.7.0)"] -wafv2 = ["mypy-boto3-wafv2 (==1.17.7.0)"] -wellarchitected = ["mypy-boto3-wellarchitected (==1.17.7.0)"] -workdocs = ["mypy-boto3-workdocs (==1.17.7.0)"] -worklink = ["mypy-boto3-worklink (==1.17.7.0)"] -workmail = ["mypy-boto3-workmail (==1.17.7.0)"] -workmailmessageflow = ["mypy-boto3-workmailmessageflow (==1.17.7.0)"] -workspaces = ["mypy-boto3-workspaces (==1.17.7.0)"] -xray = ["mypy-boto3-xray (==1.17.7.0)"] +accessanalyzer = ["mypy-boto3-accessanalyzer (==1.17.49.0)"] +acm = ["mypy-boto3-acm (==1.17.49.0)"] +acm-pca = ["mypy-boto3-acm-pca (==1.17.49.0)"] +alexaforbusiness = ["mypy-boto3-alexaforbusiness (==1.17.49.0)"] +all = ["mypy-boto3-accessanalyzer (==1.17.49.0)", "mypy-boto3-acm (==1.17.49.0)", "mypy-boto3-acm-pca (==1.17.49.0)", "mypy-boto3-alexaforbusiness (==1.17.49.0)", "mypy-boto3-amp (==1.17.49.0)", "mypy-boto3-amplify (==1.17.49.0)", "mypy-boto3-amplifybackend (==1.17.49.0)", "mypy-boto3-apigateway (==1.17.49.0)", "mypy-boto3-apigatewaymanagementapi (==1.17.49.0)", "mypy-boto3-apigatewayv2 (==1.17.49.0)", "mypy-boto3-appconfig (==1.17.49.0)", "mypy-boto3-appflow (==1.17.49.0)", "mypy-boto3-appintegrations (==1.17.49.0)", "mypy-boto3-application-autoscaling (==1.17.49.0)", "mypy-boto3-application-insights (==1.17.49.0)", "mypy-boto3-appmesh (==1.17.49.0)", "mypy-boto3-appstream (==1.17.49.0)", "mypy-boto3-appsync (==1.17.49.0)", "mypy-boto3-athena (==1.17.49.0)", "mypy-boto3-auditmanager (==1.17.49.0)", "mypy-boto3-autoscaling (==1.17.49.0)", "mypy-boto3-autoscaling-plans (==1.17.49.0)", "mypy-boto3-backup (==1.17.49.0)", "mypy-boto3-batch (==1.17.49.0)", "mypy-boto3-braket (==1.17.49.0)", "mypy-boto3-budgets (==1.17.49.0)", "mypy-boto3-ce (==1.17.49.0)", "mypy-boto3-chime (==1.17.49.0)", "mypy-boto3-cloud9 (==1.17.49.0)", "mypy-boto3-clouddirectory (==1.17.49.0)", "mypy-boto3-cloudformation (==1.17.49.0)", "mypy-boto3-cloudfront (==1.17.49.0)", "mypy-boto3-cloudhsm (==1.17.49.0)", "mypy-boto3-cloudhsmv2 (==1.17.49.0)", "mypy-boto3-cloudsearch (==1.17.49.0)", "mypy-boto3-cloudsearchdomain (==1.17.49.0)", "mypy-boto3-cloudtrail (==1.17.49.0)", "mypy-boto3-cloudwatch (==1.17.49.0)", "mypy-boto3-codeartifact (==1.17.49.0)", "mypy-boto3-codebuild (==1.17.49.0)", "mypy-boto3-codecommit (==1.17.49.0)", "mypy-boto3-codedeploy (==1.17.49.0)", "mypy-boto3-codeguru-reviewer (==1.17.49.0)", "mypy-boto3-codeguruprofiler (==1.17.49.0)", "mypy-boto3-codepipeline (==1.17.49.0)", "mypy-boto3-codestar (==1.17.49.0)", "mypy-boto3-codestar-connections (==1.17.49.0)", "mypy-boto3-codestar-notifications (==1.17.49.0)", "mypy-boto3-cognito-identity (==1.17.49.0)", "mypy-boto3-cognito-idp (==1.17.49.0)", "mypy-boto3-cognito-sync (==1.17.49.0)", "mypy-boto3-comprehend (==1.17.49.0)", "mypy-boto3-comprehendmedical (==1.17.49.0)", "mypy-boto3-compute-optimizer (==1.17.49.0)", "mypy-boto3-config (==1.17.49.0)", "mypy-boto3-connect (==1.17.49.0)", "mypy-boto3-connect-contact-lens (==1.17.49.0)", "mypy-boto3-connectparticipant (==1.17.49.0)", "mypy-boto3-cur (==1.17.49.0)", "mypy-boto3-customer-profiles (==1.17.49.0)", "mypy-boto3-databrew (==1.17.49.0)", "mypy-boto3-dataexchange (==1.17.49.0)", "mypy-boto3-datapipeline (==1.17.49.0)", "mypy-boto3-datasync (==1.17.49.0)", "mypy-boto3-dax (==1.17.49.0)", "mypy-boto3-detective (==1.17.49.0)", "mypy-boto3-devicefarm (==1.17.49.0)", "mypy-boto3-devops-guru (==1.17.49.0)", "mypy-boto3-directconnect (==1.17.49.0)", "mypy-boto3-discovery (==1.17.49.0)", "mypy-boto3-dlm (==1.17.49.0)", "mypy-boto3-dms (==1.17.49.0)", "mypy-boto3-docdb (==1.17.49.0)", "mypy-boto3-ds (==1.17.49.0)", "mypy-boto3-dynamodb (==1.17.49.0)", "mypy-boto3-dynamodbstreams (==1.17.49.0)", "mypy-boto3-ebs (==1.17.49.0)", "mypy-boto3-ec2 (==1.17.49.0)", "mypy-boto3-ec2-instance-connect (==1.17.49.0)", "mypy-boto3-ecr (==1.17.49.0)", "mypy-boto3-ecr-public (==1.17.49.0)", "mypy-boto3-ecs (==1.17.49.0)", "mypy-boto3-efs (==1.17.49.0)", "mypy-boto3-eks (==1.17.49.0)", "mypy-boto3-elastic-inference (==1.17.49.0)", "mypy-boto3-elasticache (==1.17.49.0)", "mypy-boto3-elasticbeanstalk (==1.17.49.0)", "mypy-boto3-elastictranscoder (==1.17.49.0)", "mypy-boto3-elb (==1.17.49.0)", "mypy-boto3-elbv2 (==1.17.49.0)", "mypy-boto3-emr (==1.17.49.0)", "mypy-boto3-emr-containers (==1.17.49.0)", "mypy-boto3-es (==1.17.49.0)", "mypy-boto3-events (==1.17.49.0)", "mypy-boto3-firehose (==1.17.49.0)", "mypy-boto3-fms (==1.17.49.0)", "mypy-boto3-forecast (==1.17.49.0)", "mypy-boto3-forecastquery (==1.17.49.0)", "mypy-boto3-frauddetector (==1.17.49.0)", "mypy-boto3-fsx (==1.17.49.0)", "mypy-boto3-gamelift (==1.17.49.0)", "mypy-boto3-glacier (==1.17.49.0)", "mypy-boto3-globalaccelerator (==1.17.49.0)", "mypy-boto3-glue (==1.17.49.0)", "mypy-boto3-greengrass (==1.17.49.0)", "mypy-boto3-greengrassv2 (==1.17.49.0)", "mypy-boto3-groundstation (==1.17.49.0)", "mypy-boto3-guardduty (==1.17.49.0)", "mypy-boto3-health (==1.17.49.0)", "mypy-boto3-healthlake (==1.17.49.0)", "mypy-boto3-honeycode (==1.17.49.0)", "mypy-boto3-iam (==1.17.49.0)", "mypy-boto3-identitystore (==1.17.49.0)", "mypy-boto3-imagebuilder (==1.17.49.0)", "mypy-boto3-importexport (==1.17.49.0)", "mypy-boto3-inspector (==1.17.49.0)", "mypy-boto3-iot (==1.17.49.0)", "mypy-boto3-iot-data (==1.17.49.0)", "mypy-boto3-iot-jobs-data (==1.17.49.0)", "mypy-boto3-iot1click-devices (==1.17.49.0)", "mypy-boto3-iot1click-projects (==1.17.49.0)", "mypy-boto3-iotanalytics (==1.17.49.0)", "mypy-boto3-iotdeviceadvisor (==1.17.49.0)", "mypy-boto3-iotevents (==1.17.49.0)", "mypy-boto3-iotevents-data (==1.17.49.0)", "mypy-boto3-iotfleethub (==1.17.49.0)", "mypy-boto3-iotsecuretunneling (==1.17.49.0)", "mypy-boto3-iotsitewise (==1.17.49.0)", "mypy-boto3-iotthingsgraph (==1.17.49.0)", "mypy-boto3-iotwireless (==1.17.49.0)", "mypy-boto3-ivs (==1.17.49.0)", "mypy-boto3-kafka (==1.17.49.0)", "mypy-boto3-kendra (==1.17.49.0)", "mypy-boto3-kinesis (==1.17.49.0)", "mypy-boto3-kinesis-video-archived-media (==1.17.49.0)", "mypy-boto3-kinesis-video-media (==1.17.49.0)", "mypy-boto3-kinesis-video-signaling (==1.17.49.0)", "mypy-boto3-kinesisanalytics (==1.17.49.0)", "mypy-boto3-kinesisanalyticsv2 (==1.17.49.0)", "mypy-boto3-kinesisvideo (==1.17.49.0)", "mypy-boto3-kms (==1.17.49.0)", "mypy-boto3-lakeformation (==1.17.49.0)", "mypy-boto3-lambda (==1.17.49.0)", "mypy-boto3-lex-models (==1.17.49.0)", "mypy-boto3-lex-runtime (==1.17.49.0)", "mypy-boto3-lexv2-models (==1.17.49.0)", "mypy-boto3-lexv2-runtime (==1.17.49.0)", "mypy-boto3-license-manager (==1.17.49.0)", "mypy-boto3-lightsail (==1.17.49.0)", "mypy-boto3-location (==1.17.49.0)", "mypy-boto3-logs (==1.17.49.0)", "mypy-boto3-lookoutvision (==1.17.49.0)", "mypy-boto3-machinelearning (==1.17.49.0)", "mypy-boto3-macie (==1.17.49.0)", "mypy-boto3-macie2 (==1.17.49.0)", "mypy-boto3-managedblockchain (==1.17.49.0)", "mypy-boto3-marketplace-catalog (==1.17.49.0)", "mypy-boto3-marketplace-entitlement (==1.17.49.0)", "mypy-boto3-marketplacecommerceanalytics (==1.17.49.0)", "mypy-boto3-mediaconnect (==1.17.49.0)", "mypy-boto3-mediaconvert (==1.17.49.0)", "mypy-boto3-medialive (==1.17.49.0)", "mypy-boto3-mediapackage (==1.17.49.0)", "mypy-boto3-mediapackage-vod (==1.17.49.0)", "mypy-boto3-mediastore (==1.17.49.0)", "mypy-boto3-mediastore-data (==1.17.49.0)", "mypy-boto3-mediatailor (==1.17.49.0)", "mypy-boto3-meteringmarketplace (==1.17.49.0)", "mypy-boto3-mgh (==1.17.49.0)", "mypy-boto3-migrationhub-config (==1.17.49.0)", "mypy-boto3-mobile (==1.17.49.0)", "mypy-boto3-mq (==1.17.49.0)", "mypy-boto3-mturk (==1.17.49.0)", "mypy-boto3-mwaa (==1.17.49.0)", "mypy-boto3-neptune (==1.17.49.0)", "mypy-boto3-network-firewall (==1.17.49.0)", "mypy-boto3-networkmanager (==1.17.49.0)", "mypy-boto3-opsworks (==1.17.49.0)", "mypy-boto3-opsworkscm (==1.17.49.0)", "mypy-boto3-organizations (==1.17.49.0)", "mypy-boto3-outposts (==1.17.49.0)", "mypy-boto3-personalize (==1.17.49.0)", "mypy-boto3-personalize-events (==1.17.49.0)", "mypy-boto3-personalize-runtime (==1.17.49.0)", "mypy-boto3-pi (==1.17.49.0)", "mypy-boto3-pinpoint (==1.17.49.0)", "mypy-boto3-pinpoint-email (==1.17.49.0)", "mypy-boto3-pinpoint-sms-voice (==1.17.49.0)", "mypy-boto3-polly (==1.17.49.0)", "mypy-boto3-pricing (==1.17.49.0)", "mypy-boto3-qldb (==1.17.49.0)", "mypy-boto3-qldb-session (==1.17.49.0)", "mypy-boto3-quicksight (==1.17.49.0)", "mypy-boto3-ram (==1.17.49.0)", "mypy-boto3-rds (==1.17.49.0)", "mypy-boto3-rds-data (==1.17.49.0)", "mypy-boto3-redshift (==1.17.49.0)", "mypy-boto3-redshift-data (==1.17.49.0)", "mypy-boto3-rekognition (==1.17.49.0)", "mypy-boto3-resource-groups (==1.17.49.0)", "mypy-boto3-resourcegroupstaggingapi (==1.17.49.0)", "mypy-boto3-robomaker (==1.17.49.0)", "mypy-boto3-route53 (==1.17.49.0)", "mypy-boto3-route53domains (==1.17.49.0)", "mypy-boto3-route53resolver (==1.17.49.0)", "mypy-boto3-s3 (==1.17.49.0)", "mypy-boto3-s3control (==1.17.49.0)", "mypy-boto3-s3outposts (==1.17.49.0)", "mypy-boto3-sagemaker (==1.17.49.0)", "mypy-boto3-sagemaker-a2i-runtime (==1.17.49.0)", "mypy-boto3-sagemaker-edge (==1.17.49.0)", "mypy-boto3-sagemaker-featurestore-runtime (==1.17.49.0)", "mypy-boto3-sagemaker-runtime (==1.17.49.0)", "mypy-boto3-savingsplans (==1.17.49.0)", "mypy-boto3-schemas (==1.17.49.0)", "mypy-boto3-sdb (==1.17.49.0)", "mypy-boto3-secretsmanager (==1.17.49.0)", "mypy-boto3-securityhub (==1.17.49.0)", "mypy-boto3-serverlessrepo (==1.17.49.0)", "mypy-boto3-service-quotas (==1.17.49.0)", "mypy-boto3-servicecatalog (==1.17.49.0)", "mypy-boto3-servicecatalog-appregistry (==1.17.49.0)", "mypy-boto3-servicediscovery (==1.17.49.0)", "mypy-boto3-ses (==1.17.49.0)", "mypy-boto3-sesv2 (==1.17.49.0)", "mypy-boto3-shield (==1.17.49.0)", "mypy-boto3-signer (==1.17.49.0)", "mypy-boto3-sms (==1.17.49.0)", "mypy-boto3-sms-voice (==1.17.49.0)", "mypy-boto3-snowball (==1.17.49.0)", "mypy-boto3-sns (==1.17.49.0)", "mypy-boto3-sqs (==1.17.49.0)", "mypy-boto3-ssm (==1.17.49.0)", "mypy-boto3-sso (==1.17.49.0)", "mypy-boto3-sso-admin (==1.17.49.0)", "mypy-boto3-sso-oidc (==1.17.49.0)", "mypy-boto3-stepfunctions (==1.17.49.0)", "mypy-boto3-storagegateway (==1.17.49.0)", "mypy-boto3-sts (==1.17.49.0)", "mypy-boto3-support (==1.17.49.0)", "mypy-boto3-swf (==1.17.49.0)", "mypy-boto3-synthetics (==1.17.49.0)", "mypy-boto3-textract (==1.17.49.0)", "mypy-boto3-timestream-query (==1.17.49.0)", "mypy-boto3-timestream-write (==1.17.49.0)", "mypy-boto3-transcribe (==1.17.49.0)", "mypy-boto3-transfer (==1.17.49.0)", "mypy-boto3-translate (==1.17.49.0)", "mypy-boto3-waf (==1.17.49.0)", "mypy-boto3-waf-regional (==1.17.49.0)", "mypy-boto3-wafv2 (==1.17.49.0)", "mypy-boto3-wellarchitected (==1.17.49.0)", "mypy-boto3-workdocs (==1.17.49.0)", "mypy-boto3-worklink (==1.17.49.0)", "mypy-boto3-workmail (==1.17.49.0)", "mypy-boto3-workmailmessageflow (==1.17.49.0)", "mypy-boto3-workspaces (==1.17.49.0)", "mypy-boto3-xray (==1.17.49.0)"] +amp = ["mypy-boto3-amp (==1.17.49.0)"] +amplify = ["mypy-boto3-amplify (==1.17.49.0)"] +amplifybackend = ["mypy-boto3-amplifybackend (==1.17.49.0)"] +apigateway = ["mypy-boto3-apigateway (==1.17.49.0)"] +apigatewaymanagementapi = ["mypy-boto3-apigatewaymanagementapi (==1.17.49.0)"] +apigatewayv2 = ["mypy-boto3-apigatewayv2 (==1.17.49.0)"] +appconfig = ["mypy-boto3-appconfig (==1.17.49.0)"] +appflow = ["mypy-boto3-appflow (==1.17.49.0)"] +appintegrations = ["mypy-boto3-appintegrations (==1.17.49.0)"] +application-autoscaling = ["mypy-boto3-application-autoscaling (==1.17.49.0)"] +application-insights = ["mypy-boto3-application-insights (==1.17.49.0)"] +appmesh = ["mypy-boto3-appmesh (==1.17.49.0)"] +appstream = ["mypy-boto3-appstream (==1.17.49.0)"] +appsync = ["mypy-boto3-appsync (==1.17.49.0)"] +athena = ["mypy-boto3-athena (==1.17.49.0)"] +auditmanager = ["mypy-boto3-auditmanager (==1.17.49.0)"] +autoscaling = ["mypy-boto3-autoscaling (==1.17.49.0)"] +autoscaling-plans = ["mypy-boto3-autoscaling-plans (==1.17.49.0)"] +backup = ["mypy-boto3-backup (==1.17.49.0)"] +batch = ["mypy-boto3-batch (==1.17.49.0)"] +braket = ["mypy-boto3-braket (==1.17.49.0)"] +budgets = ["mypy-boto3-budgets (==1.17.49.0)"] +ce = ["mypy-boto3-ce (==1.17.49.0)"] +chime = ["mypy-boto3-chime (==1.17.49.0)"] +cloud9 = ["mypy-boto3-cloud9 (==1.17.49.0)"] +clouddirectory = ["mypy-boto3-clouddirectory (==1.17.49.0)"] +cloudformation = ["mypy-boto3-cloudformation (==1.17.49.0)"] +cloudfront = ["mypy-boto3-cloudfront (==1.17.49.0)"] +cloudhsm = ["mypy-boto3-cloudhsm (==1.17.49.0)"] +cloudhsmv2 = ["mypy-boto3-cloudhsmv2 (==1.17.49.0)"] +cloudsearch = ["mypy-boto3-cloudsearch (==1.17.49.0)"] +cloudsearchdomain = ["mypy-boto3-cloudsearchdomain (==1.17.49.0)"] +cloudtrail = ["mypy-boto3-cloudtrail (==1.17.49.0)"] +cloudwatch = ["mypy-boto3-cloudwatch (==1.17.49.0)"] +codeartifact = ["mypy-boto3-codeartifact (==1.17.49.0)"] +codebuild = ["mypy-boto3-codebuild (==1.17.49.0)"] +codecommit = ["mypy-boto3-codecommit (==1.17.49.0)"] +codedeploy = ["mypy-boto3-codedeploy (==1.17.49.0)"] +codeguru-reviewer = ["mypy-boto3-codeguru-reviewer (==1.17.49.0)"] +codeguruprofiler = ["mypy-boto3-codeguruprofiler (==1.17.49.0)"] +codepipeline = ["mypy-boto3-codepipeline (==1.17.49.0)"] +codestar = ["mypy-boto3-codestar (==1.17.49.0)"] +codestar-connections = ["mypy-boto3-codestar-connections (==1.17.49.0)"] +codestar-notifications = ["mypy-boto3-codestar-notifications (==1.17.49.0)"] +cognito-identity = ["mypy-boto3-cognito-identity (==1.17.49.0)"] +cognito-idp = ["mypy-boto3-cognito-idp (==1.17.49.0)"] +cognito-sync = ["mypy-boto3-cognito-sync (==1.17.49.0)"] +comprehend = ["mypy-boto3-comprehend (==1.17.49.0)"] +comprehendmedical = ["mypy-boto3-comprehendmedical (==1.17.49.0)"] +compute-optimizer = ["mypy-boto3-compute-optimizer (==1.17.49.0)"] +config = ["mypy-boto3-config (==1.17.49.0)"] +connect = ["mypy-boto3-connect (==1.17.49.0)"] +connect-contact-lens = ["mypy-boto3-connect-contact-lens (==1.17.49.0)"] +connectparticipant = ["mypy-boto3-connectparticipant (==1.17.49.0)"] +cur = ["mypy-boto3-cur (==1.17.49.0)"] +customer-profiles = ["mypy-boto3-customer-profiles (==1.17.49.0)"] +databrew = ["mypy-boto3-databrew (==1.17.49.0)"] +dataexchange = ["mypy-boto3-dataexchange (==1.17.49.0)"] +datapipeline = ["mypy-boto3-datapipeline (==1.17.49.0)"] +datasync = ["mypy-boto3-datasync (==1.17.49.0)"] +dax = ["mypy-boto3-dax (==1.17.49.0)"] +detective = ["mypy-boto3-detective (==1.17.49.0)"] +devicefarm = ["mypy-boto3-devicefarm (==1.17.49.0)"] +devops-guru = ["mypy-boto3-devops-guru (==1.17.49.0)"] +directconnect = ["mypy-boto3-directconnect (==1.17.49.0)"] +discovery = ["mypy-boto3-discovery (==1.17.49.0)"] +dlm = ["mypy-boto3-dlm (==1.17.49.0)"] +dms = ["mypy-boto3-dms (==1.17.49.0)"] +docdb = ["mypy-boto3-docdb (==1.17.49.0)"] +ds = ["mypy-boto3-ds (==1.17.49.0)"] +dynamodb = ["mypy-boto3-dynamodb (==1.17.49.0)"] +dynamodbstreams = ["mypy-boto3-dynamodbstreams (==1.17.49.0)"] +ebs = ["mypy-boto3-ebs (==1.17.49.0)"] +ec2 = ["mypy-boto3-ec2 (==1.17.49.0)"] +ec2-instance-connect = ["mypy-boto3-ec2-instance-connect (==1.17.49.0)"] +ecr = ["mypy-boto3-ecr (==1.17.49.0)"] +ecr-public = ["mypy-boto3-ecr-public (==1.17.49.0)"] +ecs = ["mypy-boto3-ecs (==1.17.49.0)"] +efs = ["mypy-boto3-efs (==1.17.49.0)"] +eks = ["mypy-boto3-eks (==1.17.49.0)"] +elastic-inference = ["mypy-boto3-elastic-inference (==1.17.49.0)"] +elasticache = ["mypy-boto3-elasticache (==1.17.49.0)"] +elasticbeanstalk = ["mypy-boto3-elasticbeanstalk (==1.17.49.0)"] +elastictranscoder = ["mypy-boto3-elastictranscoder (==1.17.49.0)"] +elb = ["mypy-boto3-elb (==1.17.49.0)"] +elbv2 = ["mypy-boto3-elbv2 (==1.17.49.0)"] +emr = ["mypy-boto3-emr (==1.17.49.0)"] +emr-containers = ["mypy-boto3-emr-containers (==1.17.49.0)"] +es = ["mypy-boto3-es (==1.17.49.0)"] +essential = ["mypy-boto3-cloudformation (==1.17.49.0)", "mypy-boto3-dynamodb (==1.17.49.0)", "mypy-boto3-ec2 (==1.17.49.0)", "mypy-boto3-lambda (==1.17.49.0)", "mypy-boto3-rds (==1.17.49.0)", "mypy-boto3-s3 (==1.17.49.0)", "mypy-boto3-sqs (==1.17.49.0)"] +events = ["mypy-boto3-events (==1.17.49.0)"] +firehose = ["mypy-boto3-firehose (==1.17.49.0)"] +fms = ["mypy-boto3-fms (==1.17.49.0)"] +forecast = ["mypy-boto3-forecast (==1.17.49.0)"] +forecastquery = ["mypy-boto3-forecastquery (==1.17.49.0)"] +frauddetector = ["mypy-boto3-frauddetector (==1.17.49.0)"] +fsx = ["mypy-boto3-fsx (==1.17.49.0)"] +gamelift = ["mypy-boto3-gamelift (==1.17.49.0)"] +glacier = ["mypy-boto3-glacier (==1.17.49.0)"] +globalaccelerator = ["mypy-boto3-globalaccelerator (==1.17.49.0)"] +glue = ["mypy-boto3-glue (==1.17.49.0)"] +greengrass = ["mypy-boto3-greengrass (==1.17.49.0)"] +greengrassv2 = ["mypy-boto3-greengrassv2 (==1.17.49.0)"] +groundstation = ["mypy-boto3-groundstation (==1.17.49.0)"] +guardduty = ["mypy-boto3-guardduty (==1.17.49.0)"] +health = ["mypy-boto3-health (==1.17.49.0)"] +healthlake = ["mypy-boto3-healthlake (==1.17.49.0)"] +honeycode = ["mypy-boto3-honeycode (==1.17.49.0)"] +iam = ["mypy-boto3-iam (==1.17.49.0)"] +identitystore = ["mypy-boto3-identitystore (==1.17.49.0)"] +imagebuilder = ["mypy-boto3-imagebuilder (==1.17.49.0)"] +importexport = ["mypy-boto3-importexport (==1.17.49.0)"] +inspector = ["mypy-boto3-inspector (==1.17.49.0)"] +iot = ["mypy-boto3-iot (==1.17.49.0)"] +iot-data = ["mypy-boto3-iot-data (==1.17.49.0)"] +iot-jobs-data = ["mypy-boto3-iot-jobs-data (==1.17.49.0)"] +iot1click-devices = ["mypy-boto3-iot1click-devices (==1.17.49.0)"] +iot1click-projects = ["mypy-boto3-iot1click-projects (==1.17.49.0)"] +iotanalytics = ["mypy-boto3-iotanalytics (==1.17.49.0)"] +iotdeviceadvisor = ["mypy-boto3-iotdeviceadvisor (==1.17.49.0)"] +iotevents = ["mypy-boto3-iotevents (==1.17.49.0)"] +iotevents-data = ["mypy-boto3-iotevents-data (==1.17.49.0)"] +iotfleethub = ["mypy-boto3-iotfleethub (==1.17.49.0)"] +iotsecuretunneling = ["mypy-boto3-iotsecuretunneling (==1.17.49.0)"] +iotsitewise = ["mypy-boto3-iotsitewise (==1.17.49.0)"] +iotthingsgraph = ["mypy-boto3-iotthingsgraph (==1.17.49.0)"] +iotwireless = ["mypy-boto3-iotwireless (==1.17.49.0)"] +ivs = ["mypy-boto3-ivs (==1.17.49.0)"] +kafka = ["mypy-boto3-kafka (==1.17.49.0)"] +kendra = ["mypy-boto3-kendra (==1.17.49.0)"] +kinesis = ["mypy-boto3-kinesis (==1.17.49.0)"] +kinesis-video-archived-media = ["mypy-boto3-kinesis-video-archived-media (==1.17.49.0)"] +kinesis-video-media = ["mypy-boto3-kinesis-video-media (==1.17.49.0)"] +kinesis-video-signaling = ["mypy-boto3-kinesis-video-signaling (==1.17.49.0)"] +kinesisanalytics = ["mypy-boto3-kinesisanalytics (==1.17.49.0)"] +kinesisanalyticsv2 = ["mypy-boto3-kinesisanalyticsv2 (==1.17.49.0)"] +kinesisvideo = ["mypy-boto3-kinesisvideo (==1.17.49.0)"] +kms = ["mypy-boto3-kms (==1.17.49.0)"] +lakeformation = ["mypy-boto3-lakeformation (==1.17.49.0)"] +lambda = ["mypy-boto3-lambda (==1.17.49.0)"] +lex-models = ["mypy-boto3-lex-models (==1.17.49.0)"] +lex-runtime = ["mypy-boto3-lex-runtime (==1.17.49.0)"] +lexv2-models = ["mypy-boto3-lexv2-models (==1.17.49.0)"] +lexv2-runtime = ["mypy-boto3-lexv2-runtime (==1.17.49.0)"] +license-manager = ["mypy-boto3-license-manager (==1.17.49.0)"] +lightsail = ["mypy-boto3-lightsail (==1.17.49.0)"] +location = ["mypy-boto3-location (==1.17.49.0)"] +logs = ["mypy-boto3-logs (==1.17.49.0)"] +lookoutvision = ["mypy-boto3-lookoutvision (==1.17.49.0)"] +machinelearning = ["mypy-boto3-machinelearning (==1.17.49.0)"] +macie = ["mypy-boto3-macie (==1.17.49.0)"] +macie2 = ["mypy-boto3-macie2 (==1.17.49.0)"] +managedblockchain = ["mypy-boto3-managedblockchain (==1.17.49.0)"] +marketplace-catalog = ["mypy-boto3-marketplace-catalog (==1.17.49.0)"] +marketplace-entitlement = ["mypy-boto3-marketplace-entitlement (==1.17.49.0)"] +marketplacecommerceanalytics = ["mypy-boto3-marketplacecommerceanalytics (==1.17.49.0)"] +mediaconnect = ["mypy-boto3-mediaconnect (==1.17.49.0)"] +mediaconvert = ["mypy-boto3-mediaconvert (==1.17.49.0)"] +medialive = ["mypy-boto3-medialive (==1.17.49.0)"] +mediapackage = ["mypy-boto3-mediapackage (==1.17.49.0)"] +mediapackage-vod = ["mypy-boto3-mediapackage-vod (==1.17.49.0)"] +mediastore = ["mypy-boto3-mediastore (==1.17.49.0)"] +mediastore-data = ["mypy-boto3-mediastore-data (==1.17.49.0)"] +mediatailor = ["mypy-boto3-mediatailor (==1.17.49.0)"] +meteringmarketplace = ["mypy-boto3-meteringmarketplace (==1.17.49.0)"] +mgh = ["mypy-boto3-mgh (==1.17.49.0)"] +migrationhub-config = ["mypy-boto3-migrationhub-config (==1.17.49.0)"] +mobile = ["mypy-boto3-mobile (==1.17.49.0)"] +mq = ["mypy-boto3-mq (==1.17.49.0)"] +mturk = ["mypy-boto3-mturk (==1.17.49.0)"] +mwaa = ["mypy-boto3-mwaa (==1.17.49.0)"] +neptune = ["mypy-boto3-neptune (==1.17.49.0)"] +network-firewall = ["mypy-boto3-network-firewall (==1.17.49.0)"] +networkmanager = ["mypy-boto3-networkmanager (==1.17.49.0)"] +opsworks = ["mypy-boto3-opsworks (==1.17.49.0)"] +opsworkscm = ["mypy-boto3-opsworkscm (==1.17.49.0)"] +organizations = ["mypy-boto3-organizations (==1.17.49.0)"] +outposts = ["mypy-boto3-outposts (==1.17.49.0)"] +personalize = ["mypy-boto3-personalize (==1.17.49.0)"] +personalize-events = ["mypy-boto3-personalize-events (==1.17.49.0)"] +personalize-runtime = ["mypy-boto3-personalize-runtime (==1.17.49.0)"] +pi = ["mypy-boto3-pi (==1.17.49.0)"] +pinpoint = ["mypy-boto3-pinpoint (==1.17.49.0)"] +pinpoint-email = ["mypy-boto3-pinpoint-email (==1.17.49.0)"] +pinpoint-sms-voice = ["mypy-boto3-pinpoint-sms-voice (==1.17.49.0)"] +polly = ["mypy-boto3-polly (==1.17.49.0)"] +pricing = ["mypy-boto3-pricing (==1.17.49.0)"] +qldb = ["mypy-boto3-qldb (==1.17.49.0)"] +qldb-session = ["mypy-boto3-qldb-session (==1.17.49.0)"] +quicksight = ["mypy-boto3-quicksight (==1.17.49.0)"] +ram = ["mypy-boto3-ram (==1.17.49.0)"] +rds = ["mypy-boto3-rds (==1.17.49.0)"] +rds-data = ["mypy-boto3-rds-data (==1.17.49.0)"] +redshift = ["mypy-boto3-redshift (==1.17.49.0)"] +redshift-data = ["mypy-boto3-redshift-data (==1.17.49.0)"] +rekognition = ["mypy-boto3-rekognition (==1.17.49.0)"] +resource-groups = ["mypy-boto3-resource-groups (==1.17.49.0)"] +resourcegroupstaggingapi = ["mypy-boto3-resourcegroupstaggingapi (==1.17.49.0)"] +robomaker = ["mypy-boto3-robomaker (==1.17.49.0)"] +route53 = ["mypy-boto3-route53 (==1.17.49.0)"] +route53domains = ["mypy-boto3-route53domains (==1.17.49.0)"] +route53resolver = ["mypy-boto3-route53resolver (==1.17.49.0)"] +s3 = ["mypy-boto3-s3 (==1.17.49.0)"] +s3control = ["mypy-boto3-s3control (==1.17.49.0)"] +s3outposts = ["mypy-boto3-s3outposts (==1.17.49.0)"] +sagemaker = ["mypy-boto3-sagemaker (==1.17.49.0)"] +sagemaker-a2i-runtime = ["mypy-boto3-sagemaker-a2i-runtime (==1.17.49.0)"] +sagemaker-edge = ["mypy-boto3-sagemaker-edge (==1.17.49.0)"] +sagemaker-featurestore-runtime = ["mypy-boto3-sagemaker-featurestore-runtime (==1.17.49.0)"] +sagemaker-runtime = ["mypy-boto3-sagemaker-runtime (==1.17.49.0)"] +savingsplans = ["mypy-boto3-savingsplans (==1.17.49.0)"] +schemas = ["mypy-boto3-schemas (==1.17.49.0)"] +sdb = ["mypy-boto3-sdb (==1.17.49.0)"] +secretsmanager = ["mypy-boto3-secretsmanager (==1.17.49.0)"] +securityhub = ["mypy-boto3-securityhub (==1.17.49.0)"] +serverlessrepo = ["mypy-boto3-serverlessrepo (==1.17.49.0)"] +service-quotas = ["mypy-boto3-service-quotas (==1.17.49.0)"] +servicecatalog = ["mypy-boto3-servicecatalog (==1.17.49.0)"] +servicecatalog-appregistry = ["mypy-boto3-servicecatalog-appregistry (==1.17.49.0)"] +servicediscovery = ["mypy-boto3-servicediscovery (==1.17.49.0)"] +ses = ["mypy-boto3-ses (==1.17.49.0)"] +sesv2 = ["mypy-boto3-sesv2 (==1.17.49.0)"] +shield = ["mypy-boto3-shield (==1.17.49.0)"] +signer = ["mypy-boto3-signer (==1.17.49.0)"] +sms = ["mypy-boto3-sms (==1.17.49.0)"] +sms-voice = ["mypy-boto3-sms-voice (==1.17.49.0)"] +snowball = ["mypy-boto3-snowball (==1.17.49.0)"] +sns = ["mypy-boto3-sns (==1.17.49.0)"] +sqs = ["mypy-boto3-sqs (==1.17.49.0)"] +ssm = ["mypy-boto3-ssm (==1.17.49.0)"] +sso = ["mypy-boto3-sso (==1.17.49.0)"] +sso-admin = ["mypy-boto3-sso-admin (==1.17.49.0)"] +sso-oidc = ["mypy-boto3-sso-oidc (==1.17.49.0)"] +stepfunctions = ["mypy-boto3-stepfunctions (==1.17.49.0)"] +storagegateway = ["mypy-boto3-storagegateway (==1.17.49.0)"] +sts = ["mypy-boto3-sts (==1.17.49.0)"] +support = ["mypy-boto3-support (==1.17.49.0)"] +swf = ["mypy-boto3-swf (==1.17.49.0)"] +synthetics = ["mypy-boto3-synthetics (==1.17.49.0)"] +textract = ["mypy-boto3-textract (==1.17.49.0)"] +timestream-query = ["mypy-boto3-timestream-query (==1.17.49.0)"] +timestream-write = ["mypy-boto3-timestream-write (==1.17.49.0)"] +transcribe = ["mypy-boto3-transcribe (==1.17.49.0)"] +transfer = ["mypy-boto3-transfer (==1.17.49.0)"] +translate = ["mypy-boto3-translate (==1.17.49.0)"] +waf = ["mypy-boto3-waf (==1.17.49.0)"] +waf-regional = ["mypy-boto3-waf-regional (==1.17.49.0)"] +wafv2 = ["mypy-boto3-wafv2 (==1.17.49.0)"] +wellarchitected = ["mypy-boto3-wellarchitected (==1.17.49.0)"] +workdocs = ["mypy-boto3-workdocs (==1.17.49.0)"] +worklink = ["mypy-boto3-worklink (==1.17.49.0)"] +workmail = ["mypy-boto3-workmail (==1.17.49.0)"] +workmailmessageflow = ["mypy-boto3-workmailmessageflow (==1.17.49.0)"] +workspaces = ["mypy-boto3-workspaces (==1.17.49.0)"] +xray = ["mypy-boto3-xray (==1.17.49.0)"] [[package]] name = "botocore" -version = "1.20.7" +version = "1.20.49" description = "Low-level, data-driven core of boto 3." category = "main" optional = false @@ -424,6 +358,9 @@ jmespath = ">=0.7.1,<1.0.0" python-dateutil = ">=2.1,<3.0.0" urllib3 = ">=1.25.4,<1.27" +[package.extras] +crt = ["awscrt (==0.10.8)"] + [[package]] name = "certifi" version = "2020.12.5" @@ -445,14 +382,14 @@ pycparser = "*" [[package]] name = "cfn-lint" -version = "0.44.7" +version = "0.48.2" description = "Checks CloudFormation templates for practices and behaviour that could potentially be improved" category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.dependencies] -aws-sam-translator = ">=1.25.0" +aws-sam-translator = ">=1.34.0" importlib-resources = {version = ">=1.4,<4", markers = "python_version < \"3.7\" and python_version != \"3.4\""} jsonpatch = {version = "*", markers = "python_version != \"3.4\""} jsonschema = ">=3.0,<4.0" @@ -463,19 +400,11 @@ six = ">=1.11" [[package]] name = "chardet" -version = "3.0.4" +version = "4.0.0" description = "Universal encoding detector for Python 2 and 3" category = "dev" optional = false -python-versions = "*" - -[[package]] -name = "chevron" -version = "0.14.0" -description = "Mustache templating language renderer" -category = "dev" -optional = true -python-versions = "*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [[package]] name = "click" @@ -493,28 +422,9 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -[[package]] -name = "cookiecutter" -version = "1.7.2" -description = "A command-line utility that creates projects from project templates, e.g. creating a Python package project from a Python package project template." -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -binaryornot = ">=0.4.4" -click = ">=7.0" -Jinja2 = "<3.0.0" -jinja2-time = ">=0.2.0" -MarkupSafe = "<2.0.0" -poyo = ">=0.5.0" -python-slugify = ">=4.0.0" -requests = ">=2.23.0" -six = ">=1.10" - [[package]] name = "cryptography" -version = "3.4.5" +version = "3.4.7" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "dev" optional = false @@ -531,20 +441,6 @@ sdist = ["setuptools-rust (>=0.11.4)"] ssh = ["bcrypt (>=3.1.5)"] test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"] -[[package]] -name = "dateparser" -version = "0.7.6" -description = "Date parsing library designed to parse dates from HTML pages" -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -python-dateutil = "*" -pytz = "*" -regex = "!=2019.02.19" -tzlocal = "*" - [[package]] name = "decorator" version = "4.4.2" @@ -555,21 +451,20 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*" [[package]] name = "docker" -version = "4.2.2" +version = "5.0.0" description = "A Python library for the Docker Engine API." category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.6" [package.dependencies] -pypiwin32 = {version = "223", markers = "sys_platform == \"win32\" and python_version >= \"3.6\""} +pywin32 = {version = "227", markers = "sys_platform == \"win32\""} requests = ">=2.14.2,<2.18.0 || >2.18.0" -six = ">=1.4.0" websocket-client = ">=0.32.0" [package.extras] ssh = ["paramiko (>=2.4.2)"] -tls = ["pyOpenSSL (>=17.5.0)", "cryptography (>=1.3.4)", "idna (>=2.0.0)"] +tls = ["pyOpenSSL (>=17.5.0)", "cryptography (>=3.4.7)", "idna (>=2.0.0)"] [[package]] name = "ecdsa" @@ -584,36 +479,17 @@ six = "*" [[package]] name = "flake8" -version = "3.8.4" +version = "3.9.0" description = "the modular source code checker: pep8 pyflakes and co" category = "dev" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" [package.dependencies] importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} mccabe = ">=0.6.0,<0.7.0" -pycodestyle = ">=2.6.0a1,<2.7.0" -pyflakes = ">=2.2.0,<2.3.0" - -[[package]] -name = "flask" -version = "1.1.2" -description = "A simple framework for building complex web applications." -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -click = ">=5.1" -itsdangerous = ">=0.24" -Jinja2 = ">=2.10.1" -Werkzeug = ">=0.15" - -[package.extras] -dev = ["pytest", "coverage", "tox", "sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] -docs = ["sphinx", "pallets-sphinx-themes", "sphinxcontrib-log-cabinet", "sphinx-issues"] -dotenv = ["python-dotenv"] +pycodestyle = ">=2.7.0,<2.8.0" +pyflakes = ">=2.3.0,<2.4.0" [[package]] name = "future" @@ -633,7 +509,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "importlib-metadata" -version = "3.4.0" +version = "3.10.0" description = "Read metadata from Python packages" category = "dev" optional = false @@ -645,7 +521,7 @@ zipp = ">=0.5" [package.extras] docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] -testing = ["pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] +testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] [[package]] name = "importlib-resources" @@ -661,14 +537,6 @@ zipp = {version = ">=0.4", markers = "python_version < \"3.8\""} [package.extras] docs = ["sphinx", "rst.linker", "jaraco.packaging"] -[[package]] -name = "itsdangerous" -version = "1.1.0" -description = "Various helpers to pass data to untrusted environments and back." -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - [[package]] name = "jinja2" version = "2.11.3" @@ -683,18 +551,6 @@ MarkupSafe = ">=0.23" [package.extras] i18n = ["Babel (>=0.8)"] -[[package]] -name = "jinja2-time" -version = "0.2.0" -description = "Jinja2 Extension for Dates and Times" -category = "dev" -optional = true -python-versions = "*" - -[package.dependencies] -arrow = "*" -jinja2 = "*" - [[package]] name = "jmespath" version = "0.10.0" @@ -713,7 +569,7 @@ python-versions = "*" [[package]] name = "jsonpatch" -version = "1.28" +version = "1.32" description = "Apply JSON-Patches (RFC 6902)" category = "dev" optional = false @@ -722,25 +578,9 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.dependencies] jsonpointer = ">=1.9" -[[package]] -name = "jsonpickle" -version = "2.0.0" -description = "Python library for serializing any arbitrary object graph into JSON" -category = "dev" -optional = false -python-versions = ">=2.7" - -[package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} - -[package.extras] -docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"] -testing = ["coverage (<5)", "pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov", "ecdsa", "feedparser", "numpy", "pandas", "pymongo", "sklearn", "sqlalchemy", "enum34", "jsonlib"] -"testing.libs" = ["demjson", "simplejson", "ujson", "yajl"] - [[package]] name = "jsonpointer" -version = "2.0" +version = "2.1" description = "Identify specific nodes in a JSON document (RFC 6901)" category = "dev" optional = false @@ -878,8 +718,8 @@ dmypy = ["psutil (>=4.0)"] [[package]] name = "mypy-boto3-ebs" -version = "1.17.7.0" -description = "Type annotations for boto3.EBS 1.17.7 service, generated by mypy-boto3-buider 4.4.0" +version = "1.17.49.0" +description = "Type annotations for boto3.EBS 1.17.49 service, generated by mypy-boto3-buider 4.4.0" category = "dev" optional = false python-versions = ">=3.6" @@ -889,8 +729,8 @@ typing-extensions = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "mypy-boto3-ec2" -version = "1.17.7.0" -description = "Type annotations for boto3.EC2 1.17.7 service, generated by mypy-boto3-buider 4.4.0" +version = "1.17.49.0" +description = "Type annotations for boto3.EC2 1.17.49 service, generated by mypy-boto3-buider 4.4.0" category = "dev" optional = false python-versions = ">=3.6" @@ -908,14 +748,14 @@ python-versions = "*" [[package]] name = "networkx" -version = "2.5" +version = "2.5.1" description = "Python package for creating and manipulating graphs and networks" category = "dev" optional = false python-versions = ">=3.6" [package.dependencies] -decorator = ">=4.3.0" +decorator = ">=4.3,<5" [package.extras] all = ["numpy", "scipy", "pandas", "matplotlib", "pygraphviz", "pydot", "pyyaml", "lxml", "pytest"] @@ -941,14 +781,6 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.dependencies] pyparsing = ">=2.0.2" -[[package]] -name = "pathtools" -version = "0.1.2" -description = "File system general utilities" -category = "dev" -optional = true -python-versions = "*" - [[package]] name = "pluggy" version = "0.13.1" @@ -963,14 +795,6 @@ importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} [package.extras] dev = ["pre-commit", "tox"] -[[package]] -name = "poyo" -version = "0.5.0" -description = "A lightweight YAML Parser for Python. 🐓" -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - [[package]] name = "py" version = "1.10.0" @@ -989,7 +813,7 @@ python-versions = "*" [[package]] name = "pycodestyle" -version = "2.6.0" +version = "2.7.0" description = "Python style guide checker" category = "dev" optional = false @@ -1005,7 +829,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pyflakes" -version = "2.2.0" +version = "2.3.1" description = "passive checker of Python programs" category = "dev" optional = false @@ -1019,17 +843,6 @@ category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -[[package]] -name = "pypiwin32" -version = "223" -description = "" -category = "dev" -optional = false -python-versions = "*" - -[package.dependencies] -pywin32 = ">=223" - [[package]] name = "pyrsistent" version = "0.17.3" @@ -1063,11 +876,11 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm [[package]] name = "python-dateutil" -version = "2.8.0" +version = "2.8.1" description = "Extensions to the standard Python datetime module" category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" [package.dependencies] six = ">=1.5" @@ -1092,20 +905,6 @@ cryptography = ["cryptography"] pycrypto = ["pycrypto (>=2.6.0,<2.7.0)", "pyasn1"] pycryptodome = ["pycryptodome (>=3.3.1,<4.0.0)", "pyasn1"] -[[package]] -name = "python-slugify" -version = "4.0.1" -description = "A Python Slugify application that handles Unicode" -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - -[package.dependencies] -text-unidecode = ">=1.3" - -[package.extras] -unidecode = ["Unidecode (>=1.1.1)"] - [[package]] name = "pytz" version = "2021.1" @@ -1116,7 +915,7 @@ python-versions = "*" [[package]] name = "pywin32" -version = "300" +version = "227" description = "Python for Window Extensions" category = "dev" optional = false @@ -1130,17 +929,9 @@ category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -[[package]] -name = "regex" -version = "2020.11.13" -description = "Alternative regular expression module, to replace re." -category = "dev" -optional = true -python-versions = "*" - [[package]] name = "requests" -version = "2.23.0" +version = "2.25.1" description = "Python HTTP for Humans." category = "dev" optional = false @@ -1148,9 +939,9 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" [package.dependencies] certifi = ">=2017.4.17" -chardet = ">=3.0.2,<4" +chardet = ">=3.0.2,<5" idna = ">=2.5,<3" -urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26" +urllib3 = ">=1.21.1,<1.27" [package.extras] security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] @@ -1158,7 +949,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] [[package]] name = "responses" -version = "0.12.1" +version = "0.13.2" description = "A utility library for mocking out the `requests` Python library." category = "dev" optional = false @@ -1170,11 +961,11 @@ six = "*" urllib3 = ">=1.25.10" [package.extras] -tests = ["coverage (>=3.7.1,<6.0.0)", "pytest-cov", "pytest-localserver", "flake8", "pytest (>=4.6,<5.0)", "pytest (>=4.6)"] +tests = ["coverage (>=3.7.1,<6.0.0)", "pytest-cov", "pytest-localserver", "flake8", "pytest (>=4.6,<5.0)", "pytest (>=4.6)", "mypy"] [[package]] name = "rsa" -version = "4.7" +version = "4.7.2" description = "Pure-Python RSA implementation" category = "dev" optional = false @@ -1185,7 +976,7 @@ pyasn1 = ">=0.1.3" [[package]] name = "s3transfer" -version = "0.3.4" +version = "0.3.6" description = "An Amazon S3 Transfer Manager" category = "main" optional = false @@ -1194,19 +985,6 @@ python-versions = "*" [package.dependencies] botocore = ">=1.12.36,<2.0a.0" -[[package]] -name = "serverlessrepo" -version = "0.1.10" -description = "A Python library with convenience helpers for working with the AWS Serverless Application Repository." -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" - -[package.dependencies] -boto3 = ">=1.9.56,<2.0" -pyyaml = ">=5.1,<6.0" -six = ">=1.11,<2.0" - [[package]] name = "six" version = "1.15.0" @@ -1215,22 +993,6 @@ category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -[[package]] -name = "text-unidecode" -version = "1.3" -description = "The most basic Text::Unidecode port" -category = "dev" -optional = true -python-versions = "*" - -[[package]] -name = "tomlkit" -version = "0.7.0" -description = "Style preserving TOML library" -category = "dev" -optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - [[package]] name = "typed-ast" version = "1.4.2" @@ -1264,43 +1026,18 @@ category = "dev" optional = false python-versions = "*" -[[package]] -name = "tzlocal" -version = "2.1" -description = "tzinfo object for the local timezone" -category = "dev" -optional = true -python-versions = "*" - -[package.dependencies] -pytz = "*" - [[package]] name = "urllib3" -version = "1.25.11" +version = "1.26.4" 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 = "watchdog" -version = "0.10.3" -description = "Filesystem events monitoring" -category = "dev" -optional = true -python-versions = "*" - -[package.dependencies] -pathtools = ">=0.1.1" - -[package.extras] -watchmedo = ["PyYAML (>=3.10)", "argh (>=0.24.1)"] +brotli = ["brotlipy (>=0.6.0)"] [[package]] name = "wcwidth" @@ -1312,8 +1049,8 @@ python-versions = "*" [[package]] name = "websocket-client" -version = "0.57.0" -description = "WebSocket client for Python. hybi13 is supported." +version = "0.58.0" +description = "WebSocket client for Python with low level API options" category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" @@ -1351,15 +1088,15 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "zipp" -version = "3.4.0" +version = "3.4.1" description = "Backport of pathlib-compatible object wrapper for zip files" category = "dev" 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"] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] [extras] cli = ["typer"] @@ -1368,13 +1105,9 @@ scannerd = [] [metadata] lock-version = "1.1" python-versions = "^3.6" -content-hash = "cd57efec4577df4aa9c71c90e578f6ab815e05abc62f040da68371f7b4953bc2" +content-hash = "4a4a6c50d5d0c8e5c612aa68aa28e79b6c8d44dd1d6957af93c64a8f29dd91f7" [metadata.files] -arrow = [ - {file = "arrow-0.17.0-py2.py3-none-any.whl", hash = "sha256:e098abbd9af3665aea81bdd6c869e93af4feb078e98468dd351c383af187aac5"}, - {file = "arrow-0.17.0.tar.gz", hash = "sha256:ff08d10cda1d36c68657d6ad20d74fbea493d980f8b2d45344e00d6ed2bf6ed4"}, -] atomicwrites = [ {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"}, {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"}, @@ -1383,43 +1116,30 @@ 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-lambda-builders = [ - {file = "aws_lambda_builders-1.2.0-py2-none-any.whl", hash = "sha256:b96656a27cea0663cf514a1e61c4bf450185608829b16abe0f852dd282ba31f8"}, - {file = "aws_lambda_builders-1.2.0-py3-none-any.whl", hash = "sha256:b48a84473cdb6c63d9d63aeeab036b34b8001f33fa39e3c9b6392442972194c3"}, - {file = "aws_lambda_builders-1.2.0.tar.gz", hash = "sha256:da4c65583c4ce6dd9b8124ff0db271b5f2a15d3f96d20c0695bacd693fa7cf61"}, -] -aws-sam-cli = [ - {file = "aws-sam-cli-1.18.1.tar.gz", hash = "sha256:6f8b2bb1198910280b8f4a92d7f0a4e662550bfe79a3c7603ce065919da0fd84"}, - {file = "aws_sam_cli-1.18.1-py3-none-any.whl", hash = "sha256:d58f7f035d5bb92707cc40738f190259484e6cfd72df318f3612ec2c63306878"}, -] aws-sam-translator = [ - {file = "aws-sam-translator-1.34.0.tar.gz", hash = "sha256:857c62a03e3bb4a3f7074e867f52ced636dc06192c8216e00732122f21a206c2"}, - {file = "aws_sam_translator-1.34.0-py2-none-any.whl", hash = "sha256:a22d505ddc0c48e3cf0ff0127096bdc1231d20c852509201ffba47dc8e683a1a"}, - {file = "aws_sam_translator-1.34.0-py3-none-any.whl", hash = "sha256:1cfc8ba13c43e8c425fdcd6c246fdd90899a3ed89310d84a72ccdf082e4146d7"}, + {file = "aws-sam-translator-1.35.0.tar.gz", hash = "sha256:5cf7faab3566843f3b44ef1a42a9c106ffb50809da4002faab818076dcc7bff8"}, + {file = "aws_sam_translator-1.35.0-py2-none-any.whl", hash = "sha256:2f8904fd4a631752bc441a8fd928c444ed98ceb86b94d25ed7b84982e2eff1cd"}, + {file = "aws_sam_translator-1.35.0-py3-none-any.whl", hash = "sha256:c35075e7e804490d6025598ed4878ad3ab8668e37cafb7ae75120b1c37a6d212"}, ] aws-xray-sdk = [ - {file = "aws-xray-sdk-2.6.0.tar.gz", hash = "sha256:abf5b90f740e1f402e23414c9670e59cb9772e235e271fef2bce62b9100cbc77"}, - {file = "aws_xray_sdk-2.6.0-py2.py3-none-any.whl", hash = "sha256:076f7c610cd3564bbba3507d43e328fb6ff4a2e841d3590f39b2c3ce99d41e1d"}, -] -binaryornot = [ - {file = "binaryornot-0.4.4-py2.py3-none-any.whl", hash = "sha256:b8b71173c917bddcd2c16070412e369c3ed7f0528926f70cac18a6c97fd563e4"}, - {file = "binaryornot-0.4.4.tar.gz", hash = "sha256:359501dfc9d40632edc9fac890e19542db1a287bbcfa58175b66658392018061"}, + {file = "aws-xray-sdk-2.7.0.tar.gz", hash = "sha256:697c9068e84dd5d2c1456def3fd0865f226046b5db4db56d738050e425960adf"}, + {file = "aws_xray_sdk-2.7.0-py2.py3-none-any.whl", hash = "sha256:e7b72959436471f0eb7b6757ffef289ecf16409954f1be7be7f49d57070e5994"}, ] boto = [ {file = "boto-2.49.0-py2.py3-none-any.whl", hash = "sha256:147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8"}, {file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"}, ] boto3 = [ - {file = "boto3-1.17.7-py2.py3-none-any.whl", hash = "sha256:8ecc9c8c13355a2ae0446a227d67bf011affba4cab644240a3dc6ca23978e583"}, - {file = "boto3-1.17.7.tar.gz", hash = "sha256:56fad4485ef79bee64ad0d913c19e41b838a1cd6aefc935afefd7f393a0f0169"}, + {file = "boto3-1.17.49-py2.py3-none-any.whl", hash = "sha256:d5ef160442925f5944e4cde88589f0f195f6c284f05613114fc6bbc35e342fa7"}, + {file = "boto3-1.17.49.tar.gz", hash = "sha256:a482135c30fa07eaf4370314dd0fb49117222a266d0423b2075aed3835ed1f04"}, ] boto3-stubs = [ - {file = "boto3-stubs-1.17.7.0.tar.gz", hash = "sha256:5d47b6729d7aadb1cb4a9146031da3c597882bae4b1d619bc2111d2b3547ff3f"}, - {file = "boto3_stubs-1.17.7.0-py3-none-any.whl", hash = "sha256:cc9f833727d610d3ddc54b94e11ed6552e4204626b372d37479c08f854fb5b3f"}, + {file = "boto3-stubs-1.17.49.0.tar.gz", hash = "sha256:ca7f0b6ca0fc93f608084b44e83c3a7e38dfcc687085338636856f7e9beeada7"}, + {file = "boto3_stubs-1.17.49.0-py3-none-any.whl", hash = "sha256:8ec81311638c823a6085de048b081cf9d8b114602db0d82e0e5b882f1865cd64"}, ] botocore = [ - {file = "botocore-1.20.7-py2.py3-none-any.whl", hash = "sha256:77e34194eb4f916d9caaf4b518a8b5d73ddbba87bf951cdb20141a6fafc9ccbe"}, - {file = "botocore-1.20.7.tar.gz", hash = "sha256:27ea4a11f5cca9d655cb9ba462ad4a2bb28eb44d061b49e15a3239c040298ed2"}, + {file = "botocore-1.20.49-py2.py3-none-any.whl", hash = "sha256:6a672ba41dd00e5c1c1824ca8143d180d88de8736d78c0b1f96b8d3cb0466561"}, + {file = "botocore-1.20.49.tar.gz", hash = "sha256:f7f103fa0651c69dd360c7d0ecd874854303de5cc0869e0cbc2818a52baacc69"}, ] certifi = [ {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"}, @@ -1465,16 +1185,12 @@ cffi = [ {file = "cffi-1.14.5.tar.gz", hash = "sha256:fd78e5fee591709f32ef6edb9a015b4aa1a5022598e36227500c8f4e02328d9c"}, ] cfn-lint = [ - {file = "cfn-lint-0.44.7.tar.gz", hash = "sha256:c2e441602a1b0d15df6b2790e8a5755bbb71598e3b71feb52a73c0116b0f3059"}, - {file = "cfn_lint-0.44.7-py3-none-any.whl", hash = "sha256:5e45033599e193299bf99132149c559c9e2bde8f82385cb1037d5c570b03fc5c"}, + {file = "cfn-lint-0.48.2.tar.gz", hash = "sha256:67dc1687ccb68f76341a75f1a35f3074e6ac21169208d1ee1f658ed06134b213"}, + {file = "cfn_lint-0.48.2-py3-none-any.whl", hash = "sha256:5bf30bb468491717046e4b1212ce0378f53cd4b9b4461387fd9b549c21c97f2e"}, ] chardet = [ - {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"}, - {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"}, -] -chevron = [ - {file = "chevron-0.14.0-py3-none-any.whl", hash = "sha256:fbf996a709f8da2e745ef763f482ce2d311aa817d287593a5b990d6d6e4f0443"}, - {file = "chevron-0.14.0.tar.gz", hash = "sha256:87613aafdf6d77b6a90ff073165a61ae5086e21ad49057aa0e53681601800ebf"}, + {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, + {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, ] click = [ {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, @@ -1484,42 +1200,35 @@ colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, ] -cookiecutter = [ - {file = "cookiecutter-1.7.2-py2.py3-none-any.whl", hash = "sha256:430eb882d028afb6102c084bab6cf41f6559a77ce9b18dc6802e3bc0cc5f4a30"}, - {file = "cookiecutter-1.7.2.tar.gz", hash = "sha256:efb6b2d4780feda8908a873e38f0e61778c23f6a2ea58215723bcceb5b515dac"}, -] cryptography = [ - {file = "cryptography-3.4.5-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:18d6f3ac1da14a01c95f4590ee58e96aa6628d231ce738e9eca330b9997127b6"}, - {file = "cryptography-3.4.5-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:c8dc9859c5a046e1ca22da360dfd609c09064a4f974881cb5cba977c581088ec"}, - {file = "cryptography-3.4.5-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:0bf49d5b38e4f3745a0eab0597fa97720dd49b30d65f534b49a82e303f149deb"}, - {file = "cryptography-3.4.5-cp36-abi3-manylinux2014_x86_64.whl", hash = "sha256:9c6f7552d4f2130542d488b9d9e5b1546204b5d1aa90c823d50cce8eed421363"}, - {file = "cryptography-3.4.5-cp36-abi3-win32.whl", hash = "sha256:b0873ac0c0e6bc6882cd285930cc382ec4e78786be71bdc113c06246eea61294"}, - {file = "cryptography-3.4.5-cp36-abi3-win_amd64.whl", hash = "sha256:8b3b79af57e12aabbc3db81e563eaa07870293a1ffdcc891d107035ce9a0dbff"}, - {file = "cryptography-3.4.5.tar.gz", hash = "sha256:4f6761a82b51fe02cda8f45af1c2f698a10f50003dc9c2572d8a49eda2e6d35b"}, -] -dateparser = [ - {file = "dateparser-0.7.6-py2.py3-none-any.whl", hash = "sha256:7552c994f893b5cb8fcf103b4cd2ff7f57aab9bfd2619fdf0cf571c0740fd90b"}, - {file = "dateparser-0.7.6.tar.gz", hash = "sha256:e875efd8c57c85c2d02b238239878db59ff1971f5a823457fcc69e493bf6ebfa"}, + {file = "cryptography-3.4.7-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:3d8427734c781ea5f1b41d6589c293089704d4759e34597dce91014ac125aad1"}, + {file = "cryptography-3.4.7-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:8e56e16617872b0957d1c9742a3f94b43533447fd78321514abbe7db216aa250"}, + {file = "cryptography-3.4.7-cp36-abi3-manylinux2010_x86_64.whl", hash = "sha256:37340614f8a5d2fb9aeea67fd159bfe4f5f4ed535b1090ce8ec428b2f15a11f2"}, + {file = "cryptography-3.4.7-cp36-abi3-manylinux2014_aarch64.whl", hash = "sha256:240f5c21aef0b73f40bb9f78d2caff73186700bf1bc6b94285699aff98cc16c6"}, + {file = "cryptography-3.4.7-cp36-abi3-manylinux2014_x86_64.whl", hash = "sha256:1e056c28420c072c5e3cb36e2b23ee55e260cb04eee08f702e0edfec3fb51959"}, + {file = "cryptography-3.4.7-cp36-abi3-win32.whl", hash = "sha256:0f1212a66329c80d68aeeb39b8a16d54ef57071bf22ff4e521657b27372e327d"}, + {file = "cryptography-3.4.7-cp36-abi3-win_amd64.whl", hash = "sha256:de4e5f7f68220d92b7637fc99847475b59154b7a1b3868fb7385337af54ac9ca"}, + {file = "cryptography-3.4.7-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:26965837447f9c82f1855e0bc8bc4fb910240b6e0d16a664bb722df3b5b06873"}, + {file = "cryptography-3.4.7-pp36-pypy36_pp73-manylinux2014_x86_64.whl", hash = "sha256:eb8cc2afe8b05acbd84a43905832ec78e7b3873fb124ca190f574dca7389a87d"}, + {file = "cryptography-3.4.7-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:7ec5d3b029f5fa2b179325908b9cd93db28ab7b85bb6c1db56b10e0b54235177"}, + {file = "cryptography-3.4.7-pp37-pypy37_pp73-manylinux2014_x86_64.whl", hash = "sha256:ee77aa129f481be46f8d92a1a7db57269a2f23052d5f2433b4621bb457081cc9"}, + {file = "cryptography-3.4.7.tar.gz", hash = "sha256:3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713"}, ] decorator = [ {file = "decorator-4.4.2-py2.py3-none-any.whl", hash = "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760"}, {file = "decorator-4.4.2.tar.gz", hash = "sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7"}, ] docker = [ - {file = "docker-4.2.2-py2.py3-none-any.whl", hash = "sha256:03a46400c4080cb6f7aa997f881ddd84fef855499ece219d75fbdb53289c17ab"}, - {file = "docker-4.2.2.tar.gz", hash = "sha256:26eebadce7e298f55b76a88c4f8802476c5eaddbdbe38dbc6cce8781c47c9b54"}, + {file = "docker-5.0.0-py2.py3-none-any.whl", hash = "sha256:fc961d622160e8021c10d1bcabc388c57d55fb1f917175afbe24af442e6879bd"}, + {file = "docker-5.0.0.tar.gz", hash = "sha256:3e8bc47534e0ca9331d72c32f2881bb13b93ded0bcdeab3c833fb7cf61c0a9a5"}, ] ecdsa = [ {file = "ecdsa-0.14.1-py2.py3-none-any.whl", hash = "sha256:e108a5fe92c67639abae3260e43561af914e7fd0d27bae6d2ec1312ae7934dfe"}, {file = "ecdsa-0.14.1.tar.gz", hash = "sha256:64c613005f13efec6541bb0a33290d0d03c27abab5f15fbab20fb0ee162bdd8e"}, ] flake8 = [ - {file = "flake8-3.8.4-py2.py3-none-any.whl", hash = "sha256:749dbbd6bfd0cf1318af27bf97a14e28e5ff548ef8e5b1566ccfb25a11e7c839"}, - {file = "flake8-3.8.4.tar.gz", hash = "sha256:aadae8761ec651813c24be05c6f7b4680857ef6afaae4651a4eccaef97ce6c3b"}, -] -flask = [ - {file = "Flask-1.1.2-py2.py3-none-any.whl", hash = "sha256:8a4fdd8936eba2512e9c85df320a37e694c93945b33ef33c89946a340a238557"}, - {file = "Flask-1.1.2.tar.gz", hash = "sha256:4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060"}, + {file = "flake8-3.9.0-py2.py3-none-any.whl", hash = "sha256:12d05ab02614b6aee8df7c36b97d1a3b2372761222b19b58621355e82acddcff"}, + {file = "flake8-3.9.0.tar.gz", hash = "sha256:78873e372b12b093da7b5e5ed302e8ad9e988b38b063b61ad937f26ca58fc5f0"}, ] future = [ {file = "future-0.18.2.tar.gz", hash = "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d"}, @@ -1529,25 +1238,17 @@ idna = [ {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, ] importlib-metadata = [ - {file = "importlib_metadata-3.4.0-py3-none-any.whl", hash = "sha256:ace61d5fc652dc280e7b6b4ff732a9c2d40db2c0f92bc6cb74e07b73d53a1771"}, - {file = "importlib_metadata-3.4.0.tar.gz", hash = "sha256:fa5daa4477a7414ae34e95942e4dd07f62adf589143c875c133c1e53c4eff38d"}, + {file = "importlib_metadata-3.10.0-py3-none-any.whl", hash = "sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe"}, + {file = "importlib_metadata-3.10.0.tar.gz", hash = "sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a"}, ] importlib-resources = [ {file = "importlib_resources-3.3.1-py2.py3-none-any.whl", hash = "sha256:42068585cc5e8c2bf0a17449817401102a5125cbfbb26bb0f43cde1568f6f2df"}, {file = "importlib_resources-3.3.1.tar.gz", hash = "sha256:0ed250dbd291947d1a298e89f39afcc477d5a6624770503034b72588601bcc05"}, ] -itsdangerous = [ - {file = "itsdangerous-1.1.0-py2.py3-none-any.whl", hash = "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749"}, - {file = "itsdangerous-1.1.0.tar.gz", hash = "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19"}, -] jinja2 = [ {file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"}, {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"}, ] -jinja2-time = [ - {file = "jinja2-time-0.2.0.tar.gz", hash = "sha256:d14eaa4d315e7688daa4969f616f226614350c48730bfa1692d2caebd8c90d40"}, - {file = "jinja2_time-0.2.0-py2.py3-none-any.whl", hash = "sha256:d3eab6605e3ec8b7a0863df09cc1d23714908fa61aa6986a845c20ba488b4efa"}, -] jmespath = [ {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"}, {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"}, @@ -1556,16 +1257,12 @@ jsondiff = [ {file = "jsondiff-1.2.0.tar.gz", hash = "sha256:34941bc431d10aa15828afe1cbb644977a114e75eef6cc74fb58951312326303"}, ] jsonpatch = [ - {file = "jsonpatch-1.28-py2.py3-none-any.whl", hash = "sha256:da3831be60919e8c98564acfc1fa918cb96e7c9750b0428388483f04d0d1c5a7"}, - {file = "jsonpatch-1.28.tar.gz", hash = "sha256:e930adc932e4d36087dbbf0f22e1ded32185dfb20662f2e3dd848677a5295a14"}, -] -jsonpickle = [ - {file = "jsonpickle-2.0.0-py2.py3-none-any.whl", hash = "sha256:c1010994c1fbda87a48f8a56698605b598cb0fc6bb7e7927559fc1100e69aeac"}, - {file = "jsonpickle-2.0.0.tar.gz", hash = "sha256:0be49cba80ea6f87a168aa8168d717d00c6ca07ba83df3cec32d3b30bfe6fb9a"}, + {file = "jsonpatch-1.32-py2.py3-none-any.whl", hash = "sha256:26ac385719ac9f54df8a2f0827bb8253aa3ea8ab7b3368457bcdb8c14595a397"}, + {file = "jsonpatch-1.32.tar.gz", hash = "sha256:b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2"}, ] jsonpointer = [ - {file = "jsonpointer-2.0-py2.py3-none-any.whl", hash = "sha256:ff379fa021d1b81ab539f5ec467c7745beb1a5671463f9dcc2b2d458bd361c1e"}, - {file = "jsonpointer-2.0.tar.gz", hash = "sha256:c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362"}, + {file = "jsonpointer-2.1-py2.py3-none-any.whl", hash = "sha256:150f80c5badd02c757da6644852f612f88e8b4bc2f9852dcbf557c8738919686"}, + {file = "jsonpointer-2.1.tar.gz", hash = "sha256:5a34b698db1eb79ceac454159d3f7c12a451a91f6334a4f638454327b7a89962"}, ] jsonschema = [ {file = "jsonschema-3.2.0-py2.py3-none-any.whl", hash = "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163"}, @@ -1669,36 +1366,29 @@ mypy = [ {file = "mypy-0.800.tar.gz", hash = "sha256:e0202e37756ed09daf4b0ba64ad2c245d357659e014c3f51d8cd0681ba66940a"}, ] mypy-boto3-ebs = [ - {file = "mypy-boto3-ebs-1.17.7.0.tar.gz", hash = "sha256:34e6c5be1322081fe4f17cb426c28f011619e10aff505e0d5a08f992bec5500c"}, - {file = "mypy_boto3_ebs-1.17.7.0-py3-none-any.whl", hash = "sha256:ebf13b146a3d4247c86d293a304b47e5e9c3c8f31c0154e04ce572a40c8f391a"}, + {file = "mypy-boto3-ebs-1.17.49.0.tar.gz", hash = "sha256:05199f1c95ebc1844a93bc8b85404126a19dc9144bf1afd53ddc17bd545a9d32"}, + {file = "mypy_boto3_ebs-1.17.49.0-py3-none-any.whl", hash = "sha256:eb975cb062598e455475814a020148bba9b2e2bb98df906f9effbd9902a0ed1b"}, ] mypy-boto3-ec2 = [ - {file = "mypy-boto3-ec2-1.17.7.0.tar.gz", hash = "sha256:2f6aa6db21fd3c8d8ac648ad5033afff919232d35705eddf67891014fe5d1ed7"}, - {file = "mypy_boto3_ec2-1.17.7.0-py3-none-any.whl", hash = "sha256:5487a655700800d5099de35a491bb7bdf9d27f9fc544c3750ed3a2c48bbf4279"}, + {file = "mypy-boto3-ec2-1.17.49.0.tar.gz", hash = "sha256:4859c8a744b9b0631c56042e6059d2003b414a178d9306d82d9be46cbc39f875"}, + {file = "mypy_boto3_ec2-1.17.49.0-py3-none-any.whl", hash = "sha256:a1bb668a973a97b66e90be091775413f0288d7d1403e88321e78c81c6976bdb0"}, ] 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"}, ] networkx = [ - {file = "networkx-2.5-py3-none-any.whl", hash = "sha256:8c5812e9f798d37c50570d15c4a69d5710a18d77bafc903ee9c5fba7454c616c"}, - {file = "networkx-2.5.tar.gz", hash = "sha256:7978955423fbc9639c10498878be59caf99b44dc304c2286162fd24b458c1602"}, + {file = "networkx-2.5.1-py3-none-any.whl", hash = "sha256:0635858ed7e989f4c574c2328380b452df892ae85084144c73d8cd819f0c4e06"}, + {file = "networkx-2.5.1.tar.gz", hash = "sha256:109cd585cac41297f71103c3c42ac6ef7379f29788eb54cb751be5a663bb235a"}, ] packaging = [ {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"}, {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"}, ] -pathtools = [ - {file = "pathtools-0.1.2.tar.gz", hash = "sha256:7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0"}, -] pluggy = [ {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, ] -poyo = [ - {file = "poyo-0.5.0-py2.py3-none-any.whl", hash = "sha256:3e2ca8e33fdc3c411cd101ca395668395dd5dc7ac775b8e809e3def9f9fe041a"}, - {file = "poyo-0.5.0.tar.gz", hash = "sha256:e26956aa780c45f011ca9886f044590e2d8fd8b61db7b1c1cf4e0869f48ed4dd"}, -] py = [ {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"}, {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"}, @@ -1719,25 +1409,21 @@ pyasn1 = [ {file = "pyasn1-0.4.8.tar.gz", hash = "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba"}, ] pycodestyle = [ - {file = "pycodestyle-2.6.0-py2.py3-none-any.whl", hash = "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367"}, - {file = "pycodestyle-2.6.0.tar.gz", hash = "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e"}, + {file = "pycodestyle-2.7.0-py2.py3-none-any.whl", hash = "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068"}, + {file = "pycodestyle-2.7.0.tar.gz", hash = "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef"}, ] pycparser = [ {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"}, {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"}, ] pyflakes = [ - {file = "pyflakes-2.2.0-py2.py3-none-any.whl", hash = "sha256:0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92"}, - {file = "pyflakes-2.2.0.tar.gz", hash = "sha256:35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8"}, + {file = "pyflakes-2.3.1-py2.py3-none-any.whl", hash = "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3"}, + {file = "pyflakes-2.3.1.tar.gz", hash = "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db"}, ] pyparsing = [ {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, ] -pypiwin32 = [ - {file = "pypiwin32-223-py3-none-any.whl", hash = "sha256:67adf399debc1d5d14dffc1ab5acacb800da569754fafdc576b2a039485aa775"}, - {file = "pypiwin32-223.tar.gz", hash = "sha256:71be40c1fbd28594214ecaecb58e7aa8b708eabfa0125c8a109ebd51edbd776a"}, -] pyrsistent = [ {file = "pyrsistent-0.17.3.tar.gz", hash = "sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e"}, ] @@ -1746,31 +1432,30 @@ pytest = [ {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, ] python-dateutil = [ - {file = "python-dateutil-2.8.0.tar.gz", hash = "sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e"}, - {file = "python_dateutil-2.8.0-py2.py3-none-any.whl", hash = "sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb"}, + {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"}, ] python-jose = [ {file = "python-jose-3.2.0.tar.gz", hash = "sha256:4e4192402e100b5fb09de5a8ea6bcc39c36ad4526341c123d401e2561720335b"}, {file = "python_jose-3.2.0-py2.py3-none-any.whl", hash = "sha256:67d7dfff599df676b04a996520d9be90d6cdb7e6dd10b4c7cacc0c3e2e92f2be"}, ] -python-slugify = [ - {file = "python-slugify-4.0.1.tar.gz", hash = "sha256:69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270"}, -] pytz = [ {file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"}, {file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"}, ] pywin32 = [ - {file = "pywin32-300-cp35-cp35m-win32.whl", hash = "sha256:1c204a81daed2089e55d11eefa4826c05e604d27fe2be40b6bf8db7b6a39da63"}, - {file = "pywin32-300-cp35-cp35m-win_amd64.whl", hash = "sha256:350c5644775736351b77ba68da09a39c760d75d2467ecec37bd3c36a94fbed64"}, - {file = "pywin32-300-cp36-cp36m-win32.whl", hash = "sha256:a3b4c48c852d4107e8a8ec980b76c94ce596ea66d60f7a697582ea9dce7e0db7"}, - {file = "pywin32-300-cp36-cp36m-win_amd64.whl", hash = "sha256:27a30b887afbf05a9cbb05e3ffd43104a9b71ce292f64a635389dbad0ed1cd85"}, - {file = "pywin32-300-cp37-cp37m-win32.whl", hash = "sha256:d7e8c7efc221f10d6400c19c32a031add1c4a58733298c09216f57b4fde110dc"}, - {file = "pywin32-300-cp37-cp37m-win_amd64.whl", hash = "sha256:8151e4d7a19262d6694162d6da85d99a16f8b908949797fd99c83a0bfaf5807d"}, - {file = "pywin32-300-cp38-cp38-win32.whl", hash = "sha256:fbb3b1b0fbd0b4fc2a3d1d81fe0783e30062c1abed1d17c32b7879d55858cfae"}, - {file = "pywin32-300-cp38-cp38-win_amd64.whl", hash = "sha256:60a8fa361091b2eea27f15718f8eb7f9297e8d51b54dbc4f55f3d238093d5190"}, - {file = "pywin32-300-cp39-cp39-win32.whl", hash = "sha256:638b68eea5cfc8def537e43e9554747f8dee786b090e47ead94bfdafdb0f2f50"}, - {file = "pywin32-300-cp39-cp39-win_amd64.whl", hash = "sha256:b1609ce9bd5c411b81f941b246d683d6508992093203d4eb7f278f4ed1085c3f"}, + {file = "pywin32-227-cp27-cp27m-win32.whl", hash = "sha256:371fcc39416d736401f0274dd64c2302728c9e034808e37381b5e1b22be4a6b0"}, + {file = "pywin32-227-cp27-cp27m-win_amd64.whl", hash = "sha256:4cdad3e84191194ea6d0dd1b1b9bdda574ff563177d2adf2b4efec2a244fa116"}, + {file = "pywin32-227-cp35-cp35m-win32.whl", hash = "sha256:f4c5be1a293bae0076d93c88f37ee8da68136744588bc5e2be2f299a34ceb7aa"}, + {file = "pywin32-227-cp35-cp35m-win_amd64.whl", hash = "sha256:a929a4af626e530383a579431b70e512e736e9588106715215bf685a3ea508d4"}, + {file = "pywin32-227-cp36-cp36m-win32.whl", hash = "sha256:300a2db938e98c3e7e2093e4491439e62287d0d493fe07cce110db070b54c0be"}, + {file = "pywin32-227-cp36-cp36m-win_amd64.whl", hash = "sha256:9b31e009564fb95db160f154e2aa195ed66bcc4c058ed72850d047141b36f3a2"}, + {file = "pywin32-227-cp37-cp37m-win32.whl", hash = "sha256:47a3c7551376a865dd8d095a98deba954a98f326c6fe3c72d8726ca6e6b15507"}, + {file = "pywin32-227-cp37-cp37m-win_amd64.whl", hash = "sha256:31f88a89139cb2adc40f8f0e65ee56a8c585f629974f9e07622ba80199057511"}, + {file = "pywin32-227-cp38-cp38-win32.whl", hash = "sha256:7f18199fbf29ca99dff10e1f09451582ae9e372a892ff03a28528a24d55875bc"}, + {file = "pywin32-227-cp38-cp38-win_amd64.whl", hash = "sha256:7c1ae32c489dc012930787f06244426f8356e129184a02c25aef163917ce158e"}, + {file = "pywin32-227-cp39-cp39-win32.whl", hash = "sha256:c054c52ba46e7eb6b7d7dfae4dbd987a1bb48ee86debe3f245a2884ece46e295"}, + {file = "pywin32-227-cp39-cp39-win_amd64.whl", hash = "sha256:f27cec5e7f588c3d1051651830ecc00294f90728d19c3bf6916e6dba93ea357c"}, ] pyyaml = [ {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"}, @@ -1795,82 +1480,26 @@ pyyaml = [ {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"}, {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"}, ] -regex = [ - {file = "regex-2020.11.13-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8b882a78c320478b12ff024e81dc7d43c1462aa4a3341c754ee65d857a521f85"}, - {file = "regex-2020.11.13-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a63f1a07932c9686d2d416fb295ec2c01ab246e89b4d58e5fa468089cab44b70"}, - {file = "regex-2020.11.13-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:6e4b08c6f8daca7d8f07c8d24e4331ae7953333dbd09c648ed6ebd24db5a10ee"}, - {file = "regex-2020.11.13-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:bba349276b126947b014e50ab3316c027cac1495992f10e5682dc677b3dfa0c5"}, - {file = "regex-2020.11.13-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:56e01daca75eae420bce184edd8bb341c8eebb19dd3bce7266332258f9fb9dd7"}, - {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:6a8ce43923c518c24a2579fda49f093f1397dad5d18346211e46f134fc624e31"}, - {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:1ab79fcb02b930de09c76d024d279686ec5d532eb814fd0ed1e0051eb8bd2daa"}, - {file = "regex-2020.11.13-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:9801c4c1d9ae6a70aeb2128e5b4b68c45d4f0af0d1535500884d644fa9b768c6"}, - {file = "regex-2020.11.13-cp36-cp36m-win32.whl", hash = "sha256:49cae022fa13f09be91b2c880e58e14b6da5d10639ed45ca69b85faf039f7a4e"}, - {file = "regex-2020.11.13-cp36-cp36m-win_amd64.whl", hash = "sha256:749078d1eb89484db5f34b4012092ad14b327944ee7f1c4f74d6279a6e4d1884"}, - {file = "regex-2020.11.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b2f4007bff007c96a173e24dcda236e5e83bde4358a557f9ccf5e014439eae4b"}, - {file = "regex-2020.11.13-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:38c8fd190db64f513fe4e1baa59fed086ae71fa45083b6936b52d34df8f86a88"}, - {file = "regex-2020.11.13-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5862975b45d451b6db51c2e654990c1820523a5b07100fc6903e9c86575202a0"}, - {file = "regex-2020.11.13-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:262c6825b309e6485ec2493ffc7e62a13cf13fb2a8b6d212f72bd53ad34118f1"}, - {file = "regex-2020.11.13-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:bafb01b4688833e099d79e7efd23f99172f501a15c44f21ea2118681473fdba0"}, - {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:e32f5f3d1b1c663af7f9c4c1e72e6ffe9a78c03a31e149259f531e0fed826512"}, - {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:3bddc701bdd1efa0d5264d2649588cbfda549b2899dc8d50417e47a82e1387ba"}, - {file = "regex-2020.11.13-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:02951b7dacb123d8ea6da44fe45ddd084aa6777d4b2454fa0da61d569c6fa538"}, - {file = "regex-2020.11.13-cp37-cp37m-win32.whl", hash = "sha256:0d08e71e70c0237883d0bef12cad5145b84c3705e9c6a588b2a9c7080e5af2a4"}, - {file = "regex-2020.11.13-cp37-cp37m-win_amd64.whl", hash = "sha256:1fa7ee9c2a0e30405e21031d07d7ba8617bc590d391adfc2b7f1e8b99f46f444"}, - {file = "regex-2020.11.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:baf378ba6151f6e272824b86a774326f692bc2ef4cc5ce8d5bc76e38c813a55f"}, - {file = "regex-2020.11.13-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e3faaf10a0d1e8e23a9b51d1900b72e1635c2d5b0e1bea1c18022486a8e2e52d"}, - {file = "regex-2020.11.13-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2a11a3e90bd9901d70a5b31d7dd85114755a581a5da3fc996abfefa48aee78af"}, - {file = "regex-2020.11.13-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d1ebb090a426db66dd80df8ca85adc4abfcbad8a7c2e9a5ec7513ede522e0a8f"}, - {file = "regex-2020.11.13-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b2b1a5ddae3677d89b686e5c625fc5547c6e492bd755b520de5332773a8af06b"}, - {file = "regex-2020.11.13-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2c99e97d388cd0a8d30f7c514d67887d8021541b875baf09791a3baad48bb4f8"}, - {file = "regex-2020.11.13-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:c084582d4215593f2f1d28b65d2a2f3aceff8342aa85afd7be23a9cad74a0de5"}, - {file = "regex-2020.11.13-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:a3d748383762e56337c39ab35c6ed4deb88df5326f97a38946ddd19028ecce6b"}, - {file = "regex-2020.11.13-cp38-cp38-win32.whl", hash = "sha256:7913bd25f4ab274ba37bc97ad0e21c31004224ccb02765ad984eef43e04acc6c"}, - {file = "regex-2020.11.13-cp38-cp38-win_amd64.whl", hash = "sha256:6c54ce4b5d61a7129bad5c5dc279e222afd00e721bf92f9ef09e4fae28755683"}, - {file = "regex-2020.11.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1862a9d9194fae76a7aaf0150d5f2a8ec1da89e8b55890b1786b8f88a0f619dc"}, - {file = "regex-2020.11.13-cp39-cp39-manylinux1_i686.whl", hash = "sha256:4902e6aa086cbb224241adbc2f06235927d5cdacffb2425c73e6570e8d862364"}, - {file = "regex-2020.11.13-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:7a25fcbeae08f96a754b45bdc050e1fb94b95cab046bf56b016c25e9ab127b3e"}, - {file = "regex-2020.11.13-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:d2d8ce12b7c12c87e41123997ebaf1a5767a5be3ec545f64675388970f415e2e"}, - {file = "regex-2020.11.13-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:f7d29a6fc4760300f86ae329e3b6ca28ea9c20823df123a2ea8693e967b29917"}, - {file = "regex-2020.11.13-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:717881211f46de3ab130b58ec0908267961fadc06e44f974466d1887f865bd5b"}, - {file = "regex-2020.11.13-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:3128e30d83f2e70b0bed9b2a34e92707d0877e460b402faca908c6667092ada9"}, - {file = "regex-2020.11.13-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:8f6a2229e8ad946e36815f2a03386bb8353d4bde368fdf8ca5f0cb97264d3b5c"}, - {file = "regex-2020.11.13-cp39-cp39-win32.whl", hash = "sha256:f8f295db00ef5f8bae530fc39af0b40486ca6068733fb860b42115052206466f"}, - {file = "regex-2020.11.13-cp39-cp39-win_amd64.whl", hash = "sha256:a15f64ae3a027b64496a71ab1f722355e570c3fac5ba2801cafce846bf5af01d"}, - {file = "regex-2020.11.13.tar.gz", hash = "sha256:83d6b356e116ca119db8e7c6fc2983289d87b27b3fac238cfe5dca529d884562"}, -] requests = [ - {file = "requests-2.23.0-py2.7.egg", hash = "sha256:5d2d0ffbb515f39417009a46c14256291061ac01ba8f875b90cad137de83beb4"}, - {file = "requests-2.23.0-py2.py3-none-any.whl", hash = "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee"}, - {file = "requests-2.23.0.tar.gz", hash = "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"}, + {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, + {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, ] responses = [ - {file = "responses-0.12.1-py2.py3-none-any.whl", hash = "sha256:ef265bd3200bdef5ec17912fc64a23570ba23597fd54ca75c18650fa1699213d"}, - {file = "responses-0.12.1.tar.gz", hash = "sha256:2e5764325c6b624e42b428688f2111fea166af46623cb0127c05f6afb14d3457"}, + {file = "responses-0.13.2-py2.py3-none-any.whl", hash = "sha256:75529f9bea08276cea43545dcb6129f137c299d6a12269485a753785c869e0e2"}, + {file = "responses-0.13.2.tar.gz", hash = "sha256:0f0ab4717728d33dae8e66deea61eecc1e38f0398e35249e3963ff74cfc8d0d8"}, ] rsa = [ - {file = "rsa-4.7-py3-none-any.whl", hash = "sha256:a8774e55b59fd9fc893b0d05e9bfc6f47081f46ff5b46f39ccf24631b7be356b"}, - {file = "rsa-4.7.tar.gz", hash = "sha256:69805d6b69f56eb05b62daea3a7dbd7aa44324ad1306445e05da8060232d00f4"}, + {file = "rsa-4.7.2-py3-none-any.whl", hash = "sha256:78f9a9bf4e7be0c5ded4583326e7461e3a3c5aae24073648b4bdfa797d78c9d2"}, + {file = "rsa-4.7.2.tar.gz", hash = "sha256:9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9"}, ] s3transfer = [ - {file = "s3transfer-0.3.4-py2.py3-none-any.whl", hash = "sha256:1e28620e5b444652ed752cf87c7e0cb15b0e578972568c6609f0f18212f259ed"}, - {file = "s3transfer-0.3.4.tar.gz", hash = "sha256:7fdddb4f22275cf1d32129e21f056337fd2a80b6ccef1664528145b72c49e6d2"}, -] -serverlessrepo = [ - {file = "serverlessrepo-0.1.10-py2.py3-none-any.whl", hash = "sha256:b99c69be8ce87ccc48103fbe371ba7b148c3374c57862e59118c402522e5ed52"}, - {file = "serverlessrepo-0.1.10.tar.gz", hash = "sha256:671f48038123f121437b717ed51f253a55775590f00fbab6fbc6a01f8d05c017"}, + {file = "s3transfer-0.3.6-py2.py3-none-any.whl", hash = "sha256:5d48b1fd2232141a9d5fb279709117aaba506cacea7f86f11bc392f06bfa8fc2"}, + {file = "s3transfer-0.3.6.tar.gz", hash = "sha256:c5dadf598762899d8cfaecf68eba649cd25b0ce93b6c954b156aaa3eed160547"}, ] six = [ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, ] -text-unidecode = [ - {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, - {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, -] -tomlkit = [ - {file = "tomlkit-0.7.0-py2.py3-none-any.whl", hash = "sha256:6babbd33b17d5c9691896b0e68159215a9387ebfa938aa3ac42f4a4beeb2b831"}, - {file = "tomlkit-0.7.0.tar.gz", hash = "sha256:ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618"}, -] typed-ast = [ {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70"}, {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487"}, @@ -1912,24 +1541,17 @@ typing-extensions = [ {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"}, ] -tzlocal = [ - {file = "tzlocal-2.1-py2.py3-none-any.whl", hash = "sha256:e2cb6c6b5b604af38597403e9852872d7f534962ae2954c7f35efcb1ccacf4a4"}, - {file = "tzlocal-2.1.tar.gz", hash = "sha256:643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44"}, -] urllib3 = [ - {file = "urllib3-1.25.11-py2.py3-none-any.whl", hash = "sha256:f5321fbe4bf3fefa0efd0bfe7fb14e90909eb62a48ccda331726b4319897dd5e"}, - {file = "urllib3-1.25.11.tar.gz", hash = "sha256:8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2"}, -] -watchdog = [ - {file = "watchdog-0.10.3.tar.gz", hash = "sha256:4214e1379d128b0588021880ccaf40317ee156d4603ac388b9adcf29165e0c04"}, + {file = "urllib3-1.26.4-py2.py3-none-any.whl", hash = "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df"}, + {file = "urllib3-1.26.4.tar.gz", hash = "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"}, ] wcwidth = [ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, ] websocket-client = [ - {file = "websocket_client-0.57.0-py2.py3-none-any.whl", hash = "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549"}, - {file = "websocket_client-0.57.0.tar.gz", hash = "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010"}, + {file = "websocket_client-0.58.0-py2.py3-none-any.whl", hash = "sha256:44b5df8f08c74c3d82d28100fdc81f4536809ce98a17f0757557813275fbb663"}, + {file = "websocket_client-0.58.0.tar.gz", hash = "sha256:63509b41d158ae5b7f67eb4ad20fecbb4eee99434e73e140354dc3ff8e09716f"}, ] werkzeug = [ {file = "Werkzeug-1.0.1-py2.py3-none-any.whl", hash = "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43"}, @@ -1943,6 +1565,6 @@ xmltodict = [ {file = "xmltodict-0.12.0.tar.gz", hash = "sha256:50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21"}, ] zipp = [ - {file = "zipp-3.4.0-py3-none-any.whl", hash = "sha256:102c24ef8f171fd729d46599845e95c7ab894a4cf45f5de11a44cc7444fb1108"}, - {file = "zipp-3.4.0.tar.gz", hash = "sha256:ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb"}, + {file = "zipp-3.4.1-py3-none-any.whl", hash = "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098"}, + {file = "zipp-3.4.1.tar.gz", hash = "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76"}, ] diff --git a/pyproject.toml b/pyproject.toml index 50d93f9..b234e02 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,10 @@ python = "^3.6" boto3 = "^1.16.0" typer = { version = "^0.3.2", optional = true } +# We don't depend on this directly but make sure 1.26.4 or newer get's installed. +# https://github.com/advisories/GHSA-5phf-pp7p-vc2r +urllib3 = "^1.26.4" + [tool.poetry.extras] cli = ["typer"] scannerd = ["cfn-lint", "aws-sam-cli"] @@ -23,8 +27,6 @@ flake8 = "^3.8.4" mypy = "^0.800" boto3-stubs = {extras = ["ebs", "ec2"], version = "^1.16.63"} moto = {extras = ["ebs", "ec2"], version = "^1.3.16"} -cfn-lint = {version = "^0.44.7", optional = true} -aws-sam-cli = {version = "^1.18.1", optional = true} [build-system] requires = ["poetry-core>=1.0.0"] From 2ad85776c9ea18bcb7c43d855af558705a1ad5a4 Mon Sep 17 00:00:00 2001 From: Ryan Gerstenkorn Date: Fri, 9 Apr 2021 19:21:33 -0700 Subject: [PATCH 2/3] Revert "Revert to dynamically finding IP address" This reverts commit 03554619560f0674e8318b9a62b14e9c50c648f1. --- dsnap/files/Vagrantfile | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/dsnap/files/Vagrantfile b/dsnap/files/Vagrantfile index d4da85e..dd9a201 100644 --- a/dsnap/files/Vagrantfile +++ b/dsnap/files/Vagrantfile @@ -32,43 +32,15 @@ Vagrant.configure("2") do |config| vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', vdi] end - config.vm.network "private_network", type: "dhcp", adapter: 1 - config.vm.network :forwarded_port, id: 'ssh', guest: 22, host: 2222, disabled: true - - # Used because most the information about the vm isn't available when this config get's parsed. - # We can't use a lazy object here because config.ssh.host is used too early on to print to the console - # and we end up getting the wrong IP. So instead call out to `VBoxManager dhcpserver` each time we need - # the IP. This should result in the correct IP by the time it's actually needed. - class GuestIP - def ip_address - vm_id = File.read(File.dirname(__FILE__) + '/.vagrant/machines/default/virtualbox/id') - - @vminfo ||= `VBoxManage showvminfo #{vm_id} --details --machinereadable` - interface = @vminfo.lines.grep(/hostonlyadapter1/)[0].match('\w+="(\w+)"')[1] - mac_addr = @vminfo.lines.grep(/macaddress1/)[0].match('\w+="(\w+)"')[1] - - resp=`VBoxManage dhcpserver findlease --interface='#{interface}' --mac-address='#{mac_addr}'` - ip_address=resp.lines.grep(/IP Address/)[0].match('([0-9.]+)')[1] - end - - def to_s - self.ip_address - end - - def to_str - self.ip_address - end - end - - - # Vagrant isn't meant to work without the NAT network adapter so work around this by scraping - # the the IP address from the networks dhcpserver and using the returned ip address as the - # guest ssh ip. - config.ssh.host = GuestIP.new + # Prevents guest access to the hosts loopback adapter but also prevents external networking as a side effect. + # https://blog.ryanjarv.sh/2020/11/13/virtual-box-networking.html + ip_addr = "192.168.252.4" + config.vm.network "private_network", ip: ip_addr, adapter: 1 + config.ssh.host = ip_addr config.vm.provision "shell", inline: <<-SHELL sudo mkdir /mnt/snapshot sudo mount -o ro /dev/sdb1 /mnt/snapshot echo 'cd /mnt/snapshot' >> ~vagrant/.profile SHELL -end +end \ No newline at end of file From 6047354fdcf0955376798e17dcb6e88bdcf48492 Mon Sep 17 00:00:00 2001 From: Ryan Gerstenkorn Date: Fri, 9 Apr 2021 19:28:07 -0700 Subject: [PATCH 3/3] Revert "Merge pull request #18 from RhinoSecurityLabs/feature/vagrant-offline" This reverts commit bd53c59e54458ddc3aacf7fb31f10d33055151c9, reversing changes made to b053b8ba0c0a1ede1ca46ecf4daf927cb5e3bb19. --- README.md | 18 ++------------- dsnap/files/Vagrantfile | 12 ++-------- dsnap/files/Vagrantfile.trusted | 41 --------------------------------- dsnap/main.py | 5 +--- dsnap/utils.py | 9 ++------ 5 files changed, 7 insertions(+), 78 deletions(-) delete mode 100644 dsnap/files/Vagrantfile.trusted diff --git a/README.md b/README.md index afb48ec..a85319d 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,8 @@ Cleaning up snapshot: snap-0543a8681adce0086 ``` ### Mounting in Vagrant +Note: Vagrant does not offer any guarantee's of seperation between the guest and the host. It shouldn't considered a security boundry like most VM's. + This requires virtualbox to be installed. dsnap init will write a Vagrantfile to the current directory that can be used to mount a specific downloaded snapshot. Conversion to a VDI disk is handled in the Vagrantfile, it will look for the disk file specified in the IMAGE environment variable, convert it to a VDI using `VBoxManage convertdd`. The resulting VDI is destroyed when the Vagrant box is, however the original raw .img file will remain and can be reused as needed. ```shell @@ -117,22 +119,6 @@ This requires virtualbox to be installed. dsnap init will write a Vagrantfile to % vagrant ssh ``` -#### Trusted Mode - -By default, we treat the guest as untrusted within reason. This means that by default there is no mount between the -guest and the host and external networking is disabled. SSH access from the host is still allowed for usability. - -If you trust the downloaded image you can enable both of these features by using `vagrant init --trusted` to write out -the Vagrantfile. This will enable networking and the host to guest vagrant share. - -Improtant: Keep in mind trusted mode will allow access to the hosts loopback adapter. This is due to how VirtualBox's -NAT adapter works which is both default and heavily relied on by vagrant. You can find more information on this in this -[blog post](https://blog.ryanjarv.sh/2020/11/13/virtual-box-networking.html). - -Another common vagrant escape is related to the default share mounting the directory containing the executable -Vagrantfile. This *is* prevented even in the trusted mode. This is done by mounting a subdirectory instead of the -default. - ### Mounting With Docker This uses libguestfs to work directly with the downloaded img file. diff --git a/dsnap/files/Vagrantfile b/dsnap/files/Vagrantfile index dd9a201..05da978 100644 --- a/dsnap/files/Vagrantfile +++ b/dsnap/files/Vagrantfile @@ -1,13 +1,11 @@ # -*- mode: ruby -*- # vi: set ft=ruby : - Vagrant.configure("2") do |config| config.vm.box = "bento/ubuntu-20.04" - # Prevents RCE from guest to host. - # https://blog.ryanjarv.sh/2019/06/08/malicious-vagrant-boxes.html Dir.mkdir 'vagrant' unless File.exists? 'vagrant' config.vm.synced_folder ".", "/vagrant", disabled: true + config.vm.synced_folder "vagrant", "/vagrant" if ['up', 'reload'].member? ARGV[0] @@ -32,15 +30,9 @@ Vagrant.configure("2") do |config| vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', vdi] end - # Prevents guest access to the hosts loopback adapter but also prevents external networking as a side effect. - # https://blog.ryanjarv.sh/2020/11/13/virtual-box-networking.html - ip_addr = "192.168.252.4" - config.vm.network "private_network", ip: ip_addr, adapter: 1 - config.ssh.host = ip_addr - config.vm.provision "shell", inline: <<-SHELL sudo mkdir /mnt/snapshot sudo mount -o ro /dev/sdb1 /mnt/snapshot echo 'cd /mnt/snapshot' >> ~vagrant/.profile SHELL -end \ No newline at end of file +end diff --git a/dsnap/files/Vagrantfile.trusted b/dsnap/files/Vagrantfile.trusted deleted file mode 100644 index 8cddb6c..0000000 --- a/dsnap/files/Vagrantfile.trusted +++ /dev/null @@ -1,41 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -Vagrant.configure("2") do |config| - config.vm.box = "bento/ubuntu-20.04" - - # Prevents RCE from guest to host. - # https://blog.ryanjarv.sh/2019/06/08/malicious-vagrant-boxes.html - Dir.mkdir 'vagrant' unless File.exists? 'vagrant' - config.vm.synced_folder ".", "/vagrant", disabled: true - config.vm.synced_folder "vagrant", "/vagrant", SharedFoldersEnableSymlinksCreate: false - - - if ['up', 'reload'].member? ARGV[0] - image = ENV['IMAGE'] - if image === nil - puts "Usage: IMAGE='path/to/snapshot.img' vagrant #{ARGV.join( ' ' )}" - exit(1) - elsif image.end_with? '.img' - vdi = image.sub('.img', '.vdi') - if ::File.exist? vdi - puts "[WARN] A vdi image of #{image} already exists at #{vdi}, will use the existing #{vdi}" - else - system('VBoxManage', 'convertdd', image, vdi) - raise Exception.new "failed to convert #{image} to a vdi" unless $?.success? - puts "[INFO] Created a new VDI image of #{image} at #{vdi}" - end - end - end - - config.vm.provider "virtualbox" do |vb| - vb.memory = "1024" - vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', vdi] - end - - config.vm.provision "shell", inline: <<-SHELL - sudo mkdir /mnt/snapshot - sudo mount -o ro /dev/sdb1 /mnt/snapshot - echo 'cd /mnt/snapshot' >> ~vagrant/.profile - SHELL -end diff --git a/dsnap/main.py b/dsnap/main.py index 3b355a9..9f7f970 100644 --- a/dsnap/main.py +++ b/dsnap/main.py @@ -32,15 +32,12 @@ def session( @app.command() def init( - trusted: bool = typer.Option(False, help='Enable network access and host share.'), out_dir: Path = typer.Option(Path('.'), help='Output directory to write Vagrantfile'), force: bool = typer.Option(False, help='Overwrite any existing Vagrantfile.') ): """ Write out a Vagrantfile template to explore downloaded snapshots. - If --trusted is used external guest VM networking and the shared mount will be enabled. - Warning: Due to how Vagrant and VirtualBox work's this will allow access to the host's loopback adapter. If --out-dir is used the given directory will be used instead. If --force is used we will overwrite an already present Vagrantfile @@ -51,7 +48,7 @@ def init( % IMAGE=snap-0543a8681adce0086.img vagrant up % vagrant ssh """ - output = utils.init_vagrant(out_dir, force, trusted) + output = utils.init_vagrant(out_dir, force) if output: print(f"Wrote Vagrantfile to {style('./'+str(output), bold=True)}") else: diff --git a/dsnap/utils.py b/dsnap/utils.py index 32a28b7..3c59972 100644 --- a/dsnap/utils.py +++ b/dsnap/utils.py @@ -46,14 +46,9 @@ def sha256_check(data: bytes, digest: str) -> bool: return result -def init_vagrant(out_dir: Path = Path('.'), force=False, trusted=False) -> Optional[Path]: +def init_vagrant(out_dir: Path = Path('.'), force=False) -> Optional[Path]: """Initializes out_dir directory with a templated Vagrantfile for mounting downloaded images""" - if trusted: - vagrant_path = 'files/Vagrantfile.trusted' - else: - vagrant_path = 'files/Vagrantfile' - - template = Path(__file__).parent.joinpath(Path(vagrant_path)) + template = Path(__file__).parent.joinpath(Path('files/Vagrantfile')) out = out_dir.joinpath(Path('Vagrantfile').name) if out.exists() and not force: return None