[metadata]
name = moto
version = 4.1.0.dev
long_description = file:README.md
long_description_content_type = text/markdown
author = Steve Pulec
author_email = "spulec@gmail.com"
url = https://github.com/getmoto/moto
license = Apache License 2.0
test_suite = tests
classifiers =
    Programming Language :: Python :: 3
    Programming Language :: Python :: 3.7
    Programming Language :: Python :: 3.8
    Programming Language :: Python :: 3.9
    Programming Language :: Python :: 3.10
    Programming Language :: Python :: 3.11
    License :: OSI Approved :: Apache Software License
    Topic :: Software Development :: Testing
keywords = aws ec2 s3 boto3 mock
project_urls =
    Documentation = http://docs.getmoto.org/en/latest/
    Issue tracker = https://github.com/getmoto/moto/issues
    Changelog = https://github.com/getmoto/moto/blob/master/CHANGELOG.md

[options]
python_requires = >=3.7
install_requires =
    boto3>=1.9.201
    botocore>=1.12.201
    cryptography>=3.3.1
    requests>=2.5
    xmltodict
    werkzeug>=0.5,!=2.2.0,!=2.2.1
    python-dateutil<3.0.0,>=2.1
    responses>=0.13.0
    Jinja2>=2.10.1
    importlib_metadata ; python_version < '3.8'
package_dir =
    moto = moto
include_package_data = True

[options.extras_require]
all =
    python-jose[cryptography]>=3.1.0,<4.0.0
    ecdsa!=0.15
    docker>=2.5.1
    graphql-core
    PyYAML>=5.1
    cfn-lint>=0.40.0
    sshpubkeys>=3.1.0
    openapi-spec-validator>=0.2.8
    pyparsing>=3.0.7
    jsondiff>=1.1.2
    aws-xray-sdk!=0.96,>=0.93
    setuptools
server =
    python-jose[cryptography]>=3.1.0,<4.0.0
    ecdsa!=0.15
    docker>=2.5.1
    graphql-core
    PyYAML>=5.1
    cfn-lint>=0.40.0
    sshpubkeys>=3.1.0
    openapi-spec-validator>=0.2.8
    pyparsing>=3.0.7
    jsondiff>=1.1.2
    aws-xray-sdk!=0.96,>=0.93
    setuptools
    flask!=2.2.0,!=2.2.1
    flask-cors
acm =
acmpca =
amp =
apigateway =
    PyYAML>=5.1
    python-jose[cryptography]>=3.1.0,<4.0.0
    ecdsa!=0.15
    openapi-spec-validator>=0.2.8
apigatewayv2 = PyYAML>=5.1
applicationautoscaling =
appsync = graphql-core
athena =
autoscaling =
awslambda = docker>=2.5.1
batch = docker>=2.5.1
batch_simple =
budgets =
ce =
cloudformation =
    python-jose[cryptography]>=3.1.0,<4.0.0
    ecdsa!=0.15
    docker>=2.5.1
    graphql-core
    PyYAML>=5.1
    cfn-lint>=0.40.0
    sshpubkeys>=3.1.0
    openapi-spec-validator>=0.2.8
    pyparsing>=3.0.7
    jsondiff>=1.1.2
    aws-xray-sdk!=0.96,>=0.93
    setuptools
cloudfront =
cloudtrail =
cloudwatch =
codebuild =
codecommit =
codepipeline =
cognitoidentity =
cognitoidp =
    python-jose[cryptography]>=3.1.0,<4.0.0
    ecdsa!=0.15
comprehend =
config =
databrew =
datapipeline =
datasync =
dax =
dms =
ds = sshpubkeys>=3.1.0
dynamodb = docker>=2.5.1
dynamodbstreams = docker>=2.5.1
ebs = sshpubkeys>=3.1.0
ec2 = sshpubkeys>=3.1.0
ec2instanceconnect =
ecr =
ecs =
efs = sshpubkeys>=3.1.0
eks = sshpubkeys>=3.1.0
elasticache =
elasticbeanstalk =
elastictranscoder =
elb =
elbv2 =
emr =
emrcontainers =
emrserverless =
es =
events =
firehose =
forecast =
glacier =
glue = pyparsing>=3.0.7
greengrass =
guardduty =
iam =
iot =
iotdata = jsondiff>=1.1.2
kinesis =
kinesisvideo =
kinesisvideoarchivedmedia =
kms =
logs =
managedblockchain =
mediaconnect =
medialive =
mediapackage =
mediastore =
mediastoredata =
meteringmarketplace =
mq =
opsworks =
organizations =
personalize =
pinpoint =
polly =
quicksight =
ram =
rds =
redshift =
redshiftdata =
rekognition =
resourcegroups =
resourcegroupstaggingapi =
route53 =
route53resolver = sshpubkeys>=3.1.0
s3 = PyYAML>=5.1
s3control =
sagemaker =
sdb =
secretsmanager =
servicediscovery =
servicequotas =
ses =
signer =
sns =
sqs =
ssm =
    PyYAML>=5.1
ssoadmin =
stepfunctions =
sts =
support =
swf =
textract =
timestreamwrite =
transcribe =
wafv2 =
# XRay module uses pkg_resources, but doesn't have an explicit dependency listed.  This is fixed in 2.9.0:
# https://github.com/aws/aws-xray-sdk-python/issues/305
xray =
    aws-xray-sdk!=0.96,>=0.93
    setuptools

[options.entry_points]
console_scripts =
    moto_server = moto.server:main

[bdist_wheel]
universal=1

[tool:pytest]
markers =
    network: marks tests which require network connection

[coverage:run]
relative_files = True

[flake8]
ignore = W503,W605,E128,E501,E203,E266,E501,E231,FS003
exclude = moto/packages,dist,tests/terraformtests

[pylint.MASTER]
ignore-paths=moto/packages

[pylint.'MESSAGES CONTROL']
disable = W,C,R,E
# future sensible checks = super-init-not-called, unspecified-encoding, undefined-loop-variable
enable = anomalous-backslash-in-string, arguments-renamed, dangerous-default-value, deprecated-module, function-redefined, import-self, redefined-builtin, redefined-outer-name, reimported, pointless-statement, super-with-arguments, unused-argument, unused-import, unused-variable, useless-else-on-loop, wildcard-import

[mypy]
files= moto/a*,moto/b*,moto/c*,moto/d*,moto/ebs/,moto/ec2/models/a*,moto/ec2/models/c*,moto/moto_api
show_column_numbers=True
show_error_codes = True
disable_error_code=abstract

disallow_any_unimported=False
disallow_any_expr=False
disallow_any_decorated=True
disallow_any_explicit=False
disallow_any_generics=True
disallow_subclassing_any=True

disallow_untyped_calls=True
disallow_untyped_defs=True
disallow_incomplete_defs=True
check_untyped_defs=True
disallow_untyped_decorators=True

no_implicit_optional=True
strict_optional=True

warn_redundant_casts=True
warn_unused_ignores=False
warn_no_return=True
warn_return_any=False
warn_unreachable=False

strict_equality=True
ignore_missing_imports=True
follow_imports=silent