diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ca6b5181fa8..5933e80a6d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,6 +26,8 @@ jobs: with: terraform_wrapper: false - name: Lint Check + env: + RUFF_FORMAT: github run: | make lint - name: Check Workflows diff --git a/c7n/resolver.py b/c7n/resolver.py index ce53fa47e76..de6df0c85ca 100644 --- a/c7n/resolver.py +++ b/c7n/resolver.py @@ -150,7 +150,7 @@ def get_contents(self): uri=self.data.get('url'), headers=self.data.get('headers', {}) ) - + contents = str(self.resolver.resolve(**params)) return contents, format diff --git a/c7n/resources/appsync.py b/c7n/resources/appsync.py index 36a5d7062d9..fdf84ed2f2d 100644 --- a/c7n/resources/appsync.py +++ b/c7n/resources/appsync.py @@ -213,7 +213,7 @@ def process(self, resources): else: self.retry(client.disassociate_web_acl, ResourceArn=r[arn_key]) - + @GraphQLApi.action_registry.register('delete') class Delete(Action): diff --git a/c7n/resources/cw.py b/c7n/resources/cw.py index 51f3a36b1a5..be1a04ddc58 100644 --- a/c7n/resources/cw.py +++ b/c7n/resources/cw.py @@ -161,7 +161,8 @@ class resource_type(TypeInfo): class EventBusCrossAccountFilter(CrossAccountAccessFilter): # dummy permission permissions = ('events:ListEventBuses',) - + + @EventBus.action_registry.register('delete') class EventBusDelete(BaseAction): """Delete an event bus. diff --git a/c7n/resources/ecs.py b/c7n/resources/ecs.py index d9b7d2d45f0..80289ce4388 100644 --- a/c7n/resources/ecs.py +++ b/c7n/resources/ecs.py @@ -593,10 +593,10 @@ class DeleteTaskDefinition(BaseAction): The definition will be marked as InActive. Currently running services and task can still reference, new services & tasks can't. - - force is False by default. When given as True, the task definition will + + force is False by default. When given as True, the task definition will be permanently deleted. - + .. code-block:: yaml policies: diff --git a/c7n/resources/efs.py b/c7n/resources/efs.py index abbb3e84192..4d08f1a278f 100644 --- a/c7n/resources/efs.py +++ b/c7n/resources/efs.py @@ -60,7 +60,7 @@ class resource_type(TypeInfo): arn = False cfn_type = 'AWS::EFS::MountTarget' supports_trailevents = True - + @ElasticFileSystemMountTarget.filter_registry.register('subnet') class Subnet(SubnetFilter): diff --git a/c7n/resources/elasticsearch.py b/c7n/resources/elasticsearch.py index db75f9dcc8f..2fafc70b049 100644 --- a/c7n/resources/elasticsearch.py +++ b/c7n/resources/elasticsearch.py @@ -515,7 +515,7 @@ class RemoveMatchedSourceIps(BaseAction): ElasticSearch domain. :example: - + .. code-block:: yaml policies: diff --git a/c7n/resources/iam.py b/c7n/resources/iam.py index aaf39c3e8c5..58fb83bcbc9 100644 --- a/c7n/resources/iam.py +++ b/c7n/resources/iam.py @@ -1956,7 +1956,7 @@ class UserPolicy(ValueFilter): include-via: true """ - schema = type_schema('policy', rinherit=ValueFilter.schema, + schema = type_schema('policy', rinherit=ValueFilter.schema, **{'include-via': {'type': 'boolean'}}) schema_alias = False permissions = ( diff --git a/c7n/resources/kinesis.py b/c7n/resources/kinesis.py index 7aca49009ea..7dfda63eef3 100644 --- a/c7n/resources/kinesis.py +++ b/c7n/resources/kinesis.py @@ -400,6 +400,7 @@ class KmsFilterVideoStream(KmsRelatedFilter): RelatedIdsExpression = 'KmsKeyId' + @KinesisVideoStream.action_registry.register("tag") class TagVideoStream(Tag): """Action to add tag/tags to Kinesis Video streams resource @@ -419,15 +420,16 @@ class TagVideoStream(Tag): value: "KinesisVideo Tag Value" """ permissions = ('kinesisvideo:TagResource',) - + def process_resource_set(self, client, resource_set, tag_keys): for r in resource_set: self.manager.retry( - client.tag_resource, - ResourceARN=r['StreamARN'], - Tags=tag_keys, + client.tag_resource, + ResourceARN=r['StreamARN'], + Tags=tag_keys, ignore_err_codes=("ResourceNotFoundException",)) - + + @KinesisVideoStream.action_registry.register('remove-tag') class VideoStreamRemoveTag(RemoveTag): """Action to remove tag/tags from a Kinesis Video streams resource @@ -445,14 +447,14 @@ class VideoStreamRemoveTag(RemoveTag): - type: remove-tag tags: ["KinesisVideoTag"] """ - + permissions = ('kinesisvideo:UntagResource',) - + def process_resource_set(self, client, resource_set, tag_keys): for r in resource_set: self.manager.retry( - client.untag_resource, - ResourceARN=r['StreamARN'], - TagKeyList=tag_keys, + client.untag_resource, + ResourceARN=r['StreamARN'], + TagKeyList=tag_keys, ignore_err_codes=("ResourceNotFoundException",)) diff --git a/c7n/resources/rds.py b/c7n/resources/rds.py index 1bd4ffd0cda..aed6801c51b 100644 --- a/c7n/resources/rds.py +++ b/c7n/resources/rds.py @@ -2108,7 +2108,7 @@ def handle_optiongroup_cache(self, client, paginator, option_groups): ogcache[og] = option_group cache.save(cache_key, ogcache[og]) - + return ogcache def process(self, resources, event=None): diff --git a/c7n/resources/ses.py b/c7n/resources/ses.py index 4ab8eac372c..aee16e2b337 100644 --- a/c7n/resources/ses.py +++ b/c7n/resources/ses.py @@ -12,7 +12,7 @@ class DescribeConfigurationSet(DescribeSource): def augment(self, resources): client = local_session(self.manager.session_factory).client('ses') for r in resources: - details = client.describe_configuration_set(ConfigurationSetName=r['Name'], + details = client.describe_configuration_set(ConfigurationSetName=r['Name'], ConfigurationSetAttributeNames=['eventDestinations','trackingOptions','deliveryOptions','reputationOptions']) r.update({ k: details[k] diff --git a/poetry.lock b/poetry.lock index fb8545183ae..690fcc305b9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,19 +1,19 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. [[package]] name = "argcomplete" -version = "3.0.8" +version = "3.1.1" description = "Bash tab completion for argparse" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "argcomplete-3.0.8-py3-none-any.whl", hash = "sha256:e36fd646839933cbec7941c662ecb65338248667358dd3d968405a4506a60d9b"}, - {file = "argcomplete-3.0.8.tar.gz", hash = "sha256:b9ca96448e14fa459d7450a4ab5a22bbf9cee4ba7adddf03e65c398b5daeea28"}, + {file = "argcomplete-3.1.1-py3-none-any.whl", hash = "sha256:35fa893a88deea85ea7b20d241100e64516d6af6d7b0ae2bed1d263d26f70948"}, + {file = "argcomplete-3.1.1.tar.gz", hash = "sha256:6c4c563f14f01440aaffa3eae13441c5db2357b5eec639abe7c0b15334627dff"}, ] [package.dependencies] -importlib-metadata = {version = ">=0.23,<7", markers = "python_version == \"3.7\""} +importlib-metadata = {version = ">=0.23,<7", markers = "python_version < \"3.8\""} [package.extras] test = ["coverage", "mypy", "pexpect", "ruff", "wheel"] @@ -128,18 +128,18 @@ css = ["tinycss2 (>=1.1.0,<1.2)"] [[package]] name = "boto3" -version = "1.26.139" +version = "1.26.155" description = "The AWS SDK for Python" category = "main" optional = false python-versions = ">= 3.7" files = [ - {file = "boto3-1.26.139-py3-none-any.whl", hash = "sha256:5b61a82f0c1cd006bd109ddf27c93d9b010c4c188fc583ee257ff6f3bb89970d"}, - {file = "boto3-1.26.139.tar.gz", hash = "sha256:fe19d287bc8ede385e1b9136f135ee8f93eab81404ad1445b1a70cabfe3f7087"}, + {file = "boto3-1.26.155-py3-none-any.whl", hash = "sha256:dd15823e8c0554d98c18584d9a6a0342c67611c1114ef61495934c2e560f632c"}, + {file = "boto3-1.26.155.tar.gz", hash = "sha256:2d4095e2029ce5ceccb25591f13e55aa5b8ba17794de09963654bd9ced45158f"}, ] [package.dependencies] -botocore = ">=1.29.139,<1.30.0" +botocore = ">=1.29.155,<1.30.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.6.0,<0.7.0" @@ -148,14 +148,14 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.29.139" +version = "1.29.155" description = "Low-level, data-driven core of boto 3." category = "main" optional = false python-versions = ">= 3.7" files = [ - {file = "botocore-1.29.139-py3-none-any.whl", hash = "sha256:b164af929eb2f1507833718de9eb8811e3adc6943b464c1869e95ac87f3bab88"}, - {file = "botocore-1.29.139.tar.gz", hash = "sha256:acc62710bdf11e47f4f26fb290a9082ff00377d7e93a16e1f080f9c789898114"}, + {file = "botocore-1.29.155-py3-none-any.whl", hash = "sha256:32d5da68212e10c060fd484f41df4f7048fc7731ccd16fd00e37b11b6e841142"}, + {file = "botocore-1.29.155.tar.gz", hash = "sha256:7fbb7ebba5f645c9750fe557b1ea789d40017a028cdaa2c22fcbf06d4a4d3c1d"}, ] [package.dependencies] @@ -370,63 +370,72 @@ files = [ [[package]] name = "coverage" -version = "7.2.6" +version = "7.2.7" description = "Code coverage measurement for Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "coverage-7.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:496b86f1fc9c81a1cd53d8842ef712e950a4611bba0c42d33366a7b91ba969ec"}, - {file = "coverage-7.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbe6e8c0a9a7193ba10ee52977d4d5e7652957c1f56ccefed0701db8801a2a3b"}, - {file = "coverage-7.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d06b721c2550c01a60e5d3093f417168658fb454e5dfd9a23570e9bffe39a1"}, - {file = "coverage-7.2.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:77a04b84d01f0e12c66f16e69e92616442dc675bbe51b90bfb074b1e5d1c7fbd"}, - {file = "coverage-7.2.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35db06450272473eab4449e9c2ad9bc6a0a68dab8e81a0eae6b50d9c2838767e"}, - {file = "coverage-7.2.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6727a0d929ff0028b1ed8b3e7f8701670b1d7032f219110b55476bb60c390bfb"}, - {file = "coverage-7.2.6-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aac1d5fdc5378f6bac2c0c7ebe7635a6809f5b4376f6cf5d43243c1917a67087"}, - {file = "coverage-7.2.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1c9e4a5eb1bbc3675ee57bc31f8eea4cd7fb0cbcbe4912cf1cb2bf3b754f4a80"}, - {file = "coverage-7.2.6-cp310-cp310-win32.whl", hash = "sha256:71f739f97f5f80627f1fee2331e63261355fd1e9a9cce0016394b6707ac3f4ec"}, - {file = "coverage-7.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:fde5c7a9d9864d3e07992f66767a9817f24324f354caa3d8129735a3dc74f126"}, - {file = "coverage-7.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc7b667f8654376e9353dd93e55e12ce2a59fb6d8e29fce40de682273425e044"}, - {file = "coverage-7.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:697f4742aa3f26c107ddcb2b1784a74fe40180014edbd9adaa574eac0529914c"}, - {file = "coverage-7.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:541280dde49ce74a4262c5e395b48ea1207e78454788887118c421cb4ffbfcac"}, - {file = "coverage-7.2.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e7f1a8328eeec34c54f1d5968a708b50fc38d31e62ca8b0560e84a968fbf9a9"}, - {file = "coverage-7.2.6-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bbd58eb5a2371bf160590f4262109f66b6043b0b991930693134cb617bc0169"}, - {file = "coverage-7.2.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ae82c5f168d2a39a5d69a12a69d4dc23837a43cf2ca99be60dfe59996ea6b113"}, - {file = "coverage-7.2.6-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f5440cdaf3099e7ab17a5a7065aed59aff8c8b079597b61c1f8be6f32fe60636"}, - {file = "coverage-7.2.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a6f03f87fea579d55e0b690d28f5042ec1368650466520fbc400e7aeaf09e995"}, - {file = "coverage-7.2.6-cp311-cp311-win32.whl", hash = "sha256:dc4d5187ef4d53e0d4c8eaf530233685667844c5fb0b855fea71ae659017854b"}, - {file = "coverage-7.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:c93d52c3dc7b9c65e39473704988602300e3cc1bad08b5ab5b03ca98bbbc68c1"}, - {file = "coverage-7.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:42c692b55a647a832025a4c048007034fe77b162b566ad537ce65ad824b12a84"}, - {file = "coverage-7.2.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7786b2fa7809bf835f830779ad285215a04da76293164bb6745796873f0942d"}, - {file = "coverage-7.2.6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25bad4196104761bc26b1dae9b57383826542ec689ff0042f7f4f4dd7a815cba"}, - {file = "coverage-7.2.6-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2692306d3d4cb32d2cceed1e47cebd6b1d2565c993d6d2eda8e6e6adf53301e6"}, - {file = "coverage-7.2.6-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:392154d09bd4473b9d11351ab5d63391f3d5d24d752f27b3be7498b0ee2b5226"}, - {file = "coverage-7.2.6-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:fa079995432037b5e2ef5ddbb270bcd2ded9f52b8e191a5de11fe59a00ea30d8"}, - {file = "coverage-7.2.6-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d712cefff15c712329113b01088ba71bbcef0f7ea58478ca0bbec63a824844cb"}, - {file = "coverage-7.2.6-cp37-cp37m-win32.whl", hash = "sha256:004948e296149644d208964300cb3d98affc5211e9e490e9979af4030b0d6473"}, - {file = "coverage-7.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:c1d7a31603c3483ac49c1726723b0934f88f2c011c660e6471e7bd735c2fa110"}, - {file = "coverage-7.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3436927d1794fa6763b89b60c896f9e3bd53212001026ebc9080d23f0c2733c1"}, - {file = "coverage-7.2.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44c9b9f1a245f3d0d202b1a8fa666a80b5ecbe4ad5d0859c0fb16a52d9763224"}, - {file = "coverage-7.2.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e3783a286d5a93a2921396d50ce45a909aa8f13eee964465012f110f0cbb611"}, - {file = "coverage-7.2.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cff6980fe7100242170092bb40d2b1cdad79502cd532fd26b12a2b8a5f9aee0"}, - {file = "coverage-7.2.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c534431153caffc7c495c3eddf7e6a6033e7f81d78385b4e41611b51e8870446"}, - {file = "coverage-7.2.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3062fd5c62df988cea9f2972c593f77fed1182bfddc5a3b12b1e606cb7aba99e"}, - {file = "coverage-7.2.6-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6284a2005e4f8061c58c814b1600ad0074ccb0289fe61ea709655c5969877b70"}, - {file = "coverage-7.2.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:97729e6828643f168a2a3f07848e1b1b94a366b13a9f5aba5484c2215724edc8"}, - {file = "coverage-7.2.6-cp38-cp38-win32.whl", hash = "sha256:dc11b42fa61ff1e788dd095726a0aed6aad9c03d5c5984b54cb9e1e67b276aa5"}, - {file = "coverage-7.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:cbcc874f454ee51f158afd604a315f30c0e31dff1d5d5bf499fc529229d964dd"}, - {file = "coverage-7.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d3cacc6a665221108ecdf90517a8028d07a2783df3417d12dcfef1c517e67478"}, - {file = "coverage-7.2.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:272ab31228a9df857ab5df5d67936d8861464dc89c5d3fab35132626e9369379"}, - {file = "coverage-7.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a8723ccec4e564d4b9a79923246f7b9a8de4ec55fa03ec4ec804459dade3c4f"}, - {file = "coverage-7.2.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5906f6a84b47f995cd1bf0aca1c72d591c55ee955f98074e93660d64dfc66eb9"}, - {file = "coverage-7.2.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52c139b7ab3f0b15f9aad0a3fedef5a1f8c0b2bdc291d88639ca2c97d3682416"}, - {file = "coverage-7.2.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a5ffd45c6b93c23a8507e2f436983015c6457aa832496b6a095505ca2f63e8f1"}, - {file = "coverage-7.2.6-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4f3c7c19581d471af0e9cb49d928172cd8492cd78a2b7a4e82345d33662929bb"}, - {file = "coverage-7.2.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2e8c0e79820cdd67978e1120983786422d279e07a381dbf89d03bbb23ec670a6"}, - {file = "coverage-7.2.6-cp39-cp39-win32.whl", hash = "sha256:13cde6bb0e58fb67d09e2f373de3899d1d1e866c5a9ff05d93615f2f54fbd2bb"}, - {file = "coverage-7.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:6b9f64526286255735847aed0221b189486e0b9ed943446936e41b7e44b08783"}, - {file = "coverage-7.2.6-pp37.pp38.pp39-none-any.whl", hash = "sha256:6babcbf1e66e46052442f10833cfc4a0d3554d8276aa37af8531a83ed3c1a01d"}, - {file = "coverage-7.2.6.tar.gz", hash = "sha256:2025f913f2edb0272ef15d00b1f335ff8908c921c8eb2013536fcaf61f5a683d"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, + {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, + {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, + {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, + {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, + {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, + {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, + {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, + {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, + {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, + {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, + {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, + {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, + {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, + {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, + {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, + {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, ] [package.dependencies] @@ -437,31 +446,31 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "41.0.0" +version = "41.0.1" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-41.0.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:3c5ef25d060c80d6d9f7f9892e1d41bb1c79b78ce74805b8cb4aa373cb7d5ec8"}, - {file = "cryptography-41.0.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:8362565b3835ceacf4dc8f3b56471a2289cf51ac80946f9087e66dc283a810e0"}, - {file = "cryptography-41.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3680248309d340fda9611498a5319b0193a8dbdb73586a1acf8109d06f25b92d"}, - {file = "cryptography-41.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84a165379cb9d411d58ed739e4af3396e544eac190805a54ba2e0322feb55c46"}, - {file = "cryptography-41.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:4ab14d567f7bbe7f1cdff1c53d5324ed4d3fc8bd17c481b395db224fb405c237"}, - {file = "cryptography-41.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9f65e842cb02550fac96536edb1d17f24c0a338fd84eaf582be25926e993dde4"}, - {file = "cryptography-41.0.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:b7f2f5c525a642cecad24ee8670443ba27ac1fab81bba4cc24c7b6b41f2d0c75"}, - {file = "cryptography-41.0.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7d92f0248d38faa411d17f4107fc0bce0c42cae0b0ba5415505df72d751bf62d"}, - {file = "cryptography-41.0.0-cp37-abi3-win32.whl", hash = "sha256:34d405ea69a8b34566ba3dfb0521379b210ea5d560fafedf9f800a9a94a41928"}, - {file = "cryptography-41.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:344c6de9f8bda3c425b3a41b319522ba3208551b70c2ae00099c205f0d9fd3be"}, - {file = "cryptography-41.0.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:88ff107f211ea696455ea8d911389f6d2b276aabf3231bf72c8853d22db755c5"}, - {file = "cryptography-41.0.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:b846d59a8d5a9ba87e2c3d757ca019fa576793e8758174d3868aecb88d6fc8eb"}, - {file = "cryptography-41.0.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5d0bf9b252f30a31664b6f64432b4730bb7038339bd18b1fafe129cfc2be9be"}, - {file = "cryptography-41.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5c1f7293c31ebc72163a9a0df246f890d65f66b4a40d9ec80081969ba8c78cc9"}, - {file = "cryptography-41.0.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:bf8fc66012ca857d62f6a347007e166ed59c0bc150cefa49f28376ebe7d992a2"}, - {file = "cryptography-41.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a4fc68d1c5b951cfb72dfd54702afdbbf0fb7acdc9b7dc4301bbf2225a27714d"}, - {file = "cryptography-41.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:14754bcdae909d66ff24b7b5f166d69340ccc6cb15731670435efd5719294895"}, - {file = "cryptography-41.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:0ddaee209d1cf1f180f1efa338a68c4621154de0afaef92b89486f5f96047c55"}, - {file = "cryptography-41.0.0.tar.gz", hash = "sha256:6b71f64beeea341c9b4f963b48ee3b62d62d57ba93eb120e1196b31dc1025e78"}, + {file = "cryptography-41.0.1-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:f73bff05db2a3e5974a6fd248af2566134d8981fd7ab012e5dd4ddb1d9a70699"}, + {file = "cryptography-41.0.1-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:1a5472d40c8f8e91ff7a3d8ac6dfa363d8e3138b961529c996f3e2df0c7a411a"}, + {file = "cryptography-41.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fa01527046ca5facdf973eef2535a27fec4cb651e4daec4d043ef63f6ecd4ca"}, + {file = "cryptography-41.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b46e37db3cc267b4dea1f56da7346c9727e1209aa98487179ee8ebed09d21e43"}, + {file = "cryptography-41.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d198820aba55660b4d74f7b5fd1f17db3aa5eb3e6893b0a41b75e84e4f9e0e4b"}, + {file = "cryptography-41.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:948224d76c4b6457349d47c0c98657557f429b4e93057cf5a2f71d603e2fc3a3"}, + {file = "cryptography-41.0.1-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:059e348f9a3c1950937e1b5d7ba1f8e968508ab181e75fc32b879452f08356db"}, + {file = "cryptography-41.0.1-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:b4ceb5324b998ce2003bc17d519080b4ec8d5b7b70794cbd2836101406a9be31"}, + {file = "cryptography-41.0.1-cp37-abi3-win32.whl", hash = "sha256:8f4ab7021127a9b4323537300a2acfb450124b2def3756f64dc3a3d2160ee4b5"}, + {file = "cryptography-41.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:1fee5aacc7367487b4e22484d3c7e547992ed726d14864ee33c0176ae43b0d7c"}, + {file = "cryptography-41.0.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9a6c7a3c87d595608a39980ebaa04d5a37f94024c9f24eb7d10262b92f739ddb"}, + {file = "cryptography-41.0.1-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5d092fdfedaec4cbbffbf98cddc915ba145313a6fdaab83c6e67f4e6c218e6f3"}, + {file = "cryptography-41.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1a8e6c2de6fbbcc5e14fd27fb24414507cb3333198ea9ab1258d916f00bc3039"}, + {file = "cryptography-41.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:cb33ccf15e89f7ed89b235cff9d49e2e62c6c981a6061c9c8bb47ed7951190bc"}, + {file = "cryptography-41.0.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5f0ff6e18d13a3de56f609dd1fd11470918f770c6bd5d00d632076c727d35485"}, + {file = "cryptography-41.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7bfc55a5eae8b86a287747053140ba221afc65eb06207bedf6e019b8934b477c"}, + {file = "cryptography-41.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:eb8163f5e549a22888c18b0d53d6bb62a20510060a22fd5a995ec8a05268df8a"}, + {file = "cryptography-41.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8dde71c4169ec5ccc1087bb7521d54251c016f126f922ab2dfe6649170a3b8c5"}, + {file = "cryptography-41.0.1.tar.gz", hash = "sha256:d34579085401d3f49762d2f7d6634d6b6c2ae1242202e860f4d26b046e3a1006"}, ] [package.dependencies] @@ -479,14 +488,14 @@ test-randomorder = ["pytest-randomly"] [[package]] name = "docker" -version = "6.1.2" +version = "6.1.3" description = "A Python library for the Docker Engine API." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "docker-6.1.2-py3-none-any.whl", hash = "sha256:134cd828f84543cbf8e594ff81ca90c38288df3c0a559794c12f2e4b634ea19e"}, - {file = "docker-6.1.2.tar.gz", hash = "sha256:dcc088adc2ec4e7cfc594e275d8bd2c9738c56c808de97476939ef67db5af8c2"}, + {file = "docker-6.1.3-py3-none-any.whl", hash = "sha256:aecd2277b8bf8e506e484f6ab7aec39abe0038e29fa4a6d3ba86c3fe01844ed9"}, + {file = "docker-6.1.3.tar.gz", hash = "sha256:aa6d17830045ba5ef0168d5eaa34d37beeb113948c413affe1d5991fc11f9a20"}, ] [package.dependencies] @@ -669,14 +678,13 @@ files = [ [[package]] name = "jsonpatch" -version = "1.32" +version = "1.33" description = "Apply JSON-Patches (RFC 6902)" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ - {file = "jsonpatch-1.32-py2.py3-none-any.whl", hash = "sha256:26ac385719ac9f54df8a2f0827bb8253aa3ea8ab7b3368457bcdb8c14595a397"}, - {file = "jsonpatch-1.32.tar.gz", hash = "sha256:b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2"}, + {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"}, ] [package.dependencies] @@ -684,14 +692,13 @@ jsonpointer = ">=1.9" [[package]] name = "jsonpointer" -version = "2.3" +version = "2.4" description = "Identify specific nodes in a JSON document (RFC 6901)" category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ - {file = "jsonpointer-2.3-py2.py3-none-any.whl", hash = "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9"}, - {file = "jsonpointer-2.3.tar.gz", hash = "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a"}, + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, ] [[package]] @@ -932,22 +939,22 @@ files = [ [[package]] name = "platformdirs" -version = "3.5.1" +version = "3.5.3" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.5.1-py3-none-any.whl", hash = "sha256:e2378146f1964972c03c085bb5662ae80b2b8c06226c54b2ff4aa9483e8a13a5"}, - {file = "platformdirs-3.5.1.tar.gz", hash = "sha256:412dae91f52a6f84830f39a8078cecd0e866cb72294a5c66808e74d5e88d251f"}, + {file = "platformdirs-3.5.3-py3-none-any.whl", hash = "sha256:0ade98a4895e87dc51d47151f7d2ec290365a585151d97b4d8d6312ed6132fed"}, + {file = "platformdirs-3.5.3.tar.gz", hash = "sha256:e48fabd87db8f3a7df7150a4a5ea22c546ee8bc39bc2473244730d4b56d2cc4e"}, ] [package.dependencies] -typing-extensions = {version = ">=4.5", markers = "python_version < \"3.8\""} +typing-extensions = {version = ">=4.6.3", markers = "python_version < \"3.8\""} [package.extras] -docs = ["furo (>=2023.3.27)", "proselint (>=0.13)", "sphinx (>=6.2.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)"] [[package]] name = "pluggy" @@ -1081,14 +1088,14 @@ files = [ [[package]] name = "pytest" -version = "7.3.1" +version = "7.3.2" description = "pytest: simple powerful testing with Python" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, - {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, + {file = "pytest-7.3.2-py3-none-any.whl", hash = "sha256:cdcbd012c9312258922f8cd3f1b62a6580fdced17db6014896053d47cddf9295"}, + {file = "pytest-7.3.2.tar.gz", hash = "sha256:ee990a3cc55ba808b80795a79944756f315c67c12b56abd3ac993a7b8c17030b"}, ] [package.dependencies] @@ -1101,7 +1108,7 @@ pluggy = ">=0.12,<2.0" tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" @@ -1373,29 +1380,29 @@ idna2008 = ["idna"] [[package]] name = "ruff" -version = "0.0.269" +version = "0.0.272" description = "An extremely fast Python linter, written in Rust." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.0.269-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:3569bcdee679045c09c0161fabc057599759c49219a08d9a4aad2cc3982ccba3"}, - {file = "ruff-0.0.269-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:56347da63757a56cbce7d4b3d6044ca4f1941cd1bbff3714f7554360c3361f83"}, - {file = "ruff-0.0.269-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6da8ee25ef2f0cc6cc8e6e20942c1d44d25a36dce35070d7184655bc14f63f63"}, - {file = "ruff-0.0.269-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd81b8e681b9eaa6cf15484f3985bd8bd97c3d114e95bff3e8ea283bf8865062"}, - {file = "ruff-0.0.269-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f19f59ca3c28742955241fb452f3346241ddbd34e72ac5cb3d84fadebcf6bc8"}, - {file = "ruff-0.0.269-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:f062059b8289a4fab7f6064601b811d447c2f9d3d432a17f689efe4d68988450"}, - {file = "ruff-0.0.269-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f5dc7aac52c58e82510217e3c7efd80765c134c097c2815d59e40face0d1fe6"}, - {file = "ruff-0.0.269-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e131b4dbe798c391090c6407641d6ab12c0fa1bb952379dde45e5000e208dabb"}, - {file = "ruff-0.0.269-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a374434e588e06550df0f8dcb74777290f285678de991fda4e1063c367ab2eb2"}, - {file = "ruff-0.0.269-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:cec2f4b84a14b87f1b121488649eb5b4eaa06467a2387373f750da74bdcb5679"}, - {file = "ruff-0.0.269-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:374b161753a247904aec7a32d45e165302b76b6e83d22d099bf3ff7c232c888f"}, - {file = "ruff-0.0.269-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9ca0a1ddb1d835b5f742db9711c6cf59f213a1ad0088cb1e924a005fd399e7d8"}, - {file = "ruff-0.0.269-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5a20658f0b97d207c7841c13d528f36d666bf445b00b01139f28a8ccb80093bb"}, - {file = "ruff-0.0.269-py3-none-win32.whl", hash = "sha256:03ff42bc91ceca58e0f0f072cb3f9286a9208f609812753474e799a997cdad1a"}, - {file = "ruff-0.0.269-py3-none-win_amd64.whl", hash = "sha256:f3b59ccff57b21ef0967ea8021fd187ec14c528ec65507d8bcbe035912050776"}, - {file = "ruff-0.0.269-py3-none-win_arm64.whl", hash = "sha256:bbeb857b1e508a4487bdb02ca1e6d41dd8d5ac5335a5246e25de8a3dff38c1ff"}, - {file = "ruff-0.0.269.tar.gz", hash = "sha256:11ddcfbab32cf5c420ea9dd5531170ace5a3e59c16d9251c7bd2581f7b16f602"}, + {file = "ruff-0.0.272-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:ae9b57546e118660175d45d264b87e9b4c19405c75b587b6e4d21e6a17bf4fdf"}, + {file = "ruff-0.0.272-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:1609b864a8d7ee75a8c07578bdea0a7db75a144404e75ef3162e0042bfdc100d"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee76b4f05fcfff37bd6ac209d1370520d509ea70b5a637bdf0a04d0c99e13dff"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:48eccf225615e106341a641f826b15224b8a4240b84269ead62f0afd6d7e2d95"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:677284430ac539bb23421a2b431b4ebc588097ef3ef918d0e0a8d8ed31fea216"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:9c4bfb75456a8e1efe14c52fcefb89cfb8f2a0d31ed8d804b82c6cf2dc29c42c"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86bc788245361a8148ff98667da938a01e1606b28a45e50ac977b09d3ad2c538"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b2ea68d2aa69fff1b20b67636b1e3e22a6a39e476c880da1282c3e4bf6ee5a"}, + {file = "ruff-0.0.272-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd2bbe337a3f84958f796c77820d55ac2db1e6753f39d1d1baed44e07f13f96d"}, + {file = "ruff-0.0.272-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:d5a208f8ef0e51d4746930589f54f9f92f84bb69a7d15b1de34ce80a7681bc00"}, + {file = "ruff-0.0.272-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:905ff8f3d6206ad56fcd70674453527b9011c8b0dc73ead27618426feff6908e"}, + {file = "ruff-0.0.272-py3-none-musllinux_1_2_i686.whl", hash = "sha256:19643d448f76b1eb8a764719072e9c885968971bfba872e14e7257e08bc2f2b7"}, + {file = "ruff-0.0.272-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:691d72a00a99707a4e0b2846690961157aef7b17b6b884f6b4420a9f25cd39b5"}, + {file = "ruff-0.0.272-py3-none-win32.whl", hash = "sha256:dc406e5d756d932da95f3af082814d2467943631a587339ee65e5a4f4fbe83eb"}, + {file = "ruff-0.0.272-py3-none-win_amd64.whl", hash = "sha256:a37ec80e238ead2969b746d7d1b6b0d31aa799498e9ba4281ab505b93e1f4b28"}, + {file = "ruff-0.0.272-py3-none-win_arm64.whl", hash = "sha256:06b8ee4eb8711ab119db51028dd9f5384b44728c23586424fd6e241a5b9c4a3b"}, + {file = "ruff-0.0.272.tar.gz", hash = "sha256:273a01dc8c3c4fd4c2af7ea7a67c8d39bb09bce466e640dd170034da75d14cab"}, ] [[package]] @@ -1567,14 +1574,14 @@ files = [ [[package]] name = "typing-extensions" -version = "4.6.1" +version = "4.6.3" description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.6.1-py3-none-any.whl", hash = "sha256:6bac751f4789b135c43228e72de18637e9a6c29d12777023a703fd1a6858469f"}, - {file = "typing_extensions-4.6.1.tar.gz", hash = "sha256:558bc0c4145f01e6405f4a5fdbd82050bd221b119f4bf72a961a1cfd471349d6"}, + {file = "typing_extensions-4.6.3-py3-none-any.whl", hash = "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26"}, + {file = "typing_extensions-4.6.3.tar.gz", hash = "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"}, ] [[package]] @@ -1596,19 +1603,20 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "vcrpy" -version = "4.2.1" +version = "4.3.1" description = "Automatically mock your HTTP interactions to simplify and speed up testing" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "vcrpy-4.2.1-py2.py3-none-any.whl", hash = "sha256:efac3e2e0b2af7686f83a266518180af7a048619b2f696e7bad9520f5e2eac09"}, - {file = "vcrpy-4.2.1.tar.gz", hash = "sha256:7cd3e81a2c492e01c281f180bcc2a86b520b173d2b656cb5d89d99475423e013"}, + {file = "vcrpy-4.3.1-py2.py3-none-any.whl", hash = "sha256:35398f1b373f32340f39d735ea45f40d679ace316f3dddf8cbcbc2f120e6d1d0"}, + {file = "vcrpy-4.3.1.tar.gz", hash = "sha256:24e2d450bf1c2f9f9b4246ee91beb7d58f862a9f2f030514b14783b83c5146ec"}, ] [package.dependencies] PyYAML = "*" six = ">=1.5" +urllib3 = {version = "<2", markers = "python_version < \"3.10\""} wrapt = "*" yarl = "*" @@ -1626,14 +1634,14 @@ files = [ [[package]] name = "websocket-client" -version = "1.5.2" +version = "1.6.0" description = "WebSocket client for Python with low level API options" category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "websocket-client-1.5.2.tar.gz", hash = "sha256:c7d67c13b928645f259d9b847ab5b57fd2d127213ca41ebd880de1f553b7c23b"}, - {file = "websocket_client-1.5.2-py3-none-any.whl", hash = "sha256:f8c64e28cd700e7ba1f04350d66422b6833b82a796b525a51e740b8cc8dab4b1"}, + {file = "websocket-client-1.6.0.tar.gz", hash = "sha256:e84c7eafc66aade6d1967a51dfd219aabdf81d15b9705196e11fd81f48666b78"}, + {file = "websocket_client-1.6.0-py3-none-any.whl", hash = "sha256:72d7802608745b0a212f79b478642473bd825777d8637b6c8c421bf167790d4f"}, ] [package.extras] diff --git a/pyproject.toml b/pyproject.toml index 8ecec2acc05..35000147556 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,6 +62,7 @@ skip-string-normalization = true line-length = 100 [tool.ruff] +select = ["E", "F", "W"] line-length = 100 # E741 - single char variables # E401 - multiple imports in a single line diff --git a/tests/test_ecs.py b/tests/test_ecs.py index 90bd9abf927..00ccfaa0e46 100644 --- a/tests/test_ecs.py +++ b/tests/test_ecs.py @@ -29,7 +29,7 @@ def test_ecs_container_insights_enabled(self): ) resources = p.run() self.assertEqual(len(resources), 0) - + def test_ecs_container_insights_disabled(self): session_factory = self.replay_flight_data( 'test_ecs_container_insights_disabled') @@ -372,7 +372,7 @@ def test_task_definition_delete(self): "taskDefinitionArns" ) self.assertEqual(arns, []) - + def test_task_definition_delete_permanently(self): session_factory = self.replay_flight_data("test_ecs_task_def_delete_permanently") p = self.load_policy( @@ -391,9 +391,8 @@ def test_task_definition_delete_permanently(self): ).get( "taskDefinitionArns" ) - self.assertEqual(arns, + self.assertEqual(arns, ["arn:aws:ecs:us-east-1:644160558196:task-definition/test-delete-definition:2"]) - def test_task_definition_get_resources(self): session_factory = self.replay_flight_data("test_ecs_task_def_query") diff --git a/tests/test_efs.py b/tests/test_efs.py index 75e2e00e851..2ca8a303a87 100644 --- a/tests/test_efs.py +++ b/tests/test_efs.py @@ -75,7 +75,7 @@ def test_mount_target_security_group(self): self.assertEqual(len(resources), 3) resources = sorted(resources, key=itemgetter("MountTargetId")) self.assertEqual(resources[0]["MountTargetId"], "fsmt-a47385dd") - + def test_create_efs_mount_target(self): factory = self.replay_flight_data("test_create_efs_mount_target") policy = self.load_policy( diff --git a/tests/test_eks.py b/tests/test_eks.py index 554468b465c..17d262b8d97 100644 --- a/tests/test_eks.py +++ b/tests/test_eks.py @@ -260,7 +260,7 @@ def test_associate_encryption_config(self): self.assertEqual(len(resources), 1) matched = resources.pop() self.assertEqual(matched['status'], 'ACTIVE') - update_json = os.path.join(self.placebo_dir, "test_eks_associate_encryption_config", + update_json = os.path.join(self.placebo_dir, "test_eks_associate_encryption_config", "eks.AssociateEncryptionConfig_1.json") with open(update_json) as f: data = json.load(f) @@ -289,7 +289,7 @@ def test_associate_encryption_config_key_arn(self): 'encryptionConfig': [ { 'provider': { - 'keyArn': + 'keyArn': 'arn:aws:kms:us-east-1:644160558196:key/361001ad-9c5e-42cb-9a09-5de1e80e822f' }, 'resources': [ @@ -307,15 +307,16 @@ def test_associate_encryption_config_key_arn(self): self.assertEqual(len(resources), 1) matched = resources.pop() self.assertEqual(matched['status'], 'ACTIVE') - update_json = os.path.join(self.placebo_dir, - "test_eks_associate_encryption_config_key_arn", "eks.AssociateEncryptionConfig_1.json") + update_json = os.path.join( + self.placebo_dir, + "test_eks_associate_encryption_config_key_arn", "eks.AssociateEncryptionConfig_1.json" + ) with open(update_json) as f: data = json.load(f) self.assertEqual(data['status_code'], 200) self.assertEqual(data['data']['update']['type'], 'AssociateEncryptionConfig') self.assertEqual(data['data']['update']['status'], 'InProgress') - def test_associate_encryption_config_invalid_kms(self): factory = self.replay_flight_data("test_eks_associate_encryption_config_invalid_kms") @@ -389,4 +390,4 @@ def test_associate_encryption_config_invalid_kms_key(self): with self.assertRaises(ClientError) as error: resources = p.run() self.assertEqual(len(resources), 1) - self.assertEqual(error.exception.response['Error']['Code'], 'InvalidParameterException') \ No newline at end of file + self.assertEqual(error.exception.response['Error']['Code'], 'InvalidParameterException') diff --git a/tests/test_filters.py b/tests/test_filters.py index b9fddfa4389..0fb8a560a27 100644 --- a/tests/test_filters.py +++ b/tests/test_filters.py @@ -302,7 +302,7 @@ def test_value_path(self): "op": "intersect"}) res = vf.match(resource) self.assertEqual(res,False) - + class TestAgeFilter(unittest.TestCase): diff --git a/tests/test_fis.py b/tests/test_fis.py index 23bd012f129..07770b978df 100644 --- a/tests/test_fis.py +++ b/tests/test_fis.py @@ -115,4 +115,4 @@ def test_fis_experiment(self): self.assertEqual(len(resources), 1) client = session_factory().client('fis') experiments = client.list_experiments().get('experiments') - self.assertEqual(experiments[0]['tags'], {'is_test': 'true'}) \ No newline at end of file + self.assertEqual(experiments[0]['tags'], {'is_test': 'true'}) diff --git a/tests/test_kinesis.py b/tests/test_kinesis.py index dfae2802321..4fc061f4457 100644 --- a/tests/test_kinesis.py +++ b/tests/test_kinesis.py @@ -3,7 +3,6 @@ from .common import BaseTest, event_data - def test_stream_config_source(test): p = test.load_policy({ 'name': 'stream-config', @@ -272,7 +271,7 @@ def test_kinesis_video_kms_key(self): self.assertEqual(len(resources), 1) self.assertEqual(resources[0]['KmsKeyId'], 'arn:aws:kms:us-east-1:123456789012:key/0d543df5-915c-42a1-afa1-c9c5f1f97955') - + def test_kinesis_video_tag(self): session_factory = self.replay_flight_data('test_kinesis_video_tag') p = self.load_policy( @@ -281,7 +280,7 @@ def test_kinesis_video_tag(self): 'resource': 'kinesis-video', 'filters': [ { - 'tag:foo': 'absent', + 'tag:foo': 'absent', } ], 'actions': [ @@ -297,8 +296,7 @@ def test_kinesis_video_tag(self): client = session_factory().client('kinesisvideo') tags = client.list_tags_for_resource(ResourceARN=resources[0]["StreamARN"])["Tags"] self.assertEqual(len(tags), 1) - self.assertEqual(tags, {'foo': 'bar'}) - + self.assertEqual(tags, {'foo': 'bar'}) def test_kinesis_video_remove_tag(self): session_factory = self.replay_flight_data('test_kinesis_video_remove_tag') @@ -308,7 +306,7 @@ def test_kinesis_video_remove_tag(self): 'resource': 'kinesis-video', 'filters': [ { - 'tag:foo': 'present', + 'tag:foo': 'present', } ], 'actions': [ diff --git a/tests/test_pinpoint.py b/tests/test_pinpoint.py index 8e273099881..d45c7022ca9 100644 --- a/tests/test_pinpoint.py +++ b/tests/test_pinpoint.py @@ -2,8 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 from .common import BaseTest + class PinpointApp(BaseTest): - + def test_pinpoint_app_tag(self): session_factory = self.replay_flight_data('test_pinpoint_app_tag') p = self.load_policy( @@ -12,7 +13,7 @@ def test_pinpoint_app_tag(self): 'resource': 'pinpoint-app', 'filters': [ { - 'tag:foo': 'absent', + 'tag:foo': 'absent', } ], 'actions': [ @@ -39,7 +40,7 @@ def test_pinpoint_app_remove_tag(self): 'resource': 'pinpoint-app', 'filters': [ { - 'tag:foo': 'present', + 'tag:foo': 'present', } ], 'actions': [ @@ -54,4 +55,4 @@ def test_pinpoint_app_remove_tag(self): self.assertEqual(len(resources), 1) client = session_factory().client('pinpoint') tags = client.list_tags_for_resource(ResourceArn=resources[0]['Arn'])['TagsModel']['tags'] - self.assertEqual(len(tags), 0) \ No newline at end of file + self.assertEqual(len(tags), 0) diff --git a/tests/test_policy.py b/tests/test_policy.py index 17aeedd33f4..183cbeac580 100644 --- a/tests/test_policy.py +++ b/tests/test_policy.py @@ -359,7 +359,7 @@ def test_config_resource_support(self): whitelist = { # q2 2023 wave 2 - "AWS::AppConfig::DeploymentStrategy", + "AWS::AppConfig::DeploymentStrategy", "AWS::AppFlow::Flow", "AWS::AuditManager::Assessment", "AWS::CloudWatch::MetricStream", @@ -482,8 +482,8 @@ def test_config_resource_support(self): 'AWS::SES::ReceiptRuleSet', 'AWS::SES::Template', 'AWS::ServiceDiscovery::HttpNamespace', - 'AWS::Transfer::Workflow', - # + 'AWS::Transfer::Workflow', + # 'AWS::ApiGatewayV2::Stage', 'AWS::Athena::DataCatalog', 'AWS::Athena::WorkGroup', diff --git a/tests/test_rdscluster.py b/tests/test_rdscluster.py index 162e9de632b..50aab946b57 100644 --- a/tests/test_rdscluster.py +++ b/tests/test_rdscluster.py @@ -441,7 +441,7 @@ def test_rdscluster_snapshot_count_filter(self): with mock_datetime_now(parser.parse("2022-03-30T00:00:00+00:00"), c7n.resources.rdscluster): resources = p.run() self.assertEqual(len(resources), 1) - + def test_rdscluster_consecutive_aws_backups_count_filter(self): session_factory = self.replay_flight_data( "test_rdscluster_consecutive_aws_backups_count_filter") diff --git a/tools/c7n_azure/c7n_azure/resources/recovery_services.py b/tools/c7n_azure/c7n_azure/resources/recovery_services.py index 1667ea08c41..948e5f6e8de 100644 --- a/tools/c7n_azure/c7n_azure/resources/recovery_services.py +++ b/tools/c7n_azure/c7n_azure/resources/recovery_services.py @@ -38,4 +38,4 @@ class resource_type(ArmResourceManager.resource_type): 'sku.name' ) - resource_type = 'Microsoft.RecoveryServices/vaults' \ No newline at end of file + resource_type = 'Microsoft.RecoveryServices/vaults' diff --git a/tools/c7n_azure/c7n_azure/resources/servicebus_namespace_authrules.py b/tools/c7n_azure/c7n_azure/resources/servicebus_namespace_authrules.py index 5963467e65d..1ccbcc3d392 100644 --- a/tools/c7n_azure/c7n_azure/resources/servicebus_namespace_authrules.py +++ b/tools/c7n_azure/c7n_azure/resources/servicebus_namespace_authrules.py @@ -43,6 +43,7 @@ class resource_type(ChildTypeInfo): @classmethod def extra_args(cls, parent_resource): - return {'resource_group_name': - ResourceIdParser.get_resource_group(parent_resource['id']), - 'namespace_name': parent_resource['name']} + return { + 'resource_group_name': ResourceIdParser.get_resource_group(parent_resource['id']), + 'namespace_name': parent_resource['name'] + } diff --git a/tools/c7n_azure/c7n_azure/resources/servicebus_namespace_networkrules.py b/tools/c7n_azure/c7n_azure/resources/servicebus_namespace_networkrules.py index a18707c3b80..5030603df77 100644 --- a/tools/c7n_azure/c7n_azure/resources/servicebus_namespace_networkrules.py +++ b/tools/c7n_azure/c7n_azure/resources/servicebus_namespace_networkrules.py @@ -17,7 +17,7 @@ class ServiceBusNamespaceNetworkrules(ChildResourceManager): Returns Service Bus Namespace Network Ruleset resources .. code-block:: yaml - + policies: - name: basic-servicebus-namespace-networkrule resource: azure.servicebus-namespace-networkrules @@ -40,6 +40,7 @@ class resource_type(ChildTypeInfo): @classmethod def extra_args(cls, parent_resource): - return {'resource_group_name': - ResourceIdParser.get_resource_group(parent_resource['id']), - 'namespace_name': parent_resource['name']} + return { + 'resource_group_name': ResourceIdParser.get_resource_group(parent_resource['id']), + 'namespace_name': parent_resource['name'] + } diff --git a/tools/c7n_azure/c7n_azure/resources/spring.py b/tools/c7n_azure/c7n_azure/resources/spring.py index 64180be8697..c6d9a8f5886 100644 --- a/tools/c7n_azure/c7n_azure/resources/spring.py +++ b/tools/c7n_azure/c7n_azure/resources/spring.py @@ -39,9 +39,10 @@ class resource_type(ChildTypeInfo): @classmethod def extra_args(cls, parent_resource): - return {'resource_group_name': - ResourceIdParser.get_resource_group(parent_resource['id']), - 'service_name': parent_resource['name']} + return { + 'resource_group_name': ResourceIdParser.get_resource_group(parent_resource['id']), + 'service_name': parent_resource['name'] + } @resources.register('spring-service-instance') diff --git a/tools/c7n_azure/tests_azure/tests_resources/test_cdn_endpoint.py b/tools/c7n_azure/tests_azure/tests_resources/test_cdn_endpoint.py index e45b936abab..6b467930906 100644 --- a/tools/c7n_azure/tests_azure/tests_resources/test_cdn_endpoint.py +++ b/tools/c7n_azure/tests_azure/tests_resources/test_cdn_endpoint.py @@ -4,9 +4,6 @@ class CdnEndpointTest(BaseTest): - def setUp(self): - super(CdnEndpointTest, self).setUp() - def test_cdn_endpoint_schema_validate(self): with self.sign_out_patch(): @@ -29,4 +26,4 @@ def test_find_by_name(self): 'value': 'cctestcdnendpoint'}], }) resources = p.run() - self.assertEqual(len(resources), 1) \ No newline at end of file + self.assertEqual(len(resources), 1) diff --git a/tools/c7n_azure/tests_azure/tests_resources/test_networksecuritygroup.py b/tools/c7n_azure/tests_azure/tests_resources/test_networksecuritygroup.py index 7aba8954432..a51f377a592 100644 --- a/tools/c7n_azure/tests_azure/tests_resources/test_networksecuritygroup.py +++ b/tools/c7n_azure/tests_azure/tests_resources/test_networksecuritygroup.py @@ -6,8 +6,6 @@ class NetworkSecurityGroupTest(BaseTest): - def setUp(self): - super(NetworkSecurityGroupTest, self).setUp() def test_network_security_group_schema_validate(self): with self.sign_out_patch(): @@ -210,7 +208,7 @@ def test_open_ports(self, _1): resources = p.run() self.assertEqual(len(resources), 0) - + @arm_template('networksecuritygroup.json') def test_icmp_protocol(self): p = self.load_policy({ @@ -265,4 +263,4 @@ def test_flow_log_filter_matching(self): }) resources = p.run() - self.assertEqual(len(resources), 1) \ No newline at end of file + self.assertEqual(len(resources), 1) diff --git a/tools/c7n_azure/tests_azure/tests_resources/test_recovery_services.py b/tools/c7n_azure/tests_azure/tests_resources/test_recovery_services.py index 6a3c16a6d1a..fcf0faa4c28 100644 --- a/tools/c7n_azure/tests_azure/tests_resources/test_recovery_services.py +++ b/tools/c7n_azure/tests_azure/tests_resources/test_recovery_services.py @@ -4,8 +4,6 @@ class RecoveryServicesTest(BaseTest): - def setUp(self): - super(RecoveryServicesTest, self).setUp() def test_recovery_services_schema_validate(self): with self.sign_out_patch(): @@ -15,7 +13,6 @@ def test_recovery_services_schema_validate(self): }, validate=True) self.assertTrue(p) - @arm_template('recoveryservices.json') def test_find_by_name(self): p = self.load_policy({ diff --git a/tools/c7n_gcp/c7n_gcp/filters/recommender.py b/tools/c7n_gcp/c7n_gcp/filters/recommender.py index 3f81a3182e8..4989929acc9 100644 --- a/tools/c7n_gcp/c7n_gcp/filters/recommender.py +++ b/tools/c7n_gcp/c7n_gcp/filters/recommender.py @@ -44,7 +44,7 @@ class RecommenderFilter(Filter): resource: gcp.disk filters: - type: recommend - id: google.compute.disk.IdleResourceRecommender + id: google.compute.disk.IdleResourceRecommender actions: - snapshot - delete diff --git a/tools/c7n_gcp/c7n_gcp/resources/appengine.py b/tools/c7n_gcp/c7n_gcp/resources/appengine.py index 5983b6c349f..89a522af461 100644 --- a/tools/c7n_gcp/c7n_gcp/resources/appengine.py +++ b/tools/c7n_gcp/c7n_gcp/resources/appengine.py @@ -166,7 +166,7 @@ class resource_type(AppEngineChildTypeInfo): @staticmethod def get(client, resource_info): - apps_id, service_id = re.match('apps/(.*?)/services/(.*)', + apps_id, service_id = re.match('apps/(.*?)/services/(.*)', resource_info['resourceName']).groups() return client.execute_query('get', {'appsId': apps_id, 'servicesId': service_id}) diff --git a/tools/c7n_gcp/c7n_gcp/resources/artifactregistry.py b/tools/c7n_gcp/c7n_gcp/resources/artifactregistry.py index d0686bac006..f461f713c5c 100644 --- a/tools/c7n_gcp/c7n_gcp/resources/artifactregistry.py +++ b/tools/c7n_gcp/c7n_gcp/resources/artifactregistry.py @@ -6,7 +6,7 @@ @resources.register('artifact-repository') class ArtifactRegistryRepository(RegionalResourceManager): """Artifact Registry Repository - + https://cloud.google.com/artifact-registry/docs/reference/rest/v1/projects.locations.repositories """ class resource_type(ChildTypeInfo): diff --git a/tools/c7n_gcp/c7n_gcp/resources/iam.py b/tools/c7n_gcp/c7n_gcp/resources/iam.py index 9b84ae4582d..acc7e0493c9 100644 --- a/tools/c7n_gcp/c7n_gcp/resources/iam.py +++ b/tools/c7n_gcp/c7n_gcp/resources/iam.py @@ -97,7 +97,7 @@ class DisableServiceAccount(MethodAction): def get_resource_params(self, m, r): return {'name': r['name']} - + @ServiceAccount.filter_registry.register('iam-policy') class ServiceAccountIamPolicyFilter(IamPolicyFilter): diff --git a/tools/c7n_gcp/tests/test_resourcemanager.py b/tools/c7n_gcp/tests/test_resourcemanager.py index f618354672b..8f2747de9ef 100644 --- a/tools/c7n_gcp/tests/test_resourcemanager.py +++ b/tools/c7n_gcp/tests/test_resourcemanager.py @@ -542,8 +542,7 @@ def test_essentialcontacts_filter_true(self): 'notificationCategorySubscriptions': ['PRODUCT_UPDATES', 'TECHNICAL'], 'validateTime': '2023-02-16T19:44:02.003641Z', 'validationState': 'VALID'}, - ] - + ] def test_essentialcontacts_filter_false(self): session_factory = self.replay_flight_data("filter-essentialcontacts") diff --git a/tools/dev/changelog.py b/tools/dev/changelog.py index afa0ad21cfd..f13028cf4b7 100644 --- a/tools/dev/changelog.py +++ b/tools/dev/changelog.py @@ -179,7 +179,7 @@ def listify(items, bt=True): def get_last_release(repo): - regex = re.compile('^refs/tags/[\d\.]+') + regex = re.compile(r'^refs/tags/[\d\.]+') versions = [ version.LooseVersion(t.rsplit('/', 1)[-1]) for t in repo.references