diff --git a/requirements/base.txt b/requirements/base.txt index 64c847594e..1e7f517253 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -8,9 +8,9 @@ PyYAML~=6.0,>=6.0.1 cookiecutter~=2.6.0 aws-sam-translator==1.89.0 #docker minor version updates can include breaking changes. Auto update micro version only. -docker~=7.0.0 +docker~=7.1.0 dateparser~=1.2 -requests~=2.31.0 +requests~=2.32.2 aws_lambda_builders==1.50.0 tomlkit==0.12.5 watchdog==4.0.0 @@ -28,7 +28,7 @@ regex!=2021.10.8 tzlocal==5.2 #Adding cfn-lint dependency for SAM validate -cfn-lint~=0.87.2 +cfn-lint~=0.87.3 # Type checking boto3 objects -boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]==1.34.107 +boto3-stubs[apigateway,cloudformation,ecr,iam,lambda,s3,schemas,secretsmanager,signer,stepfunctions,sts,xray,sqs,kinesis]==1.34.111 diff --git a/requirements/dev.txt b/requirements/dev.txt index 53091ffd3b..1c60955597 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -25,7 +25,7 @@ types-urllib3==1.26.25.14 # Test requirements -pytest==8.2.0 +pytest==8.2.1 parameterized==0.9.0 pytest-xdist==3.6.1 diff --git a/requirements/pre-dev.txt b/requirements/pre-dev.txt index d086415379..7242d3b5c2 100644 --- a/requirements/pre-dev.txt +++ b/requirements/pre-dev.txt @@ -1 +1 @@ -ruff==0.4.4 +ruff==0.4.5 diff --git a/requirements/pyinstaller-build.txt b/requirements/pyinstaller-build.txt index 56faa04c95..2cf39e38db 100644 --- a/requirements/pyinstaller-build.txt +++ b/requirements/pyinstaller-build.txt @@ -1,3 +1,3 @@ # Executable binary builder requirements setuptools==69.5.1 -pyinstaller==6.6.0 +pyinstaller==6.7.0 diff --git a/requirements/reproducible-linux.txt b/requirements/reproducible-linux.txt index aa34ce688e..1e54e9933e 100644 --- a/requirements/reproducible-linux.txt +++ b/requirements/reproducible-linux.txt @@ -4,9 +4,9 @@ # # pip-compile --allow-unsafe --generate-hashes --output-file=requirements/reproducible-linux.txt # -annotated-types==0.6.0 \ - --hash=sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43 \ - --hash=sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d +annotated-types==0.7.0 \ + --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ + --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic arrow==1.3.0 \ --hash=sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80 \ @@ -38,19 +38,19 @@ blinker==1.8.2 \ --hash=sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01 \ --hash=sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83 # via flask -boto3==1.34.107 \ - --hash=sha256:2500963ddd7fee0c891db596ed73f203a62e8ee6faf1543c7a14169b1d557bc3 \ - --hash=sha256:a7280f54babc8e285d85d2558dd6167e4deb069e03abe43a55b643e10c03952b +boto3==1.34.111 \ + --hash=sha256:8f18d212b9199dbbd9d596dd5929685b583ac938c60cceeac2e045c0c5d10323 \ + --hash=sha256:d6a8e77db316c6e1d9a25f77c795ed1e0a8bc621f863ce26d04b2225d30f2dce # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.107 \ - --hash=sha256:852092a62229590f01baff1ffea592a8bf3dbf7d40421a5d047fa36495c26428 \ - --hash=sha256:8a2f7702b804ebd2cada85171954981ebbd6fbe4f17ee64c6a750eb1d9d53676 +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.111 \ + --hash=sha256:209802a0b44d5953b8b21f7abfba695b1398544e83853111882d11977bad1049 \ + --hash=sha256:eae268a5d70d2b880b807a1539602f2c89d4090de6ddb02e3fec144660bc1fd1 # via aws-sam-cli (setup.py) -botocore==1.34.107 \ - --hash=sha256:4620286a814c3c8abc59145203650a6b2a4f538e887552fa1bc6896b6d11b28b \ - --hash=sha256:98bfab930391a21d24ed7a7bc86ec2ec076607318ab8de0c37d2587f73a88d89 +botocore==1.34.111 \ + --hash=sha256:0e0fb9b605c46393d5c7c69bd516b36058334bdc8f389e680c6efcf0727f25db \ + --hash=sha256:e10affb7f372d50da957260adf2753a3f153bf90abe6910e11f09d1e443b5515 # via # boto3 # s3transfer @@ -116,9 +116,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.87.2 \ - --hash=sha256:00d47406841899c05ab6a0708df3f4e32bd7462be2097c10371d744c0050775e \ - --hash=sha256:773ba1d2f232ffdbe1197cc6ce61ddbf0da1781925e9f4dde4c91b7fcd54cc80 +cfn-lint==0.87.3 \ + --hash=sha256:4c4f1717cba9b9b579f95687ffa71a8d740b7e1712f6e315c723aac9bb0279d7 \ + --hash=sha256:6b96b4ea8ce8d2601491c238bc504d0a1f6e0e2709217e3a296214d48f182ca1 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -269,9 +269,9 @@ dateparser==1.2.0 \ --hash=sha256:0b21ad96534e562920a0083e97fd45fa959882d4162acc358705144520a35830 \ --hash=sha256:7975b43a4222283e0ae15be7b4999d08c9a70e2d378ac87385b1ccf2cffbbb30 # via aws-sam-cli (setup.py) -docker==7.0.0 \ - --hash=sha256:12ba681f2777a0ad28ffbcc846a69c31b4dfd9752b47eb425a274ee269c5e14b \ - --hash=sha256:323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3 +docker==7.1.0 \ + --hash=sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c \ + --hash=sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0 # via aws-sam-cli (setup.py) flask==3.0.3 \ --hash=sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3 \ @@ -409,9 +409,9 @@ mypy-boto3-apigateway==1.34.56 \ --hash=sha256:3695503bd9388b3067c1dc1dc4ec1486dcec450dbf1e9889f451120e333b92da \ --hash=sha256:5ab15db30d730198384d6445d50cc1fec98361b85366dd092b10e9b9f4a1a2cb # via boto3-stubs -mypy-boto3-cloudformation==1.34.84 \ - --hash=sha256:580954031cb3650588b91f592e8f51855b2ff435d763ac0d69cf271c8433315f \ - --hash=sha256:82d14df3757f30b5a1d34650839d415d265d4de41cf355d63e10221fcc67f177 +mypy-boto3-cloudformation==1.34.111 \ + --hash=sha256:526e928c504fa2880b1774aa10629a04fe0ec70ed2864ab3d3f7772386a1a925 \ + --hash=sha256:a02e201d1a9d9a8fb4db5b942d5c537a4e8861c611f0d986126674ac557cb9e8 # via boto3-stubs mypy-boto3-ecr==1.34.101 \ --hash=sha256:723a3e6b65ec7451cc7c40232eb94e500fa51a77e360a52e028388e2b9afd161 \ @@ -437,9 +437,9 @@ mypy-boto3-schemas==1.34.0 \ --hash=sha256:28c016609dcffc606bd8425ee92894c46e943ab77033e1ae46481f00c39b7f75 \ --hash=sha256:3b25a71944192b0980c3bb5132deb7c06ee9b88580ed63f257fad97cf3bf2927 # via boto3-stubs -mypy-boto3-secretsmanager==1.34.107 \ - --hash=sha256:bca19ae496e9965266ef885578fdb2bc8ee3e84dea7eaaffe030a368f218d207 \ - --hash=sha256:cf1b3c66542efd260595baf7dcd69ffe4648e8e813de8ebba455d83fc70eccb4 +mypy-boto3-secretsmanager==1.34.109 \ + --hash=sha256:18c60597a72ef08bad722f1c2f4507a0cf853c1526b1cffb8c3d2a30f5649d1f \ + --hash=sha256:29898fb1046fed5f83d05f08470d5cf07dfd1656b1da23f2bb875c9ff734ee65 # via boto3-stubs mypy-boto3-signer==1.34.95 \ --hash=sha256:0118854f1664f7e27e03f5ce2fea3344cc4985fa6ed15a0d5c7a7146b4a4326f \ @@ -465,10 +465,6 @@ networkx==3.3 \ --hash=sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9 \ --hash=sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2 # via cfn-lint -packaging==24.0 \ - --hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \ - --hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 - # via docker pbr==6.0.0 \ --hash=sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda \ --hash=sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9 @@ -722,9 +718,9 @@ regex==2024.5.15 \ # aws-sam-cli (setup.py) # cfn-lint # dateparser -requests==2.31.0 \ - --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ - --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 +requests==2.32.2 \ + --hash=sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289 \ + --hash=sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c # via # aws-sam-cli (setup.py) # cookiecutter diff --git a/requirements/reproducible-mac.txt b/requirements/reproducible-mac.txt index 6bfbde0674..9041158966 100644 --- a/requirements/reproducible-mac.txt +++ b/requirements/reproducible-mac.txt @@ -4,9 +4,9 @@ # # pip-compile --allow-unsafe --generate-hashes --output-file=requirements/reproducible-mac.txt # -annotated-types==0.6.0 \ - --hash=sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43 \ - --hash=sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d +annotated-types==0.7.0 \ + --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ + --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic arrow==1.3.0 \ --hash=sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80 \ @@ -56,19 +56,19 @@ blinker==1.8.2 \ --hash=sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01 \ --hash=sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83 # via flask -boto3==1.34.107 \ - --hash=sha256:2500963ddd7fee0c891db596ed73f203a62e8ee6faf1543c7a14169b1d557bc3 \ - --hash=sha256:a7280f54babc8e285d85d2558dd6167e4deb069e03abe43a55b643e10c03952b +boto3==1.34.111 \ + --hash=sha256:8f18d212b9199dbbd9d596dd5929685b583ac938c60cceeac2e045c0c5d10323 \ + --hash=sha256:d6a8e77db316c6e1d9a25f77c795ed1e0a8bc621f863ce26d04b2225d30f2dce # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.107 \ - --hash=sha256:852092a62229590f01baff1ffea592a8bf3dbf7d40421a5d047fa36495c26428 \ - --hash=sha256:8a2f7702b804ebd2cada85171954981ebbd6fbe4f17ee64c6a750eb1d9d53676 +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.111 \ + --hash=sha256:209802a0b44d5953b8b21f7abfba695b1398544e83853111882d11977bad1049 \ + --hash=sha256:eae268a5d70d2b880b807a1539602f2c89d4090de6ddb02e3fec144660bc1fd1 # via aws-sam-cli (setup.py) -botocore==1.34.107 \ - --hash=sha256:4620286a814c3c8abc59145203650a6b2a4f538e887552fa1bc6896b6d11b28b \ - --hash=sha256:98bfab930391a21d24ed7a7bc86ec2ec076607318ab8de0c37d2587f73a88d89 +botocore==1.34.111 \ + --hash=sha256:0e0fb9b605c46393d5c7c69bd516b36058334bdc8f389e680c6efcf0727f25db \ + --hash=sha256:e10affb7f372d50da957260adf2753a3f153bf90abe6910e11f09d1e443b5515 # via # boto3 # s3transfer @@ -134,9 +134,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.87.2 \ - --hash=sha256:00d47406841899c05ab6a0708df3f4e32bd7462be2097c10371d744c0050775e \ - --hash=sha256:773ba1d2f232ffdbe1197cc6ce61ddbf0da1781925e9f4dde4c91b7fcd54cc80 +cfn-lint==0.87.3 \ + --hash=sha256:4c4f1717cba9b9b579f95687ffa71a8d740b7e1712f6e315c723aac9bb0279d7 \ + --hash=sha256:6b96b4ea8ce8d2601491c238bc504d0a1f6e0e2709217e3a296214d48f182ca1 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -287,9 +287,9 @@ dateparser==1.2.0 \ --hash=sha256:0b21ad96534e562920a0083e97fd45fa959882d4162acc358705144520a35830 \ --hash=sha256:7975b43a4222283e0ae15be7b4999d08c9a70e2d378ac87385b1ccf2cffbbb30 # via aws-sam-cli (setup.py) -docker==7.0.0 \ - --hash=sha256:12ba681f2777a0ad28ffbcc846a69c31b4dfd9752b47eb425a274ee269c5e14b \ - --hash=sha256:323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3 +docker==7.1.0 \ + --hash=sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c \ + --hash=sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0 # via aws-sam-cli (setup.py) flask==3.0.3 \ --hash=sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3 \ @@ -437,9 +437,9 @@ mypy-boto3-apigateway==1.34.56 \ --hash=sha256:3695503bd9388b3067c1dc1dc4ec1486dcec450dbf1e9889f451120e333b92da \ --hash=sha256:5ab15db30d730198384d6445d50cc1fec98361b85366dd092b10e9b9f4a1a2cb # via boto3-stubs -mypy-boto3-cloudformation==1.34.84 \ - --hash=sha256:580954031cb3650588b91f592e8f51855b2ff435d763ac0d69cf271c8433315f \ - --hash=sha256:82d14df3757f30b5a1d34650839d415d265d4de41cf355d63e10221fcc67f177 +mypy-boto3-cloudformation==1.34.111 \ + --hash=sha256:526e928c504fa2880b1774aa10629a04fe0ec70ed2864ab3d3f7772386a1a925 \ + --hash=sha256:a02e201d1a9d9a8fb4db5b942d5c537a4e8861c611f0d986126674ac557cb9e8 # via boto3-stubs mypy-boto3-ecr==1.34.101 \ --hash=sha256:723a3e6b65ec7451cc7c40232eb94e500fa51a77e360a52e028388e2b9afd161 \ @@ -465,9 +465,9 @@ mypy-boto3-schemas==1.34.0 \ --hash=sha256:28c016609dcffc606bd8425ee92894c46e943ab77033e1ae46481f00c39b7f75 \ --hash=sha256:3b25a71944192b0980c3bb5132deb7c06ee9b88580ed63f257fad97cf3bf2927 # via boto3-stubs -mypy-boto3-secretsmanager==1.34.107 \ - --hash=sha256:bca19ae496e9965266ef885578fdb2bc8ee3e84dea7eaaffe030a368f218d207 \ - --hash=sha256:cf1b3c66542efd260595baf7dcd69ffe4648e8e813de8ebba455d83fc70eccb4 +mypy-boto3-secretsmanager==1.34.109 \ + --hash=sha256:18c60597a72ef08bad722f1c2f4507a0cf853c1526b1cffb8c3d2a30f5649d1f \ + --hash=sha256:29898fb1046fed5f83d05f08470d5cf07dfd1656b1da23f2bb875c9ff734ee65 # via boto3-stubs mypy-boto3-signer==1.34.95 \ --hash=sha256:0118854f1664f7e27e03f5ce2fea3344cc4985fa6ed15a0d5c7a7146b4a4326f \ @@ -493,10 +493,6 @@ networkx==3.1 \ --hash=sha256:4f33f68cb2afcf86f28a45f43efc27a9386b535d567d2127f8f61d51dec58d36 \ --hash=sha256:de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61 # via cfn-lint -packaging==24.0 \ - --hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \ - --hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 - # via docker pbr==6.0.0 \ --hash=sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda \ --hash=sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9 @@ -754,9 +750,9 @@ regex==2024.5.15 \ # aws-sam-cli (setup.py) # cfn-lint # dateparser -requests==2.31.0 \ - --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ - --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 +requests==2.32.2 \ + --hash=sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289 \ + --hash=sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c # via # aws-sam-cli (setup.py) # cookiecutter @@ -1042,9 +1038,9 @@ wheel==0.43.0 \ --hash=sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85 \ --hash=sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81 # via aws-lambda-builders -zipp==3.18.1 \ - --hash=sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b \ - --hash=sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715 +zipp==3.18.2 \ + --hash=sha256:6278d9ddbcfb1f1089a88fde84481528b07b0e10474e09dcfe53dad4069fa059 \ + --hash=sha256:dce197b859eb796242b0622af1b8beb0a722d52aa2f57133ead08edd5bf5374e # via # importlib-metadata # importlib-resources diff --git a/requirements/reproducible-win.txt b/requirements/reproducible-win.txt index 50a422907b..1cb8251877 100644 --- a/requirements/reproducible-win.txt +++ b/requirements/reproducible-win.txt @@ -4,9 +4,9 @@ # # pip-compile --allow-unsafe --generate-hashes --output-file='requirements\reproducible-win.txt' # -annotated-types==0.6.0 \ - --hash=sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43 \ - --hash=sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d +annotated-types==0.7.0 \ + --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ + --hash=sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89 # via pydantic arrow==1.3.0 \ --hash=sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80 \ @@ -38,19 +38,19 @@ blinker==1.8.2 \ --hash=sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01 \ --hash=sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83 # via flask -boto3==1.34.107 \ - --hash=sha256:2500963ddd7fee0c891db596ed73f203a62e8ee6faf1543c7a14169b1d557bc3 \ - --hash=sha256:a7280f54babc8e285d85d2558dd6167e4deb069e03abe43a55b643e10c03952b +boto3==1.34.111 \ + --hash=sha256:8f18d212b9199dbbd9d596dd5929685b583ac938c60cceeac2e045c0c5d10323 \ + --hash=sha256:d6a8e77db316c6e1d9a25f77c795ed1e0a8bc621f863ce26d04b2225d30f2dce # via # aws-sam-cli (setup.py) # aws-sam-translator -boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.107 \ - --hash=sha256:852092a62229590f01baff1ffea592a8bf3dbf7d40421a5d047fa36495c26428 \ - --hash=sha256:8a2f7702b804ebd2cada85171954981ebbd6fbe4f17ee64c6a750eb1d9d53676 +boto3-stubs[apigateway,cloudformation,ecr,iam,kinesis,lambda,s3,schemas,secretsmanager,signer,sqs,stepfunctions,sts,xray]==1.34.111 \ + --hash=sha256:209802a0b44d5953b8b21f7abfba695b1398544e83853111882d11977bad1049 \ + --hash=sha256:eae268a5d70d2b880b807a1539602f2c89d4090de6ddb02e3fec144660bc1fd1 # via aws-sam-cli (setup.py) -botocore==1.34.107 \ - --hash=sha256:4620286a814c3c8abc59145203650a6b2a4f538e887552fa1bc6896b6d11b28b \ - --hash=sha256:98bfab930391a21d24ed7a7bc86ec2ec076607318ab8de0c37d2587f73a88d89 +botocore==1.34.111 \ + --hash=sha256:0e0fb9b605c46393d5c7c69bd516b36058334bdc8f389e680c6efcf0727f25db \ + --hash=sha256:e10affb7f372d50da957260adf2753a3f153bf90abe6910e11f09d1e443b5515 # via # boto3 # s3transfer @@ -116,9 +116,9 @@ cffi==1.16.0 \ --hash=sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956 \ --hash=sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357 # via cryptography -cfn-lint==0.87.2 \ - --hash=sha256:00d47406841899c05ab6a0708df3f4e32bd7462be2097c10371d744c0050775e \ - --hash=sha256:773ba1d2f232ffdbe1197cc6ce61ddbf0da1781925e9f4dde4c91b7fcd54cc80 +cfn-lint==0.87.3 \ + --hash=sha256:4c4f1717cba9b9b579f95687ffa71a8d740b7e1712f6e315c723aac9bb0279d7 \ + --hash=sha256:6b96b4ea8ce8d2601491c238bc504d0a1f6e0e2709217e3a296214d48f182ca1 # via aws-sam-cli (setup.py) chardet==5.2.0 \ --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ @@ -273,9 +273,9 @@ dateparser==1.2.0 \ --hash=sha256:0b21ad96534e562920a0083e97fd45fa959882d4162acc358705144520a35830 \ --hash=sha256:7975b43a4222283e0ae15be7b4999d08c9a70e2d378ac87385b1ccf2cffbbb30 # via aws-sam-cli (setup.py) -docker==7.0.0 \ - --hash=sha256:12ba681f2777a0ad28ffbcc846a69c31b4dfd9752b47eb425a274ee269c5e14b \ - --hash=sha256:323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3 +docker==7.1.0 \ + --hash=sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c \ + --hash=sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0 # via aws-sam-cli (setup.py) flask==3.0.3 \ --hash=sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3 \ @@ -413,9 +413,9 @@ mypy-boto3-apigateway==1.34.56 \ --hash=sha256:3695503bd9388b3067c1dc1dc4ec1486dcec450dbf1e9889f451120e333b92da \ --hash=sha256:5ab15db30d730198384d6445d50cc1fec98361b85366dd092b10e9b9f4a1a2cb # via boto3-stubs -mypy-boto3-cloudformation==1.34.84 \ - --hash=sha256:580954031cb3650588b91f592e8f51855b2ff435d763ac0d69cf271c8433315f \ - --hash=sha256:82d14df3757f30b5a1d34650839d415d265d4de41cf355d63e10221fcc67f177 +mypy-boto3-cloudformation==1.34.111 \ + --hash=sha256:526e928c504fa2880b1774aa10629a04fe0ec70ed2864ab3d3f7772386a1a925 \ + --hash=sha256:a02e201d1a9d9a8fb4db5b942d5c537a4e8861c611f0d986126674ac557cb9e8 # via boto3-stubs mypy-boto3-ecr==1.34.101 \ --hash=sha256:723a3e6b65ec7451cc7c40232eb94e500fa51a77e360a52e028388e2b9afd161 \ @@ -441,9 +441,9 @@ mypy-boto3-schemas==1.34.0 \ --hash=sha256:28c016609dcffc606bd8425ee92894c46e943ab77033e1ae46481f00c39b7f75 \ --hash=sha256:3b25a71944192b0980c3bb5132deb7c06ee9b88580ed63f257fad97cf3bf2927 # via boto3-stubs -mypy-boto3-secretsmanager==1.34.107 \ - --hash=sha256:bca19ae496e9965266ef885578fdb2bc8ee3e84dea7eaaffe030a368f218d207 \ - --hash=sha256:cf1b3c66542efd260595baf7dcd69ffe4648e8e813de8ebba455d83fc70eccb4 +mypy-boto3-secretsmanager==1.34.109 \ + --hash=sha256:18c60597a72ef08bad722f1c2f4507a0cf853c1526b1cffb8c3d2a30f5649d1f \ + --hash=sha256:29898fb1046fed5f83d05f08470d5cf07dfd1656b1da23f2bb875c9ff734ee65 # via boto3-stubs mypy-boto3-signer==1.34.95 \ --hash=sha256:0118854f1664f7e27e03f5ce2fea3344cc4985fa6ed15a0d5c7a7146b4a4326f \ @@ -469,10 +469,6 @@ networkx==3.3 \ --hash=sha256:0c127d8b2f4865f59ae9cb8aafcd60b5c70f3241ebd66f7defad7c4ab90126c9 \ --hash=sha256:28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2 # via cfn-lint -packaging==24.0 \ - --hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \ - --hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 - # via docker pbr==6.0.0 \ --hash=sha256:4a7317d5e3b17a3dccb6a8cfe67dab65b20551404c52c8ed41279fa4f0cb4cda \ --hash=sha256:d1377122a5a00e2f940ee482999518efe16d745d423a670c27773dfbc3c9a7d9 @@ -742,9 +738,9 @@ regex==2024.5.15 \ # aws-sam-cli (setup.py) # cfn-lint # dateparser -requests==2.31.0 \ - --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ - --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 +requests==2.32.2 \ + --hash=sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289 \ + --hash=sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c # via # aws-sam-cli (setup.py) # cookiecutter diff --git a/samcli/__init__.py b/samcli/__init__.py index 860ecfdb7b..b50da8ca45 100644 --- a/samcli/__init__.py +++ b/samcli/__init__.py @@ -2,4 +2,4 @@ SAM CLI version """ -__version__ = "1.117.0" +__version__ = "1.118.0" diff --git a/samcli/lib/utils/resource_trigger.py b/samcli/lib/utils/resource_trigger.py index 9f35aec33b..0b899951cb 100644 --- a/samcli/lib/utils/resource_trigger.py +++ b/samcli/lib/utils/resource_trigger.py @@ -1,5 +1,6 @@ """ResourceTrigger Classes for Creating PathHandlers According to a Resource""" +import logging import platform import re from abc import ABC, abstractmethod @@ -7,7 +8,7 @@ from typing import Any, Dict, List, Optional, cast from typing_extensions import Protocol -from watchdog.events import FileSystemEvent, RegexMatchingEventHandler +from watchdog.events import EVENT_TYPE_OPENED, FileSystemEvent, RegexMatchingEventHandler from samcli.lib.providers.exceptions import InvalidTemplateFile, MissingCodeUri, MissingLocalDefinition from samcli.lib.providers.provider import Function, LayerVersion, ResourceIdentifier, Stack, get_resource_by_id @@ -18,6 +19,9 @@ from samcli.lib.utils.resources import RESOURCES_WITH_LOCAL_PATHS from samcli.local.lambdafn.exceptions import FunctionNotFound, ResourceNotFound +LOG = logging.getLogger(__name__) + + DEFAULT_WATCH_IGNORED_RESOURCES = ["^.*\\.aws-sam.*$", "^.*node_modules.*$"] @@ -134,6 +138,15 @@ def _validator_wrapper(self, event: Optional[FileSystemEvent] = None) -> None: ---------- event : Optional[FileSystemEvent], optional """ + if event and event.event_type == EVENT_TYPE_OPENED: + # Ignore all file opened events since this event is + # added in addition to a create or modified event, + # causing an infinite loop of sync flow creations + LOG.debug("Ignoring file system OPENED event") + return + LOG.debug( + "Template watcher (%s) for stack (%s) got file event %s", self._template_file, self._stack_name, event + ) if self._validator.validate_change(): self._on_template_change(event) diff --git a/tests/integration/deploy/deploy_integ_base.py b/tests/integration/deploy/deploy_integ_base.py index 4db4e5ff6a..c907140a90 100644 --- a/tests/integration/deploy/deploy_integ_base.py +++ b/tests/integration/deploy/deploy_integ_base.py @@ -2,7 +2,7 @@ import tempfile from pathlib import Path from enum import Enum, auto -from typing import List, Optional +from typing import Optional import boto3 from botocore.config import Config @@ -28,12 +28,11 @@ def setUp(self): ResourceType.IAM_ROLE: list(), } # make temp directory and move all test files into there for each test run - original_test_data_path = self.test_data_path self.test_data_path = Path(tempfile.mkdtemp()) # copytree call below fails if root folder present, delete it first shutil.rmtree(self.test_data_path, ignore_errors=True) - shutil.copytree(original_test_data_path, self.test_data_path) + shutil.copytree(self.original_test_data_path, self.test_data_path) self.cfn_client = boto3.client("cloudformation") self.ecr_client = boto3.client("ecr") diff --git a/tests/integration/package/package_integ_base.py b/tests/integration/package/package_integ_base.py index 2f373812f9..990a4e85bf 100644 --- a/tests/integration/package/package_integ_base.py +++ b/tests/integration/package/package_integ_base.py @@ -60,6 +60,7 @@ def setUpClass(cls): ) cls.bucket_name = cls.pre_created_bucket if cls.pre_created_bucket else str(uuid.uuid4()) cls.test_data_path = Path(__file__).resolve().parents[1].joinpath("testdata", "package") + cls.original_test_data_path = cls.test_data_path # Intialize S3 client s3 = boto3.resource("s3") diff --git a/tests/unit/lib/utils/test_resource_trigger.py b/tests/unit/lib/utils/test_resource_trigger.py index f21ff65e5b..4e3d1f1aff 100644 --- a/tests/unit/lib/utils/test_resource_trigger.py +++ b/tests/unit/lib/utils/test_resource_trigger.py @@ -2,6 +2,7 @@ from parameterized import parameterized from unittest.case import TestCase from unittest.mock import MagicMock, Mock, patch, ANY +from watchdog.events import EVENT_TYPE_OPENED from samcli.lib.utils.resource_trigger import ( DEFAULT_WATCH_IGNORED_RESOURCES, CodeResourceTrigger, @@ -92,6 +93,18 @@ def test_validator_wrapper(self, path_mock, validator_mock): trigger._validator_wrapper(event_mock) on_template_change_mock.assert_called_once_with(event_mock) + @patch("samcli.lib.utils.resource_trigger.DefinitionValidator") + @patch("samcli.lib.utils.resource_trigger.Path") + def test_validator_wrapper_for_file_opened_event(self, path_mock, validator_mock): + validator_mock.return_value.raw_validate.return_value = True + on_template_change_mock = MagicMock() + event_mock = MagicMock() + event_mock.event_type = EVENT_TYPE_OPENED + validator_mock.return_value.raw_validate.return_value = True + trigger = TemplateTrigger("template.yaml", "stack", on_template_change_mock) + trigger._validator_wrapper(event_mock) + on_template_change_mock.assert_not_called() + class TestCodeResourceTrigger(TestCase): @patch.multiple(CodeResourceTrigger, __abstractmethods__=set())