From f119ee72a8c7cf852831c7b3359a653ed453893f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Oct 2022 15:22:56 +0200 Subject: [PATCH 01/18] chore(deps): update all dependencies (#398) --- .../api-client/accesstoken_example/requirements-test.txt | 2 +- samples/api-client/accesstoken_example/requirements.txt | 6 +++--- samples/api-client/manager/requirements.txt | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements-test.txt b/samples/api-client/accesstoken_example/requirements-test.txt index 9afad1d1..978896c4 100644 --- a/samples/api-client/accesstoken_example/requirements-test.txt +++ b/samples/api-client/accesstoken_example/requirements-test.txt @@ -1,3 +1,3 @@ pytest==7.1.3 -google-cloud-pubsub==2.13.7 +google-cloud-pubsub==2.13.10 google-cloud-storage==2.5.0 diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index e32727ea..e3f1e064 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -2,9 +2,9 @@ cryptography==38.0.1 flaky==3.7.0 google-api-python-client==2.64.0 google-auth-httplib2==0.1.0 -google-auth==2.12.0 -google-cloud-iot==2.6.3 -google-cloud-pubsub==2.13.7 +google-auth==2.13.0 +google-cloud-iot==2.6.4 +google-cloud-pubsub==2.13.10 google-cloud-storage==2.5.0 paho-mqtt==1.6.1 pyjwt==2.5.0 diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index 14ad08b0..643d92e4 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -2,8 +2,8 @@ cryptography==38.0.1 flaky==3.7.0 google-api-python-client==2.64.0 google-auth-httplib2==0.1.0 -google-auth==2.12.0 -google-cloud-iot==2.6.3 -google-cloud-pubsub==2.13.7 +google-auth==2.13.0 +google-cloud-iot==2.6.4 +google-cloud-pubsub==2.13.10 paho-mqtt==1.6.1 pyjwt==2.5.0 From f755835efcf948430922d779b816deec3f3269c0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 19 Oct 2022 16:05:26 +0200 Subject: [PATCH 02/18] chore(deps): update dependency google-api-python-client to v2.65.0 (#399) --- samples/api-client/accesstoken_example/requirements.txt | 2 +- samples/api-client/manager/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index e3f1e064..6f658707 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -1,6 +1,6 @@ cryptography==38.0.1 flaky==3.7.0 -google-api-python-client==2.64.0 +google-api-python-client==2.65.0 google-auth-httplib2==0.1.0 google-auth==2.13.0 google-cloud-iot==2.6.4 diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index 643d92e4..c4f6daa7 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -1,6 +1,6 @@ cryptography==38.0.1 flaky==3.7.0 -google-api-python-client==2.64.0 +google-api-python-client==2.65.0 google-auth-httplib2==0.1.0 google-auth==2.13.0 google-cloud-iot==2.6.4 From 48f4d5acc53297cb9c8a49f47362dd6a33d59d4b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 24 Oct 2022 15:06:24 +0200 Subject: [PATCH 03/18] chore(deps): update dependency pyjwt to v2.6.0 (#400) --- samples/api-client/accesstoken_example/requirements.txt | 2 +- samples/api-client/manager/requirements.txt | 2 +- samples/api-client/mqtt_example/requirements.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index 6f658707..d6cf5041 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -7,4 +7,4 @@ google-cloud-iot==2.6.4 google-cloud-pubsub==2.13.10 google-cloud-storage==2.5.0 paho-mqtt==1.6.1 -pyjwt==2.5.0 +pyjwt==2.6.0 diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index c4f6daa7..39cf521d 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -6,4 +6,4 @@ google-auth==2.13.0 google-cloud-iot==2.6.4 google-cloud-pubsub==2.13.10 paho-mqtt==1.6.1 -pyjwt==2.5.0 +pyjwt==2.6.0 diff --git a/samples/api-client/mqtt_example/requirements.txt b/samples/api-client/mqtt_example/requirements.txt index 5f7da28d..e7d11baf 100644 --- a/samples/api-client/mqtt_example/requirements.txt +++ b/samples/api-client/mqtt_example/requirements.txt @@ -1,2 +1,2 @@ paho-mqtt==1.6.1 -pyjwt==2.5.0 +pyjwt==2.6.0 From 2ae3d650c94c0da7aaf24f311ae8835cdf09d35b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 Oct 2022 12:59:46 +0200 Subject: [PATCH 04/18] chore(deps): update dependency pytest to v7.2.0 (#401) --- samples/api-client/accesstoken_example/requirements-test.txt | 2 +- samples/api-client/manager/requirements-test.txt | 2 +- samples/api-client/mqtt_example/requirements-test.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements-test.txt b/samples/api-client/accesstoken_example/requirements-test.txt index 978896c4..3799ae09 100644 --- a/samples/api-client/accesstoken_example/requirements-test.txt +++ b/samples/api-client/accesstoken_example/requirements-test.txt @@ -1,3 +1,3 @@ -pytest==7.1.3 +pytest==7.2.0 google-cloud-pubsub==2.13.10 google-cloud-storage==2.5.0 diff --git a/samples/api-client/manager/requirements-test.txt b/samples/api-client/manager/requirements-test.txt index e0716850..49780e03 100644 --- a/samples/api-client/manager/requirements-test.txt +++ b/samples/api-client/manager/requirements-test.txt @@ -1 +1 @@ -pytest==7.1.3 +pytest==7.2.0 diff --git a/samples/api-client/mqtt_example/requirements-test.txt b/samples/api-client/mqtt_example/requirements-test.txt index e0716850..49780e03 100644 --- a/samples/api-client/mqtt_example/requirements-test.txt +++ b/samples/api-client/mqtt_example/requirements-test.txt @@ -1 +1 @@ -pytest==7.1.3 +pytest==7.2.0 From 07b02e5c19ecfb38f67727691e8ddc074648c4e9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Nov 2022 14:08:51 +0100 Subject: [PATCH 05/18] chore(deps): update dependency google-auth to v2.14.0 (#403) --- samples/api-client/accesstoken_example/requirements.txt | 2 +- samples/api-client/manager/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index d6cf5041..20ea67d3 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -2,7 +2,7 @@ cryptography==38.0.1 flaky==3.7.0 google-api-python-client==2.65.0 google-auth-httplib2==0.1.0 -google-auth==2.13.0 +google-auth==2.14.0 google-cloud-iot==2.6.4 google-cloud-pubsub==2.13.10 google-cloud-storage==2.5.0 diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index 39cf521d..fda0c2b3 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -2,7 +2,7 @@ cryptography==38.0.1 flaky==3.7.0 google-api-python-client==2.65.0 google-auth-httplib2==0.1.0 -google-auth==2.13.0 +google-auth==2.14.0 google-cloud-iot==2.6.4 google-cloud-pubsub==2.13.10 paho-mqtt==1.6.1 From 90b8abae348d779d25f36da18625aff60c8bbf7a Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 02:28:21 +0000 Subject: [PATCH 06/18] chore(python): update dependencies in .kokoro/requirements.txt [autoapprove] (#406) Source-Link: https://togithub.com/googleapis/synthtool/commit/e3a1277ac35fc88c09db1930533e24292b132ced Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:452901c74a22f9b9a3bd02bce780b8e8805c97270d424684bff809ce5be8c2a2 --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.txt | 325 +++++++++++++++++++++----------------- noxfile.py | 11 +- 3 files changed, 187 insertions(+), 151 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 3815c983..12edee77 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:7a40313731a7cb1454eef6b33d3446ebb121836738dc3ab3d2d3ded5268c35b6 + digest: sha256:452901c74a22f9b9a3bd02bce780b8e8805c97270d424684bff809ce5be8c2a2 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index d15994ba..31425f16 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -20,9 +20,9 @@ cachetools==5.2.0 \ --hash=sha256:6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757 \ --hash=sha256:f9f17d2aec496a9aa6b76f53e3b614c965223c061982d434d160f930c698a9db # via google-auth -certifi==2022.6.15 \ - --hash=sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d \ - --hash=sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412 +certifi==2022.9.24 \ + --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ + --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ @@ -110,29 +110,33 @@ commonmark==0.9.1 \ --hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \ --hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9 # via rich -cryptography==37.0.4 \ - --hash=sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59 \ - --hash=sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596 \ - --hash=sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3 \ - --hash=sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5 \ - --hash=sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab \ - --hash=sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884 \ - --hash=sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82 \ - --hash=sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b \ - --hash=sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441 \ - --hash=sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa \ - --hash=sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d \ - --hash=sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b \ - --hash=sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a \ - --hash=sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6 \ - --hash=sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157 \ - --hash=sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280 \ - --hash=sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282 \ - --hash=sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67 \ - --hash=sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8 \ - --hash=sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046 \ - --hash=sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327 \ - --hash=sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9 +cryptography==38.0.3 \ + --hash=sha256:068147f32fa662c81aebab95c74679b401b12b57494872886eb5c1139250ec5d \ + --hash=sha256:06fc3cc7b6f6cca87bd56ec80a580c88f1da5306f505876a71c8cfa7050257dd \ + --hash=sha256:25c1d1f19729fb09d42e06b4bf9895212292cb27bb50229f5aa64d039ab29146 \ + --hash=sha256:402852a0aea73833d982cabb6d0c3bb582c15483d29fb7085ef2c42bfa7e38d7 \ + --hash=sha256:4e269dcd9b102c5a3d72be3c45d8ce20377b8076a43cbed6f660a1afe365e436 \ + --hash=sha256:5419a127426084933076132d317911e3c6eb77568a1ce23c3ac1e12d111e61e0 \ + --hash=sha256:554bec92ee7d1e9d10ded2f7e92a5d70c1f74ba9524947c0ba0c850c7b011828 \ + --hash=sha256:5e89468fbd2fcd733b5899333bc54d0d06c80e04cd23d8c6f3e0542358c6060b \ + --hash=sha256:65535bc550b70bd6271984d9863a37741352b4aad6fb1b3344a54e6950249b55 \ + --hash=sha256:6ab9516b85bebe7aa83f309bacc5f44a61eeb90d0b4ec125d2d003ce41932d36 \ + --hash=sha256:6addc3b6d593cd980989261dc1cce38263c76954d758c3c94de51f1e010c9a50 \ + --hash=sha256:728f2694fa743a996d7784a6194da430f197d5c58e2f4e278612b359f455e4a2 \ + --hash=sha256:785e4056b5a8b28f05a533fab69febf5004458e20dad7e2e13a3120d8ecec75a \ + --hash=sha256:78cf5eefac2b52c10398a42765bfa981ce2372cbc0457e6bf9658f41ec3c41d8 \ + --hash=sha256:7f836217000342d448e1c9a342e9163149e45d5b5eca76a30e84503a5a96cab0 \ + --hash=sha256:8d41a46251bf0634e21fac50ffd643216ccecfaf3701a063257fe0b2be1b6548 \ + --hash=sha256:984fe150f350a3c91e84de405fe49e688aa6092b3525f407a18b9646f6612320 \ + --hash=sha256:9b24bcff7853ed18a63cfb0c2b008936a9554af24af2fb146e16d8e1aed75748 \ + --hash=sha256:b1b35d9d3a65542ed2e9d90115dfd16bbc027b3f07ee3304fc83580f26e43249 \ + --hash=sha256:b1b52c9e5f8aa2b802d48bd693190341fae201ea51c7a167d69fc48b60e8a959 \ + --hash=sha256:bbf203f1a814007ce24bd4d51362991d5cb90ba0c177a9c08825f2cc304d871f \ + --hash=sha256:be243c7e2bfcf6cc4cb350c0d5cdf15ca6383bbcb2a8ef51d3c9411a9d4386f0 \ + --hash=sha256:bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd \ + --hash=sha256:c46837ea467ed1efea562bbeb543994c2d1f6e800785bd5a2c98bc096f5cb220 \ + --hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \ + --hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722 # via # gcp-releasetool # secretstorage @@ -148,23 +152,23 @@ filelock==3.8.0 \ --hash=sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc \ --hash=sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4 # via virtualenv -gcp-docuploader==0.6.3 \ - --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \ - --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b +gcp-docuploader==0.6.4 \ + --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ + --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in -gcp-releasetool==1.8.7 \ - --hash=sha256:3d2a67c9db39322194afb3b427e9cb0476ce8f2a04033695f0aeb63979fc2b37 \ - --hash=sha256:5e4d28f66e90780d77f3ecf1e9155852b0c3b13cbccb08ab07e66b2357c8da8d +gcp-releasetool==1.9.1 \ + --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ + --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b # via -r requirements.in -google-api-core==2.8.2 \ - --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ - --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50 +google-api-core==2.10.2 \ + --hash=sha256:10c06f7739fe57781f87523375e8e1a3a4674bf6392cd6131a3222182b971320 \ + --hash=sha256:34f24bd1d5f72a8c4519773d99ca6bf080a6c4e041b4e9f024fe230191dda62e # via # google-cloud-core # google-cloud-storage -google-auth==2.11.0 \ - --hash=sha256:be62acaae38d0049c21ca90f27a23847245c9f161ff54ede13af2cb6afecbac9 \ - --hash=sha256:ed65ecf9f681832298e29328e1ef0a3676e3732b2e56f41532d45f70a22de0fb +google-auth==2.14.0 \ + --hash=sha256:1ad5b0e6eba5f69645971abb3d2c197537d5914070a8c6d30299dfdb07c5c700 \ + --hash=sha256:cf24817855d874ede2efd071aa22125445f555de1685b739a9782fcf408c2a3d # via # gcp-releasetool # google-api-core @@ -178,72 +182,97 @@ google-cloud-storage==2.5.0 \ --hash=sha256:19a26c66c317ce542cea0830b7e787e8dac2588b6bfa4d3fd3b871ba16305ab0 \ --hash=sha256:382f34b91de2212e3c2e7b40ec079d27ee2e3dbbae99b75b1bcd8c63063ce235 # via gcp-docuploader -google-crc32c==1.3.0 \ - --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \ - --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \ - --hash=sha256:12674a4c3b56b706153a358eaa1018c4137a5a04635b92b4652440d3d7386206 \ - --hash=sha256:127f9cc3ac41b6a859bd9dc4321097b1a4f6aa7fdf71b4f9227b9e3ebffb4422 \ - --hash=sha256:13af315c3a0eec8bb8b8d80b8b128cb3fcd17d7e4edafc39647846345a3f003a \ - --hash=sha256:1926fd8de0acb9d15ee757175ce7242e235482a783cd4ec711cc999fc103c24e \ - --hash=sha256:226f2f9b8e128a6ca6a9af9b9e8384f7b53a801907425c9a292553a3a7218ce0 \ - --hash=sha256:276de6273eb074a35bc598f8efbc00c7869c5cf2e29c90748fccc8c898c244df \ - --hash=sha256:318f73f5484b5671f0c7f5f63741ab020a599504ed81d209b5c7129ee4667407 \ - --hash=sha256:3bbce1be3687bbfebe29abdb7631b83e6b25da3f4e1856a1611eb21854b689ea \ - --hash=sha256:42ae4781333e331a1743445931b08ebdad73e188fd554259e772556fc4937c48 \ - --hash=sha256:58be56ae0529c664cc04a9c76e68bb92b091e0194d6e3c50bea7e0f266f73713 \ - --hash=sha256:5da2c81575cc3ccf05d9830f9e8d3c70954819ca9a63828210498c0774fda1a3 \ - --hash=sha256:6311853aa2bba4064d0c28ca54e7b50c4d48e3de04f6770f6c60ebda1e975267 \ - --hash=sha256:650e2917660e696041ab3dcd7abac160b4121cd9a484c08406f24c5964099829 \ - --hash=sha256:6a4db36f9721fdf391646685ecffa404eb986cbe007a3289499020daf72e88a2 \ - --hash=sha256:779cbf1ce375b96111db98fca913c1f5ec11b1d870e529b1dc7354b2681a8c3a \ - --hash=sha256:7f6fe42536d9dcd3e2ffb9d3053f5d05221ae3bbcefbe472bdf2c71c793e3183 \ - --hash=sha256:891f712ce54e0d631370e1f4997b3f182f3368179198efc30d477c75d1f44942 \ - --hash=sha256:95c68a4b9b7828ba0428f8f7e3109c5d476ca44996ed9a5f8aac6269296e2d59 \ - --hash=sha256:96a8918a78d5d64e07c8ea4ed2bc44354e3f93f46a4866a40e8db934e4c0d74b \ - --hash=sha256:9c3cf890c3c0ecfe1510a452a165431b5831e24160c5fcf2071f0f85ca5a47cd \ - --hash=sha256:9f58099ad7affc0754ae42e6d87443299f15d739b0ce03c76f515153a5cda06c \ - --hash=sha256:a0b9e622c3b2b8d0ce32f77eba617ab0d6768b82836391e4f8f9e2074582bf02 \ - --hash=sha256:a7f9cbea4245ee36190f85fe1814e2d7b1e5f2186381b082f5d59f99b7f11328 \ - --hash=sha256:bab4aebd525218bab4ee615786c4581952eadc16b1ff031813a2fd51f0cc7b08 \ - --hash=sha256:c124b8c8779bf2d35d9b721e52d4adb41c9bfbde45e6a3f25f0820caa9aba73f \ - --hash=sha256:c9da0a39b53d2fab3e5467329ed50e951eb91386e9d0d5b12daf593973c3b168 \ - --hash=sha256:ca60076c388728d3b6ac3846842474f4250c91efbfe5afa872d3ffd69dd4b318 \ - --hash=sha256:cb6994fff247987c66a8a4e550ef374671c2b82e3c0d2115e689d21e511a652d \ - --hash=sha256:d1c1d6236feab51200272d79b3d3e0f12cf2cbb12b208c835b175a21efdb0a73 \ - --hash=sha256:dd7760a88a8d3d705ff562aa93f8445ead54f58fd482e4f9e2bafb7e177375d4 \ - --hash=sha256:dda4d8a3bb0b50f540f6ff4b6033f3a74e8bf0bd5320b70fab2c03e512a62812 \ - --hash=sha256:e0f1ff55dde0ebcfbef027edc21f71c205845585fffe30d4ec4979416613e9b3 \ - --hash=sha256:e7a539b9be7b9c00f11ef16b55486141bc2cdb0c54762f84e3c6fc091917436d \ - --hash=sha256:eb0b14523758e37802f27b7f8cd973f5f3d33be7613952c0df904b68c4842f0e \ - --hash=sha256:ed447680ff21c14aaceb6a9f99a5f639f583ccfe4ce1a5e1d48eb41c3d6b3217 \ - --hash=sha256:f52a4ad2568314ee713715b1e2d79ab55fab11e8b304fd1462ff5cccf4264b3e \ - --hash=sha256:fbd60c6aaa07c31d7754edbc2334aef50601b7f1ada67a96eb1eb57c7c72378f \ - --hash=sha256:fc28e0db232c62ca0c3600884933178f0825c99be4474cdd645e378a10588125 \ - --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \ - --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \ - --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3 +google-crc32c==1.5.0 \ + --hash=sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a \ + --hash=sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876 \ + --hash=sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c \ + --hash=sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289 \ + --hash=sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298 \ + --hash=sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02 \ + --hash=sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f \ + --hash=sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2 \ + --hash=sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a \ + --hash=sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb \ + --hash=sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210 \ + --hash=sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5 \ + --hash=sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee \ + --hash=sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c \ + --hash=sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a \ + --hash=sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314 \ + --hash=sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd \ + --hash=sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65 \ + --hash=sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37 \ + --hash=sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4 \ + --hash=sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13 \ + --hash=sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894 \ + --hash=sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31 \ + --hash=sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e \ + --hash=sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709 \ + --hash=sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740 \ + --hash=sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc \ + --hash=sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d \ + --hash=sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c \ + --hash=sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c \ + --hash=sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d \ + --hash=sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906 \ + --hash=sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61 \ + --hash=sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57 \ + --hash=sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c \ + --hash=sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a \ + --hash=sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438 \ + --hash=sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946 \ + --hash=sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7 \ + --hash=sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96 \ + --hash=sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091 \ + --hash=sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae \ + --hash=sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d \ + --hash=sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88 \ + --hash=sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2 \ + --hash=sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd \ + --hash=sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541 \ + --hash=sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728 \ + --hash=sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178 \ + --hash=sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968 \ + --hash=sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346 \ + --hash=sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8 \ + --hash=sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93 \ + --hash=sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7 \ + --hash=sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273 \ + --hash=sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462 \ + --hash=sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94 \ + --hash=sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd \ + --hash=sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e \ + --hash=sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57 \ + --hash=sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b \ + --hash=sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9 \ + --hash=sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a \ + --hash=sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100 \ + --hash=sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325 \ + --hash=sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183 \ + --hash=sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556 \ + --hash=sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4 # via google-resumable-media -google-resumable-media==2.3.3 \ - --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ - --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 +google-resumable-media==2.4.0 \ + --hash=sha256:2aa004c16d295c8f6c33b2b4788ba59d366677c0a25ae7382436cb30f776deaa \ + --hash=sha256:8d5518502f92b9ecc84ac46779bd4f09694ecb3ba38a3e7ca737a86d15cbca1f # via google-cloud-storage googleapis-common-protos==1.56.4 \ --hash=sha256:8eb2cbc91b69feaf23e32452a7ae60e791e09967d81d4fcc7fc388182d1bd394 \ --hash=sha256:c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417 # via google-api-core -idna==3.3 \ - --hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff \ - --hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d +idna==3.4 \ + --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ + --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 # via requests -importlib-metadata==4.12.0 \ - --hash=sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670 \ - --hash=sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23 +importlib-metadata==5.0.0 \ + --hash=sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab \ + --hash=sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43 # via # -r requirements.in # twine -jaraco-classes==3.2.2 \ - --hash=sha256:6745f113b0b588239ceb49532aa09c3ebb947433ce311ef2f8e3ad64ebb74594 \ - --hash=sha256:e6ef6fd3fcf4579a7a019d87d1e56a883f4e4c35cfe925f86731abc58804e647 +jaraco-classes==3.2.3 \ + --hash=sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158 \ + --hash=sha256:89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a # via keyring jeepney==0.8.0 \ --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \ @@ -255,9 +284,9 @@ jinja2==3.1.2 \ --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 # via gcp-releasetool -keyring==23.9.0 \ - --hash=sha256:4c32a31174faaee48f43a7e2c7e9c3216ec5e95acf22a2bebfb4a1d05056ee44 \ - --hash=sha256:98f060ec95ada2ab910c195a2d4317be6ef87936a766b239c46aa3c7aac4f0db +keyring==23.9.3 \ + --hash=sha256:69732a15cb1433bdfbc3b980a8a36a04878a6cfd7cb99f497b573f31618001c0 \ + --hash=sha256:69b01dd83c42f590250fe7a1f503fc229b14de83857314b1933a3ddbf595c4a5 # via # gcp-releasetool # twine @@ -303,9 +332,9 @@ markupsafe==2.1.1 \ --hash=sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a \ --hash=sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7 # via jinja2 -more-itertools==8.14.0 \ - --hash=sha256:1bc4f91ee5b1b31ac7ceacc17c09befe6a40a503907baf9c839c229b5095cfd2 \ - --hash=sha256:c09443cd3d5438b8dafccd867a6bc1cb0894389e90cb53d227456b0b0bccb750 +more-itertools==9.0.0 \ + --hash=sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41 \ + --hash=sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab # via jaraco-classes nox==2022.8.7 \ --hash=sha256:1b894940551dc5c389f9271d197ca5d655d40bdc6ccf93ed6880e4042760a34b \ @@ -325,34 +354,34 @@ platformdirs==2.5.2 \ --hash=sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788 \ --hash=sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19 # via virtualenv -protobuf==3.20.2 \ - --hash=sha256:03d76b7bd42ac4a6e109742a4edf81ffe26ffd87c5993126d894fe48a120396a \ - --hash=sha256:09e25909c4297d71d97612f04f41cea8fa8510096864f2835ad2f3b3df5a5559 \ - --hash=sha256:18e34a10ae10d458b027d7638a599c964b030c1739ebd035a1dfc0e22baa3bfe \ - --hash=sha256:291fb4307094bf5ccc29f424b42268640e00d5240bf0d9b86bf3079f7576474d \ - --hash=sha256:2c0b040d0b5d5d207936ca2d02f00f765906622c07d3fa19c23a16a8ca71873f \ - --hash=sha256:384164994727f274cc34b8abd41a9e7e0562801361ee77437099ff6dfedd024b \ - --hash=sha256:3cb608e5a0eb61b8e00fe641d9f0282cd0eedb603be372f91f163cbfbca0ded0 \ - --hash=sha256:5d9402bf27d11e37801d1743eada54372f986a372ec9679673bfcc5c60441151 \ - --hash=sha256:712dca319eee507a1e7df3591e639a2b112a2f4a62d40fe7832a16fd19151750 \ - --hash=sha256:7a5037af4e76c975b88c3becdf53922b5ffa3f2cddf657574a4920a3b33b80f3 \ - --hash=sha256:8228e56a865c27163d5d1d1771d94b98194aa6917bcfb6ce139cbfa8e3c27334 \ - --hash=sha256:84a1544252a933ef07bb0b5ef13afe7c36232a774affa673fc3636f7cee1db6c \ - --hash=sha256:84fe5953b18a383fd4495d375fe16e1e55e0a3afe7b4f7b4d01a3a0649fcda9d \ - --hash=sha256:9c673c8bfdf52f903081816b9e0e612186684f4eb4c17eeb729133022d6032e3 \ - --hash=sha256:9f876a69ca55aed879b43c295a328970306e8e80a263ec91cf6e9189243c613b \ - --hash=sha256:a9e5ae5a8e8985c67e8944c23035a0dff2c26b0f5070b2f55b217a1c33bbe8b1 \ - --hash=sha256:b4fdb29c5a7406e3f7ef176b2a7079baa68b5b854f364c21abe327bbeec01cdb \ - --hash=sha256:c184485e0dfba4dfd451c3bd348c2e685d6523543a0f91b9fd4ae90eb09e8422 \ - --hash=sha256:c9cdf251c582c16fd6a9f5e95836c90828d51b0069ad22f463761d27c6c19019 \ - --hash=sha256:e39cf61bb8582bda88cdfebc0db163b774e7e03364bbf9ce1ead13863e81e359 \ - --hash=sha256:e8fbc522303e09036c752a0afcc5c0603e917222d8bedc02813fd73b4b4ed804 \ - --hash=sha256:f34464ab1207114e73bba0794d1257c150a2b89b7a9faf504e00af7c9fd58978 \ - --hash=sha256:f52dabc96ca99ebd2169dadbe018824ebda08a795c7684a0b7d203a290f3adb0 +protobuf==3.20.3 \ + --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ + --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ + --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ + --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ + --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ + --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ + --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ + --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ + --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ + --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ + --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ + --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ + --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ + --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ + --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ + --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ + --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ + --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ + --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ + --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ + --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ + --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee # via # gcp-docuploader # gcp-releasetool # google-api-core + # googleapis-common-protos py==1.11.0 \ --hash=sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719 \ --hash=sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378 @@ -377,9 +406,9 @@ pygments==2.13.0 \ # via # readme-renderer # rich -pyjwt==2.4.0 \ - --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ - --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba +pyjwt==2.6.0 \ + --hash=sha256:69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd \ + --hash=sha256:d83c3d892a77bbb74d3e1a2cfa90afaadb60945205d1095d9221f04466f64c14 # via gcp-releasetool pyparsing==3.0.9 \ --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ @@ -392,9 +421,9 @@ python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 # via gcp-releasetool -readme-renderer==37.0 \ - --hash=sha256:07b7ea234e03e58f77cc222e206e6abb8f4c0435becce5104794ee591f9301c5 \ - --hash=sha256:9fa416704703e509eeb900696751c908ddeb2011319d93700d8f18baff887a69 +readme-renderer==37.3 \ + --hash=sha256:cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273 \ + --hash=sha256:f67a16caedfa71eef48a31b39708637a6f4664c4394801a7b0d6432d13907343 # via twine requests==2.28.1 \ --hash=sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983 \ @@ -405,17 +434,17 @@ requests==2.28.1 \ # google-cloud-storage # requests-toolbelt # twine -requests-toolbelt==0.9.1 \ - --hash=sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f \ - --hash=sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0 +requests-toolbelt==0.10.1 \ + --hash=sha256:18565aa58116d9951ac39baa288d3adb5b3ff975c4f25eee78555d89e8f247f7 \ + --hash=sha256:62e09f7ff5ccbda92772a29f394a49c3ad6cb181d568b1337626b2abb628a63d # via twine rfc3986==2.0.0 \ --hash=sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd \ --hash=sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c # via twine -rich==12.5.1 \ - --hash=sha256:2eb4e6894cde1e017976d2975ac210ef515d7548bc595ba20e195fb9628acdeb \ - --hash=sha256:63a5c5ce3673d3d5fbbf23cd87e11ab84b6b451436f1b7f19ec54b6bc36ed7ca +rich==12.6.0 \ + --hash=sha256:a4eb26484f2c82589bd9a17c73d32a010b1e29d89f1604cd9bf3a2097b81bb5e \ + --hash=sha256:ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0 # via twine rsa==4.9 \ --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ @@ -437,9 +466,9 @@ twine==4.0.1 \ --hash=sha256:42026c18e394eac3e06693ee52010baa5313e4811d5a11050e7d48436cf41b9e \ --hash=sha256:96b1cf12f7ae611a4a40b6ae8e9570215daff0611828f5fe1f37a16255ab24a0 # via -r requirements.in -typing-extensions==4.3.0 \ - --hash=sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02 \ - --hash=sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6 +typing-extensions==4.4.0 \ + --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ + --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e # via -r requirements.in urllib3==1.26.12 \ --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ @@ -447,9 +476,9 @@ urllib3==1.26.12 \ # via # requests # twine -virtualenv==20.16.4 \ - --hash=sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782 \ - --hash=sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22 +virtualenv==20.16.6 \ + --hash=sha256:186ca84254abcbde98180fd17092f9628c5fe742273c02724972a1d8a2035108 \ + --hash=sha256:530b850b523c6449406dfba859d6345e48ef19b8439606c5d74d7d3c9e14d76e # via nox webencodings==0.5.1 \ --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ @@ -459,13 +488,13 @@ wheel==0.37.1 \ --hash=sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a \ --hash=sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4 # via -r requirements.in -zipp==3.8.1 \ - --hash=sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2 \ - --hash=sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009 +zipp==3.10.0 \ + --hash=sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1 \ + --hash=sha256:7a7262fd930bd3e36c50b9a64897aec3fafff3dfdeec9623ae22b40e93f99bb8 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -setuptools==65.2.0 \ - --hash=sha256:7f4bc85450898a09f76ebf28b72fa25bc7111f6c7d665d514a60bba9c75ef2a9 \ - --hash=sha256:a3ca5857c89f82f5c9410e8508cb32f4872a3bafd4aa7ae122a24ca33bccc750 +setuptools==65.5.0 \ + --hash=sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17 \ + --hash=sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356 # via -r requirements.in diff --git a/noxfile.py b/noxfile.py index 5f898a7a..35f3976c 100644 --- a/noxfile.py +++ b/noxfile.py @@ -277,7 +277,11 @@ def docs(session): """Build the docs for this library.""" session.install("-e", ".") - session.install("sphinx==4.0.1", "alabaster", "recommonmark") + session.install( + "sphinx==4.0.1", + "alabaster", + "recommonmark", + ) shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) session.run( @@ -300,7 +304,10 @@ def docfx(session): session.install("-e", ".") session.install( - "sphinx==4.0.1", "alabaster", "recommonmark", "gcp-sphinx-docfx-yaml" + "sphinx==4.0.1", + "alabaster", + "recommonmark", + "gcp-sphinx-docfx-yaml", ) shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) From 53c577596c7022dcda4f499fabb37addf6f96214 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 18 Nov 2022 11:48:25 +0000 Subject: [PATCH 07/18] chore(python): update release script dependencies [autoapprove] (#409) Source-Link: https://togithub.com/googleapis/synthtool/commit/25083af347468dd5f90f69627420f7d452b6c50e Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:e6cbd61f1838d9ff6a31436dfc13717f372a7482a82fc1863ca954ec47bff8c8 --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/docs.yml | 4 +-- .github/workflows/lint.yml | 2 +- .github/workflows/unittest.yml | 2 +- .kokoro/docker/docs/Dockerfile | 12 +++---- .kokoro/requirements.in | 4 ++- .kokoro/requirements.txt | 61 ++++++++++++++++++---------------- noxfile.py | 4 +-- 8 files changed, 48 insertions(+), 43 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 12edee77..3f1ccc08 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:452901c74a22f9b9a3bd02bce780b8e8805c97270d424684bff809ce5be8c2a2 + digest: sha256:e6cbd61f1838d9ff6a31436dfc13717f372a7482a82fc1863ca954ec47bff8c8 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7092a139..e97d89e4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -12,7 +12,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.9" - name: Install nox run: | python -m pip install --upgrade setuptools pip wheel @@ -28,7 +28,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.9" - name: Install nox run: | python -m pip install --upgrade setuptools pip wheel diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d2aee5b7..16d5a9e9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -12,7 +12,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.8" - name: Install nox run: | python -m pip install --upgrade setuptools pip wheel diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 87ade4d5..23000c05 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -41,7 +41,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.8" - name: Install coverage run: | python -m pip install --upgrade setuptools pip wheel diff --git a/.kokoro/docker/docs/Dockerfile b/.kokoro/docker/docs/Dockerfile index 238b87b9..f8137d0a 100644 --- a/.kokoro/docker/docs/Dockerfile +++ b/.kokoro/docker/docs/Dockerfile @@ -60,16 +60,16 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* \ && rm -f /var/cache/apt/archives/*.deb -###################### Install python 3.8.11 +###################### Install python 3.9.13 -# Download python 3.8.11 -RUN wget https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tgz +# Download python 3.9.13 +RUN wget https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tgz # Extract files -RUN tar -xvf Python-3.8.11.tgz +RUN tar -xvf Python-3.9.13.tgz -# Install python 3.8.11 -RUN ./Python-3.8.11/configure --enable-optimizations +# Install python 3.9.13 +RUN ./Python-3.9.13/configure --enable-optimizations RUN make altinstall ###################### Install pip diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index 7718391a..cbd7e77f 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -5,4 +5,6 @@ typing-extensions twine wheel setuptools -nox \ No newline at end of file +nox +charset-normalizer<3 +click<8.1.0 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 31425f16..9c1b9be3 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -93,11 +93,14 @@ cffi==1.15.1 \ charset-normalizer==2.1.1 \ --hash=sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845 \ --hash=sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f - # via requests + # via + # -r requirements.in + # requests click==8.0.4 \ --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb # via + # -r requirements.in # gcp-docuploader # gcp-releasetool colorlog==6.7.0 \ @@ -156,9 +159,9 @@ gcp-docuploader==0.6.4 \ --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in -gcp-releasetool==1.9.1 \ - --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ - --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b +gcp-releasetool==1.10.0 \ + --hash=sha256:72a38ca91b59c24f7e699e9227c90cbe4dd71b789383cb0164b088abae294c83 \ + --hash=sha256:8c7c99320208383d4bb2b808c6880eb7a81424afe7cdba3c8d84b25f4f0e097d # via -r requirements.in google-api-core==2.10.2 \ --hash=sha256:10c06f7739fe57781f87523375e8e1a3a4674bf6392cd6131a3222182b971320 \ @@ -166,9 +169,9 @@ google-api-core==2.10.2 \ # via # google-cloud-core # google-cloud-storage -google-auth==2.14.0 \ - --hash=sha256:1ad5b0e6eba5f69645971abb3d2c197537d5914070a8c6d30299dfdb07c5c700 \ - --hash=sha256:cf24817855d874ede2efd071aa22125445f555de1685b739a9782fcf408c2a3d +google-auth==2.14.1 \ + --hash=sha256:ccaa901f31ad5cbb562615eb8b664b3dd0bf5404a67618e642307f00613eda4d \ + --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016 # via # gcp-releasetool # google-api-core @@ -178,9 +181,9 @@ google-cloud-core==2.3.2 \ --hash=sha256:8417acf6466be2fa85123441696c4badda48db314c607cf1e5d543fa8bdc22fe \ --hash=sha256:b9529ee7047fd8d4bf4a2182de619154240df17fbe60ead399078c1ae152af9a # via google-cloud-storage -google-cloud-storage==2.5.0 \ - --hash=sha256:19a26c66c317ce542cea0830b7e787e8dac2588b6bfa4d3fd3b871ba16305ab0 \ - --hash=sha256:382f34b91de2212e3c2e7b40ec079d27ee2e3dbbae99b75b1bcd8c63063ce235 +google-cloud-storage==2.6.0 \ + --hash=sha256:104ca28ae61243b637f2f01455cc8a05e8f15a2a18ced96cb587241cdd3820f5 \ + --hash=sha256:4ad0415ff61abdd8bb2ae81c1f8f7ec7d91a1011613f2db87c614c550f97bfe9 # via gcp-docuploader google-crc32c==1.5.0 \ --hash=sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a \ @@ -256,9 +259,9 @@ google-resumable-media==2.4.0 \ --hash=sha256:2aa004c16d295c8f6c33b2b4788ba59d366677c0a25ae7382436cb30f776deaa \ --hash=sha256:8d5518502f92b9ecc84ac46779bd4f09694ecb3ba38a3e7ca737a86d15cbca1f # via google-cloud-storage -googleapis-common-protos==1.56.4 \ - --hash=sha256:8eb2cbc91b69feaf23e32452a7ae60e791e09967d81d4fcc7fc388182d1bd394 \ - --hash=sha256:c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417 +googleapis-common-protos==1.57.0 \ + --hash=sha256:27a849d6205838fb6cc3c1c21cb9800707a661bb21c6ce7fb13e99eb1f8a0c46 \ + --hash=sha256:a9f4a1d7f6d9809657b7f1316a1aa527f6664891531bcfcc13b6696e685f443c # via google-api-core idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ @@ -269,6 +272,7 @@ importlib-metadata==5.0.0 \ --hash=sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43 # via # -r requirements.in + # keyring # twine jaraco-classes==3.2.3 \ --hash=sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158 \ @@ -284,9 +288,9 @@ jinja2==3.1.2 \ --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 # via gcp-releasetool -keyring==23.9.3 \ - --hash=sha256:69732a15cb1433bdfbc3b980a8a36a04878a6cfd7cb99f497b573f31618001c0 \ - --hash=sha256:69b01dd83c42f590250fe7a1f503fc229b14de83857314b1933a3ddbf595c4a5 +keyring==23.11.0 \ + --hash=sha256:3dd30011d555f1345dec2c262f0153f2f0ca6bca041fb1dc4588349bb4c0ac1e \ + --hash=sha256:ad192263e2cdd5f12875dedc2da13534359a7e760e77f8d04b50968a821c2361 # via # gcp-releasetool # twine @@ -350,9 +354,9 @@ pkginfo==1.8.3 \ --hash=sha256:848865108ec99d4901b2f7e84058b6e7660aae8ae10164e015a6dcf5b242a594 \ --hash=sha256:a84da4318dd86f870a9447a8c98340aa06216bfc6f2b7bdc4b8766984ae1867c # via twine -platformdirs==2.5.2 \ - --hash=sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788 \ - --hash=sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19 +platformdirs==2.5.4 \ + --hash=sha256:1006647646d80f16130f052404c6b901e80ee4ed6bef6792e1f238a8969106f7 \ + --hash=sha256:af0276409f9a02373d540bf8480021a048711d572745aef4b7842dad245eba10 # via virtualenv protobuf==3.20.3 \ --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ @@ -381,7 +385,6 @@ protobuf==3.20.3 \ # gcp-docuploader # gcp-releasetool # google-api-core - # googleapis-common-protos py==1.11.0 \ --hash=sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719 \ --hash=sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378 @@ -476,17 +479,17 @@ urllib3==1.26.12 \ # via # requests # twine -virtualenv==20.16.6 \ - --hash=sha256:186ca84254abcbde98180fd17092f9628c5fe742273c02724972a1d8a2035108 \ - --hash=sha256:530b850b523c6449406dfba859d6345e48ef19b8439606c5d74d7d3c9e14d76e +virtualenv==20.16.7 \ + --hash=sha256:8691e3ff9387f743e00f6bb20f70121f5e4f596cae754531f2b3b3a1b1ac696e \ + --hash=sha256:efd66b00386fdb7dbe4822d172303f40cd05e50e01740b19ea42425cbe653e29 # via nox webencodings==0.5.1 \ --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 # via bleach -wheel==0.37.1 \ - --hash=sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a \ - --hash=sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4 +wheel==0.38.4 \ + --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \ + --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8 # via -r requirements.in zipp==3.10.0 \ --hash=sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1 \ @@ -494,7 +497,7 @@ zipp==3.10.0 \ # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -setuptools==65.5.0 \ - --hash=sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17 \ - --hash=sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356 +setuptools==65.5.1 \ + --hash=sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31 \ + --hash=sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f # via -r requirements.in diff --git a/noxfile.py b/noxfile.py index 35f3976c..d752b54f 100644 --- a/noxfile.py +++ b/noxfile.py @@ -272,7 +272,7 @@ def cover(session): session.run("coverage", "erase") -@nox.session(python=DEFAULT_PYTHON_VERSION) +@nox.session(python="3.9") def docs(session): """Build the docs for this library.""" @@ -298,7 +298,7 @@ def docs(session): ) -@nox.session(python=DEFAULT_PYTHON_VERSION) +@nox.session(python="3.9") def docfx(session): """Build the docfx yaml files for this library.""" From 4a2332fcbcf7db48133e3e5ce130eb1e1b332c0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Nov 2022 16:37:25 -0500 Subject: [PATCH 08/18] chore(deps): bump cryptography (#411) Bumps [cryptography](https://github.com/pyca/cryptography) from 38.0.1 to 38.0.3. - [Release notes](https://github.com/pyca/cryptography/releases) - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/38.0.1...38.0.3) --- updated-dependencies: - dependency-name: cryptography dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/api-client/accesstoken_example/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index 20ea67d3..5e55e9f3 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -1,4 +1,4 @@ -cryptography==38.0.1 +cryptography==38.0.3 flaky==3.7.0 google-api-python-client==2.65.0 google-auth-httplib2==0.1.0 From 4c69fe46d256bd6b97958070f2fa9341ee84c31e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sat, 26 Nov 2022 18:36:35 -0500 Subject: [PATCH 09/18] chore(python): drop flake8-import-order in samples noxfile (#412) Source-Link: https://github.com/googleapis/synthtool/commit/6ed3a831cb9ff69ef8a504c353e098ec0192ad93 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:3abfa0f1886adaf0b83f07cb117b24a639ea1cb9cffe56d43280b977033563eb Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .../api-client/accesstoken_example/noxfile.py | 26 +++---------------- samples/api-client/manager/noxfile.py | 26 +++---------------- samples/api-client/mqtt_example/noxfile.py | 26 +++---------------- 4 files changed, 10 insertions(+), 70 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 3f1ccc08..bb21147e 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:e6cbd61f1838d9ff6a31436dfc13717f372a7482a82fc1863ca954ec47bff8c8 + digest: sha256:3abfa0f1886adaf0b83f07cb117b24a639ea1cb9cffe56d43280b977033563eb diff --git a/samples/api-client/accesstoken_example/noxfile.py b/samples/api-client/accesstoken_example/noxfile.py index a6abf7ae..ed7d0be5 100644 --- a/samples/api-client/accesstoken_example/noxfile.py +++ b/samples/api-client/accesstoken_example/noxfile.py @@ -18,7 +18,7 @@ import os from pathlib import Path import sys -from typing import Callable, Dict, List, Optional +from typing import Callable, Dict, Optional import nox @@ -109,22 +109,6 @@ def get_pytest_env_vars() -> Dict[str, str]: # -def _determine_local_import_names(start_dir: str) -> List[str]: - """Determines all import names that should be considered "local". - - This is used when running the linter to insure that import order is - properly checked. - """ - file_ext_pairs = [os.path.splitext(path) for path in os.listdir(start_dir)] - return [ - basename - for basename, extension in file_ext_pairs - if extension == ".py" - or os.path.isdir(os.path.join(start_dir, basename)) - and basename not in ("__pycache__") - ] - - # Linting with flake8. # # We ignore the following rules: @@ -139,7 +123,6 @@ def _determine_local_import_names(start_dir: str) -> List[str]: "--show-source", "--builtin=gettext", "--max-complexity=20", - "--import-order-style=google", "--exclude=.nox,.cache,env,lib,generated_pb2,*_pb2.py,*_pb2_grpc.py", "--ignore=E121,E123,E126,E203,E226,E24,E266,E501,E704,W503,W504,I202", "--max-line-length=88", @@ -149,14 +132,11 @@ def _determine_local_import_names(start_dir: str) -> List[str]: @nox.session def lint(session: nox.sessions.Session) -> None: if not TEST_CONFIG["enforce_type_hints"]: - session.install("flake8", "flake8-import-order") + session.install("flake8") else: - session.install("flake8", "flake8-import-order", "flake8-annotations") + session.install("flake8", "flake8-annotations") - local_names = _determine_local_import_names(".") args = FLAKE8_COMMON_ARGS + [ - "--application-import-names", - ",".join(local_names), ".", ] session.run("flake8", *args) diff --git a/samples/api-client/manager/noxfile.py b/samples/api-client/manager/noxfile.py index 0398d72f..f5c32b22 100644 --- a/samples/api-client/manager/noxfile.py +++ b/samples/api-client/manager/noxfile.py @@ -18,7 +18,7 @@ import os from pathlib import Path import sys -from typing import Callable, Dict, List, Optional +from typing import Callable, Dict, Optional import nox @@ -109,22 +109,6 @@ def get_pytest_env_vars() -> Dict[str, str]: # -def _determine_local_import_names(start_dir: str) -> List[str]: - """Determines all import names that should be considered "local". - - This is used when running the linter to insure that import order is - properly checked. - """ - file_ext_pairs = [os.path.splitext(path) for path in os.listdir(start_dir)] - return [ - basename - for basename, extension in file_ext_pairs - if extension == ".py" - or os.path.isdir(os.path.join(start_dir, basename)) - and basename not in ("__pycache__") - ] - - # Linting with flake8. # # We ignore the following rules: @@ -139,7 +123,6 @@ def _determine_local_import_names(start_dir: str) -> List[str]: "--show-source", "--builtin=gettext", "--max-complexity=20", - "--import-order-style=google", "--exclude=.nox,.cache,env,lib,generated_pb2,*_pb2.py,*_pb2_grpc.py", "--ignore=E121,E123,E126,E203,E226,E24,E266,E501,E704,W503,W504,I202", "--max-line-length=88", @@ -149,14 +132,11 @@ def _determine_local_import_names(start_dir: str) -> List[str]: @nox.session def lint(session: nox.sessions.Session) -> None: if not TEST_CONFIG["enforce_type_hints"]: - session.install("flake8", "flake8-import-order") + session.install("flake8") else: - session.install("flake8", "flake8-import-order", "flake8-annotations") + session.install("flake8", "flake8-annotations") - local_names = _determine_local_import_names(".") args = FLAKE8_COMMON_ARGS + [ - "--application-import-names", - ",".join(local_names), ".", ] session.run("flake8", *args) diff --git a/samples/api-client/mqtt_example/noxfile.py b/samples/api-client/mqtt_example/noxfile.py index a6abf7ae..ed7d0be5 100644 --- a/samples/api-client/mqtt_example/noxfile.py +++ b/samples/api-client/mqtt_example/noxfile.py @@ -18,7 +18,7 @@ import os from pathlib import Path import sys -from typing import Callable, Dict, List, Optional +from typing import Callable, Dict, Optional import nox @@ -109,22 +109,6 @@ def get_pytest_env_vars() -> Dict[str, str]: # -def _determine_local_import_names(start_dir: str) -> List[str]: - """Determines all import names that should be considered "local". - - This is used when running the linter to insure that import order is - properly checked. - """ - file_ext_pairs = [os.path.splitext(path) for path in os.listdir(start_dir)] - return [ - basename - for basename, extension in file_ext_pairs - if extension == ".py" - or os.path.isdir(os.path.join(start_dir, basename)) - and basename not in ("__pycache__") - ] - - # Linting with flake8. # # We ignore the following rules: @@ -139,7 +123,6 @@ def _determine_local_import_names(start_dir: str) -> List[str]: "--show-source", "--builtin=gettext", "--max-complexity=20", - "--import-order-style=google", "--exclude=.nox,.cache,env,lib,generated_pb2,*_pb2.py,*_pb2_grpc.py", "--ignore=E121,E123,E126,E203,E226,E24,E266,E501,E704,W503,W504,I202", "--max-line-length=88", @@ -149,14 +132,11 @@ def _determine_local_import_names(start_dir: str) -> List[str]: @nox.session def lint(session: nox.sessions.Session) -> None: if not TEST_CONFIG["enforce_type_hints"]: - session.install("flake8", "flake8-import-order") + session.install("flake8") else: - session.install("flake8", "flake8-import-order", "flake8-annotations") + session.install("flake8", "flake8-annotations") - local_names = _determine_local_import_names(".") args = FLAKE8_COMMON_ARGS + [ - "--application-import-names", - ",".join(local_names), ".", ] session.run("flake8", *args) From 1076b439e1500bc5c0cb205a78347d76de15e8e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Nov 2022 18:50:50 -0500 Subject: [PATCH 10/18] chore(deps): bump cryptography in /samples/api-client/manager (#410) Bumps [cryptography](https://github.com/pyca/cryptography) from 38.0.1 to 38.0.3. - [Release notes](https://github.com/pyca/cryptography/releases) - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/38.0.1...38.0.3) --- updated-dependencies: - dependency-name: cryptography dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Anthonios Partheniou --- samples/api-client/manager/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index fda0c2b3..3999578f 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -1,4 +1,4 @@ -cryptography==38.0.1 +cryptography==38.0.3 flaky==3.7.0 google-api-python-client==2.65.0 google-auth-httplib2==0.1.0 From 0768871c0f984d0fa54bcb32bf5b556f02a52707 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sun, 27 Nov 2022 01:05:10 +0100 Subject: [PATCH 11/18] chore(deps): update all dependencies (#407) Co-authored-by: Anthonios Partheniou --- .../api-client/accesstoken_example/requirements-test.txt | 4 ++-- samples/api-client/accesstoken_example/requirements.txt | 8 ++++---- samples/api-client/manager/requirements.txt | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements-test.txt b/samples/api-client/accesstoken_example/requirements-test.txt index 3799ae09..546e0fdc 100644 --- a/samples/api-client/accesstoken_example/requirements-test.txt +++ b/samples/api-client/accesstoken_example/requirements-test.txt @@ -1,3 +1,3 @@ pytest==7.2.0 -google-cloud-pubsub==2.13.10 -google-cloud-storage==2.5.0 +google-cloud-pubsub==2.13.11 +google-cloud-storage==2.6.0 diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index 5e55e9f3..3e5512bb 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -1,10 +1,10 @@ cryptography==38.0.3 flaky==3.7.0 -google-api-python-client==2.65.0 +google-api-python-client==2.66.0 google-auth-httplib2==0.1.0 -google-auth==2.14.0 +google-auth==2.14.1 google-cloud-iot==2.6.4 -google-cloud-pubsub==2.13.10 -google-cloud-storage==2.5.0 +google-cloud-pubsub==2.13.11 +google-cloud-storage==2.6.0 paho-mqtt==1.6.1 pyjwt==2.6.0 diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index 3999578f..37c867d5 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -1,9 +1,9 @@ cryptography==38.0.3 flaky==3.7.0 -google-api-python-client==2.65.0 +google-api-python-client==2.66.0 google-auth-httplib2==0.1.0 -google-auth==2.14.0 +google-auth==2.14.1 google-cloud-iot==2.6.4 -google-cloud-pubsub==2.13.10 +google-cloud-pubsub==2.13.11 paho-mqtt==1.6.1 pyjwt==2.6.0 From 9aa6b22b14ed7afd125895941ea943ceb8c777b2 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sun, 27 Nov 2022 06:43:49 -0500 Subject: [PATCH 12/18] chore: Update gapic-generator-python to v1.6.1 (#402) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: update to gapic-generator-python 1.5.0 feat: add support for `google.cloud..__version__` PiperOrigin-RevId: 484665853 Source-Link: https://github.com/googleapis/googleapis/commit/8eb249a19db926c2fbc4ecf1dc09c0e521a88b22 Source-Link: https://github.com/googleapis/googleapis-gen/commit/c8aa327b5f478865fc3fd91e3c2768e54e26ad44 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzhhYTMyN2I1ZjQ3ODg2NWZjM2ZkOTFlM2MyNzY4ZTU0ZTI2YWQ0NCJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update version in gapic_version.py * add .release-please-manifest.json with correct version * set manifest to true in .github/release-please.yml * add release-please-config.json * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: Update to gapic-generator-python 1.6.0 feat(python): Add typing to proto.Message based class attributes feat(python): Snippetgen handling of repeated enum field PiperOrigin-RevId: 487326846 Source-Link: https://github.com/googleapis/googleapis/commit/da380c77bb87ba0f752baf07605dd1db30e1f7e1 Source-Link: https://github.com/googleapis/googleapis-gen/commit/61ef5762ee6731a0cbbfea22fd0eecee51ab1c8e Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNjFlZjU3NjJlZTY3MzFhMGNiYmZlYTIyZmQwZWVjZWU1MWFiMWM4ZSJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * feat: new APIs added to reflect updates to the filestore service - Add ENTERPRISE Tier - Add snapshot APIs: RevertInstance, ListSnapshots, CreateSnapshot, DeleteSnapshot, UpdateSnapshot - Add multi-share APIs: ListShares, GetShare, CreateShare, DeleteShare, UpdateShare - Add ConnectMode to NetworkConfig (for Private Service Access support) - New status codes (SUSPENDED/SUSPENDING, REVERTING/RESUMING) - Add SuspensionReason (for KMS related suspension) - Add new fields to Instance information: max_capacity_gb, capacity_step_size_gb, max_share_count, capacity_gb, multi_share_enabled PiperOrigin-RevId: 487492758 Source-Link: https://github.com/googleapis/googleapis/commit/5be5981f50322cf0c7388595e0f31ac5d0693469 Source-Link: https://github.com/googleapis/googleapis-gen/commit/ab0e217f560cc2c1afc11441c2eab6b6950efd2b Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYWIwZTIxN2Y1NjBjYzJjMWFmYzExNDQxYzJlYWI2YjY5NTBlZmQyYiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update path to snippet metadata json * chore: Update gapic-generator-python to v1.6.1 PiperOrigin-RevId: 488036204 Source-Link: https://github.com/googleapis/googleapis/commit/08f275f5c1c0d99056e1cb68376323414459ee19 Source-Link: https://github.com/googleapis/googleapis-gen/commit/555c0945e60649e38739ae64bc45719cdf72178f Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNTU1YzA5NDVlNjA2NDllMzg3MzlhZTY0YmM0NTcxOWNkZjcyMTc4ZiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * use templated owlbot.py and setup.py * run nox format session Co-authored-by: Owl Bot Co-authored-by: Anthonios Partheniou --- .github/release-please.yml | 1 + .release-please-manifest.json | 3 + docs/conf.py | 2 +- docs/index.rst | 11 +- docs/iot_v1/types.rst | 1 - google/cloud/iot/__init__.py | 101 ++++---- google/cloud/iot/gapic_version.py | 16 ++ google/cloud/iot_v1/__init__.py | 100 ++++---- .../services/device_manager/__init__.py | 2 +- .../services/device_manager/async_client.py | 227 ++++++++++-------- .../iot_v1/services/device_manager/client.py | 193 ++++++++------- .../iot_v1/services/device_manager/pagers.py | 7 +- .../device_manager/transports/__init__.py | 1 - .../device_manager/transports/base.py | 13 +- .../device_manager/transports/grpc.py | 36 ++- .../device_manager/transports/grpc_asyncio.py | 34 ++- google/cloud/iot_v1/types/__init__.py | 14 +- google/cloud/iot_v1/types/device_manager.py | 113 ++++----- google/cloud/iot_v1/types/resources.py | 122 +++++----- noxfile.py | 1 + owlbot.py | 75 +++--- release-please-config.json | 23 ++ .../accesstoken_example/accesstoken.py | 43 ++-- .../api-client/accesstoken_example/noxfile.py | 18 +- samples/api-client/manager/manager.py | 5 +- samples/api-client/manager/manager_test.py | 2 +- samples/api-client/manager/noxfile.py | 16 +- .../mqtt_example/cloudiot_mqtt_example.py | 24 +- samples/api-client/mqtt_example/noxfile.py | 18 +- ...snippet_metadata_google.cloud.iot.v1.json} | 7 +- scripts/readme-gen/templates/README.tmpl.rst | 4 +- .../templates/install_deps.tmpl.rst | 4 +- setup.py | 43 ++-- testing/constraints-3.10.txt | 7 + testing/constraints-3.11.txt | 7 + testing/constraints-3.7.txt | 4 +- testing/constraints-3.8.txt | 9 +- testing/constraints-3.9.txt | 9 +- .../unit/gapic/iot_v1/test_device_manager.py | 31 ++- 39 files changed, 746 insertions(+), 601 deletions(-) create mode 100644 .release-please-manifest.json create mode 100644 google/cloud/iot/gapic_version.py create mode 100644 release-please-config.json rename samples/generated_samples/{snippet_metadata_iot_v1.json => snippet_metadata_google.cloud.iot.v1.json} (99%) diff --git a/.github/release-please.yml b/.github/release-please.yml index 29601ad4..fe749ff6 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -1,5 +1,6 @@ releaseType: python handleGHRelease: true +manifest: true # NOTE: this section is generated by synthtool.languages.python # See https://github.com/googleapis/synthtool/blob/master/synthtool/languages/python.py branches: diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 00000000..9caa5c14 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "2.6.4" +} diff --git a/docs/conf.py b/docs/conf.py index f82b687a..8d918e31 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -24,9 +24,9 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys import os import shlex +import sys # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the diff --git a/docs/index.rst b/docs/index.rst index a6b052d3..99287648 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -2,7 +2,8 @@ .. include:: multiprocessing.rst -Api Reference + +API Reference ------------- .. toctree:: :maxdepth: 2 @@ -14,12 +15,12 @@ Api Reference Migration Guide --------------- -See the guide below for instructions on migrating to the 2.x release of this library. +See the guide below for instructions on migrating to the latest version. .. toctree:: :maxdepth: 2 - UPGRADING +  UPGRADING Changelog @@ -28,6 +29,6 @@ Changelog For a list of all ``google-cloud-iot`` releases: .. toctree:: - :maxdepth: 2 + :maxdepth: 2 - changelog + changelog diff --git a/docs/iot_v1/types.rst b/docs/iot_v1/types.rst index 05bd7958..94e5a628 100644 --- a/docs/iot_v1/types.rst +++ b/docs/iot_v1/types.rst @@ -3,5 +3,4 @@ Types for Google Cloud Iot v1 API .. automodule:: google.cloud.iot_v1.types :members: - :undoc-members: :show-inheritance: diff --git a/google/cloud/iot/__init__.py b/google/cloud/iot/__init__.py index 38097e1f..6a748387 100644 --- a/google/cloud/iot/__init__.py +++ b/google/cloud/iot/__init__.py @@ -13,57 +13,64 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from google.cloud.iot import gapic_version as package_version + +__version__ = package_version.__version__ + -from google.cloud.iot_v1.services.device_manager.client import DeviceManagerClient from google.cloud.iot_v1.services.device_manager.async_client import ( DeviceManagerAsyncClient, ) - -from google.cloud.iot_v1.types.device_manager import BindDeviceToGatewayRequest -from google.cloud.iot_v1.types.device_manager import BindDeviceToGatewayResponse -from google.cloud.iot_v1.types.device_manager import CreateDeviceRegistryRequest -from google.cloud.iot_v1.types.device_manager import CreateDeviceRequest -from google.cloud.iot_v1.types.device_manager import DeleteDeviceRegistryRequest -from google.cloud.iot_v1.types.device_manager import DeleteDeviceRequest -from google.cloud.iot_v1.types.device_manager import GatewayListOptions -from google.cloud.iot_v1.types.device_manager import GetDeviceRegistryRequest -from google.cloud.iot_v1.types.device_manager import GetDeviceRequest -from google.cloud.iot_v1.types.device_manager import ListDeviceConfigVersionsRequest -from google.cloud.iot_v1.types.device_manager import ListDeviceConfigVersionsResponse -from google.cloud.iot_v1.types.device_manager import ListDeviceRegistriesRequest -from google.cloud.iot_v1.types.device_manager import ListDeviceRegistriesResponse -from google.cloud.iot_v1.types.device_manager import ListDevicesRequest -from google.cloud.iot_v1.types.device_manager import ListDevicesResponse -from google.cloud.iot_v1.types.device_manager import ListDeviceStatesRequest -from google.cloud.iot_v1.types.device_manager import ListDeviceStatesResponse -from google.cloud.iot_v1.types.device_manager import ModifyCloudToDeviceConfigRequest -from google.cloud.iot_v1.types.device_manager import SendCommandToDeviceRequest -from google.cloud.iot_v1.types.device_manager import SendCommandToDeviceResponse -from google.cloud.iot_v1.types.device_manager import UnbindDeviceFromGatewayRequest -from google.cloud.iot_v1.types.device_manager import UnbindDeviceFromGatewayResponse -from google.cloud.iot_v1.types.device_manager import UpdateDeviceRegistryRequest -from google.cloud.iot_v1.types.device_manager import UpdateDeviceRequest -from google.cloud.iot_v1.types.resources import Device -from google.cloud.iot_v1.types.resources import DeviceConfig -from google.cloud.iot_v1.types.resources import DeviceCredential -from google.cloud.iot_v1.types.resources import DeviceRegistry -from google.cloud.iot_v1.types.resources import DeviceState -from google.cloud.iot_v1.types.resources import EventNotificationConfig -from google.cloud.iot_v1.types.resources import GatewayConfig -from google.cloud.iot_v1.types.resources import HttpConfig -from google.cloud.iot_v1.types.resources import MqttConfig -from google.cloud.iot_v1.types.resources import PublicKeyCertificate -from google.cloud.iot_v1.types.resources import PublicKeyCredential -from google.cloud.iot_v1.types.resources import RegistryCredential -from google.cloud.iot_v1.types.resources import StateNotificationConfig -from google.cloud.iot_v1.types.resources import X509CertificateDetails -from google.cloud.iot_v1.types.resources import GatewayAuthMethod -from google.cloud.iot_v1.types.resources import GatewayType -from google.cloud.iot_v1.types.resources import HttpState -from google.cloud.iot_v1.types.resources import LogLevel -from google.cloud.iot_v1.types.resources import MqttState -from google.cloud.iot_v1.types.resources import PublicKeyCertificateFormat -from google.cloud.iot_v1.types.resources import PublicKeyFormat +from google.cloud.iot_v1.services.device_manager.client import DeviceManagerClient +from google.cloud.iot_v1.types.device_manager import ( + BindDeviceToGatewayRequest, + BindDeviceToGatewayResponse, + CreateDeviceRegistryRequest, + CreateDeviceRequest, + DeleteDeviceRegistryRequest, + DeleteDeviceRequest, + GatewayListOptions, + GetDeviceRegistryRequest, + GetDeviceRequest, + ListDeviceConfigVersionsRequest, + ListDeviceConfigVersionsResponse, + ListDeviceRegistriesRequest, + ListDeviceRegistriesResponse, + ListDevicesRequest, + ListDevicesResponse, + ListDeviceStatesRequest, + ListDeviceStatesResponse, + ModifyCloudToDeviceConfigRequest, + SendCommandToDeviceRequest, + SendCommandToDeviceResponse, + UnbindDeviceFromGatewayRequest, + UnbindDeviceFromGatewayResponse, + UpdateDeviceRegistryRequest, + UpdateDeviceRequest, +) +from google.cloud.iot_v1.types.resources import ( + Device, + DeviceConfig, + DeviceCredential, + DeviceRegistry, + DeviceState, + EventNotificationConfig, + GatewayAuthMethod, + GatewayConfig, + GatewayType, + HttpConfig, + HttpState, + LogLevel, + MqttConfig, + MqttState, + PublicKeyCertificate, + PublicKeyCertificateFormat, + PublicKeyCredential, + PublicKeyFormat, + RegistryCredential, + StateNotificationConfig, + X509CertificateDetails, +) __all__ = ( "DeviceManagerClient", diff --git a/google/cloud/iot/gapic_version.py b/google/cloud/iot/gapic_version.py new file mode 100644 index 00000000..0a86a76e --- /dev/null +++ b/google/cloud/iot/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +__version__ = "2.6.4" # {x-release-please-version} diff --git a/google/cloud/iot_v1/__init__.py b/google/cloud/iot_v1/__init__.py index 233482d9..a00b9b27 100644 --- a/google/cloud/iot_v1/__init__.py +++ b/google/cloud/iot_v1/__init__.py @@ -13,55 +13,61 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from google.cloud.iot import gapic_version as package_version -from .services.device_manager import DeviceManagerClient -from .services.device_manager import DeviceManagerAsyncClient +__version__ = package_version.__version__ -from .types.device_manager import BindDeviceToGatewayRequest -from .types.device_manager import BindDeviceToGatewayResponse -from .types.device_manager import CreateDeviceRegistryRequest -from .types.device_manager import CreateDeviceRequest -from .types.device_manager import DeleteDeviceRegistryRequest -from .types.device_manager import DeleteDeviceRequest -from .types.device_manager import GatewayListOptions -from .types.device_manager import GetDeviceRegistryRequest -from .types.device_manager import GetDeviceRequest -from .types.device_manager import ListDeviceConfigVersionsRequest -from .types.device_manager import ListDeviceConfigVersionsResponse -from .types.device_manager import ListDeviceRegistriesRequest -from .types.device_manager import ListDeviceRegistriesResponse -from .types.device_manager import ListDevicesRequest -from .types.device_manager import ListDevicesResponse -from .types.device_manager import ListDeviceStatesRequest -from .types.device_manager import ListDeviceStatesResponse -from .types.device_manager import ModifyCloudToDeviceConfigRequest -from .types.device_manager import SendCommandToDeviceRequest -from .types.device_manager import SendCommandToDeviceResponse -from .types.device_manager import UnbindDeviceFromGatewayRequest -from .types.device_manager import UnbindDeviceFromGatewayResponse -from .types.device_manager import UpdateDeviceRegistryRequest -from .types.device_manager import UpdateDeviceRequest -from .types.resources import Device -from .types.resources import DeviceConfig -from .types.resources import DeviceCredential -from .types.resources import DeviceRegistry -from .types.resources import DeviceState -from .types.resources import EventNotificationConfig -from .types.resources import GatewayConfig -from .types.resources import HttpConfig -from .types.resources import MqttConfig -from .types.resources import PublicKeyCertificate -from .types.resources import PublicKeyCredential -from .types.resources import RegistryCredential -from .types.resources import StateNotificationConfig -from .types.resources import X509CertificateDetails -from .types.resources import GatewayAuthMethod -from .types.resources import GatewayType -from .types.resources import HttpState -from .types.resources import LogLevel -from .types.resources import MqttState -from .types.resources import PublicKeyCertificateFormat -from .types.resources import PublicKeyFormat + +from .services.device_manager import DeviceManagerAsyncClient, DeviceManagerClient +from .types.device_manager import ( + BindDeviceToGatewayRequest, + BindDeviceToGatewayResponse, + CreateDeviceRegistryRequest, + CreateDeviceRequest, + DeleteDeviceRegistryRequest, + DeleteDeviceRequest, + GatewayListOptions, + GetDeviceRegistryRequest, + GetDeviceRequest, + ListDeviceConfigVersionsRequest, + ListDeviceConfigVersionsResponse, + ListDeviceRegistriesRequest, + ListDeviceRegistriesResponse, + ListDevicesRequest, + ListDevicesResponse, + ListDeviceStatesRequest, + ListDeviceStatesResponse, + ModifyCloudToDeviceConfigRequest, + SendCommandToDeviceRequest, + SendCommandToDeviceResponse, + UnbindDeviceFromGatewayRequest, + UnbindDeviceFromGatewayResponse, + UpdateDeviceRegistryRequest, + UpdateDeviceRequest, +) +from .types.resources import ( + Device, + DeviceConfig, + DeviceCredential, + DeviceRegistry, + DeviceState, + EventNotificationConfig, + GatewayAuthMethod, + GatewayConfig, + GatewayType, + HttpConfig, + HttpState, + LogLevel, + MqttConfig, + MqttState, + PublicKeyCertificate, + PublicKeyCertificateFormat, + PublicKeyCredential, + PublicKeyFormat, + RegistryCredential, + StateNotificationConfig, + X509CertificateDetails, +) __all__ = ( "DeviceManagerAsyncClient", diff --git a/google/cloud/iot_v1/services/device_manager/__init__.py b/google/cloud/iot_v1/services/device_manager/__init__.py index a148afd3..847c8522 100644 --- a/google/cloud/iot_v1/services/device_manager/__init__.py +++ b/google/cloud/iot_v1/services/device_manager/__init__.py @@ -13,8 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # -from .client import DeviceManagerClient from .async_client import DeviceManagerAsyncClient +from .client import DeviceManagerClient __all__ = ( "DeviceManagerClient", diff --git a/google/cloud/iot_v1/services/device_manager/async_client.py b/google/cloud/iot_v1/services/device_manager/async_client.py index e8ad7ec1..1ee3878c 100644 --- a/google/cloud/iot_v1/services/device_manager/async_client.py +++ b/google/cloud/iot_v1/services/device_manager/async_client.py @@ -16,32 +16,43 @@ from collections import OrderedDict import functools import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union -import pkg_resources +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, +) -from google.api_core.client_options import ClientOptions from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries +from google.api_core.client_options import ClientOptions from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +import pkg_resources try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] except AttributeError: # pragma: NO COVER OptionalRetry = Union[retries.Retry, object] # type: ignore -from google.cloud.iot_v1.services.device_manager import pagers -from google.cloud.iot_v1.types import device_manager -from google.cloud.iot_v1.types import resources from google.iam.v1 import iam_policy_pb2 # type: ignore from google.iam.v1 import policy_pb2 # type: ignore from google.protobuf import field_mask_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore from google.rpc import status_pb2 # type: ignore -from .transports.base import DeviceManagerTransport, DEFAULT_CLIENT_INFO -from .transports.grpc_asyncio import DeviceManagerGrpcAsyncIOTransport + +from google.cloud.iot_v1.services.device_manager import pagers +from google.cloud.iot_v1.types import device_manager, resources + from .client import DeviceManagerClient +from .transports.base import DEFAULT_CLIENT_INFO, DeviceManagerTransport +from .transports.grpc_asyncio import DeviceManagerGrpcAsyncIOTransport class DeviceManagerAsyncClient: @@ -168,9 +179,9 @@ def transport(self) -> DeviceManagerTransport: def __init__( self, *, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, transport: Union[str, DeviceManagerTransport] = "grpc_asyncio", - client_options: ClientOptions = None, + client_options: Optional[ClientOptions] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the device manager client. @@ -214,12 +225,14 @@ def __init__( async def create_device_registry( self, - request: Union[device_manager.CreateDeviceRegistryRequest, dict] = None, + request: Optional[ + Union[device_manager.CreateDeviceRegistryRequest, dict] + ] = None, *, - parent: str = None, - device_registry: resources.DeviceRegistry = None, + parent: Optional[str] = None, + device_registry: Optional[resources.DeviceRegistry] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Creates a device registry that contains devices. @@ -251,7 +264,7 @@ async def sample_create_device_registry(): print(response) Args: - request (Union[google.cloud.iot_v1.types.CreateDeviceRegistryRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.CreateDeviceRegistryRequest, dict]]): The request object. Request for `CreateDeviceRegistry`. parent (:class:`str`): Required. The project and cloud region where this device @@ -326,11 +339,11 @@ async def sample_create_device_registry(): async def get_device_registry( self, - request: Union[device_manager.GetDeviceRegistryRequest, dict] = None, + request: Optional[Union[device_manager.GetDeviceRegistryRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Gets a device registry configuration. @@ -362,7 +375,7 @@ async def sample_get_device_registry(): print(response) Args: - request (Union[google.cloud.iot_v1.types.GetDeviceRegistryRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.GetDeviceRegistryRequest, dict]]): The request object. Request for `GetDeviceRegistry`. name (:class:`str`): Required. The name of the device registry. For example, @@ -435,12 +448,14 @@ async def sample_get_device_registry(): async def update_device_registry( self, - request: Union[device_manager.UpdateDeviceRegistryRequest, dict] = None, + request: Optional[ + Union[device_manager.UpdateDeviceRegistryRequest, dict] + ] = None, *, - device_registry: resources.DeviceRegistry = None, - update_mask: field_mask_pb2.FieldMask = None, + device_registry: Optional[resources.DeviceRegistry] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Updates a device registry configuration. @@ -471,7 +486,7 @@ async def sample_update_device_registry(): print(response) Args: - request (Union[google.cloud.iot_v1.types.UpdateDeviceRegistryRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.UpdateDeviceRegistryRequest, dict]]): The request object. Request for `UpdateDeviceRegistry`. device_registry (:class:`google.cloud.iot_v1.types.DeviceRegistry`): Required. The new values for the device registry. The @@ -551,11 +566,13 @@ async def sample_update_device_registry(): async def delete_device_registry( self, - request: Union[device_manager.DeleteDeviceRegistryRequest, dict] = None, + request: Optional[ + Union[device_manager.DeleteDeviceRegistryRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: r"""Deletes a device registry configuration. @@ -584,7 +601,7 @@ async def sample_delete_device_registry(): await client.delete_device_registry(request=request) Args: - request (Union[google.cloud.iot_v1.types.DeleteDeviceRegistryRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.DeleteDeviceRegistryRequest, dict]]): The request object. Request for `DeleteDeviceRegistry`. name (:class:`str`): Required. The name of the device registry. For example, @@ -650,11 +667,13 @@ async def sample_delete_device_registry(): async def list_device_registries( self, - request: Union[device_manager.ListDeviceRegistriesRequest, dict] = None, + request: Optional[ + Union[device_manager.ListDeviceRegistriesRequest, dict] + ] = None, *, - parent: str = None, + parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListDeviceRegistriesAsyncPager: r"""Lists device registries. @@ -687,7 +706,7 @@ async def sample_list_device_registries(): print(response) Args: - request (Union[google.cloud.iot_v1.types.ListDeviceRegistriesRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.ListDeviceRegistriesRequest, dict]]): The request object. Request for `ListDeviceRegistries`. parent (:class:`str`): Required. The project and cloud region path. For @@ -774,12 +793,12 @@ async def sample_list_device_registries(): async def create_device( self, - request: Union[device_manager.CreateDeviceRequest, dict] = None, + request: Optional[Union[device_manager.CreateDeviceRequest, dict]] = None, *, - parent: str = None, - device: resources.Device = None, + parent: Optional[str] = None, + device: Optional[resources.Device] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Creates a device in a device registry. @@ -811,7 +830,7 @@ async def sample_create_device(): print(response) Args: - request (Union[google.cloud.iot_v1.types.CreateDeviceRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.CreateDeviceRequest, dict]]): The request object. Request for `CreateDevice`. parent (:class:`str`): Required. The name of the device registry where this @@ -886,11 +905,11 @@ async def sample_create_device(): async def get_device( self, - request: Union[device_manager.GetDeviceRequest, dict] = None, + request: Optional[Union[device_manager.GetDeviceRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Gets details about a device. @@ -922,7 +941,7 @@ async def sample_get_device(): print(response) Args: - request (Union[google.cloud.iot_v1.types.GetDeviceRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.GetDeviceRequest, dict]]): The request object. Request for `GetDevice`. name (:class:`str`): Required. The name of the device. For example, @@ -997,12 +1016,12 @@ async def sample_get_device(): async def update_device( self, - request: Union[device_manager.UpdateDeviceRequest, dict] = None, + request: Optional[Union[device_manager.UpdateDeviceRequest, dict]] = None, *, - device: resources.Device = None, - update_mask: field_mask_pb2.FieldMask = None, + device: Optional[resources.Device] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Updates a device. @@ -1033,7 +1052,7 @@ async def sample_update_device(): print(response) Args: - request (Union[google.cloud.iot_v1.types.UpdateDeviceRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.UpdateDeviceRequest, dict]]): The request object. Request for `UpdateDevice`. device (:class:`google.cloud.iot_v1.types.Device`): Required. The new values for the device. The ``id`` and @@ -1113,11 +1132,11 @@ async def sample_update_device(): async def delete_device( self, - request: Union[device_manager.DeleteDeviceRequest, dict] = None, + request: Optional[Union[device_manager.DeleteDeviceRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: r"""Deletes a device. @@ -1146,7 +1165,7 @@ async def sample_delete_device(): await client.delete_device(request=request) Args: - request (Union[google.cloud.iot_v1.types.DeleteDeviceRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.DeleteDeviceRequest, dict]]): The request object. Request for `DeleteDevice`. name (:class:`str`): Required. The name of the device. For example, @@ -1214,11 +1233,11 @@ async def sample_delete_device(): async def list_devices( self, - request: Union[device_manager.ListDevicesRequest, dict] = None, + request: Optional[Union[device_manager.ListDevicesRequest, dict]] = None, *, - parent: str = None, + parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListDevicesAsyncPager: r"""List devices in a device registry. @@ -1251,7 +1270,7 @@ async def sample_list_devices(): print(response) Args: - request (Union[google.cloud.iot_v1.types.ListDevicesRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.ListDevicesRequest, dict]]): The request object. Request for `ListDevices`. parent (:class:`str`): Required. The device registry path. Required. For @@ -1338,12 +1357,14 @@ async def sample_list_devices(): async def modify_cloud_to_device_config( self, - request: Union[device_manager.ModifyCloudToDeviceConfigRequest, dict] = None, + request: Optional[ + Union[device_manager.ModifyCloudToDeviceConfigRequest, dict] + ] = None, *, - name: str = None, - binary_data: bytes = None, + name: Optional[str] = None, + binary_data: Optional[bytes] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceConfig: r"""Modifies the configuration for the device, which is @@ -1378,7 +1399,7 @@ async def sample_modify_cloud_to_device_config(): print(response) Args: - request (Union[google.cloud.iot_v1.types.ModifyCloudToDeviceConfigRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.ModifyCloudToDeviceConfigRequest, dict]]): The request object. Request for `ModifyCloudToDeviceConfig`. name (:class:`str`): @@ -1466,11 +1487,13 @@ async def sample_modify_cloud_to_device_config(): async def list_device_config_versions( self, - request: Union[device_manager.ListDeviceConfigVersionsRequest, dict] = None, + request: Optional[ + Union[device_manager.ListDeviceConfigVersionsRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.ListDeviceConfigVersionsResponse: r"""Lists the last few versions of the device @@ -1503,7 +1526,7 @@ async def sample_list_device_config_versions(): print(response) Args: - request (Union[google.cloud.iot_v1.types.ListDeviceConfigVersionsRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.ListDeviceConfigVersionsRequest, dict]]): The request object. Request for `ListDeviceConfigVersions`. name (:class:`str`): @@ -1579,11 +1602,11 @@ async def sample_list_device_config_versions(): async def list_device_states( self, - request: Union[device_manager.ListDeviceStatesRequest, dict] = None, + request: Optional[Union[device_manager.ListDeviceStatesRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.ListDeviceStatesResponse: r"""Lists the last few versions of the device state in @@ -1616,7 +1639,7 @@ async def sample_list_device_states(): print(response) Args: - request (Union[google.cloud.iot_v1.types.ListDeviceStatesRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.ListDeviceStatesRequest, dict]]): The request object. Request for `ListDeviceStates`. name (:class:`str`): Required. The name of the device. For example, @@ -1691,11 +1714,11 @@ async def sample_list_device_states(): async def set_iam_policy( self, - request: Union[iam_policy_pb2.SetIamPolicyRequest, dict] = None, + request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None, *, - resource: str = None, + resource: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> policy_pb2.Policy: r"""Sets the access control policy on the specified @@ -1729,7 +1752,7 @@ async def sample_set_iam_policy(): print(response) Args: - request (Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]): + request (Optional[Union[google.iam.v1.iam_policy_pb2.SetIamPolicyRequest, dict]]): The request object. Request message for `SetIamPolicy` method. resource (:class:`str`): @@ -1858,11 +1881,11 @@ async def sample_set_iam_policy(): async def get_iam_policy( self, - request: Union[iam_policy_pb2.GetIamPolicyRequest, dict] = None, + request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None, *, - resource: str = None, + resource: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> policy_pb2.Policy: r"""Gets the access control policy for a resource. @@ -1897,7 +1920,7 @@ async def sample_get_iam_policy(): print(response) Args: - request (Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]): + request (Optional[Union[google.iam.v1.iam_policy_pb2.GetIamPolicyRequest, dict]]): The request object. Request message for `GetIamPolicy` method. resource (:class:`str`): @@ -2026,12 +2049,12 @@ async def sample_get_iam_policy(): async def test_iam_permissions( self, - request: Union[iam_policy_pb2.TestIamPermissionsRequest, dict] = None, + request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None, *, - resource: str = None, - permissions: Sequence[str] = None, + resource: Optional[str] = None, + permissions: Optional[MutableSequence[str]] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> iam_policy_pb2.TestIamPermissionsResponse: r"""Returns permissions that a caller has on the specified resource. @@ -2067,7 +2090,7 @@ async def sample_test_iam_permissions(): print(response) Args: - request (Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]): + request (Optional[Union[google.iam.v1.iam_policy_pb2.TestIamPermissionsRequest, dict]]): The request object. Request message for `TestIamPermissions` method. resource (:class:`str`): @@ -2079,7 +2102,7 @@ async def sample_test_iam_permissions(): This corresponds to the ``resource`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - permissions (:class:`Sequence[str]`): + permissions (:class:`MutableSequence[str]`): The set of permissions to check for the ``resource``. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see `IAM @@ -2145,13 +2168,15 @@ async def sample_test_iam_permissions(): async def send_command_to_device( self, - request: Union[device_manager.SendCommandToDeviceRequest, dict] = None, + request: Optional[ + Union[device_manager.SendCommandToDeviceRequest, dict] + ] = None, *, - name: str = None, - binary_data: bytes = None, - subfolder: str = None, + name: Optional[str] = None, + binary_data: Optional[bytes] = None, + subfolder: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.SendCommandToDeviceResponse: r"""Sends a command to the specified device. In order for a device @@ -2200,7 +2225,7 @@ async def sample_send_command_to_device(): print(response) Args: - request (Union[google.cloud.iot_v1.types.SendCommandToDeviceRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.SendCommandToDeviceRequest, dict]]): The request object. Request for `SendCommandToDevice`. name (:class:`str`): Required. The name of the device. For example, @@ -2303,13 +2328,15 @@ async def sample_send_command_to_device(): async def bind_device_to_gateway( self, - request: Union[device_manager.BindDeviceToGatewayRequest, dict] = None, + request: Optional[ + Union[device_manager.BindDeviceToGatewayRequest, dict] + ] = None, *, - parent: str = None, - gateway_id: str = None, - device_id: str = None, + parent: Optional[str] = None, + gateway_id: Optional[str] = None, + device_id: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.BindDeviceToGatewayResponse: r"""Associates the device with the gateway. @@ -2343,7 +2370,7 @@ async def sample_bind_device_to_gateway(): print(response) Args: - request (Union[google.cloud.iot_v1.types.BindDeviceToGatewayRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.BindDeviceToGatewayRequest, dict]]): The request object. Request for `BindDeviceToGateway`. parent (:class:`str`): Required. The name of the registry. For example, @@ -2425,13 +2452,15 @@ async def sample_bind_device_to_gateway(): async def unbind_device_from_gateway( self, - request: Union[device_manager.UnbindDeviceFromGatewayRequest, dict] = None, + request: Optional[ + Union[device_manager.UnbindDeviceFromGatewayRequest, dict] + ] = None, *, - parent: str = None, - gateway_id: str = None, - device_id: str = None, + parent: Optional[str] = None, + gateway_id: Optional[str] = None, + device_id: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.UnbindDeviceFromGatewayResponse: r"""Deletes the association between the device and the @@ -2466,7 +2495,7 @@ async def sample_unbind_device_from_gateway(): print(response) Args: - request (Union[google.cloud.iot_v1.types.UnbindDeviceFromGatewayRequest, dict]): + request (Optional[Union[google.cloud.iot_v1.types.UnbindDeviceFromGatewayRequest, dict]]): The request object. Request for `UnbindDeviceFromGateway`. parent (:class:`str`): diff --git a/google/cloud/iot_v1/services/device_manager/client.py b/google/cloud/iot_v1/services/device_manager/client.py index d9a68092..07b3fd63 100644 --- a/google/cloud/iot_v1/services/device_manager/client.py +++ b/google/cloud/iot_v1/services/device_manager/client.py @@ -16,33 +16,45 @@ from collections import OrderedDict import os import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union -import pkg_resources +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) from google.api_core import client_options as client_options_lib from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries from google.auth import credentials as ga_credentials # type: ignore +from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.auth.transport import mtls # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore -from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.oauth2 import service_account # type: ignore +import pkg_resources try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] except AttributeError: # pragma: NO COVER OptionalRetry = Union[retries.Retry, object] # type: ignore -from google.cloud.iot_v1.services.device_manager import pagers -from google.cloud.iot_v1.types import device_manager -from google.cloud.iot_v1.types import resources from google.iam.v1 import iam_policy_pb2 # type: ignore from google.iam.v1 import policy_pb2 # type: ignore from google.protobuf import field_mask_pb2 # type: ignore from google.protobuf import timestamp_pb2 # type: ignore from google.rpc import status_pb2 # type: ignore -from .transports.base import DeviceManagerTransport, DEFAULT_CLIENT_INFO + +from google.cloud.iot_v1.services.device_manager import pagers +from google.cloud.iot_v1.types import device_manager, resources + +from .transports.base import DEFAULT_CLIENT_INFO, DeviceManagerTransport from .transports.grpc import DeviceManagerGrpcTransport from .transports.grpc_asyncio import DeviceManagerGrpcAsyncIOTransport @@ -61,7 +73,7 @@ class DeviceManagerClientMeta(type): def get_transport_class( cls, - label: str = None, + label: Optional[str] = None, ) -> Type[DeviceManagerTransport]: """Returns an appropriate transport class. @@ -362,8 +374,8 @@ def __init__( self, *, credentials: Optional[ga_credentials.Credentials] = None, - transport: Union[str, DeviceManagerTransport, None] = None, - client_options: Optional[client_options_lib.ClientOptions] = None, + transport: Optional[Union[str, DeviceManagerTransport]] = None, + client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the device manager client. @@ -377,7 +389,7 @@ def __init__( transport (Union[str, DeviceManagerTransport]): The transport to use. If set to None, a transport is chosen automatically. - client_options (google.api_core.client_options.ClientOptions): Custom options for the + client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the client. It won't take effect if a ``transport`` instance is provided. (1) The ``api_endpoint`` property can be used to override the default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT @@ -407,6 +419,7 @@ def __init__( client_options = client_options_lib.from_dict(client_options) if client_options is None: client_options = client_options_lib.ClientOptions() + client_options = cast(client_options_lib.ClientOptions, client_options) api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source( client_options @@ -459,12 +472,14 @@ def __init__( def create_device_registry( self, - request: Union[device_manager.CreateDeviceRegistryRequest, dict] = None, + request: Optional[ + Union[device_manager.CreateDeviceRegistryRequest, dict] + ] = None, *, - parent: str = None, - device_registry: resources.DeviceRegistry = None, + parent: Optional[str] = None, + device_registry: Optional[resources.DeviceRegistry] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Creates a device registry that contains devices. @@ -571,11 +586,11 @@ def sample_create_device_registry(): def get_device_registry( self, - request: Union[device_manager.GetDeviceRegistryRequest, dict] = None, + request: Optional[Union[device_manager.GetDeviceRegistryRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Gets a device registry configuration. @@ -670,12 +685,14 @@ def sample_get_device_registry(): def update_device_registry( self, - request: Union[device_manager.UpdateDeviceRegistryRequest, dict] = None, + request: Optional[ + Union[device_manager.UpdateDeviceRegistryRequest, dict] + ] = None, *, - device_registry: resources.DeviceRegistry = None, - update_mask: field_mask_pb2.FieldMask = None, + device_registry: Optional[resources.DeviceRegistry] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Updates a device registry configuration. @@ -786,11 +803,13 @@ def sample_update_device_registry(): def delete_device_registry( self, - request: Union[device_manager.DeleteDeviceRegistryRequest, dict] = None, + request: Optional[ + Union[device_manager.DeleteDeviceRegistryRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: r"""Deletes a device registry configuration. @@ -875,11 +894,13 @@ def sample_delete_device_registry(): def list_device_registries( self, - request: Union[device_manager.ListDeviceRegistriesRequest, dict] = None, + request: Optional[ + Union[device_manager.ListDeviceRegistriesRequest, dict] + ] = None, *, - parent: str = None, + parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListDeviceRegistriesPager: r"""Lists device registries. @@ -989,12 +1010,12 @@ def sample_list_device_registries(): def create_device( self, - request: Union[device_manager.CreateDeviceRequest, dict] = None, + request: Optional[Union[device_manager.CreateDeviceRequest, dict]] = None, *, - parent: str = None, - device: resources.Device = None, + parent: Optional[str] = None, + device: Optional[resources.Device] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Creates a device in a device registry. @@ -1101,11 +1122,11 @@ def sample_create_device(): def get_device( self, - request: Union[device_manager.GetDeviceRequest, dict] = None, + request: Optional[Union[device_manager.GetDeviceRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Gets details about a device. @@ -1202,12 +1223,12 @@ def sample_get_device(): def update_device( self, - request: Union[device_manager.UpdateDeviceRequest, dict] = None, + request: Optional[Union[device_manager.UpdateDeviceRequest, dict]] = None, *, - device: resources.Device = None, - update_mask: field_mask_pb2.FieldMask = None, + device: Optional[resources.Device] = None, + update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Updates a device. @@ -1318,11 +1339,11 @@ def sample_update_device(): def delete_device( self, - request: Union[device_manager.DeleteDeviceRequest, dict] = None, + request: Optional[Union[device_manager.DeleteDeviceRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> None: r"""Deletes a device. @@ -1409,11 +1430,11 @@ def sample_delete_device(): def list_devices( self, - request: Union[device_manager.ListDevicesRequest, dict] = None, + request: Optional[Union[device_manager.ListDevicesRequest, dict]] = None, *, - parent: str = None, + parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListDevicesPager: r"""List devices in a device registry. @@ -1523,12 +1544,14 @@ def sample_list_devices(): def modify_cloud_to_device_config( self, - request: Union[device_manager.ModifyCloudToDeviceConfigRequest, dict] = None, + request: Optional[ + Union[device_manager.ModifyCloudToDeviceConfigRequest, dict] + ] = None, *, - name: str = None, - binary_data: bytes = None, + name: Optional[str] = None, + binary_data: Optional[bytes] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceConfig: r"""Modifies the configuration for the device, which is @@ -1642,11 +1665,13 @@ def sample_modify_cloud_to_device_config(): def list_device_config_versions( self, - request: Union[device_manager.ListDeviceConfigVersionsRequest, dict] = None, + request: Optional[ + Union[device_manager.ListDeviceConfigVersionsRequest, dict] + ] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.ListDeviceConfigVersionsResponse: r"""Lists the last few versions of the device @@ -1747,11 +1772,11 @@ def sample_list_device_config_versions(): def list_device_states( self, - request: Union[device_manager.ListDeviceStatesRequest, dict] = None, + request: Optional[Union[device_manager.ListDeviceStatesRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.ListDeviceStatesResponse: r"""Lists the last few versions of the device state in @@ -1849,11 +1874,11 @@ def sample_list_device_states(): def set_iam_policy( self, - request: Union[iam_policy_pb2.SetIamPolicyRequest, dict] = None, + request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None, *, - resource: str = None, + resource: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> policy_pb2.Policy: r"""Sets the access control policy on the specified @@ -2013,11 +2038,11 @@ def sample_set_iam_policy(): def get_iam_policy( self, - request: Union[iam_policy_pb2.GetIamPolicyRequest, dict] = None, + request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None, *, - resource: str = None, + resource: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> policy_pb2.Policy: r"""Gets the access control policy for a resource. @@ -2178,12 +2203,12 @@ def sample_get_iam_policy(): def test_iam_permissions( self, - request: Union[iam_policy_pb2.TestIamPermissionsRequest, dict] = None, + request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None, *, - resource: str = None, - permissions: Sequence[str] = None, + resource: Optional[str] = None, + permissions: Optional[MutableSequence[str]] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> iam_policy_pb2.TestIamPermissionsResponse: r"""Returns permissions that a caller has on the specified resource. @@ -2231,7 +2256,7 @@ def sample_test_iam_permissions(): This corresponds to the ``resource`` field on the ``request`` instance; if ``request`` is provided, this should not be set. - permissions (Sequence[str]): + permissions (MutableSequence[str]): The set of permissions to check for the ``resource``. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see `IAM @@ -2295,13 +2320,15 @@ def sample_test_iam_permissions(): def send_command_to_device( self, - request: Union[device_manager.SendCommandToDeviceRequest, dict] = None, + request: Optional[ + Union[device_manager.SendCommandToDeviceRequest, dict] + ] = None, *, - name: str = None, - binary_data: bytes = None, - subfolder: str = None, + name: Optional[str] = None, + binary_data: Optional[bytes] = None, + subfolder: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.SendCommandToDeviceResponse: r"""Sends a command to the specified device. In order for a device @@ -2442,13 +2469,15 @@ def sample_send_command_to_device(): def bind_device_to_gateway( self, - request: Union[device_manager.BindDeviceToGatewayRequest, dict] = None, + request: Optional[ + Union[device_manager.BindDeviceToGatewayRequest, dict] + ] = None, *, - parent: str = None, - gateway_id: str = None, - device_id: str = None, + parent: Optional[str] = None, + gateway_id: Optional[str] = None, + device_id: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.BindDeviceToGatewayResponse: r"""Associates the device with the gateway. @@ -2564,13 +2593,15 @@ def sample_bind_device_to_gateway(): def unbind_device_from_gateway( self, - request: Union[device_manager.UnbindDeviceFromGatewayRequest, dict] = None, + request: Optional[ + Union[device_manager.UnbindDeviceFromGatewayRequest, dict] + ] = None, *, - parent: str = None, - gateway_id: str = None, - device_id: str = None, + parent: Optional[str] = None, + gateway_id: Optional[str] = None, + device_id: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.UnbindDeviceFromGatewayResponse: r"""Deletes the association between the device and the diff --git a/google/cloud/iot_v1/services/device_manager/pagers.py b/google/cloud/iot_v1/services/device_manager/pagers.py index 319f54d6..cb494f6f 100644 --- a/google/cloud/iot_v1/services/device_manager/pagers.py +++ b/google/cloud/iot_v1/services/device_manager/pagers.py @@ -18,14 +18,13 @@ AsyncIterator, Awaitable, Callable, + Iterator, + Optional, Sequence, Tuple, - Optional, - Iterator, ) -from google.cloud.iot_v1.types import device_manager -from google.cloud.iot_v1.types import resources +from google.cloud.iot_v1.types import device_manager, resources class ListDeviceRegistriesPager: diff --git a/google/cloud/iot_v1/services/device_manager/transports/__init__.py b/google/cloud/iot_v1/services/device_manager/transports/__init__.py index ae107a58..897cc068 100644 --- a/google/cloud/iot_v1/services/device_manager/transports/__init__.py +++ b/google/cloud/iot_v1/services/device_manager/transports/__init__.py @@ -20,7 +20,6 @@ from .grpc import DeviceManagerGrpcTransport from .grpc_asyncio import DeviceManagerGrpcAsyncIOTransport - # Compile a registry of transports. _transport_registry = OrderedDict() # type: Dict[str, Type[DeviceManagerTransport]] _transport_registry["grpc"] = DeviceManagerGrpcTransport diff --git a/google/cloud/iot_v1/services/device_manager/transports/base.py b/google/cloud/iot_v1/services/device_manager/transports/base.py index ee1161f1..872d258e 100644 --- a/google/cloud/iot_v1/services/device_manager/transports/base.py +++ b/google/cloud/iot_v1/services/device_manager/transports/base.py @@ -15,21 +15,20 @@ # import abc from typing import Awaitable, Callable, Dict, Optional, Sequence, Union -import pkg_resources -import google.auth # type: ignore import google.api_core from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries +import google.auth # type: ignore from google.auth import credentials as ga_credentials # type: ignore -from google.oauth2 import service_account # type: ignore - -from google.cloud.iot_v1.types import device_manager -from google.cloud.iot_v1.types import resources from google.iam.v1 import iam_policy_pb2 # type: ignore from google.iam.v1 import policy_pb2 # type: ignore +from google.oauth2 import service_account # type: ignore from google.protobuf import empty_pb2 # type: ignore +import pkg_resources + +from google.cloud.iot_v1.types import device_manager, resources try: DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( @@ -55,7 +54,7 @@ def __init__( self, *, host: str = DEFAULT_HOST, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, diff --git a/google/cloud/iot_v1/services/device_manager/transports/grpc.py b/google/cloud/iot_v1/services/device_manager/transports/grpc.py index 10e7b8a1..a6391128 100644 --- a/google/cloud/iot_v1/services/device_manager/transports/grpc.py +++ b/google/cloud/iot_v1/services/device_manager/transports/grpc.py @@ -13,23 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import warnings from typing import Callable, Dict, Optional, Sequence, Tuple, Union +import warnings -from google.api_core import grpc_helpers -from google.api_core import gapic_v1 +from google.api_core import gapic_v1, grpc_helpers import google.auth # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore - -import grpc # type: ignore - -from google.cloud.iot_v1.types import device_manager -from google.cloud.iot_v1.types import resources from google.iam.v1 import iam_policy_pb2 # type: ignore from google.iam.v1 import policy_pb2 # type: ignore from google.protobuf import empty_pb2 # type: ignore -from .base import DeviceManagerTransport, DEFAULT_CLIENT_INFO +import grpc # type: ignore + +from google.cloud.iot_v1.types import device_manager, resources + +from .base import DEFAULT_CLIENT_INFO, DeviceManagerTransport class DeviceManagerGrpcTransport(DeviceManagerTransport): @@ -52,14 +50,14 @@ def __init__( self, *, host: str = "cloudiot.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, - scopes: Sequence[str] = None, - channel: grpc.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[grpc.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, @@ -186,8 +184,8 @@ def __init__( def create_channel( cls, host: str = "cloudiot.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, **kwargs, diff --git a/google/cloud/iot_v1/services/device_manager/transports/grpc_asyncio.py b/google/cloud/iot_v1/services/device_manager/transports/grpc_asyncio.py index 8426ea0e..82eaded8 100644 --- a/google/cloud/iot_v1/services/device_manager/transports/grpc_asyncio.py +++ b/google/cloud/iot_v1/services/device_manager/transports/grpc_asyncio.py @@ -13,23 +13,21 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import warnings from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union +import warnings -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers_async +from google.api_core import gapic_v1, grpc_helpers_async from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore - -import grpc # type: ignore -from grpc.experimental import aio # type: ignore - -from google.cloud.iot_v1.types import device_manager -from google.cloud.iot_v1.types import resources from google.iam.v1 import iam_policy_pb2 # type: ignore from google.iam.v1 import policy_pb2 # type: ignore from google.protobuf import empty_pb2 # type: ignore -from .base import DeviceManagerTransport, DEFAULT_CLIENT_INFO +import grpc # type: ignore +from grpc.experimental import aio # type: ignore + +from google.cloud.iot_v1.types import device_manager, resources + +from .base import DEFAULT_CLIENT_INFO, DeviceManagerTransport from .grpc import DeviceManagerGrpcTransport @@ -54,7 +52,7 @@ class DeviceManagerGrpcAsyncIOTransport(DeviceManagerTransport): def create_channel( cls, host: str = "cloudiot.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, @@ -97,15 +95,15 @@ def __init__( self, *, host: str = "cloudiot.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, - channel: aio.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, - quota_project_id=None, + channel: Optional[aio.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, api_audience: Optional[str] = None, diff --git a/google/cloud/iot_v1/types/__init__.py b/google/cloud/iot_v1/types/__init__.py index 351ef7b5..eb012972 100644 --- a/google/cloud/iot_v1/types/__init__.py +++ b/google/cloud/iot_v1/types/__init__.py @@ -46,21 +46,21 @@ DeviceRegistry, DeviceState, EventNotificationConfig, + GatewayAuthMethod, GatewayConfig, + GatewayType, HttpConfig, + HttpState, + LogLevel, MqttConfig, + MqttState, PublicKeyCertificate, + PublicKeyCertificateFormat, PublicKeyCredential, + PublicKeyFormat, RegistryCredential, StateNotificationConfig, X509CertificateDetails, - GatewayAuthMethod, - GatewayType, - HttpState, - LogLevel, - MqttState, - PublicKeyCertificateFormat, - PublicKeyFormat, ) __all__ = ( diff --git a/google/cloud/iot_v1/types/device_manager.py b/google/cloud/iot_v1/types/device_manager.py index 579198cd..d5876ad2 100644 --- a/google/cloud/iot_v1/types/device_manager.py +++ b/google/cloud/iot_v1/types/device_manager.py @@ -13,11 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import proto # type: ignore +from typing import MutableMapping, MutableSequence -from google.cloud.iot_v1.types import resources from google.protobuf import field_mask_pb2 # type: ignore +import proto # type: ignore +from google.cloud.iot_v1.types import resources __protobuf__ = proto.module( package="google.cloud.iot.v1", @@ -64,11 +65,11 @@ class CreateDeviceRegistryRequest(proto.Message): registry ``id`` provided and the ``parent`` field. """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - device_registry = proto.Field( + device_registry: resources.DeviceRegistry = proto.Field( proto.MESSAGE, number=2, message=resources.DeviceRegistry, @@ -84,7 +85,7 @@ class GetDeviceRegistryRequest(proto.Message): ``projects/example-project/locations/us-central1/registries/my-registry``. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -99,7 +100,7 @@ class DeleteDeviceRegistryRequest(proto.Message): ``projects/example-project/locations/us-central1/registries/my-registry``. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -123,12 +124,12 @@ class UpdateDeviceRegistryRequest(proto.Message): ``mqtt_config``, and ``state_notification_config``. """ - device_registry = proto.Field( + device_registry: resources.DeviceRegistry = proto.Field( proto.MESSAGE, number=1, message=resources.DeviceRegistry, ) - update_mask = proto.Field( + update_mask: field_mask_pb2.FieldMask = proto.Field( proto.MESSAGE, number=2, message=field_mask_pb2.FieldMask, @@ -155,15 +156,15 @@ class ListDeviceRegistriesRequest(proto.Message): the system should return the next page of data. """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - page_size = proto.Field( + page_size: int = proto.Field( proto.INT32, number=2, ) - page_token = proto.Field( + page_token: str = proto.Field( proto.STRING, number=3, ) @@ -173,7 +174,7 @@ class ListDeviceRegistriesResponse(proto.Message): r"""Response for ``ListDeviceRegistries``. Attributes: - device_registries (Sequence[google.cloud.iot_v1.types.DeviceRegistry]): + device_registries (MutableSequence[google.cloud.iot_v1.types.DeviceRegistry]): The registries that matched the query. next_page_token (str): If not empty, indicates that there may be more registries @@ -185,12 +186,12 @@ class ListDeviceRegistriesResponse(proto.Message): def raw_page(self): return self - device_registries = proto.RepeatedField( + device_registries: MutableSequence[resources.DeviceRegistry] = proto.RepeatedField( proto.MESSAGE, number=1, message=resources.DeviceRegistry, ) - next_page_token = proto.Field( + next_page_token: str = proto.Field( proto.STRING, number=2, ) @@ -210,11 +211,11 @@ class CreateDeviceRequest(proto.Message): the device registry ``id`` and the ``parent`` field. """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - device = proto.Field( + device: resources.Device = proto.Field( proto.MESSAGE, number=2, message=resources.Device, @@ -237,11 +238,11 @@ class GetDeviceRequest(proto.Message): format, for example: ``last_heartbeat_time``. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - field_mask = proto.Field( + field_mask: field_mask_pb2.FieldMask = proto.Field( proto.MESSAGE, number=2, message=field_mask_pb2.FieldMask, @@ -266,12 +267,12 @@ class UpdateDeviceRequest(proto.Message): ``metadata`` """ - device = proto.Field( + device: resources.Device = proto.Field( proto.MESSAGE, number=2, message=resources.Device, ) - update_mask = proto.Field( + update_mask: field_mask_pb2.FieldMask = proto.Field( proto.MESSAGE, number=3, message=field_mask_pb2.FieldMask, @@ -289,7 +290,7 @@ class DeleteDeviceRequest(proto.Message): ``projects/p0/locations/us-central1/registries/registry0/devices/{num_id}``. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -302,10 +303,10 @@ class ListDevicesRequest(proto.Message): parent (str): Required. The device registry path. Required. For example, ``projects/my-project/locations/us-central1/registries/my-registry``. - device_num_ids (Sequence[int]): + device_num_ids (MutableSequence[int]): A list of device numeric IDs. If empty, this field is ignored. Maximum IDs: 10,000. - device_ids (Sequence[str]): + device_ids (MutableSequence[str]): A list of device string IDs. For example, ``['device0', 'device12']``. If empty, this field is ignored. Maximum IDs: 10,000 @@ -329,33 +330,33 @@ class ListDevicesRequest(proto.Message): page of data. """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - device_num_ids = proto.RepeatedField( + device_num_ids: MutableSequence[int] = proto.RepeatedField( proto.UINT64, number=2, ) - device_ids = proto.RepeatedField( + device_ids: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=3, ) - field_mask = proto.Field( + field_mask: field_mask_pb2.FieldMask = proto.Field( proto.MESSAGE, number=4, message=field_mask_pb2.FieldMask, ) - gateway_list_options = proto.Field( + gateway_list_options: "GatewayListOptions" = proto.Field( proto.MESSAGE, number=6, message="GatewayListOptions", ) - page_size = proto.Field( + page_size: int = proto.Field( proto.INT32, number=100, ) - page_token = proto.Field( + page_token: str = proto.Field( proto.STRING, number=101, ) @@ -398,18 +399,18 @@ class GatewayListOptions(proto.Message): This field is a member of `oneof`_ ``filter``. """ - gateway_type = proto.Field( + gateway_type: resources.GatewayType = proto.Field( proto.ENUM, number=1, oneof="filter", enum=resources.GatewayType, ) - associations_gateway_id = proto.Field( + associations_gateway_id: str = proto.Field( proto.STRING, number=2, oneof="filter", ) - associations_device_id = proto.Field( + associations_device_id: str = proto.Field( proto.STRING, number=3, oneof="filter", @@ -420,7 +421,7 @@ class ListDevicesResponse(proto.Message): r"""Response for ``ListDevices``. Attributes: - devices (Sequence[google.cloud.iot_v1.types.Device]): + devices (MutableSequence[google.cloud.iot_v1.types.Device]): The devices that match the request. next_page_token (str): If not empty, indicates that there may be more devices that @@ -432,12 +433,12 @@ class ListDevicesResponse(proto.Message): def raw_page(self): return self - devices = proto.RepeatedField( + devices: MutableSequence[resources.Device] = proto.RepeatedField( proto.MESSAGE, number=1, message=resources.Device, ) - next_page_token = proto.Field( + next_page_token: str = proto.Field( proto.STRING, number=2, ) @@ -466,15 +467,15 @@ class ModifyCloudToDeviceConfigRequest(proto.Message): device. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - version_to_update = proto.Field( + version_to_update: int = proto.Field( proto.INT64, number=2, ) - binary_data = proto.Field( + binary_data: bytes = proto.Field( proto.BYTES, number=3, ) @@ -497,11 +498,11 @@ class ListDeviceConfigVersionsRequest(proto.Message): the versions available. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - num_versions = proto.Field( + num_versions: int = proto.Field( proto.INT32, number=2, ) @@ -511,13 +512,13 @@ class ListDeviceConfigVersionsResponse(proto.Message): r"""Response for ``ListDeviceConfigVersions``. Attributes: - device_configs (Sequence[google.cloud.iot_v1.types.DeviceConfig]): + device_configs (MutableSequence[google.cloud.iot_v1.types.DeviceConfig]): The device configuration for the last few versions. Versions are listed in decreasing order, starting from the most recent one. """ - device_configs = proto.RepeatedField( + device_configs: MutableSequence[resources.DeviceConfig] = proto.RepeatedField( proto.MESSAGE, number=1, message=resources.DeviceConfig, @@ -541,11 +542,11 @@ class ListDeviceStatesRequest(proto.Message): available. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - num_states = proto.Field( + num_states: int = proto.Field( proto.INT32, number=2, ) @@ -555,13 +556,13 @@ class ListDeviceStatesResponse(proto.Message): r"""Response for ``ListDeviceStates``. Attributes: - device_states (Sequence[google.cloud.iot_v1.types.DeviceState]): + device_states (MutableSequence[google.cloud.iot_v1.types.DeviceState]): The last few device states. States are listed in descending order of server update time, starting from the most recent one. """ - device_states = proto.RepeatedField( + device_states: MutableSequence[resources.DeviceState] = proto.RepeatedField( proto.MESSAGE, number=1, message=resources.DeviceState, @@ -592,15 +593,15 @@ class SendCommandToDeviceRequest(proto.Message): null characters. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - binary_data = proto.Field( + binary_data: bytes = proto.Field( proto.BYTES, number=2, ) - subfolder = proto.Field( + subfolder: str = proto.Field( proto.STRING, number=3, ) @@ -626,15 +627,15 @@ class BindDeviceToGatewayRequest(proto.Message): numeric ID or the user-defined device identifier. """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - gateway_id = proto.Field( + gateway_id: str = proto.Field( proto.STRING, number=2, ) - device_id = proto.Field( + device_id: str = proto.Field( proto.STRING, number=3, ) @@ -660,15 +661,15 @@ class UnbindDeviceFromGatewayRequest(proto.Message): numeric ID or the user-defined device identifier. """ - parent = proto.Field( + parent: str = proto.Field( proto.STRING, number=1, ) - gateway_id = proto.Field( + gateway_id: str = proto.Field( proto.STRING, number=2, ) - device_id = proto.Field( + device_id: str = proto.Field( proto.STRING, number=3, ) diff --git a/google/cloud/iot_v1/types/resources.py b/google/cloud/iot_v1/types/resources.py index 4637c7f3..ec88c18d 100644 --- a/google/cloud/iot_v1/types/resources.py +++ b/google/cloud/iot_v1/types/resources.py @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import proto # type: ignore +from typing import MutableMapping, MutableSequence from google.protobuf import timestamp_pb2 # type: ignore from google.rpc import status_pb2 # type: ignore - +import proto # type: ignore __protobuf__ = proto.module( package="google.cloud.iot.v1", @@ -132,7 +132,7 @@ class Device(proto.Message): [Output only] A server-defined unique numeric ID for the device. This is a more compact way to identify devices, and it is globally unique. - credentials (Sequence[google.cloud.iot_v1.types.DeviceCredential]): + credentials (MutableSequence[google.cloud.iot_v1.types.DeviceCredential]): The credentials used to authenticate this device. To allow credential rotation without interruption, multiple device credentials can be bound to this device. No more than 3 @@ -195,7 +195,7 @@ class Device(proto.Message): The logging verbosity for device activity. If unspecified, DeviceRegistry.log_level will be used. - metadata (Mapping[str, str]): + metadata (MutableMapping[str, str]): The metadata key-value pairs assigned to the device. This metadata is not interpreted or indexed by Cloud IoT Core. It can be used to add contextual information for the device. @@ -213,83 +213,83 @@ class Device(proto.Message): Gateway-related configuration and state. """ - id = proto.Field( + id: str = proto.Field( proto.STRING, number=1, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=2, ) - num_id = proto.Field( + num_id: int = proto.Field( proto.UINT64, number=3, ) - credentials = proto.RepeatedField( + credentials: MutableSequence["DeviceCredential"] = proto.RepeatedField( proto.MESSAGE, number=12, message="DeviceCredential", ) - last_heartbeat_time = proto.Field( + last_heartbeat_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=7, message=timestamp_pb2.Timestamp, ) - last_event_time = proto.Field( + last_event_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=8, message=timestamp_pb2.Timestamp, ) - last_state_time = proto.Field( + last_state_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=20, message=timestamp_pb2.Timestamp, ) - last_config_ack_time = proto.Field( + last_config_ack_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=14, message=timestamp_pb2.Timestamp, ) - last_config_send_time = proto.Field( + last_config_send_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=18, message=timestamp_pb2.Timestamp, ) - blocked = proto.Field( + blocked: bool = proto.Field( proto.BOOL, number=19, ) - last_error_time = proto.Field( + last_error_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=10, message=timestamp_pb2.Timestamp, ) - last_error_status = proto.Field( + last_error_status: status_pb2.Status = proto.Field( proto.MESSAGE, number=11, message=status_pb2.Status, ) - config = proto.Field( + config: "DeviceConfig" = proto.Field( proto.MESSAGE, number=13, message="DeviceConfig", ) - state = proto.Field( + state: "DeviceState" = proto.Field( proto.MESSAGE, number=16, message="DeviceState", ) - log_level = proto.Field( + log_level: "LogLevel" = proto.Field( proto.ENUM, number=21, enum="LogLevel", ) - metadata = proto.MapField( + metadata: MutableMapping[str, str] = proto.MapField( proto.STRING, proto.STRING, number=17, ) - gateway_config = proto.Field( + gateway_config: "GatewayConfig" = proto.Field( proto.MESSAGE, number=24, message="GatewayConfig", @@ -313,21 +313,21 @@ class GatewayConfig(proto.Message): accessed the gateway specified in ``last_accessed_gateway``. """ - gateway_type = proto.Field( + gateway_type: "GatewayType" = proto.Field( proto.ENUM, number=1, enum="GatewayType", ) - gateway_auth_method = proto.Field( + gateway_auth_method: "GatewayAuthMethod" = proto.Field( proto.ENUM, number=2, enum="GatewayAuthMethod", ) - last_accessed_gateway_id = proto.Field( + last_accessed_gateway_id: str = proto.Field( proto.STRING, number=3, ) - last_accessed_gateway_time = proto.Field( + last_accessed_gateway_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, @@ -344,7 +344,7 @@ class DeviceRegistry(proto.Message): name (str): The resource path name. For example, ``projects/example-project/locations/us-central1/registries/my-registry``. - event_notification_configs (Sequence[google.cloud.iot_v1.types.EventNotificationConfig]): + event_notification_configs (MutableSequence[google.cloud.iot_v1.types.EventNotificationConfig]): The configuration for notification of telemetry events received from the device. All telemetry events that were successfully @@ -380,7 +380,7 @@ class DeviceRegistry(proto.Message): The default logging verbosity for activity from devices in this registry. The verbosity level can be overridden by Device.log_level. - credentials (Sequence[google.cloud.iot_v1.types.RegistryCredential]): + credentials (MutableSequence[google.cloud.iot_v1.types.RegistryCredential]): The credentials used to verify the device credentials. No more than 10 credentials can be bound to a single registry at a time. The @@ -399,40 +399,42 @@ class DeviceRegistry(proto.Message): are revoked, deleted, or modified. """ - id = proto.Field( + id: str = proto.Field( proto.STRING, number=1, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=2, ) - event_notification_configs = proto.RepeatedField( + event_notification_configs: MutableSequence[ + "EventNotificationConfig" + ] = proto.RepeatedField( proto.MESSAGE, number=10, message="EventNotificationConfig", ) - state_notification_config = proto.Field( + state_notification_config: "StateNotificationConfig" = proto.Field( proto.MESSAGE, number=7, message="StateNotificationConfig", ) - mqtt_config = proto.Field( + mqtt_config: "MqttConfig" = proto.Field( proto.MESSAGE, number=4, message="MqttConfig", ) - http_config = proto.Field( + http_config: "HttpConfig" = proto.Field( proto.MESSAGE, number=9, message="HttpConfig", ) - log_level = proto.Field( + log_level: "LogLevel" = proto.Field( proto.ENUM, number=11, enum="LogLevel", ) - credentials = proto.RepeatedField( + credentials: MutableSequence["RegistryCredential"] = proto.RepeatedField( proto.MESSAGE, number=8, message="RegistryCredential", @@ -449,7 +451,7 @@ class MqttConfig(proto.Message): registry will fail. """ - mqtt_enabled_state = proto.Field( + mqtt_enabled_state: "MqttState" = proto.Field( proto.ENUM, number=1, enum="MqttState", @@ -467,7 +469,7 @@ class HttpConfig(proto.Message): registry. """ - http_enabled_state = proto.Field( + http_enabled_state: "HttpState" = proto.Field( proto.ENUM, number=1, enum="HttpState", @@ -490,11 +492,11 @@ class EventNotificationConfig(proto.Message): ``projects/myProject/topics/deviceEvents``. """ - subfolder_matches = proto.Field( + subfolder_matches: str = proto.Field( proto.STRING, number=2, ) - pubsub_topic_name = proto.Field( + pubsub_topic_name: str = proto.Field( proto.STRING, number=1, ) @@ -510,7 +512,7 @@ class StateNotificationConfig(proto.Message): ``projects/myProject/topics/deviceEvents``. """ - pubsub_topic_name = proto.Field( + pubsub_topic_name: str = proto.Field( proto.STRING, number=1, ) @@ -531,7 +533,7 @@ class RegistryCredential(proto.Message): This field is a member of `oneof`_ ``credential``. """ - public_key_certificate = proto.Field( + public_key_certificate: "PublicKeyCertificate" = proto.Field( proto.MESSAGE, number=1, oneof="credential", @@ -559,29 +561,29 @@ class X509CertificateDetails(proto.Message): The type of public key in the certificate. """ - issuer = proto.Field( + issuer: str = proto.Field( proto.STRING, number=1, ) - subject = proto.Field( + subject: str = proto.Field( proto.STRING, number=2, ) - start_time = proto.Field( + start_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=3, message=timestamp_pb2.Timestamp, ) - expiry_time = proto.Field( + expiry_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=4, message=timestamp_pb2.Timestamp, ) - signature_algorithm = proto.Field( + signature_algorithm: str = proto.Field( proto.STRING, number=5, ) - public_key_type = proto.Field( + public_key_type: str = proto.Field( proto.STRING, number=6, ) @@ -600,16 +602,16 @@ class PublicKeyCertificate(proto.Message): certificates. """ - format = proto.Field( + format: "PublicKeyCertificateFormat" = proto.Field( proto.ENUM, number=1, enum="PublicKeyCertificateFormat", ) - certificate = proto.Field( + certificate: str = proto.Field( proto.STRING, number=2, ) - x509_details = proto.Field( + x509_details: "X509CertificateDetails" = proto.Field( proto.MESSAGE, number=3, message="X509CertificateDetails", @@ -648,13 +650,13 @@ class DeviceCredential(proto.Message): will not be automatically deleted. """ - public_key = proto.Field( + public_key: "PublicKeyCredential" = proto.Field( proto.MESSAGE, number=2, oneof="credential", message="PublicKeyCredential", ) - expiration_time = proto.Field( + expiration_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=6, message=timestamp_pb2.Timestamp, @@ -671,12 +673,12 @@ class PublicKeyCredential(proto.Message): The key data. """ - format = proto.Field( + format: "PublicKeyFormat" = proto.Field( proto.ENUM, number=1, enum="PublicKeyFormat", ) - key = proto.Field( + key: str = proto.Field( proto.STRING, number=2, ) @@ -712,21 +714,21 @@ class DeviceConfig(proto.Message): The device configuration data. """ - version = proto.Field( + version: int = proto.Field( proto.INT64, number=1, ) - cloud_update_time = proto.Field( + cloud_update_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=2, message=timestamp_pb2.Timestamp, ) - device_ack_time = proto.Field( + device_ack_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=3, message=timestamp_pb2.Timestamp, ) - binary_data = proto.Field( + binary_data: bytes = proto.Field( proto.BYTES, number=4, ) @@ -743,12 +745,12 @@ class DeviceState(proto.Message): The device state data. """ - update_time = proto.Field( + update_time: timestamp_pb2.Timestamp = proto.Field( proto.MESSAGE, number=1, message=timestamp_pb2.Timestamp, ) - binary_data = proto.Field( + binary_data: bytes = proto.Field( proto.BYTES, number=2, ) diff --git a/noxfile.py b/noxfile.py index d752b54f..d8440c02 100644 --- a/noxfile.py +++ b/noxfile.py @@ -17,6 +17,7 @@ # Generated by synthtool. DO NOT EDIT! from __future__ import absolute_import + import os import pathlib import re diff --git a/owlbot.py b/owlbot.py index e4941d2e..b87604b4 100644 --- a/owlbot.py +++ b/owlbot.py @@ -1,4 +1,4 @@ -# Copyright 2018 Google LLC +# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,70 +12,53 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""This script is used to synthesize generated parts of this library.""" +import json +from pathlib import Path +import shutil + import synthtool as s -from synthtool import gcp +import synthtool.gcp as gcp from synthtool.languages import python -common = gcp.CommonTemplates() +# ---------------------------------------------------------------------------- +# Copy the generated client from the owl-bot staging directory +# ---------------------------------------------------------------------------- + +clean_up_generated_samples = True -default_version = "v1" +# Load the default version defined in .repo-metadata.json. +default_version = json.load(open(".repo-metadata.json", "rt")).get( + "default_version" +) for library in s.get_staging_dirs(default_version): + if clean_up_generated_samples: + shutil.rmtree("samples/generated_samples", ignore_errors=True) + clean_up_generated_samples = False + # Rename `format_` to `format` to avoid breaking change s.replace( library / "google/cloud/**/types/resources.py", "format_", "format" ) - excludes = ["README.rst", "setup.py", "nox*.py", "docs/index.rst"] - s.move(library, excludes=excludes) + s.move([library], excludes=["**/gapic_version.py"]) s.remove_staging_dirs() # ---------------------------------------------------------------------------- # Add templated files # ---------------------------------------------------------------------------- -templated_files = common.py_library( - samples=True, - microgenerator=True, - cov_level=100, -) -s.move(templated_files, excludes=[".coveragerc"]) # microgenerator has a good .coveragerc file - -# ---------------------------------------------------------------------------- -# Samples templates -# ---------------------------------------------------------------------------- -python.py_samples() -python.configure_previous_major_version_branches() - -s.shell.run(["nox", "-s", "blacken"], hide_output=False) - -# ---------------------------------------------------------------------------- -# Repo specifics replacements -# ---------------------------------------------------------------------------- - -s.replace( - "samples/api-client/accesstoken_example/noxfile.py", - "# Copyright 2019 Google LLC", - "# Copyright 2021 Google LLC" -) - -s.replace( - "samples/api-client/mqtt_example/noxfile.py", - "# Copyright 2019 Google LLC", - "# Copyright 2021 Google LLC" +templated_files = gcp.CommonTemplates().py_library( + cov_level=100, + microgenerator=True, + versions=gcp.common.detect_versions(path="./google", default_first=True), ) +s.move(templated_files, excludes=[".coveragerc", ".github/release-please.yml"]) -s.replace( - "scripts/readme-gen/templates/*.rst", - "GoogleCloudPlatform/python-docs-samples", - "googleapis/python-iot" -) +python.py_samples(skip_readmes=True) -s.replace( - "scripts/readme-gen/templates/*.rst", - "python-docs-samples", - "python-iot" -) +# run format session for all directories which have a noxfile +for noxfile in Path(".").glob("**/noxfile.py"): + s.shell.run(["nox", "-s", "format"], cwd=noxfile.parent, hide_output=False) diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000..a14267cd --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "packages": { + ".": { + "release-type": "python", + "extra-files": [ + "google/cloud/iot/gapic_version.py", + { + "type": "json", + "path": "samples/generated_samples/snippet_metadata_google.cloud.iot.v1.json", + "jsonpath": "$.clientLibrary.version" + } + ] + } + }, + "release-type": "python", + "plugins": [ + { + "type": "sentence-case" + } + ], + "initial-version": "0.1.0" +} diff --git a/samples/api-client/accesstoken_example/accesstoken.py b/samples/api-client/accesstoken_example/accesstoken.py index 09414243..16016bc9 100644 --- a/samples/api-client/accesstoken_example/accesstoken.py +++ b/samples/api-client/accesstoken_example/accesstoken.py @@ -42,8 +42,7 @@ import os import time -from google.cloud import pubsub -from google.cloud import storage +from google.cloud import pubsub, storage import jwt import requests as req @@ -85,8 +84,10 @@ def generate_access_token( resource_path = "projects/{}/locations/{}/registries/{}/devices/{}".format( project_id, cloud_region, registry_id, device_id ) - request_url = "https://cloudiottoken.googleapis.com/v1beta1/{}:generateAccessToken".format( - resource_path + request_url = ( + "https://cloudiottoken.googleapis.com/v1beta1/{}:generateAccessToken".format( + resource_path + ) ) headers = {"authorization": "Bearer {}".format(jwt)} request_payload = {"scope": scope, "device": resource_path} @@ -146,8 +147,10 @@ def publish_pubsub_message( {"data": str(base64.b64encode(bytes("MESSAGE_DATA", "utf-8")), "utf-8")} ] } - publish_request_path = "https://pubsub.googleapis.com/v1/projects/{}/topics/{}:publish".format( - project_id, topic_id + publish_request_path = ( + "https://pubsub.googleapis.com/v1/projects/{}/topics/{}:publish".format( + project_id, topic_id + ) ) publish_resp = req.post( url=publish_request_path, data=json.dumps(publish_payload), headers=headers @@ -228,8 +231,10 @@ def download_cloud_storage_file( ) # Download data from GCS bucket. - download_request_path = "https://storage.googleapis.com/storage/v1/b/{}/o/{}?alt=media".format( - bucket_name, data_name + download_request_path = ( + "https://storage.googleapis.com/storage/v1/b/{}/o/{}?alt=media".format( + bucket_name, data_name + ) ) download_resp = req.get(url=download_request_path, headers=headers) assert download_resp.ok, download_resp.raise_for_status() @@ -307,8 +312,10 @@ def send_iot_command_to_device( algorithm, rsa_private_key_path, ) - service_account_token = exchange_device_access_token_for_service_account_access_token( - access_token, service_account_email + service_account_token = ( + exchange_device_access_token_for_service_account_access_token( + access_token, service_account_email + ) ) # Sending a command to a Cloud IoT Core device @@ -368,16 +375,24 @@ def parse_command_line_args(): help="GCP cloud project name.", ) parser.add_argument( - "--registry_id", default=None, help="Registry ID.", + "--registry_id", + default=None, + help="Registry ID.", ) parser.add_argument( - "--topic_id", default=None, help="Cloud Pub/Sub topic ID.", + "--topic_id", + default=None, + help="Cloud Pub/Sub topic ID.", ) parser.add_argument( - "--bucket_name", default=None, help="Cloud Storage bucket name.", + "--bucket_name", + default=None, + help="Cloud Storage bucket name.", ) parser.add_argument( - "--data_path", default=None, help="Path to file to be uploaded.", + "--data_path", + default=None, + help="Path to file to be uploaded.", ) parser.add_argument( "--service_account_email", diff --git a/samples/api-client/accesstoken_example/noxfile.py b/samples/api-client/accesstoken_example/noxfile.py index ed7d0be5..05770846 100644 --- a/samples/api-client/accesstoken_example/noxfile.py +++ b/samples/api-client/accesstoken_example/noxfile.py @@ -1,4 +1,4 @@ -# Copyright 2021 Google LLC +# Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import nox - # WARNING - WARNING - WARNING - WARNING - WARNING # WARNING - WARNING - WARNING - WARNING - WARNING # DO NOT EDIT THIS FILE EVER! @@ -160,6 +159,7 @@ def blacken(session: nox.sessions.Session) -> None: # format = isort + black # + @nox.session def format(session: nox.sessions.Session) -> None: """ @@ -187,7 +187,9 @@ def _session_tests( session: nox.sessions.Session, post_install: Callable = None ) -> None: # check for presence of tests - test_list = glob.glob("**/*_test.py", recursive=True) + glob.glob("**/test_*.py", recursive=True) + test_list = glob.glob("**/*_test.py", recursive=True) + glob.glob( + "**/test_*.py", recursive=True + ) test_list.extend(glob.glob("**/tests", recursive=True)) if len(test_list) == 0: @@ -209,9 +211,7 @@ def _session_tests( if os.path.exists("requirements-test.txt"): if os.path.exists("constraints-test.txt"): - session.install( - "-r", "requirements-test.txt", "-c", "constraints-test.txt" - ) + session.install("-r", "requirements-test.txt", "-c", "constraints-test.txt") else: session.install("-r", "requirements-test.txt") with open("requirements-test.txt") as rtfile: @@ -224,9 +224,9 @@ def _session_tests( post_install(session) if "pytest-parallel" in packages: - concurrent_args.extend(['--workers', 'auto', '--tests-per-worker', 'auto']) + concurrent_args.extend(["--workers", "auto", "--tests-per-worker", "auto"]) elif "pytest-xdist" in packages: - concurrent_args.extend(['-n', 'auto']) + concurrent_args.extend(["-n", "auto"]) session.run( "pytest", @@ -256,7 +256,7 @@ def py(session: nox.sessions.Session) -> None: def _get_repo_root() -> Optional[str]: - """ Returns the root folder of the project. """ + """Returns the root folder of the project.""" # Get root of this repository. Assume we don't have directories nested deeper than 10 items. p = Path(os.getcwd()) for i in range(10): diff --git a/samples/api-client/manager/manager.py b/samples/api-client/manager/manager.py index 5b4c12a6..d3ac16ae 100644 --- a/samples/api-client/manager/manager.py +++ b/samples/api-client/manager/manager.py @@ -35,8 +35,7 @@ import time from google.api_core.exceptions import AlreadyExists -from google.cloud import iot_v1 -from google.cloud import pubsub +from google.cloud import iot_v1, pubsub from google.oauth2 import service_account from google.protobuf import field_mask_pb2 as gp_field_mask from googleapiclient import discovery @@ -457,7 +456,7 @@ def create_registry( def get_registry(service_account_json, project_id, cloud_region, registry_id): - """ Retrieves a device registry.""" + """Retrieves a device registry.""" # [START iot_get_registry] # project_id = 'YOUR_PROJECT_ID' # cloud_region = 'us-central1' diff --git a/samples/api-client/manager/manager_test.py b/samples/api-client/manager/manager_test.py index 3ced5372..7fa434a7 100644 --- a/samples/api-client/manager/manager_test.py +++ b/samples/api-client/manager/manager_test.py @@ -24,8 +24,8 @@ # Add command receiver for bootstrapping device registry / device for testing sys.path.append(os.path.join(os.path.dirname(__file__), "..", "mqtt_example")) # noqa import cloudiot_mqtt_example # noqa -import manager # noqa +import manager # noqa cloud_region = "us-central1" device_id_template = "test-device-{}" diff --git a/samples/api-client/manager/noxfile.py b/samples/api-client/manager/noxfile.py index f5c32b22..05770846 100644 --- a/samples/api-client/manager/noxfile.py +++ b/samples/api-client/manager/noxfile.py @@ -22,7 +22,6 @@ import nox - # WARNING - WARNING - WARNING - WARNING - WARNING # WARNING - WARNING - WARNING - WARNING - WARNING # DO NOT EDIT THIS FILE EVER! @@ -160,6 +159,7 @@ def blacken(session: nox.sessions.Session) -> None: # format = isort + black # + @nox.session def format(session: nox.sessions.Session) -> None: """ @@ -187,7 +187,9 @@ def _session_tests( session: nox.sessions.Session, post_install: Callable = None ) -> None: # check for presence of tests - test_list = glob.glob("**/*_test.py", recursive=True) + glob.glob("**/test_*.py", recursive=True) + test_list = glob.glob("**/*_test.py", recursive=True) + glob.glob( + "**/test_*.py", recursive=True + ) test_list.extend(glob.glob("**/tests", recursive=True)) if len(test_list) == 0: @@ -209,9 +211,7 @@ def _session_tests( if os.path.exists("requirements-test.txt"): if os.path.exists("constraints-test.txt"): - session.install( - "-r", "requirements-test.txt", "-c", "constraints-test.txt" - ) + session.install("-r", "requirements-test.txt", "-c", "constraints-test.txt") else: session.install("-r", "requirements-test.txt") with open("requirements-test.txt") as rtfile: @@ -224,9 +224,9 @@ def _session_tests( post_install(session) if "pytest-parallel" in packages: - concurrent_args.extend(['--workers', 'auto', '--tests-per-worker', 'auto']) + concurrent_args.extend(["--workers", "auto", "--tests-per-worker", "auto"]) elif "pytest-xdist" in packages: - concurrent_args.extend(['-n', 'auto']) + concurrent_args.extend(["-n", "auto"]) session.run( "pytest", @@ -256,7 +256,7 @@ def py(session: nox.sessions.Session) -> None: def _get_repo_root() -> Optional[str]: - """ Returns the root folder of the project. """ + """Returns the root folder of the project.""" # Get root of this repository. Assume we don't have directories nested deeper than 10 items. p = Path(os.getcwd()) for i in range(10): diff --git a/samples/api-client/mqtt_example/cloudiot_mqtt_example.py b/samples/api-client/mqtt_example/cloudiot_mqtt_example.py index b52107c9..565e6465 100644 --- a/samples/api-client/mqtt_example/cloudiot_mqtt_example.py +++ b/samples/api-client/mqtt_example/cloudiot_mqtt_example.py @@ -50,18 +50,18 @@ # [START iot_mqtt_jwt] def create_jwt(project_id, private_key_file, algorithm): """Creates a JWT (https://jwt.io) to establish an MQTT connection. - Args: - project_id: The cloud project ID this device belongs to - private_key_file: A path to a file containing either an RSA256 or - ES256 private key. - algorithm: The encryption algorithm to use. Either 'RS256' or 'ES256' - Returns: - A JWT generated from the given project_id and private key, which - expires in 20 minutes. After 20 minutes, your client will be - disconnected, and a new JWT will have to be generated. - Raises: - ValueError: If the private_key_file does not contain a known key. - """ + Args: + project_id: The cloud project ID this device belongs to + private_key_file: A path to a file containing either an RSA256 or + ES256 private key. + algorithm: The encryption algorithm to use. Either 'RS256' or 'ES256' + Returns: + A JWT generated from the given project_id and private key, which + expires in 20 minutes. After 20 minutes, your client will be + disconnected, and a new JWT will have to be generated. + Raises: + ValueError: If the private_key_file does not contain a known key. + """ token = { # The time that the token was issued at diff --git a/samples/api-client/mqtt_example/noxfile.py b/samples/api-client/mqtt_example/noxfile.py index ed7d0be5..05770846 100644 --- a/samples/api-client/mqtt_example/noxfile.py +++ b/samples/api-client/mqtt_example/noxfile.py @@ -1,4 +1,4 @@ -# Copyright 2021 Google LLC +# Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -22,7 +22,6 @@ import nox - # WARNING - WARNING - WARNING - WARNING - WARNING # WARNING - WARNING - WARNING - WARNING - WARNING # DO NOT EDIT THIS FILE EVER! @@ -160,6 +159,7 @@ def blacken(session: nox.sessions.Session) -> None: # format = isort + black # + @nox.session def format(session: nox.sessions.Session) -> None: """ @@ -187,7 +187,9 @@ def _session_tests( session: nox.sessions.Session, post_install: Callable = None ) -> None: # check for presence of tests - test_list = glob.glob("**/*_test.py", recursive=True) + glob.glob("**/test_*.py", recursive=True) + test_list = glob.glob("**/*_test.py", recursive=True) + glob.glob( + "**/test_*.py", recursive=True + ) test_list.extend(glob.glob("**/tests", recursive=True)) if len(test_list) == 0: @@ -209,9 +211,7 @@ def _session_tests( if os.path.exists("requirements-test.txt"): if os.path.exists("constraints-test.txt"): - session.install( - "-r", "requirements-test.txt", "-c", "constraints-test.txt" - ) + session.install("-r", "requirements-test.txt", "-c", "constraints-test.txt") else: session.install("-r", "requirements-test.txt") with open("requirements-test.txt") as rtfile: @@ -224,9 +224,9 @@ def _session_tests( post_install(session) if "pytest-parallel" in packages: - concurrent_args.extend(['--workers', 'auto', '--tests-per-worker', 'auto']) + concurrent_args.extend(["--workers", "auto", "--tests-per-worker", "auto"]) elif "pytest-xdist" in packages: - concurrent_args.extend(['-n', 'auto']) + concurrent_args.extend(["-n", "auto"]) session.run( "pytest", @@ -256,7 +256,7 @@ def py(session: nox.sessions.Session) -> None: def _get_repo_root() -> Optional[str]: - """ Returns the root folder of the project. """ + """Returns the root folder of the project.""" # Get root of this repository. Assume we don't have directories nested deeper than 10 items. p = Path(os.getcwd()) for i in range(10): diff --git a/samples/generated_samples/snippet_metadata_iot_v1.json b/samples/generated_samples/snippet_metadata_google.cloud.iot.v1.json similarity index 99% rename from samples/generated_samples/snippet_metadata_iot_v1.json rename to samples/generated_samples/snippet_metadata_google.cloud.iot.v1.json index de65b2a7..017afae4 100644 --- a/samples/generated_samples/snippet_metadata_iot_v1.json +++ b/samples/generated_samples/snippet_metadata_google.cloud.iot.v1.json @@ -7,7 +7,8 @@ } ], "language": "PYTHON", - "name": "google-cloud-iot" + "name": "google-cloud-iot", + "version": "0.1.0" }, "snippets": [ { @@ -2497,7 +2498,7 @@ }, { "name": "permissions", - "type": "Sequence[str]" + "type": "MutableSequence[str]" }, { "name": "retry", @@ -2581,7 +2582,7 @@ }, { "name": "permissions", - "type": "Sequence[str]" + "type": "MutableSequence[str]" }, { "name": "retry", diff --git a/scripts/readme-gen/templates/README.tmpl.rst b/scripts/readme-gen/templates/README.tmpl.rst index faa6071c..4fd23976 100644 --- a/scripts/readme-gen/templates/README.tmpl.rst +++ b/scripts/readme-gen/templates/README.tmpl.rst @@ -6,7 +6,7 @@ =============================================================================== .. image:: https://gstatic.com/cloudssh/images/open-btn.png - :target: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/python-iot&page=editor&open_in_editor={{folder}}/README.rst + :target: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/GoogleCloudPlatform/python-docs-samples&page=editor&open_in_editor={{folder}}/README.rst This directory contains samples for {{product.name}}. {{product.description}} @@ -46,7 +46,7 @@ Samples {% if not sample.hide_cloudshell_button %} .. image:: https://gstatic.com/cloudssh/images/open-btn.png - :target: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/python-iot&page=editor&open_in_editor={{folder}}/{{sample.file}},{{folder}}/README.rst + :target: https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/GoogleCloudPlatform/python-docs-samples&page=editor&open_in_editor={{folder}}/{{sample.file}},{{folder}}/README.rst {% endif %} diff --git a/scripts/readme-gen/templates/install_deps.tmpl.rst b/scripts/readme-gen/templates/install_deps.tmpl.rst index 2e06cb29..6f069c6c 100644 --- a/scripts/readme-gen/templates/install_deps.tmpl.rst +++ b/scripts/readme-gen/templates/install_deps.tmpl.rst @@ -1,11 +1,11 @@ Install Dependencies ++++++++++++++++++++ -#. Clone python-iot and change directory to the sample directory you want to use. +#. Clone python-docs-samples and change directory to the sample directory you want to use. .. code-block:: bash - $ git clone https://github.com/googleapis/python-iot.git + $ git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git #. Install `pip`_ and `virtualenv`_ if you do not already have them. You may want to refer to the `Python Development Environment Setup Guide`_ for Google Cloud Platform for instructions. diff --git a/setup.py b/setup.py index 269b0559..7a0162ea 100644 --- a/setup.py +++ b/setup.py @@ -1,34 +1,47 @@ -# Copyright 2018 Google LLC +# -*- coding: utf-8 -*- +# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# https://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - +# import io import os -import setuptools +import setuptools # type: ignore + +package_root = os.path.abspath(os.path.dirname(__file__)) name = "google-cloud-iot" -description = "Cloud IoT API API client library" -version = "2.6.4" -release_status = "Development Status :: 5 - Production/Stable" + + +description = "Google Cloud Iot API client library" + +version = {} +with open(os.path.join(package_root, "google/cloud/iot/gapic_version.py")) as fp: + exec(fp.read(), version) +version = version["__version__"] + +if version[0] == "0": + release_status = "Development Status :: 4 - Beta" +else: + release_status = "Development Status :: 5 - Production/Stable" + dependencies = [ - "google-api-core[grpc] >= 1.32.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", - "grpc-google-iam-v1 >= 0.12.4, <1.0.0dev", + "google-api-core[grpc] >= 1.33.2, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", "proto-plus >= 1.22.0, <2.0.0dev", "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", + "grpc-google-iam-v1 >= 0.12.4, < 1.0.0dev", ] - -extras = {"libcst": "libcst >= 0.2.5"} +url = "https://github.com/googleapis/python-iot" package_root = os.path.abspath(os.path.dirname(__file__)) @@ -52,9 +65,9 @@ description=description, long_description=readme, author="Google LLC", - author_email="googleapis-packages@oogle.com", + author_email="googleapis-packages@google.com", license="Apache 2.0", - url="https://github.com/googleapis/python-iot", + url=url, classifiers=[ release_status, "Intended Audience :: Developers", @@ -70,11 +83,9 @@ ], platforms="Posix; MacOS X; Windows", packages=packages, + python_requires=">=3.7", namespace_packages=namespaces, install_requires=dependencies, - extras_require=extras, - python_requires=">=3.7", - scripts=["scripts/fixup_iot_v1_keywords.py"], include_package_data=True, zip_safe=False, ) diff --git a/testing/constraints-3.10.txt b/testing/constraints-3.10.txt index e69de29b..ad3f0fa5 100644 --- a/testing/constraints-3.10.txt +++ b/testing/constraints-3.10.txt @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/testing/constraints-3.11.txt b/testing/constraints-3.11.txt index e69de29b..ad3f0fa5 100644 --- a/testing/constraints-3.11.txt +++ b/testing/constraints-3.11.txt @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/testing/constraints-3.7.txt b/testing/constraints-3.7.txt index d977db96..883a87ae 100644 --- a/testing/constraints-3.7.txt +++ b/testing/constraints-3.7.txt @@ -4,7 +4,7 @@ # Pin the version to the lower bound. # e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", # Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.32.0 +google-api-core==1.33.2 proto-plus==1.22.0 -grpc-google-iam-v1==0.12.4 protobuf==3.19.5 +grpc-google-iam-v1==0.12.4 diff --git a/testing/constraints-3.8.txt b/testing/constraints-3.8.txt index da93009b..ad3f0fa5 100644 --- a/testing/constraints-3.8.txt +++ b/testing/constraints-3.8.txt @@ -1,2 +1,7 @@ -# This constraints file is left inentionally empty -# so the latest version of dependencies is installed \ No newline at end of file +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/testing/constraints-3.9.txt b/testing/constraints-3.9.txt index da93009b..ad3f0fa5 100644 --- a/testing/constraints-3.9.txt +++ b/testing/constraints-3.9.txt @@ -1,2 +1,7 @@ -# This constraints file is left inentionally empty -# so the latest version of dependencies is installed \ No newline at end of file +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf +grpc-google-iam-v1 diff --git a/tests/unit/gapic/iot_v1/test_device_manager.py b/tests/unit/gapic/iot_v1/test_device_manager.py index ae0d0139..0934a649 100644 --- a/tests/unit/gapic/iot_v1/test_device_manager.py +++ b/tests/unit/gapic/iot_v1/test_device_manager.py @@ -22,27 +22,14 @@ except ImportError: # pragma: NO COVER import mock -import grpc -from grpc.experimental import aio import math -import pytest -from proto.marshal.rules.dates import DurationRule, TimestampRule -from proto.marshal.rules import wrappers +from google.api_core import gapic_v1, grpc_helpers, grpc_helpers_async, path_template from google.api_core import client_options from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers -from google.api_core import grpc_helpers_async -from google.api_core import path_template +import google.auth from google.auth import credentials as ga_credentials from google.auth.exceptions import MutualTLSChannelError -from google.cloud.iot_v1.services.device_manager import DeviceManagerAsyncClient -from google.cloud.iot_v1.services.device_manager import DeviceManagerClient -from google.cloud.iot_v1.services.device_manager import pagers -from google.cloud.iot_v1.services.device_manager import transports -from google.cloud.iot_v1.types import device_manager -from google.cloud.iot_v1.types import resources from google.iam.v1 import iam_policy_pb2 # type: ignore from google.iam.v1 import options_pb2 # type: ignore from google.iam.v1 import policy_pb2 # type: ignore @@ -52,7 +39,19 @@ from google.protobuf import timestamp_pb2 # type: ignore from google.rpc import status_pb2 # type: ignore from google.type import expr_pb2 # type: ignore -import google.auth +import grpc +from grpc.experimental import aio +from proto.marshal.rules import wrappers +from proto.marshal.rules.dates import DurationRule, TimestampRule +import pytest + +from google.cloud.iot_v1.services.device_manager import ( + DeviceManagerAsyncClient, + DeviceManagerClient, + pagers, + transports, +) +from google.cloud.iot_v1.types import device_manager, resources def client_cert_source_callback(): From c11605581548edc51da5e4685bebd27e22e0c84e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 28 Nov 2022 16:48:05 +0100 Subject: [PATCH 13/18] chore(deps): update dependency cryptography to v38.0.4 (#414) --- samples/api-client/accesstoken_example/requirements.txt | 2 +- samples/api-client/manager/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index 3e5512bb..6e9a7d21 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -1,4 +1,4 @@ -cryptography==38.0.3 +cryptography==38.0.4 flaky==3.7.0 google-api-python-client==2.66.0 google-auth-httplib2==0.1.0 diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index 37c867d5..1fb54a04 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -1,4 +1,4 @@ -cryptography==38.0.3 +cryptography==38.0.4 flaky==3.7.0 google-api-python-client==2.66.0 google-auth-httplib2==0.1.0 From 4eac6bbeb2770537885a72de56d04baca7c4c231 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 8 Dec 2022 10:23:05 -0500 Subject: [PATCH 14/18] fix(deps): Require google-api-core >=1.34.0, >=2.11.0 (#416) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(deps): Require google-api-core >=1.34.0, >=2.11.0 fix: Drop usage of pkg_resources fix: Fix timeout default values docs(samples): Snippetgen should call await on the operation coroutine before calling result PiperOrigin-RevId: 493260409 Source-Link: https://github.com/googleapis/googleapis/commit/fea43879f83a8d0dacc9353b3f75f8f46d37162f Source-Link: https://github.com/googleapis/googleapis-gen/commit/387b7344c7529ee44be84e613b19a820508c612b Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMzg3YjczNDRjNzUyOWVlNDRiZTg0ZTYxM2IxOWE4MjA1MDhjNjEyYiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * add gapic_version.py * add gapic_version.py Co-authored-by: Owl Bot Co-authored-by: Anthonios Partheniou --- .coveragerc | 5 -- google/cloud/iot_v1/gapic_version.py | 16 ++++++ .../services/device_manager/async_client.py | 52 +++++++++---------- .../iot_v1/services/device_manager/client.py | 52 +++++++++---------- .../device_manager/transports/base.py | 13 ++--- release-please-config.json | 1 + setup.py | 2 +- testing/constraints-3.7.txt | 2 +- 8 files changed, 71 insertions(+), 72 deletions(-) create mode 100644 google/cloud/iot_v1/gapic_version.py diff --git a/.coveragerc b/.coveragerc index 99ba7e6d..245b9ab8 100644 --- a/.coveragerc +++ b/.coveragerc @@ -10,8 +10,3 @@ exclude_lines = pragma: NO COVER # Ignore debug-only repr def __repr__ - # Ignore pkg_resources exceptions. - # This is added at the module level as a safeguard for if someone - # generates the code and tries to run it without pip installing. This - # makes it virtually impossible to test properly. - except pkg_resources.DistributionNotFound diff --git a/google/cloud/iot_v1/gapic_version.py b/google/cloud/iot_v1/gapic_version.py new file mode 100644 index 00000000..0a86a76e --- /dev/null +++ b/google/cloud/iot_v1/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +__version__ = "2.6.4" # {x-release-please-version} diff --git a/google/cloud/iot_v1/services/device_manager/async_client.py b/google/cloud/iot_v1/services/device_manager/async_client.py index 1ee3878c..d36bb0e3 100644 --- a/google/cloud/iot_v1/services/device_manager/async_client.py +++ b/google/cloud/iot_v1/services/device_manager/async_client.py @@ -34,7 +34,8 @@ from google.api_core.client_options import ClientOptions from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore -import pkg_resources + +from google.cloud.iot_v1 import gapic_version as package_version try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] @@ -232,7 +233,7 @@ async def create_device_registry( parent: Optional[str] = None, device_registry: Optional[resources.DeviceRegistry] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Creates a device registry that contains devices. @@ -343,7 +344,7 @@ async def get_device_registry( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Gets a device registry configuration. @@ -455,7 +456,7 @@ async def update_device_registry( device_registry: Optional[resources.DeviceRegistry] = None, update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Updates a device registry configuration. @@ -572,7 +573,7 @@ async def delete_device_registry( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> None: r"""Deletes a device registry configuration. @@ -673,7 +674,7 @@ async def list_device_registries( *, parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListDeviceRegistriesAsyncPager: r"""Lists device registries. @@ -798,7 +799,7 @@ async def create_device( parent: Optional[str] = None, device: Optional[resources.Device] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Creates a device in a device registry. @@ -909,7 +910,7 @@ async def get_device( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Gets details about a device. @@ -1021,7 +1022,7 @@ async def update_device( device: Optional[resources.Device] = None, update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Updates a device. @@ -1136,7 +1137,7 @@ async def delete_device( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> None: r"""Deletes a device. @@ -1237,7 +1238,7 @@ async def list_devices( *, parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListDevicesAsyncPager: r"""List devices in a device registry. @@ -1364,7 +1365,7 @@ async def modify_cloud_to_device_config( name: Optional[str] = None, binary_data: Optional[bytes] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceConfig: r"""Modifies the configuration for the device, which is @@ -1493,7 +1494,7 @@ async def list_device_config_versions( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.ListDeviceConfigVersionsResponse: r"""Lists the last few versions of the device @@ -1606,7 +1607,7 @@ async def list_device_states( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.ListDeviceStatesResponse: r"""Lists the last few versions of the device state in @@ -1718,7 +1719,7 @@ async def set_iam_policy( *, resource: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> policy_pb2.Policy: r"""Sets the access control policy on the specified @@ -1885,7 +1886,7 @@ async def get_iam_policy( *, resource: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> policy_pb2.Policy: r"""Gets the access control policy for a resource. @@ -2054,7 +2055,7 @@ async def test_iam_permissions( resource: Optional[str] = None, permissions: Optional[MutableSequence[str]] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> iam_policy_pb2.TestIamPermissionsResponse: r"""Returns permissions that a caller has on the specified resource. @@ -2176,7 +2177,7 @@ async def send_command_to_device( binary_data: Optional[bytes] = None, subfolder: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.SendCommandToDeviceResponse: r"""Sends a command to the specified device. In order for a device @@ -2336,7 +2337,7 @@ async def bind_device_to_gateway( gateway_id: Optional[str] = None, device_id: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.BindDeviceToGatewayResponse: r"""Associates the device with the gateway. @@ -2460,7 +2461,7 @@ async def unbind_device_from_gateway( gateway_id: Optional[str] = None, device_id: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.UnbindDeviceFromGatewayResponse: r"""Deletes the association between the device and the @@ -2583,14 +2584,9 @@ async def __aexit__(self, exc_type, exc, tb): await self.transport.close() -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-cloud-iot", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) __all__ = ("DeviceManagerAsyncClient",) diff --git a/google/cloud/iot_v1/services/device_manager/client.py b/google/cloud/iot_v1/services/device_manager/client.py index 07b3fd63..63c73584 100644 --- a/google/cloud/iot_v1/services/device_manager/client.py +++ b/google/cloud/iot_v1/services/device_manager/client.py @@ -38,7 +38,8 @@ from google.auth.transport import mtls # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore from google.oauth2 import service_account # type: ignore -import pkg_resources + +from google.cloud.iot_v1 import gapic_version as package_version try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] @@ -479,7 +480,7 @@ def create_device_registry( parent: Optional[str] = None, device_registry: Optional[resources.DeviceRegistry] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Creates a device registry that contains devices. @@ -590,7 +591,7 @@ def get_device_registry( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Gets a device registry configuration. @@ -692,7 +693,7 @@ def update_device_registry( device_registry: Optional[resources.DeviceRegistry] = None, update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceRegistry: r"""Updates a device registry configuration. @@ -809,7 +810,7 @@ def delete_device_registry( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> None: r"""Deletes a device registry configuration. @@ -900,7 +901,7 @@ def list_device_registries( *, parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListDeviceRegistriesPager: r"""Lists device registries. @@ -1015,7 +1016,7 @@ def create_device( parent: Optional[str] = None, device: Optional[resources.Device] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Creates a device in a device registry. @@ -1126,7 +1127,7 @@ def get_device( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Gets details about a device. @@ -1228,7 +1229,7 @@ def update_device( device: Optional[resources.Device] = None, update_mask: Optional[field_mask_pb2.FieldMask] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.Device: r"""Updates a device. @@ -1343,7 +1344,7 @@ def delete_device( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> None: r"""Deletes a device. @@ -1434,7 +1435,7 @@ def list_devices( *, parent: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> pagers.ListDevicesPager: r"""List devices in a device registry. @@ -1551,7 +1552,7 @@ def modify_cloud_to_device_config( name: Optional[str] = None, binary_data: Optional[bytes] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> resources.DeviceConfig: r"""Modifies the configuration for the device, which is @@ -1671,7 +1672,7 @@ def list_device_config_versions( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.ListDeviceConfigVersionsResponse: r"""Lists the last few versions of the device @@ -1776,7 +1777,7 @@ def list_device_states( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.ListDeviceStatesResponse: r"""Lists the last few versions of the device state in @@ -1878,7 +1879,7 @@ def set_iam_policy( *, resource: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> policy_pb2.Policy: r"""Sets the access control policy on the specified @@ -2042,7 +2043,7 @@ def get_iam_policy( *, resource: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> policy_pb2.Policy: r"""Gets the access control policy for a resource. @@ -2208,7 +2209,7 @@ def test_iam_permissions( resource: Optional[str] = None, permissions: Optional[MutableSequence[str]] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> iam_policy_pb2.TestIamPermissionsResponse: r"""Returns permissions that a caller has on the specified resource. @@ -2328,7 +2329,7 @@ def send_command_to_device( binary_data: Optional[bytes] = None, subfolder: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.SendCommandToDeviceResponse: r"""Sends a command to the specified device. In order for a device @@ -2477,7 +2478,7 @@ def bind_device_to_gateway( gateway_id: Optional[str] = None, device_id: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.BindDeviceToGatewayResponse: r"""Associates the device with the gateway. @@ -2601,7 +2602,7 @@ def unbind_device_from_gateway( gateway_id: Optional[str] = None, device_id: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> device_manager.UnbindDeviceFromGatewayResponse: r"""Deletes the association between the device and the @@ -2733,14 +2734,9 @@ def __exit__(self, type, value, traceback): self.transport.close() -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-cloud-iot", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) __all__ = ("DeviceManagerClient",) diff --git a/google/cloud/iot_v1/services/device_manager/transports/base.py b/google/cloud/iot_v1/services/device_manager/transports/base.py index 872d258e..f0e02633 100644 --- a/google/cloud/iot_v1/services/device_manager/transports/base.py +++ b/google/cloud/iot_v1/services/device_manager/transports/base.py @@ -26,18 +26,13 @@ from google.iam.v1 import policy_pb2 # type: ignore from google.oauth2 import service_account # type: ignore from google.protobuf import empty_pb2 # type: ignore -import pkg_resources +from google.cloud.iot_v1 import gapic_version as package_version from google.cloud.iot_v1.types import device_manager, resources -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-cloud-iot", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) class DeviceManagerTransport(abc.ABC): diff --git a/release-please-config.json b/release-please-config.json index a14267cd..4a887cd6 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -4,6 +4,7 @@ ".": { "release-type": "python", "extra-files": [ + "google/cloud/iot_v1/gapic_version.py", "google/cloud/iot/gapic_version.py", { "type": "json", diff --git a/setup.py b/setup.py index 7a0162ea..c2044ff8 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.33.2, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", + "google-api-core[grpc] >= 1.34.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", "proto-plus >= 1.22.0, <2.0.0dev", "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", "grpc-google-iam-v1 >= 0.12.4, < 1.0.0dev", diff --git a/testing/constraints-3.7.txt b/testing/constraints-3.7.txt index 883a87ae..2beecf99 100644 --- a/testing/constraints-3.7.txt +++ b/testing/constraints-3.7.txt @@ -4,7 +4,7 @@ # Pin the version to the lower bound. # e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", # Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.33.2 +google-api-core==1.34.0 proto-plus==1.22.0 protobuf==3.19.5 grpc-google-iam-v1==0.12.4 From 4be5a0c7f2b61db6205743c6727da971b54fd950 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 12:47:44 -0500 Subject: [PATCH 15/18] build(deps): bump certifi from 2022.9.24 to 2022.12.7 in /synthtool/gcp/templates/python_library/.kokoro (#418) Source-Link: https://github.com/googleapis/synthtool/commit/b4fe62efb5114b6738ad4b13d6f654f2bf4b7cc0 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:3bf87e47c2173d7eed42714589dc4da2c07c3268610f1e47f8e1a30decbfc7f1 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.txt | 6 +++--- .pre-commit-config.yaml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index bb21147e..fccaa8e8 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:3abfa0f1886adaf0b83f07cb117b24a639ea1cb9cffe56d43280b977033563eb + digest: sha256:3bf87e47c2173d7eed42714589dc4da2c07c3268610f1e47f8e1a30decbfc7f1 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 9c1b9be3..05dc4672 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -20,9 +20,9 @@ cachetools==5.2.0 \ --hash=sha256:6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757 \ --hash=sha256:f9f17d2aec496a9aa6b76f53e3b614c965223c061982d434d160f930c698a9db # via google-auth -certifi==2022.9.24 \ - --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ - --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 +certifi==2022.12.7 \ + --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ + --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 46d23716..5405cc8f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,7 +25,7 @@ repos: rev: 22.3.0 hooks: - id: black -- repo: https://gitlab.com/pycqa/flake8 +- repo: https://github.com/pycqa/flake8 rev: 3.9.2 hooks: - id: flake8 From b01134bb529bead350cfc633c9358bb68083247e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 14 Dec 2022 21:37:11 +0100 Subject: [PATCH 16/18] chore(deps): update all dependencies (#415) Co-authored-by: Anthonios Partheniou --- .../api-client/accesstoken_example/requirements-test.txt | 2 +- samples/api-client/accesstoken_example/requirements.txt | 6 +++--- samples/api-client/manager/requirements.txt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements-test.txt b/samples/api-client/accesstoken_example/requirements-test.txt index 546e0fdc..8b9495c1 100644 --- a/samples/api-client/accesstoken_example/requirements-test.txt +++ b/samples/api-client/accesstoken_example/requirements-test.txt @@ -1,3 +1,3 @@ pytest==7.2.0 google-cloud-pubsub==2.13.11 -google-cloud-storage==2.6.0 +google-cloud-storage==2.7.0 diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index 6e9a7d21..6cec68cd 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -1,10 +1,10 @@ cryptography==38.0.4 flaky==3.7.0 -google-api-python-client==2.66.0 +google-api-python-client==2.68.0 google-auth-httplib2==0.1.0 -google-auth==2.14.1 +google-auth==2.15.0 google-cloud-iot==2.6.4 google-cloud-pubsub==2.13.11 -google-cloud-storage==2.6.0 +google-cloud-storage==2.7.0 paho-mqtt==1.6.1 pyjwt==2.6.0 diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index 1fb54a04..519b6eb3 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -1,8 +1,8 @@ cryptography==38.0.4 flaky==3.7.0 -google-api-python-client==2.66.0 +google-api-python-client==2.68.0 google-auth-httplib2==0.1.0 -google-auth==2.14.1 +google-auth==2.15.0 google-cloud-iot==2.6.4 google-cloud-pubsub==2.13.11 paho-mqtt==1.6.1 From 9f0ea4023f114e4654e85bf2bcecf305479b26c7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 14 Dec 2022 22:44:03 +0100 Subject: [PATCH 17/18] chore(deps): update dependency google-api-python-client to v2.70.0 (#420) --- samples/api-client/accesstoken_example/requirements.txt | 2 +- samples/api-client/manager/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/api-client/accesstoken_example/requirements.txt b/samples/api-client/accesstoken_example/requirements.txt index 6cec68cd..6df72d9d 100644 --- a/samples/api-client/accesstoken_example/requirements.txt +++ b/samples/api-client/accesstoken_example/requirements.txt @@ -1,6 +1,6 @@ cryptography==38.0.4 flaky==3.7.0 -google-api-python-client==2.68.0 +google-api-python-client==2.70.0 google-auth-httplib2==0.1.0 google-auth==2.15.0 google-cloud-iot==2.6.4 diff --git a/samples/api-client/manager/requirements.txt b/samples/api-client/manager/requirements.txt index 519b6eb3..a1642cb4 100644 --- a/samples/api-client/manager/requirements.txt +++ b/samples/api-client/manager/requirements.txt @@ -1,6 +1,6 @@ cryptography==38.0.4 flaky==3.7.0 -google-api-python-client==2.68.0 +google-api-python-client==2.70.0 google-auth-httplib2==0.1.0 google-auth==2.15.0 google-cloud-iot==2.6.4 From e69d0ea8d93193368e21b7c679b526011ec0a0ce Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 15 Dec 2022 12:03:10 -0500 Subject: [PATCH 18/18] chore(main): release 2.7.0 (#413) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Anthonios Partheniou --- .release-please-manifest.json | 2 +- CHANGELOG.md | 22 +++++++++++++++++++ google/cloud/iot/gapic_version.py | 2 +- google/cloud/iot_v1/gapic_version.py | 2 +- .../snippet_metadata_google.cloud.iot.v1.json | 2 +- 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 9caa5c14..6ed9c801 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.6.4" + ".": "2.7.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f128914..b04b875f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,28 @@ [1]: https://pypi.org/project/google-cloud-iot/#history +## [2.7.0](https://github.com/googleapis/python-iot/compare/v2.6.4...v2.7.0) (2022-12-14) + + +### Features + +* Add support for `google.cloud.iot.__version__` ([9aa6b22](https://github.com/googleapis/python-iot/commit/9aa6b22b14ed7afd125895941ea943ceb8c777b2)) +* Add typing to proto.Message based class attributes ([9aa6b22](https://github.com/googleapis/python-iot/commit/9aa6b22b14ed7afd125895941ea943ceb8c777b2)) + + +### Bug Fixes + +* Add dict typing for client_options ([9aa6b22](https://github.com/googleapis/python-iot/commit/9aa6b22b14ed7afd125895941ea943ceb8c777b2)) +* **deps:** Require google-api-core >=1.34.0, >=2.11.0 ([4eac6bb](https://github.com/googleapis/python-iot/commit/4eac6bbeb2770537885a72de56d04baca7c4c231)) +* Drop usage of pkg_resources ([4eac6bb](https://github.com/googleapis/python-iot/commit/4eac6bbeb2770537885a72de56d04baca7c4c231)) +* Fix timeout default values ([4eac6bb](https://github.com/googleapis/python-iot/commit/4eac6bbeb2770537885a72de56d04baca7c4c231)) + + +### Documentation + +* **samples:** Snippetgen handling of repeated enum field ([9aa6b22](https://github.com/googleapis/python-iot/commit/9aa6b22b14ed7afd125895941ea943ceb8c777b2)) +* **samples:** Snippetgen should call await on the operation coroutine before calling result ([4eac6bb](https://github.com/googleapis/python-iot/commit/4eac6bbeb2770537885a72de56d04baca7c4c231)) + ## [2.6.4](https://github.com/googleapis/python-iot/compare/v2.6.3...v2.6.4) (2022-10-07) diff --git a/google/cloud/iot/gapic_version.py b/google/cloud/iot/gapic_version.py index 0a86a76e..8d17333c 100644 --- a/google/cloud/iot/gapic_version.py +++ b/google/cloud/iot/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "2.6.4" # {x-release-please-version} +__version__ = "2.7.0" # {x-release-please-version} diff --git a/google/cloud/iot_v1/gapic_version.py b/google/cloud/iot_v1/gapic_version.py index 0a86a76e..8d17333c 100644 --- a/google/cloud/iot_v1/gapic_version.py +++ b/google/cloud/iot_v1/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "2.6.4" # {x-release-please-version} +__version__ = "2.7.0" # {x-release-please-version} diff --git a/samples/generated_samples/snippet_metadata_google.cloud.iot.v1.json b/samples/generated_samples/snippet_metadata_google.cloud.iot.v1.json index 017afae4..84a2fc05 100644 --- a/samples/generated_samples/snippet_metadata_google.cloud.iot.v1.json +++ b/samples/generated_samples/snippet_metadata_google.cloud.iot.v1.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-cloud-iot", - "version": "0.1.0" + "version": "2.7.0" }, "snippets": [ {