diff --git a/.coveragerc b/.coveragerc
index 5b506b5..76e052e 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/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml
index 3815c98..fccaa8e 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:3bf87e47c2173d7eed42714589dc4da2c07c3268610f1e47f8e1a30decbfc7f1
diff --git a/.github/release-please.yml b/.github/release-please.yml
index 6def37a..e9a4f00 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/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 7092a13..e97d89e 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 d2aee5b..16d5a9e 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 87ade4d..23000c0 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 238b87b..f8137d0 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 7718391..cbd7e77 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 d15994b..05dc467 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.12.7 \
+ --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \
+ --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18
# via requests
cffi==1.15.1 \
--hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \
@@ -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 \
@@ -110,29 +113,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 +155,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.10.0 \
+ --hash=sha256:72a38ca91b59c24f7e699e9227c90cbe4dd71b789383cb0164b088abae294c83 \
+ --hash=sha256:8c7c99320208383d4bb2b808c6880eb7a81424afe7cdba3c8d84b25f4f0e097d
# 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.1 \
+ --hash=sha256:ccaa901f31ad5cbb562615eb8b664b3dd0bf5404a67618e642307f00613eda4d \
+ --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016
# via
# gcp-releasetool
# google-api-core
@@ -174,76 +181,102 @@ 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.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
+googleapis-common-protos==1.57.0 \
+ --hash=sha256:27a849d6205838fb6cc3c1c21cb9800707a661bb21c6ce7fb13e99eb1f8a0c46 \
+ --hash=sha256:a9f4a1d7f6d9809657b7f1316a1aa527f6664891531bcfcc13b6696e685f443c
# 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
+ # keyring
# 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 +288,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.11.0 \
+ --hash=sha256:3dd30011d555f1345dec2c262f0153f2f0ca6bca041fb1dc4588349bb4c0ac1e \
+ --hash=sha256:ad192263e2cdd5f12875dedc2da13534359a7e760e77f8d04b50968a821c2361
# via
# gcp-releasetool
# twine
@@ -303,9 +336,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 \
@@ -321,34 +354,33 @@ 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.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
@@ -377,9 +409,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 +424,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 +437,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 +469,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,25 +479,25 @@ urllib3==1.26.12 \
# via
# requests
# twine
-virtualenv==20.16.4 \
- --hash=sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782 \
- --hash=sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22
+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.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.1 \
+ --hash=sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31 \
+ --hash=sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f
# via -r requirements.in
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 46d2371..5405cc8 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
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
new file mode 100644
index 0000000..4fcfdf7
--- /dev/null
+++ b/.release-please-manifest.json
@@ -0,0 +1,3 @@
+{
+ ".": "1.9.0"
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4b538f5..61bf95d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,29 @@
[PyPI History][1]
[1]: https://pypi.org/project/google-cloud-webrisk/#history
+## [1.9.0](https://github.com/googleapis/python-webrisk/compare/v1.8.4...v1.9.0) (2022-12-14)
+
+
+### Features
+
+* Add SOCIAL_ENGINEERING_EXTENDED_COVERAGE threat type ([#238](https://github.com/googleapis/python-webrisk/issues/238)) ([5b785de](https://github.com/googleapis/python-webrisk/commit/5b785de91aacef1129d9e220e9c707c223f00410))
+* Add support for `google.cloud.webrisk.__version__` ([64b1ef3](https://github.com/googleapis/python-webrisk/commit/64b1ef39dba3d568e5468e06ab026e500a346fae))
+* Add typing to proto.Message based class attributes ([64b1ef3](https://github.com/googleapis/python-webrisk/commit/64b1ef39dba3d568e5468e06ab026e500a346fae))
+
+
+### Bug Fixes
+
+* Add dict typing for client_options ([64b1ef3](https://github.com/googleapis/python-webrisk/commit/64b1ef39dba3d568e5468e06ab026e500a346fae))
+* **deps:** Require google-api-core >=1.34.0, >=2.11.0 ([bd4ef44](https://github.com/googleapis/python-webrisk/commit/bd4ef44fc20254a7a0b0cfb3f7cd7923ecd885e0))
+* Drop usage of pkg_resources ([bd4ef44](https://github.com/googleapis/python-webrisk/commit/bd4ef44fc20254a7a0b0cfb3f7cd7923ecd885e0))
+* Fix timeout default values ([bd4ef44](https://github.com/googleapis/python-webrisk/commit/bd4ef44fc20254a7a0b0cfb3f7cd7923ecd885e0))
+
+
+### Documentation
+
+* **samples:** Snippetgen handling of repeated enum field ([64b1ef3](https://github.com/googleapis/python-webrisk/commit/64b1ef39dba3d568e5468e06ab026e500a346fae))
+* **samples:** Snippetgen should call await on the operation coroutine before calling result ([bd4ef44](https://github.com/googleapis/python-webrisk/commit/bd4ef44fc20254a7a0b0cfb3f7cd7923ecd885e0))
+
## [1.8.4](https://github.com/googleapis/python-webrisk/compare/v1.8.3...v1.8.4) (2022-10-07)
diff --git a/docs/webrisk_v1/types.rst b/docs/webrisk_v1/types.rst
index 8d742a7..d5b56e6 100644
--- a/docs/webrisk_v1/types.rst
+++ b/docs/webrisk_v1/types.rst
@@ -3,5 +3,4 @@ Types for Google Cloud Webrisk v1 API
.. automodule:: google.cloud.webrisk_v1.types
:members:
- :undoc-members:
:show-inheritance:
diff --git a/docs/webrisk_v1beta1/types.rst b/docs/webrisk_v1beta1/types.rst
index 440fe29..d6aefb6 100644
--- a/docs/webrisk_v1beta1/types.rst
+++ b/docs/webrisk_v1beta1/types.rst
@@ -3,5 +3,4 @@ Types for Google Cloud Webrisk v1beta1 API
.. automodule:: google.cloud.webrisk_v1beta1.types
:members:
- :undoc-members:
:show-inheritance:
diff --git a/google/cloud/webrisk/__init__.py b/google/cloud/webrisk/__init__.py
index 51c2622..f8b0db3 100644
--- a/google/cloud/webrisk/__init__.py
+++ b/google/cloud/webrisk/__init__.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+from google.cloud.webrisk import gapic_version as package_version
+
+__version__ = package_version.__version__
+
from google.cloud.webrisk_v1.services.web_risk_service.async_client import (
WebRiskServiceAsyncClient,
diff --git a/google/cloud/webrisk/gapic_version.py b/google/cloud/webrisk/gapic_version.py
new file mode 100644
index 0000000..163d151
--- /dev/null
+++ b/google/cloud/webrisk/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__ = "1.9.0" # {x-release-please-version}
diff --git a/google/cloud/webrisk_v1/__init__.py b/google/cloud/webrisk_v1/__init__.py
index f4f70e8..50c72b1 100644
--- a/google/cloud/webrisk_v1/__init__.py
+++ b/google/cloud/webrisk_v1/__init__.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+from google.cloud.webrisk import gapic_version as package_version
+
+__version__ = package_version.__version__
+
from .services.web_risk_service import WebRiskServiceAsyncClient, WebRiskServiceClient
from .types.webrisk import (
diff --git a/google/cloud/webrisk_v1/gapic_version.py b/google/cloud/webrisk_v1/gapic_version.py
new file mode 100644
index 0000000..163d151
--- /dev/null
+++ b/google/cloud/webrisk_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__ = "1.9.0" # {x-release-please-version}
diff --git a/google/cloud/webrisk_v1/services/web_risk_service/async_client.py b/google/cloud/webrisk_v1/services/web_risk_service/async_client.py
index 5d5041f..dc66959 100644
--- a/google/cloud/webrisk_v1/services/web_risk_service/async_client.py
+++ b/google/cloud/webrisk_v1/services/web_risk_service/async_client.py
@@ -16,7 +16,17 @@
from collections import OrderedDict
import functools
import re
-from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union
+from typing import (
+ Dict,
+ Mapping,
+ MutableMapping,
+ MutableSequence,
+ Optional,
+ Sequence,
+ Tuple,
+ Type,
+ Union,
+)
from google.api_core import exceptions as core_exceptions
from google.api_core import gapic_v1
@@ -24,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.webrisk_v1 import gapic_version as package_version
try:
OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
@@ -160,9 +171,9 @@ def transport(self) -> WebRiskServiceTransport:
def __init__(
self,
*,
- credentials: ga_credentials.Credentials = None,
+ credentials: Optional[ga_credentials.Credentials] = None,
transport: Union[str, WebRiskServiceTransport] = "grpc_asyncio",
- client_options: ClientOptions = None,
+ client_options: Optional[ClientOptions] = None,
client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
) -> None:
"""Instantiates the web risk service client.
@@ -206,13 +217,13 @@ def __init__(
async def compute_threat_list_diff(
self,
- request: Union[webrisk.ComputeThreatListDiffRequest, dict] = None,
+ request: Optional[Union[webrisk.ComputeThreatListDiffRequest, dict]] = None,
*,
- threat_type: webrisk.ThreatType = None,
- version_token: bytes = None,
- constraints: webrisk.ComputeThreatListDiffRequest.Constraints = None,
+ threat_type: Optional[webrisk.ThreatType] = None,
+ version_token: Optional[bytes] = None,
+ constraints: Optional[webrisk.ComputeThreatListDiffRequest.Constraints] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.ComputeThreatListDiffResponse:
r"""Gets the most recent threat list diffs. These diffs
@@ -241,7 +252,7 @@ async def sample_compute_threat_list_diff():
# Initialize request argument(s)
request = webrisk_v1.ComputeThreatListDiffRequest(
- threat_type="UNWANTED_SOFTWARE",
+ threat_type="SOCIAL_ENGINEERING_EXTENDED_COVERAGE",
)
# Make the request
@@ -251,12 +262,14 @@ async def sample_compute_threat_list_diff():
print(response)
Args:
- request (Union[google.cloud.webrisk_v1.types.ComputeThreatListDiffRequest, dict]):
+ request (Optional[Union[google.cloud.webrisk_v1.types.ComputeThreatListDiffRequest, dict]]):
The request object. Describes an API diff request.
threat_type (:class:`google.cloud.webrisk_v1.types.ThreatType`):
Required. The threat list to update.
Only a single ThreatType should be
- specified.
+ specified per request. If you want to
+ handle multiple ThreatTypes, you must
+ make one request per ThreatType.
This corresponds to the ``threat_type`` field
on the ``request`` instance; if ``request`` is provided, this
@@ -344,12 +357,12 @@ async def sample_compute_threat_list_diff():
async def search_uris(
self,
- request: Union[webrisk.SearchUrisRequest, dict] = None,
+ request: Optional[Union[webrisk.SearchUrisRequest, dict]] = None,
*,
- uri: str = None,
- threat_types: Sequence[webrisk.ThreatType] = None,
+ uri: Optional[str] = None,
+ threat_types: Optional[MutableSequence[webrisk.ThreatType]] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.SearchUrisResponse:
r"""This method is used to check whether a URI is on a
@@ -377,7 +390,7 @@ async def sample_search_uris():
# Initialize request argument(s)
request = webrisk_v1.SearchUrisRequest(
uri="uri_value",
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['SOCIAL_ENGINEERING_EXTENDED_COVERAGE'],
)
# Make the request
@@ -387,7 +400,7 @@ async def sample_search_uris():
print(response)
Args:
- request (Union[google.cloud.webrisk_v1.types.SearchUrisRequest, dict]):
+ request (Optional[Union[google.cloud.webrisk_v1.types.SearchUrisRequest, dict]]):
The request object. Request to check URI entries against
threatLists.
uri (:class:`str`):
@@ -397,7 +410,7 @@ async def sample_search_uris():
This corresponds to the ``uri`` field
on the ``request`` instance; if ``request`` is provided, this
should not be set.
- threat_types (:class:`Sequence[google.cloud.webrisk_v1.types.ThreatType]`):
+ threat_types (:class:`MutableSequence[google.cloud.webrisk_v1.types.ThreatType]`):
Required. The ThreatLists to search
in. Multiple ThreatLists may be
specified.
@@ -465,12 +478,12 @@ async def sample_search_uris():
async def search_hashes(
self,
- request: Union[webrisk.SearchHashesRequest, dict] = None,
+ request: Optional[Union[webrisk.SearchHashesRequest, dict]] = None,
*,
- hash_prefix: bytes = None,
- threat_types: Sequence[webrisk.ThreatType] = None,
+ hash_prefix: Optional[bytes] = None,
+ threat_types: Optional[MutableSequence[webrisk.ThreatType]] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.SearchHashesResponse:
r"""Gets the full hashes that match the requested hash
@@ -497,7 +510,7 @@ async def sample_search_hashes():
# Initialize request argument(s)
request = webrisk_v1.SearchHashesRequest(
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['SOCIAL_ENGINEERING_EXTENDED_COVERAGE'],
)
# Make the request
@@ -507,19 +520,22 @@ async def sample_search_hashes():
print(response)
Args:
- request (Union[google.cloud.webrisk_v1.types.SearchHashesRequest, dict]):
+ request (Optional[Union[google.cloud.webrisk_v1.types.SearchHashesRequest, dict]]):
The request object. Request to return full hashes
matched by the provided hash prefixes.
hash_prefix (:class:`bytes`):
A hash prefix, consisting of the most
significant 4-32 bytes of a SHA256 hash.
For JSON requests, this field is
- base64-encoded.
+ base64-encoded. Note that if this
+ parameter is provided by a URI, it must
+ be encoded using the web safe base64
+ variant (RFC 4648).
This corresponds to the ``hash_prefix`` field
on the ``request`` instance; if ``request`` is provided, this
should not be set.
- threat_types (:class:`Sequence[google.cloud.webrisk_v1.types.ThreatType]`):
+ threat_types (:class:`MutableSequence[google.cloud.webrisk_v1.types.ThreatType]`):
Required. The ThreatLists to search
in. Multiple ThreatLists may be
specified.
@@ -587,12 +603,12 @@ async def sample_search_hashes():
async def create_submission(
self,
- request: Union[webrisk.CreateSubmissionRequest, dict] = None,
+ request: Optional[Union[webrisk.CreateSubmissionRequest, dict]] = None,
*,
- parent: str = None,
- submission: webrisk.Submission = None,
+ parent: Optional[str] = None,
+ submission: Optional[webrisk.Submission] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.Submission:
r"""Creates a Submission of a URI suspected of containing phishing
@@ -601,8 +617,9 @@ async def create_submission(
`Google's Social Engineering
lists `__
in order to protect users that could get exposed to this threat
- in the future. Only projects with CREATE_SUBMISSION_USERS
- visibility can use this method.
+ in the future. Only allowlisted projects can use this method
+ during Early Access. Please reach out to Sales or your customer
+ engineer to obtain access.
.. code-block:: python
@@ -635,7 +652,7 @@ async def sample_create_submission():
print(response)
Args:
- request (Union[google.cloud.webrisk_v1.types.CreateSubmissionRequest, dict]):
+ request (Optional[Union[google.cloud.webrisk_v1.types.CreateSubmissionRequest, dict]]):
The request object. Request to send a potentially phishy
URI to WebRisk.
parent (:class:`str`):
@@ -663,7 +680,7 @@ async def sample_create_submission():
Returns:
google.cloud.webrisk_v1.types.Submission:
Wraps a URI that might be displaying
- phishing content.
+ malicious content.
"""
# Create or coerce a protobuf request object.
@@ -689,7 +706,7 @@ async def sample_create_submission():
# and friendly error handling.
rpc = gapic_v1.method_async.wrap_method(
self._client._transport.create_submission,
- default_timeout=60.0,
+ default_timeout=600.0,
client_info=DEFAULT_CLIENT_INFO,
)
@@ -717,14 +734,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-webrisk",
- ).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__ = ("WebRiskServiceAsyncClient",)
diff --git a/google/cloud/webrisk_v1/services/web_risk_service/client.py b/google/cloud/webrisk_v1/services/web_risk_service/client.py
index fe266f6..e213d36 100644
--- a/google/cloud/webrisk_v1/services/web_risk_service/client.py
+++ b/google/cloud/webrisk_v1/services/web_risk_service/client.py
@@ -16,7 +16,18 @@
from collections import OrderedDict
import os
import re
-from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union
+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
@@ -27,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.webrisk_v1 import gapic_version as package_version
try:
OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
@@ -59,7 +71,7 @@ class WebRiskServiceClientMeta(type):
def get_transport_class(
cls,
- label: str = None,
+ label: Optional[str] = None,
) -> Type[WebRiskServiceTransport]:
"""Returns an appropriate transport class.
@@ -314,8 +326,8 @@ def __init__(
self,
*,
credentials: Optional[ga_credentials.Credentials] = None,
- transport: Union[str, WebRiskServiceTransport, None] = None,
- client_options: Optional[client_options_lib.ClientOptions] = None,
+ transport: Optional[Union[str, WebRiskServiceTransport]] = None,
+ client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
) -> None:
"""Instantiates the web risk service client.
@@ -329,7 +341,7 @@ def __init__(
transport (Union[str, WebRiskServiceTransport]): 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
@@ -359,6 +371,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
@@ -411,13 +424,13 @@ def __init__(
def compute_threat_list_diff(
self,
- request: Union[webrisk.ComputeThreatListDiffRequest, dict] = None,
+ request: Optional[Union[webrisk.ComputeThreatListDiffRequest, dict]] = None,
*,
- threat_type: webrisk.ThreatType = None,
- version_token: bytes = None,
- constraints: webrisk.ComputeThreatListDiffRequest.Constraints = None,
+ threat_type: Optional[webrisk.ThreatType] = None,
+ version_token: Optional[bytes] = None,
+ constraints: Optional[webrisk.ComputeThreatListDiffRequest.Constraints] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.ComputeThreatListDiffResponse:
r"""Gets the most recent threat list diffs. These diffs
@@ -446,7 +459,7 @@ def sample_compute_threat_list_diff():
# Initialize request argument(s)
request = webrisk_v1.ComputeThreatListDiffRequest(
- threat_type="UNWANTED_SOFTWARE",
+ threat_type="SOCIAL_ENGINEERING_EXTENDED_COVERAGE",
)
# Make the request
@@ -461,7 +474,9 @@ def sample_compute_threat_list_diff():
threat_type (google.cloud.webrisk_v1.types.ThreatType):
Required. The threat list to update.
Only a single ThreatType should be
- specified.
+ specified per request. If you want to
+ handle multiple ThreatTypes, you must
+ make one request per ThreatType.
This corresponds to the ``threat_type`` field
on the ``request`` instance; if ``request`` is provided, this
@@ -539,12 +554,12 @@ def sample_compute_threat_list_diff():
def search_uris(
self,
- request: Union[webrisk.SearchUrisRequest, dict] = None,
+ request: Optional[Union[webrisk.SearchUrisRequest, dict]] = None,
*,
- uri: str = None,
- threat_types: Sequence[webrisk.ThreatType] = None,
+ uri: Optional[str] = None,
+ threat_types: Optional[MutableSequence[webrisk.ThreatType]] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.SearchUrisResponse:
r"""This method is used to check whether a URI is on a
@@ -572,7 +587,7 @@ def sample_search_uris():
# Initialize request argument(s)
request = webrisk_v1.SearchUrisRequest(
uri="uri_value",
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['SOCIAL_ENGINEERING_EXTENDED_COVERAGE'],
)
# Make the request
@@ -592,7 +607,7 @@ def sample_search_uris():
This corresponds to the ``uri`` field
on the ``request`` instance; if ``request`` is provided, this
should not be set.
- threat_types (Sequence[google.cloud.webrisk_v1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1.types.ThreatType]):
Required. The ThreatLists to search
in. Multiple ThreatLists may be
specified.
@@ -650,12 +665,12 @@ def sample_search_uris():
def search_hashes(
self,
- request: Union[webrisk.SearchHashesRequest, dict] = None,
+ request: Optional[Union[webrisk.SearchHashesRequest, dict]] = None,
*,
- hash_prefix: bytes = None,
- threat_types: Sequence[webrisk.ThreatType] = None,
+ hash_prefix: Optional[bytes] = None,
+ threat_types: Optional[MutableSequence[webrisk.ThreatType]] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.SearchHashesResponse:
r"""Gets the full hashes that match the requested hash
@@ -682,7 +697,7 @@ def sample_search_hashes():
# Initialize request argument(s)
request = webrisk_v1.SearchHashesRequest(
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['SOCIAL_ENGINEERING_EXTENDED_COVERAGE'],
)
# Make the request
@@ -699,12 +714,15 @@ def sample_search_hashes():
A hash prefix, consisting of the most
significant 4-32 bytes of a SHA256 hash.
For JSON requests, this field is
- base64-encoded.
+ base64-encoded. Note that if this
+ parameter is provided by a URI, it must
+ be encoded using the web safe base64
+ variant (RFC 4648).
This corresponds to the ``hash_prefix`` field
on the ``request`` instance; if ``request`` is provided, this
should not be set.
- threat_types (Sequence[google.cloud.webrisk_v1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1.types.ThreatType]):
Required. The ThreatLists to search
in. Multiple ThreatLists may be
specified.
@@ -762,12 +780,12 @@ def sample_search_hashes():
def create_submission(
self,
- request: Union[webrisk.CreateSubmissionRequest, dict] = None,
+ request: Optional[Union[webrisk.CreateSubmissionRequest, dict]] = None,
*,
- parent: str = None,
- submission: webrisk.Submission = None,
+ parent: Optional[str] = None,
+ submission: Optional[webrisk.Submission] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.Submission:
r"""Creates a Submission of a URI suspected of containing phishing
@@ -776,8 +794,9 @@ def create_submission(
`Google's Social Engineering
lists `__
in order to protect users that could get exposed to this threat
- in the future. Only projects with CREATE_SUBMISSION_USERS
- visibility can use this method.
+ in the future. Only allowlisted projects can use this method
+ during Early Access. Please reach out to Sales or your customer
+ engineer to obtain access.
.. code-block:: python
@@ -838,7 +857,7 @@ def sample_create_submission():
Returns:
google.cloud.webrisk_v1.types.Submission:
Wraps a URI that might be displaying
- phishing content.
+ malicious content.
"""
# Create or coerce a protobuf request object.
@@ -899,14 +918,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-webrisk",
- ).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__ = ("WebRiskServiceClient",)
diff --git a/google/cloud/webrisk_v1/services/web_risk_service/transports/base.py b/google/cloud/webrisk_v1/services/web_risk_service/transports/base.py
index d295a68..4c95900 100644
--- a/google/cloud/webrisk_v1/services/web_risk_service/transports/base.py
+++ b/google/cloud/webrisk_v1/services/web_risk_service/transports/base.py
@@ -23,18 +23,13 @@
import google.auth # type: ignore
from google.auth import credentials as ga_credentials # type: ignore
from google.oauth2 import service_account # type: ignore
-import pkg_resources
+from google.cloud.webrisk_v1 import gapic_version as package_version
from google.cloud.webrisk_v1.types import webrisk
-try:
- DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
- gapic_version=pkg_resources.get_distribution(
- "google-cloud-webrisk",
- ).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 WebRiskServiceTransport(abc.ABC):
@@ -48,7 +43,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,
@@ -174,7 +169,7 @@ def _prep_wrapped_messages(self, client_info):
),
self.create_submission: gapic_v1.method.wrap_method(
self.create_submission,
- default_timeout=60.0,
+ default_timeout=600.0,
client_info=client_info,
),
}
diff --git a/google/cloud/webrisk_v1/services/web_risk_service/transports/grpc.py b/google/cloud/webrisk_v1/services/web_risk_service/transports/grpc.py
index 77e558e..d75c239 100644
--- a/google/cloud/webrisk_v1/services/web_risk_service/transports/grpc.py
+++ b/google/cloud/webrisk_v1/services/web_risk_service/transports/grpc.py
@@ -47,14 +47,14 @@ def __init__(
self,
*,
host: str = "webrisk.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,
@@ -181,8 +181,8 @@ def __init__(
def create_channel(
cls,
host: str = "webrisk.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,
@@ -338,8 +338,9 @@ def create_submission(
`Google's Social Engineering
lists `__
in order to protect users that could get exposed to this threat
- in the future. Only projects with CREATE_SUBMISSION_USERS
- visibility can use this method.
+ in the future. Only allowlisted projects can use this method
+ during Early Access. Please reach out to Sales or your customer
+ engineer to obtain access.
Returns:
Callable[[~.CreateSubmissionRequest],
diff --git a/google/cloud/webrisk_v1/services/web_risk_service/transports/grpc_asyncio.py b/google/cloud/webrisk_v1/services/web_risk_service/transports/grpc_asyncio.py
index 003d2e8..10efafa 100644
--- a/google/cloud/webrisk_v1/services/web_risk_service/transports/grpc_asyncio.py
+++ b/google/cloud/webrisk_v1/services/web_risk_service/transports/grpc_asyncio.py
@@ -49,7 +49,7 @@ class WebRiskServiceGrpcAsyncIOTransport(WebRiskServiceTransport):
def create_channel(
cls,
host: str = "webrisk.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,
@@ -92,15 +92,15 @@ def __init__(
self,
*,
host: str = "webrisk.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,
@@ -344,8 +344,9 @@ def create_submission(
`Google's Social Engineering
lists `__
in order to protect users that could get exposed to this threat
- in the future. Only projects with CREATE_SUBMISSION_USERS
- visibility can use this method.
+ in the future. Only allowlisted projects can use this method
+ during Early Access. Please reach out to Sales or your customer
+ engineer to obtain access.
Returns:
Callable[[~.CreateSubmissionRequest],
diff --git a/google/cloud/webrisk_v1/types/webrisk.py b/google/cloud/webrisk_v1/types/webrisk.py
index 2816326..6b3b3ea 100644
--- a/google/cloud/webrisk_v1/types/webrisk.py
+++ b/google/cloud/webrisk_v1/types/webrisk.py
@@ -13,6 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+from typing import MutableMapping, MutableSequence
+
from google.protobuf import timestamp_pb2 # type: ignore
import proto # type: ignore
@@ -39,13 +41,14 @@
class ThreatType(proto.Enum):
- r"""The type of threat. This maps dirrectly to the threat list a
+ r"""The type of threat. This maps directly to the threat list a
threat may belong to.
"""
THREAT_TYPE_UNSPECIFIED = 0
MALWARE = 1
SOCIAL_ENGINEERING = 2
UNWANTED_SOFTWARE = 3
+ SOCIAL_ENGINEERING_EXTENDED_COVERAGE = 4
class CompressionType(proto.Enum):
@@ -61,7 +64,10 @@ class ComputeThreatListDiffRequest(proto.Message):
Attributes:
threat_type (google.cloud.webrisk_v1.types.ThreatType):
Required. The threat list to update. Only a
- single ThreatType should be specified.
+ single ThreatType should be specified per
+ request. If you want to handle multiple
+ ThreatTypes, you must make one request per
+ ThreatType.
version_token (bytes):
The current version token of the client for
the requested list (the client version that was
@@ -89,35 +95,37 @@ class Constraints(proto.Message):
willing to have in the local database. This should be a
power of 2 between 2\ **10 and 2**\ 20. If zero, no database
size limit is set.
- supported_compressions (Sequence[google.cloud.webrisk_v1.types.CompressionType]):
+ supported_compressions (MutableSequence[google.cloud.webrisk_v1.types.CompressionType]):
The compression types supported by the
client.
"""
- max_diff_entries = proto.Field(
+ max_diff_entries: int = proto.Field(
proto.INT32,
number=1,
)
- max_database_entries = proto.Field(
+ max_database_entries: int = proto.Field(
proto.INT32,
number=2,
)
- supported_compressions = proto.RepeatedField(
+ supported_compressions: MutableSequence[
+ "CompressionType"
+ ] = proto.RepeatedField(
proto.ENUM,
number=3,
enum="CompressionType",
)
- threat_type = proto.Field(
+ threat_type: "ThreatType" = proto.Field(
proto.ENUM,
number=1,
enum="ThreatType",
)
- version_token = proto.Field(
+ version_token: bytes = proto.Field(
proto.BYTES,
number=2,
)
- constraints = proto.Field(
+ constraints: Constraints = proto.Field(
proto.MESSAGE,
number=3,
message=Constraints,
@@ -175,36 +183,36 @@ class Checksum(proto.Message):
database.
"""
- sha256 = proto.Field(
+ sha256: bytes = proto.Field(
proto.BYTES,
number=1,
)
- response_type = proto.Field(
+ response_type: ResponseType = proto.Field(
proto.ENUM,
number=4,
enum=ResponseType,
)
- additions = proto.Field(
+ additions: "ThreatEntryAdditions" = proto.Field(
proto.MESSAGE,
number=5,
message="ThreatEntryAdditions",
)
- removals = proto.Field(
+ removals: "ThreatEntryRemovals" = proto.Field(
proto.MESSAGE,
number=6,
message="ThreatEntryRemovals",
)
- new_version_token = proto.Field(
+ new_version_token: bytes = proto.Field(
proto.BYTES,
number=7,
)
- checksum = proto.Field(
+ checksum: Checksum = proto.Field(
proto.MESSAGE,
number=8,
message=Checksum,
)
- recommended_next_diff = proto.Field(
+ recommended_next_diff: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=2,
message=timestamp_pb2.Timestamp,
@@ -217,16 +225,16 @@ class SearchUrisRequest(proto.Message):
Attributes:
uri (str):
Required. The URI to be checked for matches.
- threat_types (Sequence[google.cloud.webrisk_v1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1.types.ThreatType]):
Required. The ThreatLists to search in.
Multiple ThreatLists may be specified.
"""
- uri = proto.Field(
+ uri: str = proto.Field(
proto.STRING,
number=1,
)
- threat_types = proto.RepeatedField(
+ threat_types: MutableSequence["ThreatType"] = proto.RepeatedField(
proto.ENUM,
number=2,
enum="ThreatType",
@@ -238,15 +246,15 @@ class SearchUrisResponse(proto.Message):
Attributes:
threat (google.cloud.webrisk_v1.types.SearchUrisResponse.ThreatUri):
- The threat list matches. This may be empty if
- the URI is on no list.
+ The threat list matches. This might be empty
+ if the URI is on no list.
"""
class ThreatUri(proto.Message):
r"""Contains threat information on a matching uri.
Attributes:
- threat_types (Sequence[google.cloud.webrisk_v1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1.types.ThreatType]):
The ThreatList this threat belongs to.
expire_time (google.protobuf.timestamp_pb2.Timestamp):
The cache lifetime for the returned match.
@@ -254,18 +262,18 @@ class ThreatUri(proto.Message):
timestamp to avoid false positives.
"""
- threat_types = proto.RepeatedField(
+ threat_types: MutableSequence["ThreatType"] = proto.RepeatedField(
proto.ENUM,
number=1,
enum="ThreatType",
)
- expire_time = proto.Field(
+ expire_time: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=2,
message=timestamp_pb2.Timestamp,
)
- threat = proto.Field(
+ threat: ThreatUri = proto.Field(
proto.MESSAGE,
number=1,
message=ThreatUri,
@@ -281,16 +289,19 @@ class SearchHashesRequest(proto.Message):
A hash prefix, consisting of the most
significant 4-32 bytes of a SHA256 hash. For
JSON requests, this field is base64-encoded.
- threat_types (Sequence[google.cloud.webrisk_v1.types.ThreatType]):
+ Note that if this parameter is provided by a
+ URI, it must be encoded using the web safe
+ base64 variant (RFC 4648).
+ threat_types (MutableSequence[google.cloud.webrisk_v1.types.ThreatType]):
Required. The ThreatLists to search in.
Multiple ThreatLists may be specified.
"""
- hash_prefix = proto.Field(
+ hash_prefix: bytes = proto.Field(
proto.BYTES,
number=1,
)
- threat_types = proto.RepeatedField(
+ threat_types: MutableSequence["ThreatType"] = proto.RepeatedField(
proto.ENUM,
number=2,
enum="ThreatType",
@@ -301,7 +312,7 @@ class SearchHashesResponse(proto.Message):
r"""
Attributes:
- threats (Sequence[google.cloud.webrisk_v1.types.SearchHashesResponse.ThreatHash]):
+ threats (MutableSequence[google.cloud.webrisk_v1.types.SearchHashesResponse.ThreatHash]):
The full hashes that matched the requested
prefixes. The hash will be populated in the key.
negative_expire_time (google.protobuf.timestamp_pb2.Timestamp):
@@ -314,7 +325,7 @@ class ThreatHash(proto.Message):
r"""Contains threat information on a matching hash.
Attributes:
- threat_types (Sequence[google.cloud.webrisk_v1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1.types.ThreatType]):
The ThreatList this threat belongs to.
This must contain at least one entry.
hash_ (bytes):
@@ -327,27 +338,27 @@ class ThreatHash(proto.Message):
timestamp to avoid false positives.
"""
- threat_types = proto.RepeatedField(
+ threat_types: MutableSequence["ThreatType"] = proto.RepeatedField(
proto.ENUM,
number=1,
enum="ThreatType",
)
- hash_ = proto.Field(
+ hash_: bytes = proto.Field(
proto.BYTES,
number=2,
)
- expire_time = proto.Field(
+ expire_time: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=3,
message=timestamp_pb2.Timestamp,
)
- threats = proto.RepeatedField(
+ threats: MutableSequence[ThreatHash] = proto.RepeatedField(
proto.MESSAGE,
number=1,
message=ThreatHash,
)
- negative_expire_time = proto.Field(
+ negative_expire_time: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=2,
message=timestamp_pb2.Timestamp,
@@ -360,7 +371,7 @@ class ThreatEntryAdditions(proto.Message):
response.
Attributes:
- raw_hashes (Sequence[google.cloud.webrisk_v1.types.RawHashes]):
+ raw_hashes (MutableSequence[google.cloud.webrisk_v1.types.RawHashes]):
The raw SHA256-formatted entries.
Repeated to allow returning sets of hashes with
different prefix sizes.
@@ -371,12 +382,12 @@ class ThreatEntryAdditions(proto.Message):
stored as encoded_data.
"""
- raw_hashes = proto.RepeatedField(
+ raw_hashes: MutableSequence["RawHashes"] = proto.RepeatedField(
proto.MESSAGE,
number=1,
message="RawHashes",
)
- rice_hashes = proto.Field(
+ rice_hashes: "RiceDeltaEncoding" = proto.Field(
proto.MESSAGE,
number=2,
message="RiceDeltaEncoding",
@@ -397,12 +408,12 @@ class ThreatEntryRemovals(proto.Message):
encoded_data.
"""
- raw_indices = proto.Field(
+ raw_indices: "RawIndices" = proto.Field(
proto.MESSAGE,
number=1,
message="RawIndices",
)
- rice_indices = proto.Field(
+ rice_indices: "RiceDeltaEncoding" = proto.Field(
proto.MESSAGE,
number=2,
message="RiceDeltaEncoding",
@@ -413,12 +424,12 @@ class RawIndices(proto.Message):
r"""A set of raw indices to remove from a local list.
Attributes:
- indices (Sequence[int]):
+ indices (MutableSequence[int]):
The indices to remove from a
lexicographically-sorted local list.
"""
- indices = proto.RepeatedField(
+ indices: MutableSequence[int] = proto.RepeatedField(
proto.INT32,
number=1,
)
@@ -448,11 +459,11 @@ class RawHashes(proto.Message):
are base64-encoded.
"""
- prefix_size = proto.Field(
+ prefix_size: int = proto.Field(
proto.INT32,
number=1,
)
- raw_hashes = proto.Field(
+ raw_hashes: bytes = proto.Field(
proto.BYTES,
number=2,
)
@@ -481,34 +492,34 @@ class RiceDeltaEncoding(proto.Message):
Golomb-Rice coder.
"""
- first_value = proto.Field(
+ first_value: int = proto.Field(
proto.INT64,
number=1,
)
- rice_parameter = proto.Field(
+ rice_parameter: int = proto.Field(
proto.INT32,
number=2,
)
- entry_count = proto.Field(
+ entry_count: int = proto.Field(
proto.INT32,
number=3,
)
- encoded_data = proto.Field(
+ encoded_data: bytes = proto.Field(
proto.BYTES,
number=4,
)
class Submission(proto.Message):
- r"""Wraps a URI that might be displaying phishing content.
+ r"""Wraps a URI that might be displaying malicious content.
Attributes:
uri (str):
Required. The URI that is being reported for
- phishing content to be analyzed.
+ malicious content to be analyzed.
"""
- uri = proto.Field(
+ uri: str = proto.Field(
proto.STRING,
number=1,
)
@@ -527,11 +538,11 @@ class CreateSubmissionRequest(proto.Message):
content of the phishing report.
"""
- parent = proto.Field(
+ parent: str = proto.Field(
proto.STRING,
number=1,
)
- submission = proto.Field(
+ submission: "Submission" = proto.Field(
proto.MESSAGE,
number=2,
message="Submission",
diff --git a/google/cloud/webrisk_v1beta1/__init__.py b/google/cloud/webrisk_v1beta1/__init__.py
index cebdcac..73de02d 100644
--- a/google/cloud/webrisk_v1beta1/__init__.py
+++ b/google/cloud/webrisk_v1beta1/__init__.py
@@ -13,6 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+from google.cloud.webrisk import gapic_version as package_version
+
+__version__ = package_version.__version__
+
from .services.web_risk_service_v1_beta1 import (
WebRiskServiceV1Beta1AsyncClient,
diff --git a/google/cloud/webrisk_v1beta1/gapic_version.py b/google/cloud/webrisk_v1beta1/gapic_version.py
new file mode 100644
index 0000000..163d151
--- /dev/null
+++ b/google/cloud/webrisk_v1beta1/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__ = "1.9.0" # {x-release-please-version}
diff --git a/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/async_client.py b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/async_client.py
index 9859d92..0492f5c 100644
--- a/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/async_client.py
+++ b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/async_client.py
@@ -16,7 +16,17 @@
from collections import OrderedDict
import functools
import re
-from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union
+from typing import (
+ Dict,
+ Mapping,
+ MutableMapping,
+ MutableSequence,
+ Optional,
+ Sequence,
+ Tuple,
+ Type,
+ Union,
+)
from google.api_core import exceptions as core_exceptions
from google.api_core import gapic_v1
@@ -24,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.webrisk_v1beta1 import gapic_version as package_version
try:
OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
@@ -163,9 +174,9 @@ def transport(self) -> WebRiskServiceV1Beta1Transport:
def __init__(
self,
*,
- credentials: ga_credentials.Credentials = None,
+ credentials: Optional[ga_credentials.Credentials] = None,
transport: Union[str, WebRiskServiceV1Beta1Transport] = "grpc_asyncio",
- client_options: ClientOptions = None,
+ client_options: Optional[ClientOptions] = None,
client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
) -> None:
"""Instantiates the web risk service v1 beta1 client.
@@ -209,13 +220,13 @@ def __init__(
async def compute_threat_list_diff(
self,
- request: Union[webrisk.ComputeThreatListDiffRequest, dict] = None,
+ request: Optional[Union[webrisk.ComputeThreatListDiffRequest, dict]] = None,
*,
- threat_type: webrisk.ThreatType = None,
- version_token: bytes = None,
- constraints: webrisk.ComputeThreatListDiffRequest.Constraints = None,
+ threat_type: Optional[webrisk.ThreatType] = None,
+ version_token: Optional[bytes] = None,
+ constraints: Optional[webrisk.ComputeThreatListDiffRequest.Constraints] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.ComputeThreatListDiffResponse:
r"""Gets the most recent threat list diffs.
@@ -247,7 +258,7 @@ async def sample_compute_threat_list_diff():
print(response)
Args:
- request (Union[google.cloud.webrisk_v1beta1.types.ComputeThreatListDiffRequest, dict]):
+ request (Optional[Union[google.cloud.webrisk_v1beta1.types.ComputeThreatListDiffRequest, dict]]):
The request object. Describes an API diff request.
threat_type (:class:`google.cloud.webrisk_v1beta1.types.ThreatType`):
The ThreatList to update.
@@ -332,12 +343,12 @@ async def sample_compute_threat_list_diff():
async def search_uris(
self,
- request: Union[webrisk.SearchUrisRequest, dict] = None,
+ request: Optional[Union[webrisk.SearchUrisRequest, dict]] = None,
*,
- uri: str = None,
- threat_types: Sequence[webrisk.ThreatType] = None,
+ uri: Optional[str] = None,
+ threat_types: Optional[MutableSequence[webrisk.ThreatType]] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.SearchUrisResponse:
r"""This method is used to check whether a URI is on a
@@ -361,7 +372,7 @@ async def sample_search_uris():
# Initialize request argument(s)
request = webrisk_v1beta1.SearchUrisRequest(
uri="uri_value",
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['UNWANTED_SOFTWARE'],
)
# Make the request
@@ -371,7 +382,7 @@ async def sample_search_uris():
print(response)
Args:
- request (Union[google.cloud.webrisk_v1beta1.types.SearchUrisRequest, dict]):
+ request (Optional[Union[google.cloud.webrisk_v1beta1.types.SearchUrisRequest, dict]]):
The request object. Request to check URI entries against
threatLists.
uri (:class:`str`):
@@ -381,7 +392,7 @@ async def sample_search_uris():
This corresponds to the ``uri`` field
on the ``request`` instance; if ``request`` is provided, this
should not be set.
- threat_types (:class:`Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]`):
+ threat_types (:class:`MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]`):
Required. The ThreatLists to search
in.
@@ -448,12 +459,12 @@ async def sample_search_uris():
async def search_hashes(
self,
- request: Union[webrisk.SearchHashesRequest, dict] = None,
+ request: Optional[Union[webrisk.SearchHashesRequest, dict]] = None,
*,
- hash_prefix: bytes = None,
- threat_types: Sequence[webrisk.ThreatType] = None,
+ hash_prefix: Optional[bytes] = None,
+ threat_types: Optional[MutableSequence[webrisk.ThreatType]] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.SearchHashesResponse:
r"""Gets the full hashes that match the requested hash
@@ -480,7 +491,7 @@ async def sample_search_hashes():
# Initialize request argument(s)
request = webrisk_v1beta1.SearchHashesRequest(
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['UNWANTED_SOFTWARE'],
)
# Make the request
@@ -490,7 +501,7 @@ async def sample_search_hashes():
print(response)
Args:
- request (Union[google.cloud.webrisk_v1beta1.types.SearchHashesRequest, dict]):
+ request (Optional[Union[google.cloud.webrisk_v1beta1.types.SearchHashesRequest, dict]]):
The request object. Request to return full hashes
matched by the provided hash prefixes.
hash_prefix (:class:`bytes`):
@@ -502,7 +513,7 @@ async def sample_search_hashes():
This corresponds to the ``hash_prefix`` field
on the ``request`` instance; if ``request`` is provided, this
should not be set.
- threat_types (:class:`Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]`):
+ threat_types (:class:`MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]`):
Required. The ThreatLists to search
in.
@@ -574,14 +585,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-webrisk",
- ).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__ = ("WebRiskServiceV1Beta1AsyncClient",)
diff --git a/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/client.py b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/client.py
index 287eaa4..b4002ac 100644
--- a/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/client.py
+++ b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/client.py
@@ -16,7 +16,18 @@
from collections import OrderedDict
import os
import re
-from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union
+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
@@ -27,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.webrisk_v1beta1 import gapic_version as package_version
try:
OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault]
@@ -59,7 +71,7 @@ class WebRiskServiceV1Beta1ClientMeta(type):
def get_transport_class(
cls,
- label: str = None,
+ label: Optional[str] = None,
) -> Type[WebRiskServiceV1Beta1Transport]:
"""Returns an appropriate transport class.
@@ -314,8 +326,8 @@ def __init__(
self,
*,
credentials: Optional[ga_credentials.Credentials] = None,
- transport: Union[str, WebRiskServiceV1Beta1Transport, None] = None,
- client_options: Optional[client_options_lib.ClientOptions] = None,
+ transport: Optional[Union[str, WebRiskServiceV1Beta1Transport]] = None,
+ client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None,
client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
) -> None:
"""Instantiates the web risk service v1 beta1 client.
@@ -329,7 +341,7 @@ def __init__(
transport (Union[str, WebRiskServiceV1Beta1Transport]): 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
@@ -359,6 +371,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
@@ -411,13 +424,13 @@ def __init__(
def compute_threat_list_diff(
self,
- request: Union[webrisk.ComputeThreatListDiffRequest, dict] = None,
+ request: Optional[Union[webrisk.ComputeThreatListDiffRequest, dict]] = None,
*,
- threat_type: webrisk.ThreatType = None,
- version_token: bytes = None,
- constraints: webrisk.ComputeThreatListDiffRequest.Constraints = None,
+ threat_type: Optional[webrisk.ThreatType] = None,
+ version_token: Optional[bytes] = None,
+ constraints: Optional[webrisk.ComputeThreatListDiffRequest.Constraints] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.ComputeThreatListDiffResponse:
r"""Gets the most recent threat list diffs.
@@ -524,12 +537,12 @@ def sample_compute_threat_list_diff():
def search_uris(
self,
- request: Union[webrisk.SearchUrisRequest, dict] = None,
+ request: Optional[Union[webrisk.SearchUrisRequest, dict]] = None,
*,
- uri: str = None,
- threat_types: Sequence[webrisk.ThreatType] = None,
+ uri: Optional[str] = None,
+ threat_types: Optional[MutableSequence[webrisk.ThreatType]] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.SearchUrisResponse:
r"""This method is used to check whether a URI is on a
@@ -553,7 +566,7 @@ def sample_search_uris():
# Initialize request argument(s)
request = webrisk_v1beta1.SearchUrisRequest(
uri="uri_value",
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['UNWANTED_SOFTWARE'],
)
# Make the request
@@ -573,7 +586,7 @@ def sample_search_uris():
This corresponds to the ``uri`` field
on the ``request`` instance; if ``request`` is provided, this
should not be set.
- threat_types (Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
Required. The ThreatLists to search
in.
@@ -630,12 +643,12 @@ def sample_search_uris():
def search_hashes(
self,
- request: Union[webrisk.SearchHashesRequest, dict] = None,
+ request: Optional[Union[webrisk.SearchHashesRequest, dict]] = None,
*,
- hash_prefix: bytes = None,
- threat_types: Sequence[webrisk.ThreatType] = None,
+ hash_prefix: Optional[bytes] = None,
+ threat_types: Optional[MutableSequence[webrisk.ThreatType]] = None,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
- timeout: float = None,
+ timeout: Union[float, object] = gapic_v1.method.DEFAULT,
metadata: Sequence[Tuple[str, str]] = (),
) -> webrisk.SearchHashesResponse:
r"""Gets the full hashes that match the requested hash
@@ -662,7 +675,7 @@ def sample_search_hashes():
# Initialize request argument(s)
request = webrisk_v1beta1.SearchHashesRequest(
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['UNWANTED_SOFTWARE'],
)
# Make the request
@@ -684,7 +697,7 @@ def sample_search_hashes():
This corresponds to the ``hash_prefix`` field
on the ``request`` instance; if ``request`` is provided, this
should not be set.
- threat_types (Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
Required. The ThreatLists to search
in.
@@ -753,14 +766,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-webrisk",
- ).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__ = ("WebRiskServiceV1Beta1Client",)
diff --git a/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/base.py b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/base.py
index 43942a3..96f0f63 100644
--- a/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/base.py
+++ b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/base.py
@@ -23,18 +23,13 @@
import google.auth # type: ignore
from google.auth import credentials as ga_credentials # type: ignore
from google.oauth2 import service_account # type: ignore
-import pkg_resources
+from google.cloud.webrisk_v1beta1 import gapic_version as package_version
from google.cloud.webrisk_v1beta1.types import webrisk
-try:
- DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo(
- gapic_version=pkg_resources.get_distribution(
- "google-cloud-webrisk",
- ).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 WebRiskServiceV1Beta1Transport(abc.ABC):
@@ -48,7 +43,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/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/grpc.py b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/grpc.py
index c8761b2..adf5ded 100644
--- a/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/grpc.py
+++ b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/grpc.py
@@ -47,14 +47,14 @@ def __init__(
self,
*,
host: str = "webrisk.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,
@@ -181,8 +181,8 @@ def __init__(
def create_channel(
cls,
host: str = "webrisk.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/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/grpc_asyncio.py b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/grpc_asyncio.py
index 3875627..3f7e73d 100644
--- a/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/grpc_asyncio.py
+++ b/google/cloud/webrisk_v1beta1/services/web_risk_service_v1_beta1/transports/grpc_asyncio.py
@@ -49,7 +49,7 @@ class WebRiskServiceV1Beta1GrpcAsyncIOTransport(WebRiskServiceV1Beta1Transport):
def create_channel(
cls,
host: str = "webrisk.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,
@@ -92,15 +92,15 @@ def __init__(
self,
*,
host: str = "webrisk.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/webrisk_v1beta1/types/webrisk.py b/google/cloud/webrisk_v1beta1/types/webrisk.py
index 18b10d2..4b5b925 100644
--- a/google/cloud/webrisk_v1beta1/types/webrisk.py
+++ b/google/cloud/webrisk_v1beta1/types/webrisk.py
@@ -13,6 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+from typing import MutableMapping, MutableSequence
+
from google.protobuf import timestamp_pb2 # type: ignore
import proto # type: ignore
@@ -82,35 +84,37 @@ class Constraints(proto.Message):
willing to have in the local database. This should be a
power of 2 between 2\ **10 and 2**\ 20. If zero, no database
size limit is set.
- supported_compressions (Sequence[google.cloud.webrisk_v1beta1.types.CompressionType]):
+ supported_compressions (MutableSequence[google.cloud.webrisk_v1beta1.types.CompressionType]):
The compression types supported by the
client.
"""
- max_diff_entries = proto.Field(
+ max_diff_entries: int = proto.Field(
proto.INT32,
number=1,
)
- max_database_entries = proto.Field(
+ max_database_entries: int = proto.Field(
proto.INT32,
number=2,
)
- supported_compressions = proto.RepeatedField(
+ supported_compressions: MutableSequence[
+ "CompressionType"
+ ] = proto.RepeatedField(
proto.ENUM,
number=3,
enum="CompressionType",
)
- threat_type = proto.Field(
+ threat_type: "ThreatType" = proto.Field(
proto.ENUM,
number=1,
enum="ThreatType",
)
- version_token = proto.Field(
+ version_token: bytes = proto.Field(
proto.BYTES,
number=2,
)
- constraints = proto.Field(
+ constraints: Constraints = proto.Field(
proto.MESSAGE,
number=3,
message=Constraints,
@@ -165,36 +169,36 @@ class Checksum(proto.Message):
database.
"""
- sha256 = proto.Field(
+ sha256: bytes = proto.Field(
proto.BYTES,
number=1,
)
- response_type = proto.Field(
+ response_type: ResponseType = proto.Field(
proto.ENUM,
number=4,
enum=ResponseType,
)
- additions = proto.Field(
+ additions: "ThreatEntryAdditions" = proto.Field(
proto.MESSAGE,
number=5,
message="ThreatEntryAdditions",
)
- removals = proto.Field(
+ removals: "ThreatEntryRemovals" = proto.Field(
proto.MESSAGE,
number=6,
message="ThreatEntryRemovals",
)
- new_version_token = proto.Field(
+ new_version_token: bytes = proto.Field(
proto.BYTES,
number=7,
)
- checksum = proto.Field(
+ checksum: Checksum = proto.Field(
proto.MESSAGE,
number=8,
message=Checksum,
)
- recommended_next_diff = proto.Field(
+ recommended_next_diff: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=2,
message=timestamp_pb2.Timestamp,
@@ -207,15 +211,15 @@ class SearchUrisRequest(proto.Message):
Attributes:
uri (str):
Required. The URI to be checked for matches.
- threat_types (Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
Required. The ThreatLists to search in.
"""
- uri = proto.Field(
+ uri: str = proto.Field(
proto.STRING,
number=1,
)
- threat_types = proto.RepeatedField(
+ threat_types: MutableSequence["ThreatType"] = proto.RepeatedField(
proto.ENUM,
number=2,
enum="ThreatType",
@@ -235,7 +239,7 @@ class ThreatUri(proto.Message):
r"""Contains threat information on a matching uri.
Attributes:
- threat_types (Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
The ThreatList this threat belongs to.
expire_time (google.protobuf.timestamp_pb2.Timestamp):
The cache lifetime for the returned match.
@@ -243,18 +247,18 @@ class ThreatUri(proto.Message):
timestamp to avoid false positives.
"""
- threat_types = proto.RepeatedField(
+ threat_types: MutableSequence["ThreatType"] = proto.RepeatedField(
proto.ENUM,
number=1,
enum="ThreatType",
)
- expire_time = proto.Field(
+ expire_time: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=2,
message=timestamp_pb2.Timestamp,
)
- threat = proto.Field(
+ threat: ThreatUri = proto.Field(
proto.MESSAGE,
number=1,
message=ThreatUri,
@@ -270,15 +274,15 @@ class SearchHashesRequest(proto.Message):
A hash prefix, consisting of the most
significant 4-32 bytes of a SHA256 hash. For
JSON requests, this field is base64-encoded.
- threat_types (Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
Required. The ThreatLists to search in.
"""
- hash_prefix = proto.Field(
+ hash_prefix: bytes = proto.Field(
proto.BYTES,
number=1,
)
- threat_types = proto.RepeatedField(
+ threat_types: MutableSequence["ThreatType"] = proto.RepeatedField(
proto.ENUM,
number=2,
enum="ThreatType",
@@ -289,7 +293,7 @@ class SearchHashesResponse(proto.Message):
r"""
Attributes:
- threats (Sequence[google.cloud.webrisk_v1beta1.types.SearchHashesResponse.ThreatHash]):
+ threats (MutableSequence[google.cloud.webrisk_v1beta1.types.SearchHashesResponse.ThreatHash]):
The full hashes that matched the requested
prefixes. The hash will be populated in the key.
negative_expire_time (google.protobuf.timestamp_pb2.Timestamp):
@@ -302,7 +306,7 @@ class ThreatHash(proto.Message):
r"""Contains threat information on a matching hash.
Attributes:
- threat_types (Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
+ threat_types (MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]):
The ThreatList this threat belongs to.
This must contain at least one entry.
hash_ (bytes):
@@ -315,27 +319,27 @@ class ThreatHash(proto.Message):
timestamp to avoid false positives.
"""
- threat_types = proto.RepeatedField(
+ threat_types: MutableSequence["ThreatType"] = proto.RepeatedField(
proto.ENUM,
number=1,
enum="ThreatType",
)
- hash_ = proto.Field(
+ hash_: bytes = proto.Field(
proto.BYTES,
number=2,
)
- expire_time = proto.Field(
+ expire_time: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=3,
message=timestamp_pb2.Timestamp,
)
- threats = proto.RepeatedField(
+ threats: MutableSequence[ThreatHash] = proto.RepeatedField(
proto.MESSAGE,
number=1,
message=ThreatHash,
)
- negative_expire_time = proto.Field(
+ negative_expire_time: timestamp_pb2.Timestamp = proto.Field(
proto.MESSAGE,
number=2,
message=timestamp_pb2.Timestamp,
@@ -348,7 +352,7 @@ class ThreatEntryAdditions(proto.Message):
response.
Attributes:
- raw_hashes (Sequence[google.cloud.webrisk_v1beta1.types.RawHashes]):
+ raw_hashes (MutableSequence[google.cloud.webrisk_v1beta1.types.RawHashes]):
The raw SHA256-formatted entries.
Repeated to allow returning sets of hashes with
different prefix sizes.
@@ -359,12 +363,12 @@ class ThreatEntryAdditions(proto.Message):
stored as encoded_data.
"""
- raw_hashes = proto.RepeatedField(
+ raw_hashes: MutableSequence["RawHashes"] = proto.RepeatedField(
proto.MESSAGE,
number=1,
message="RawHashes",
)
- rice_hashes = proto.Field(
+ rice_hashes: "RiceDeltaEncoding" = proto.Field(
proto.MESSAGE,
number=2,
message="RiceDeltaEncoding",
@@ -385,12 +389,12 @@ class ThreatEntryRemovals(proto.Message):
encoded_data.
"""
- raw_indices = proto.Field(
+ raw_indices: "RawIndices" = proto.Field(
proto.MESSAGE,
number=1,
message="RawIndices",
)
- rice_indices = proto.Field(
+ rice_indices: "RiceDeltaEncoding" = proto.Field(
proto.MESSAGE,
number=2,
message="RiceDeltaEncoding",
@@ -401,12 +405,12 @@ class RawIndices(proto.Message):
r"""A set of raw indices to remove from a local list.
Attributes:
- indices (Sequence[int]):
+ indices (MutableSequence[int]):
The indices to remove from a
lexicographically-sorted local list.
"""
- indices = proto.RepeatedField(
+ indices: MutableSequence[int] = proto.RepeatedField(
proto.INT32,
number=1,
)
@@ -434,11 +438,11 @@ class RawHashes(proto.Message):
are base64-encoded.
"""
- prefix_size = proto.Field(
+ prefix_size: int = proto.Field(
proto.INT32,
number=1,
)
- raw_hashes = proto.Field(
+ raw_hashes: bytes = proto.Field(
proto.BYTES,
number=2,
)
@@ -467,19 +471,19 @@ class RiceDeltaEncoding(proto.Message):
Golomb-Rice coder.
"""
- first_value = proto.Field(
+ first_value: int = proto.Field(
proto.INT64,
number=1,
)
- rice_parameter = proto.Field(
+ rice_parameter: int = proto.Field(
proto.INT32,
number=2,
)
- entry_count = proto.Field(
+ entry_count: int = proto.Field(
proto.INT32,
number=3,
)
- encoded_data = proto.Field(
+ encoded_data: bytes = proto.Field(
proto.BYTES,
number=4,
)
diff --git a/noxfile.py b/noxfile.py
index ffe9f35..d8440c0 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -273,12 +273,16 @@ 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."""
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(
@@ -295,13 +299,16 @@ 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."""
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)
diff --git a/owlbot.py b/owlbot.py
new file mode 100644
index 0000000..ce738f0
--- /dev/null
+++ b/owlbot.py
@@ -0,0 +1,56 @@
+# 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.
+
+import json
+from pathlib import Path
+import shutil
+
+import synthtool as s
+import synthtool.gcp as gcp
+from synthtool.languages import python
+
+# ----------------------------------------------------------------------------
+# Copy the generated client from the owl-bot staging directory
+# ----------------------------------------------------------------------------
+
+clean_up_generated_samples = True
+
+# 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
+ s.move([library], excludes=["**/gapic_version.py"])
+s.remove_staging_dirs()
+
+# ----------------------------------------------------------------------------
+# Add templated files
+# ----------------------------------------------------------------------------
+
+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"])
+
+python.py_samples(skip_readmes=True)
+
+# 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 0000000..8127817
--- /dev/null
+++ b/release-please-config.json
@@ -0,0 +1,30 @@
+{
+ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
+ "packages": {
+ ".": {
+ "release-type": "python",
+ "extra-files": [
+ "google/cloud/webrisk_v1/gapic_version.py",
+ "google/cloud/webrisk_v1beta1/gapic_version.py",
+ "google/cloud/webrisk/gapic_version.py",
+ {
+ "type": "json",
+ "path": "samples/generated_samples/snippet_metadata_google.cloud.webrisk.v1.json",
+ "jsonpath": "$.clientLibrary.version"
+ },
+ {
+ "type": "json",
+ "path": "samples/generated_samples/snippet_metadata_google.cloud.webrisk.v1beta1.json",
+ "jsonpath": "$.clientLibrary.version"
+ }
+ ]
+ }
+ },
+ "release-type": "python",
+ "plugins": [
+ {
+ "type": "sentence-case"
+ }
+ ],
+ "initial-version": "0.1.0"
+}
diff --git a/samples/generated_samples/snippet_metadata_webrisk_v1.json b/samples/generated_samples/snippet_metadata_google.cloud.webrisk.v1.json
similarity index 98%
rename from samples/generated_samples/snippet_metadata_webrisk_v1.json
rename to samples/generated_samples/snippet_metadata_google.cloud.webrisk.v1.json
index 32eef23..895abf8 100644
--- a/samples/generated_samples/snippet_metadata_webrisk_v1.json
+++ b/samples/generated_samples/snippet_metadata_google.cloud.webrisk.v1.json
@@ -7,7 +7,8 @@
}
],
"language": "PYTHON",
- "name": "google-cloud-webrisk"
+ "name": "google-cloud-webrisk",
+ "version": "1.9.0"
},
"snippets": [
{
@@ -384,7 +385,7 @@
},
{
"name": "threat_types",
- "type": "Sequence[google.cloud.webrisk_v1.types.ThreatType]"
+ "type": "MutableSequence[google.cloud.webrisk_v1.types.ThreatType]"
},
{
"name": "retry",
@@ -468,7 +469,7 @@
},
{
"name": "threat_types",
- "type": "Sequence[google.cloud.webrisk_v1.types.ThreatType]"
+ "type": "MutableSequence[google.cloud.webrisk_v1.types.ThreatType]"
},
{
"name": "retry",
@@ -553,7 +554,7 @@
},
{
"name": "threat_types",
- "type": "Sequence[google.cloud.webrisk_v1.types.ThreatType]"
+ "type": "MutableSequence[google.cloud.webrisk_v1.types.ThreatType]"
},
{
"name": "retry",
@@ -637,7 +638,7 @@
},
{
"name": "threat_types",
- "type": "Sequence[google.cloud.webrisk_v1.types.ThreatType]"
+ "type": "MutableSequence[google.cloud.webrisk_v1.types.ThreatType]"
},
{
"name": "retry",
diff --git a/samples/generated_samples/snippet_metadata_webrisk_v1beta1.json b/samples/generated_samples/snippet_metadata_google.cloud.webrisk.v1beta1.json
similarity index 97%
rename from samples/generated_samples/snippet_metadata_webrisk_v1beta1.json
rename to samples/generated_samples/snippet_metadata_google.cloud.webrisk.v1beta1.json
index 02fb486..f13fdc2 100644
--- a/samples/generated_samples/snippet_metadata_webrisk_v1beta1.json
+++ b/samples/generated_samples/snippet_metadata_google.cloud.webrisk.v1beta1.json
@@ -7,7 +7,8 @@
}
],
"language": "PYTHON",
- "name": "google-cloud-webrisk"
+ "name": "google-cloud-webrisk",
+ "version": "1.9.0"
},
"snippets": [
{
@@ -215,7 +216,7 @@
},
{
"name": "threat_types",
- "type": "Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]"
+ "type": "MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]"
},
{
"name": "retry",
@@ -299,7 +300,7 @@
},
{
"name": "threat_types",
- "type": "Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]"
+ "type": "MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]"
},
{
"name": "retry",
@@ -384,7 +385,7 @@
},
{
"name": "threat_types",
- "type": "Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]"
+ "type": "MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]"
},
{
"name": "retry",
@@ -468,7 +469,7 @@
},
{
"name": "threat_types",
- "type": "Sequence[google.cloud.webrisk_v1beta1.types.ThreatType]"
+ "type": "MutableSequence[google.cloud.webrisk_v1beta1.types.ThreatType]"
},
{
"name": "retry",
diff --git a/samples/generated_samples/webrisk_v1_generated_web_risk_service_compute_threat_list_diff_async.py b/samples/generated_samples/webrisk_v1_generated_web_risk_service_compute_threat_list_diff_async.py
index c722a4d..606cac4 100644
--- a/samples/generated_samples/webrisk_v1_generated_web_risk_service_compute_threat_list_diff_async.py
+++ b/samples/generated_samples/webrisk_v1_generated_web_risk_service_compute_threat_list_diff_async.py
@@ -40,7 +40,7 @@ async def sample_compute_threat_list_diff():
# Initialize request argument(s)
request = webrisk_v1.ComputeThreatListDiffRequest(
- threat_type="UNWANTED_SOFTWARE",
+ threat_type="SOCIAL_ENGINEERING_EXTENDED_COVERAGE",
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1_generated_web_risk_service_compute_threat_list_diff_sync.py b/samples/generated_samples/webrisk_v1_generated_web_risk_service_compute_threat_list_diff_sync.py
index 79c0ef9..4bc99b0 100644
--- a/samples/generated_samples/webrisk_v1_generated_web_risk_service_compute_threat_list_diff_sync.py
+++ b/samples/generated_samples/webrisk_v1_generated_web_risk_service_compute_threat_list_diff_sync.py
@@ -40,7 +40,7 @@ def sample_compute_threat_list_diff():
# Initialize request argument(s)
request = webrisk_v1.ComputeThreatListDiffRequest(
- threat_type="UNWANTED_SOFTWARE",
+ threat_type="SOCIAL_ENGINEERING_EXTENDED_COVERAGE",
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_hashes_async.py b/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_hashes_async.py
index e498e75..02f526e 100644
--- a/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_hashes_async.py
+++ b/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_hashes_async.py
@@ -40,7 +40,7 @@ async def sample_search_hashes():
# Initialize request argument(s)
request = webrisk_v1.SearchHashesRequest(
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['SOCIAL_ENGINEERING_EXTENDED_COVERAGE'],
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_hashes_sync.py b/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_hashes_sync.py
index 7c3003e..dc5dd82 100644
--- a/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_hashes_sync.py
+++ b/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_hashes_sync.py
@@ -40,7 +40,7 @@ def sample_search_hashes():
# Initialize request argument(s)
request = webrisk_v1.SearchHashesRequest(
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['SOCIAL_ENGINEERING_EXTENDED_COVERAGE'],
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_uris_async.py b/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_uris_async.py
index ce3caa6..08bec22 100644
--- a/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_uris_async.py
+++ b/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_uris_async.py
@@ -41,7 +41,7 @@ async def sample_search_uris():
# Initialize request argument(s)
request = webrisk_v1.SearchUrisRequest(
uri="uri_value",
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['SOCIAL_ENGINEERING_EXTENDED_COVERAGE'],
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_uris_sync.py b/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_uris_sync.py
index 00ac60e..99e9672 100644
--- a/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_uris_sync.py
+++ b/samples/generated_samples/webrisk_v1_generated_web_risk_service_search_uris_sync.py
@@ -41,7 +41,7 @@ def sample_search_uris():
# Initialize request argument(s)
request = webrisk_v1.SearchUrisRequest(
uri="uri_value",
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['SOCIAL_ENGINEERING_EXTENDED_COVERAGE'],
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_hashes_async.py b/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_hashes_async.py
index 701a541..d02f75c 100644
--- a/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_hashes_async.py
+++ b/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_hashes_async.py
@@ -40,7 +40,7 @@ async def sample_search_hashes():
# Initialize request argument(s)
request = webrisk_v1beta1.SearchHashesRequest(
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['UNWANTED_SOFTWARE'],
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_hashes_sync.py b/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_hashes_sync.py
index caff7ac..dfb5362 100644
--- a/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_hashes_sync.py
+++ b/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_hashes_sync.py
@@ -40,7 +40,7 @@ def sample_search_hashes():
# Initialize request argument(s)
request = webrisk_v1beta1.SearchHashesRequest(
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['UNWANTED_SOFTWARE'],
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_uris_async.py b/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_uris_async.py
index 97707aa..effbcce 100644
--- a/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_uris_async.py
+++ b/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_uris_async.py
@@ -41,7 +41,7 @@ async def sample_search_uris():
# Initialize request argument(s)
request = webrisk_v1beta1.SearchUrisRequest(
uri="uri_value",
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['UNWANTED_SOFTWARE'],
)
# Make the request
diff --git a/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_uris_sync.py b/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_uris_sync.py
index b2afe23..f5541c8 100644
--- a/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_uris_sync.py
+++ b/samples/generated_samples/webrisk_v1beta1_generated_web_risk_service_v1_beta1_search_uris_sync.py
@@ -41,7 +41,7 @@ def sample_search_uris():
# Initialize request argument(s)
request = webrisk_v1beta1.SearchUrisRequest(
uri="uri_value",
- threat_types="UNWANTED_SOFTWARE",
+ threat_types=['UNWANTED_SOFTWARE'],
)
# Make the request
diff --git a/setup.py b/setup.py
index 063ad3c..461e516 100644
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,5 @@
-# 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.
@@ -11,31 +12,35 @@
# 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 metadata.
+package_root = os.path.abspath(os.path.dirname(__file__))
name = "google-cloud-webrisk"
-description = "Google Cloud Web Risk API client library"
-version = "1.8.4"
-# Should be one of:
-# 'Development Status :: 3 - Alpha'
-# 'Development Status :: 4 - Beta'
-# 'Development Status :: 5 - Production/Stable'
-release_status = "Development Status :: 5 - Production/Stable"
+
+
+description = "Google Cloud Webrisk API client library"
+
+version = {}
+with open(os.path.join(package_root, "google/cloud/webrisk/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.*",
+ "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",
]
-extras = {}
-
-
-# Setup boilerplate below this line.
+url = "https://github.com/googleapis/python-webrisk"
package_root = os.path.abspath(os.path.dirname(__file__))
@@ -43,20 +48,16 @@
with io.open(readme_filename, encoding="utf-8") as readme_file:
readme = readme_file.read()
-# Only include packages under the 'google' namespace. Do not include tests,
-# benchmarks, etc.
packages = [
package
for package in setuptools.PEP420PackageFinder.find()
if package.startswith("google")
]
-# Determine which namespaces are needed.
namespaces = ["google"]
if "google.cloud" in packages:
namespaces.append("google.cloud")
-
setuptools.setup(
name=name,
version=version,
@@ -65,7 +66,7 @@
author="Google LLC",
author_email="googleapis-packages@google.com",
license="Apache 2.0",
- url="https://github.com/googleapis/python-webrisk",
+ url=url,
classifiers=[
release_status,
"Intended Audience :: Developers",
@@ -81,14 +82,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_webrisk_v1_keywords.py",
- "scripts/fixup_webrisk_v1beta1_keywords.py",
- ],
include_package_data=True,
zip_safe=False,
)
diff --git a/testing/constraints-3.10.txt b/testing/constraints-3.10.txt
index e69de29..ed7f9ae 100644
--- a/testing/constraints-3.10.txt
+++ b/testing/constraints-3.10.txt
@@ -0,0 +1,6 @@
+# -*- 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
diff --git a/testing/constraints-3.11.txt b/testing/constraints-3.11.txt
index e69de29..ed7f9ae 100644
--- a/testing/constraints-3.11.txt
+++ b/testing/constraints-3.11.txt
@@ -0,0 +1,6 @@
+# -*- 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
diff --git a/testing/constraints-3.7.txt b/testing/constraints-3.7.txt
index 5dcaa6f..6c44adf 100644
--- a/testing/constraints-3.7.txt
+++ b/testing/constraints-3.7.txt
@@ -1,10 +1,9 @@
# This constraints file is used to check that lower bounds
# are correct in setup.py
-# List *all* library dependencies and extras in this file.
+# List all library dependencies and extras in this file.
# Pin the version to the lower bound.
-#
-# e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev",
-# Then this file should have foo==1.14.0
-google-api-core==1.32.0
+# 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.34.0
proto-plus==1.22.0
protobuf==3.19.5
diff --git a/testing/constraints-3.8.txt b/testing/constraints-3.8.txt
index e69de29..ed7f9ae 100644
--- a/testing/constraints-3.8.txt
+++ b/testing/constraints-3.8.txt
@@ -0,0 +1,6 @@
+# -*- 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
diff --git a/testing/constraints-3.9.txt b/testing/constraints-3.9.txt
index e69de29..ed7f9ae 100644
--- a/testing/constraints-3.9.txt
+++ b/testing/constraints-3.9.txt
@@ -0,0 +1,6 @@
+# -*- 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