Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AttributeError: 'NoneType' object has no attribute '_http' when using Blob.upload_from_string #540

Closed
Ark-kun opened this issue Aug 18, 2021 · 7 comments
Labels
api: storage Issues related to the googleapis/python-storage API. type: question Request for information or clarification. Not an issue.

Comments

@Ark-kun
Copy link

Ark-kun commented Aug 18, 2021

Environment details

  • OS type and version: Linux
  • Python version: 3.9.2
  • pip version: 21.2.4
  • google-cloud-storage version: 1.42.0

Code example

from google.cloud import storage
storage.Blob.from_string(uri="gs://avolkov/mlflow/Model1/model_info.json").upload_from_string("foo")

Stack trace

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/google/home/avolkov/.local/lib/python3.9/site-packages/google/cloud/storage/blob.py", line 2853, in upload_from_string
    self.upload_from_file(
  File "/usr/local/google/home/avolkov/.local/lib/python3.9/site-packages/google/cloud/storage/blob.py", line 2580, in upload_from_file
    created_json = self._do_upload(
  File "/usr/local/google/home/avolkov/.local/lib/python3.9/site-packages/google/cloud/storage/blob.py", line 2382, in _do_upload
    response = self._do_multipart_upload(
  File "/usr/local/google/home/avolkov/.local/lib/python3.9/site-packages/google/cloud/storage/blob.py", line 1865, in _do_multipart_upload
    transport = self._get_transport(client)
  File "/usr/local/google/home/avolkov/.local/lib/python3.9/site-packages/google/cloud/storage/blob.py", line 809, in _get_transport
    return client._http
AttributeError: 'NoneType' object has no attribute '_http'
@product-auto-label product-auto-label bot added the api: storage Issues related to the googleapis/python-storage API. label Aug 18, 2021
@Ark-kun
Copy link
Author

Ark-kun commented Aug 18, 2021

I'm encountering this error almost everywhere. Even in cases where I initially start with storage.Client():

from google.cloud import storage
client = storage.Client()
bucket = storage.Bucket.from_string("gs://avolkov")
blobs = client.list_blobs(
    bucket_or_name=bucket,
    prefix="mlflow/Model4/",
)
for blob in blobs:
    blob.bucket.rename_blob(blob, blob.name + ".bak")
   blob.bucket.rename_blob(blob, new_path)
  File "/usr/local/google/home/avolkov/.local/lib/python3.9/site-packages/google/cloud/storage/bucket.py", line 1988, in rename_blob
    new_blob = self.copy_blob(
  File "/usr/local/google/home/avolkov/.local/lib/python3.9/site-packages/google/cloud/storage/bucket.py", line 1868, in copy_blob
    copy_result = client._post_resource(
AttributeError: 'NoneType' object has no attribute '_post_resource'

I think this bug needs to be fixed ASAP.

@shaffeeullah shaffeeullah added the type: question Request for information or clarification. Not an issue. label Aug 18, 2021
@shaffeeullah
Copy link
Contributor

@Ark-kun To resolve the initial issue, please specify the client in upload_from_string. Try:

from google.cloud import storage
client = storage.Client()
storage.Blob.from_string(uri="gs://avolkov/mlflow/Model1/model_info.json").upload_from_string("foo", client=client)

Does that work for you?

I am unable to reproduce the second issue that you listed. Is there any more information that you can provide?

@Ark-kun
Copy link
Author

Ark-kun commented Aug 18, 2021

To resolve the initial issue, please specify the client in upload_from_string.

Thank you for the workaround. I'll use it until there is a fix on the library side.

Do we have consensus that this is a bug in the library?

I am unable to reproduce the second issue that you listed. Is there any more information that you can provide?

I've updated the repro. It looks like the bug only occurs when the you pass a Bucket to list_blobs, not a bucket name.

from google.cloud import storage
client = storage.Client()
bucket = storage.Bucket.from_string("gs://avolkov")
blobs = client.list_blobs(
    bucket_or_name=bucket,
    prefix="mlflow/Model4/",
)
for blob in blobs:
    blob.bucket.rename_blob(blob, blob.name + ".bak")

@tseaver
Copy link
Contributor

tseaver commented Aug 19, 2021

Allowing client to be optional on these two methods was discussed here. Basically, client=None exists only to allow passing a URI string to a client method which would otherwise require a Blob or Bucket instance. If you are constructing one yourself using these methods, you should always pass the client argument.

PR #540 updates the docstring examples for Blob.from_string and Bucket.from_string to show passing an explicit client argument.

@Ark-kun
Copy link
Author

Ark-kun commented Aug 19, 2021

I'm working on reducing Google Cloud onboarding friction and this looks pretty confusing from the user perspective. Especially the second case where I actually use client.
I've also noticed that the errors are not human-intended and not actionable.

I think we can pretty easily improve the user experience here by fixing the _require_client function.

Let me make a PR.

Ark-kun added a commit to Ark-kun/python-storage that referenced this issue Aug 19, 2021
Ark-kun added a commit to Ark-kun/python-storage that referenced this issue Aug 19, 2021
@tseaver
Copy link
Contributor

tseaver commented Aug 19, 2021

@Ark-kun FWIW, the more idiomatic way to write your first examples above would be:

from google.cloud import storage

client = storage.Client()
blob = storage.Blob.from_string(uri="gs://avolkov/mlflow/Model1/model_info.json", client=client)
blob.upload_from_text("foo")  # note 'Blob.upload_from_string' is deprecated

or even more idiomatic:

from google.cloud import storage

client = storage.Client()
bucket = client.bucket("avolkov")
blob = bucket.blob("mlflow/Model1/model_info.json")
blob.upload_from_text("foo")

For the second example:

from google.cloud import storage

client = storage.Client()
bucket = storage.Bucket.from_string("gs://avolkov", client=client)
blobs = bucket.list_blobs(
    prefix="mlflow/Model4/",
)
for blob in blobs:
    bucket.rename_blob(blob, blob.name + ".bak")

or, even more idiomatic:

from google.cloud import storage

client = storage.Client()
bucket = client.bucket("avolkov")
for blob in bucket.list_blobs(
    prefix="mlflow/Model4/",
):
    bucket.rename_blob(blob, blob.name + ".bak")

Basically, never, ever call Blob.from_string or Bucket.from_string without passing an explicit client.

Ark-kun added a commit to Ark-kun/python-storage that referenced this issue Aug 19, 2021
cojenco added a commit that referenced this issue Oct 19, 2021
* Renaming storage gcloud samples folder. (#418)

* Add gcloud-based storage usage samples. (#419)

* Refactor cloud client storage samples. (#421)

* Add more storage samples for the cloud client libraries. (#432)

* Auto-update dependencies. (#456)

* Fix import order lint errors

Change-Id: Ieaf7237fc6f925daec46a07d2e81a452b841198a

* Add storage acl samples

Change-Id: Ib44f9bb42bf0c0607e64905a26369f06ea5fb231

* Address review comments

Change-Id: I94973a839f38ef3d1ec657c3c79f666eca56728b

* Fix lint issue

Change-Id: Ie9cf585303931f200a763d691906ad56221105fd

* Auto-update dependencies. (#540)

* Auto-update dependencies. (#542)

* Move to google-cloud (#544)

* Add new "quickstart" samples (#547)

* Quickstart tests (#569)

* Add tests for quickstarts
* Update secrets

* Add basic readme generator (#580)

* Generate readmes for most service samples (#599)

* Update samples to support latest Google Cloud Python (#656)

* Edited upload/download to perform encryption properly (#667)

* Storage Encryption Key Rotation Sample using Veneer + Tests (#672)

* Auto-update dependencies. (#715)

* Adds storage Pub/Sub notification polling tutorial (#875)

* Remove cloud config fixture (#887)

* Remove cloud config fixture

* Fix client secrets

* Fix bigtable instance

* Auto-update dependencies. (#914)

* Auto-update dependencies.

* xfail the error reporting test

* Fix lint

* Re-generate all readmes

* Add bucket-level IAM samples (#919)

* Add bucket-level IAM samples
* Address review comments

* Auto-update dependencies. (#927)

* Fix README rst links (#962)

* Fix README rst links

* Update all READMEs

* Auto-update dependencies. (#1004)

* Auto-update dependencies.

* Fix natural language samples

* Fix pubsub iam samples

* Fix language samples

* Fix bigquery samples

* Add bucket label samples (#1045)

* Auto-update dependencies. (#1055)

* Auto-update dependencies.

* Explicitly use latest bigtable client

Change-Id: Id71e9e768f020730e4ca9514a0d7ebaa794e7d9e

* Revert language update for now

Change-Id: I8867f154e9a5aae00d0047c9caf880e5e8f50c53

* Remove pdb. smh

Change-Id: I5ff905fadc026eebbcd45512d4e76e003e3b2b43

* Auto-update dependencies. (#1057)

* Auto-update dependencies. (#1073)

* Auto-update dependencies. (#1093)

* Auto-update dependencies.

* Fix storage notification poll sample

Change-Id: I6afbc79d15e050531555e4c8e51066996717a0f3

* Fix spanner samples

Change-Id: I40069222c60d57e8f3d3878167591af9130895cb

* Drop coverage because it's not useful

Change-Id: Iae399a7083d7866c3c7b9162d0de244fbff8b522

* Try again to fix flaky logging test

Change-Id: I6225c074701970c17c426677ef1935bb6d7e36b4

* Auto-update dependencies. (#1097)

* Update all generated readme auth instructions (#1121)

Change-Id: I03b5eaef8b17ac3dc3c0339fd2c7447bd3e11bd2

* Fix TypeError when running Storage notification polling exmaple. (#1135)

* Adds storage Pub/Sub notification polling tutorial

* Fix formatting and add some tests

* Auto-generate README

* Simplify implementation, remove classes

* Simplified example, removed de-duping

* regenerate README

* Remove explicit project parameter.

* Fix notification TypeError on start.

* Fix linter error.

* Fix ordered list ordinals.

* Rerun nox readmegen.

* Add support for overwrite attributes (#1142)

* Add support for overwrite attributes, bug fixes

* Lint fix for overwrite line

* Switch variable to snake_case

* Handle case where attribute not set (#1143)

* Added Link to Python Setup Guide (#1158)

* Update Readme.rst to add Python setup guide

As requested in b/64770713.

This sample is linked in documentation https://cloud.google.com/bigtable/docs/scaling, and it would make more sense to update the guide here than in the documentation.

* Update README.rst

* Update README.rst

* Update README.rst

* Update README.rst

* Update README.rst

* Update install_deps.tmpl.rst

* Updated readmegen scripts and re-generated related README files

* Fixed the lint error

* Auto-update dependencies. (#1138)

* storage requester pays samples (#1122)

* storage requester pays samples

* Added tests and fixed linting issues

* google-cloud-storage version update

* changed get_bucket to bucket for downloading

* small change

* Auto-update dependencies. (#1186)

* Auto-update dependencies. (#1234)

* Auto-update dependencies.

* Drop pytest-logcapture as it's no longer needed

Change-Id: Ia8b9e8aaf248e9770db6bc4842a4532df8383893

* Auto-update dependencies. (#1239)

* Added "Open in Cloud Shell" buttons to README files (#1254)

* Auto-update dependencies. (#1263)

* Auto-update dependencies. (#1272)

* Auto-update dependencies.

* Update requirements.txt

* Auto-update dependencies. (#1282)

* Auto-update dependencies.

* Fix storage acl sample

Change-Id: I413bea899fdde4c4859e4070a9da25845b81f7cf

* Auto-update dependencies. (#1320)

* Auto-update dependencies. (#1359)

* Auto-update dependencies. (#1377)

* Auto-update dependencies.

* Update requirements.txt

* Auto-update dependencies. (#1389)

* Auto-update dependencies.

* Regenerate the README files and fix the Open in Cloud Shell link for some samples (#1441)

* Update READMEs to fix numbering and add git clone (#1464)

* Fix typo. (#1509)

Fixes https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1485

* Storage: add KMS samples (#1510)

* Storage: add KMS samples

* Add CLOUD_KMS_KEY environment variable

* [Storage] Update kms samples (#1517)

* Storage: add KMS samples

* Add CLOUD_KMS_KEY environment variable

* Add region tags around samples

* Add more testing

* Fix tests and lint

* Remove leftover merge conflict. (#1657)

* Add region tag to upload_blob snippet (#1671)

* Bucket lock samples (#1588)

* [Storage] Add spacing in sample code. (#1735)

* Add spacing in sample code.

* remove whitespace

* Auto-update dependencies. (#1846)

ACK, merging.

* Update requirements.txt (#1944)

* Update requirements.txt

* Adding some rate limiting

* Auto-update dependencies. (#1980)

* Auto-update dependencies.

* Update requirements.txt

* Update requirements.txt

* storage: bucket policy only samples (#1976)

* humble beginnings

* Verified integration tests and updated README.rst

* Updating samples to reflect fixed surface

* Use release 1.14.0

* Add sleep to avoid bucket rate limit (#2136)

* feat(storage): Add snippets for v4 signed URLs (#2142)

* feat(storage): Add snippets for v4 signed URLs

* lint

* fix .format()

* add v4 command to switch statement

* fix region tag

* change if => elif to try to make func less complex

* move main to a function

* storage: add list buckets (#2149)

* Add list_buckets sample

* Allow for more if conditions

* Drop xfail for passing test_remove_bucket_label (#2173)

The Python client was fixed in
https://github.com/googleapis/google-cloud-python/issues/3711
so the test now passes.

* Update string reported in snippet and update test

* Update list blobs to use new client.list_blobs() method. (#2296)

* Update list blob samples

* Update requirements.txt

* Fix lint issues

* Use latest storage client

* [Storage] Add comment to clarify which package version is necessary (#2315)

* Add comment to clarify which package version

* Lint and add another comment to related sample

* Storage: HMAC key samples (#2372)

Add samples for HMAC key functionality: list, create, get, activate, deactivate, delete. Includes tests and version bump for client library.

* Remove required argument from list buckets sample (#2394)

* Remove required argument from list buckets sample

* Remove required argument from list buckets sample

* Fixup sample for list_hmac_keys (#2404)

Correct printed metadata to match canonical samples.

* Bucket metadata sample (#2414)

* Remove required argument from list buckets sample

* Bucket metadata sample

* Bucket metadata sample

* Adds updates for samples profiler ... vision (#2439)

* fix: add bucket-name as required arg to v4 snippets (#2502)

* [Storage] Support rename of BPO to UniformBucketLevelAccess (#2335)

* Update BPO -> UBLA

* Update BPO -> UBLA

* Fix region tag (#2515)

* Update documentation for prefix, delimiter search (#2537)

* Update documentation for prefix, delimiter search

* Remove whitespace.

* [Storage] Split samples (#2602)

* split bucket_lock samples and lint

* split samples

* blacken

* fix typos

* Add missing tests and lint

* lint

* fix typos

* fix typo

* typo

* remove README

* Auto-update dependencies. (#2005)

* Auto-update dependencies.

* Revert update of appengine/flexible/datastore.

* revert update of appengine/flexible/scipy

* revert update of bigquery/bqml

* revert update of bigquery/cloud-client

* revert update of bigquery/datalab-migration

* revert update of bigtable/quickstart

* revert update of compute/api

* revert update of container_registry/container_analysis

* revert update of dataflow/run_template

* revert update of datastore/cloud-ndb

* revert update of dialogflow/cloud-client

* revert update of dlp

* revert update of functions/imagemagick

* revert update of functions/ocr/app

* revert update of healthcare/api-client/fhir

* revert update of iam/api-client

* revert update of iot/api-client/gcs_file_to_device

* revert update of iot/api-client/mqtt_example

* revert update of language/automl

* revert update of run/image-processing

* revert update of vision/automl

* revert update testing/requirements.txt

* revert update of vision/cloud-client/detect

* revert update of vision/cloud-client/product_search

* revert update of jobs/v2/api_client

* revert update of jobs/v3/api_client

* revert update of opencensus

* revert update of translate/cloud-client

* revert update to speech/cloud-client

Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>

* samples(storage): IAM conditions samples (#2730)

* docs(storage): use policy.bindings in Storage/IAM samples

* update view Bucket IAM to use policy.bindings

* update remove Bucket IAM to use policy.bindings

* blacken

* add IAM condition sample

* add conditional iam binding sample

* bump storage requirement to 1.25.0

* fix tests

* remove unused imports

* fix: Use unique resources for storage snippets. (#3029)

* fix: use unique buckets and blobs for acl tests
* fix: use unique buckets and blobs for snippets tests
* fix: reuse test_bucket within module to avoid exhausting quota
* fix: Due to retention policy, don't reuse fixture for bucket lock
* fix: randomize blob names to disperse file edits

* fix: Reuse HMAC key as we have a limit of 5 (#3037)

* fix: Reuse HMAC key as we have a limit of 5

* fix: harden storage test fixtures (#3039)

* fix: improve UBLA test fixtures
* fix: improve IAM test fixtures

* storage: Fix docs for signed URL generation (#3008)

Co-authored-by: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com>
Co-authored-by: Christopher Wilcox <crwilcox@google.com>

* chore(deps): update dependency google-cloud-storage to v1.26.0 (#3046)

* chore(deps): update dependency google-cloud-storage to v1.26.0

* chore(deps): specify dependencies by python version

* chore: up other deps to try to remove errors

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>
Co-authored-by: Leah Cole <coleleah@google.com>

* feat: add remove conditional binding sample (#3107)

* feat: add remove conditional binding sample

* fix iam test fixture

* fix silly mistake of removing all bindings

* fix ubla test

* address feedback

* revert changes to tests

* Simplify noxfile setup. (#2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* [storage] feat: add post policy sample (#3231)

* feat: add post policy sample

* use 1.27.0

* fix

* simplify iterator

Co-authored-by: Jonathan Lui <jonathanlui@google.com>

* Update dependency google-cloud-pubsub to v1.4.2 in Storage and Pub/Sub (#3343)

* Remove name attribute from the input (#3569)

If name='submit' is specified for the input type='submit' the endpoint returns the following error:

<Error>
<Code>InvalidPolicyDocument</Code>
<Message>
The content of the form does not meet the conditions specified in the policy document.
</Message>
<Details>Policy did not reference these fields: submit</Details>
</Error>

Co-authored-by: Takashi Matsuo <tmatsuo@google.com>

* [storage] fix: use unique blob name (#3568)

* [storage] fix: use unique blob name

fixes #3567

* add some comments

* chore(deps): update dependency google-cloud-storage to v1.28.0 (#3260)

Co-authored-by: Takashi Matsuo <tmatsuo@google.com>

* [storage] fix: use a different bucket for requester_pays_test (#3655)

* [storage] fix: use a different bucket for requester_pays_test

fixes #3654

* rename to README.md, added the envvar to the template

* add REQUESTER_PAYS_TEST_BUCKET env var

* just use REQUESTER_PAYS_TEST_BUCKET

* docs(storage): add samples for lifer cycle and versioning  (#3578)

* docs(storage): add samples for lifer cycle and versioning

* docs(storage): nits

* docs(storage): lint fix

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* chore: some lint fixes (#3750)

* chore(deps): update dependency google-cloud-pubsub to v1.4.3 (#3725)

Co-authored-by: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com>
Co-authored-by: Takashi Matsuo <tmatsuo@google.com>

* docs(storage): add samples  (#3687)

* chore(deps): update dependency google-cloud-storage to v1.28.1 (#3785)

* chore(deps): update dependency google-cloud-storage to v1.28.1

* [asset] testing: use uuid instead of time

Co-authored-by: Takashi Matsuo <tmatsuo@google.com>

* docs(storage): add samples for file archive generation and cors configuration (#3794)

* chore(deps): update dependency google-cloud-pubsub to v1.5.0 (#3781)

Co-authored-by: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com>

* Replace GCLOUD_PROJECT with GOOGLE_CLOUD_PROJECT. (#4022)

* [storage] testing: use multiple projects (#4048)

* [storage] testing: use multiple projects

We still need to use the old project for some tests.

fixes #4033
fixes #4029

* remove print

* use uuid instead of time.time()

* lint fix

* chore(deps): update dependency google-cloud-storage to v1.29.0 (#4040)

* Update dependency google-cloud-pubsub to v1.6.0 (#4039)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | minor | `==1.5.0` -> `==1.6.0` |

---

### Release Notes

<details>
<summary>googleapis/python-pubsub</summary>

### [`v1.6.0`](https://github.com/googleapis/python-pubsub/blob/master/CHANGELOG.md#&#8203;160-httpswwwgithubcomgoogleapispython-pubsubcomparev150v160-2020-06-09)

[Compare Source](https://github.com/googleapis/python-pubsub/compare/v1.5.0...v1.6.0)

##### Features

-   Add flow control for message publishing ([#&#8203;96](https://www.github.com/googleapis/python-pubsub/issues/96)) ([06085c4](https://www.github.com/googleapis/python-pubsub/commit/06085c4083b9dccdd50383257799904510bbf3a0))

##### Bug Fixes

-   Fix PubSub incompatibility with api-core 1.17.0+ ([#&#8203;103](https://www.github.com/googleapis/python-pubsub/issues/103)) ([c02060f](https://www.github.com/googleapis/python-pubsub/commit/c02060fbbe6e2ca4664bee08d2de10665d41dc0b))

##### Documentation

-   Clarify that Schedulers shouldn't be used with multiple SubscriberClients ([#&#8203;100](https://github.com/googleapis/python-pubsub/pull/100)) ([cf9e87c](https://github.com/googleapis/python-pubsub/commit/cf9e87c80c0771f3fa6ef784a8d76cb760ad37ef))
-   Fix update subscription/snapshot/topic samples ([#&#8203;113](https://github.com/googleapis/python-pubsub/pull/113)) ([e62c38b](https://github.com/googleapis/python-pubsub/commit/e62c38bb33de2434e32f866979de769382dea34a))

##### Internal / Testing Changes

-   Re-generated service implementaton using synth: removed experimental notes from the RetryPolicy and filtering features in anticipation of GA, added DetachSubscription (experimental) ([#&#8203;114](https://github.com/googleapis/python-pubsub/pull/114)) ([0132a46](https://github.com/googleapis/python-pubsub/commit/0132a4680e0727ce45d5e27d98ffc9f3541a0962))
-   Incorporate will_accept() checks into publish() ([#&#8203;108](https://github.com/googleapis/python-pubsub/pull/108)) ([6c7677e](https://github.com/googleapis/python-pubsub/commit/6c7677ecb259672bbb9b6f7646919e602c698570))

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#GoogleCloudPlatform/python-docs-samples).

* chore(deps): update dependency google-cloud-pubsub to v1.6.1 (#4242)

Co-authored-by: gcf-merge-on-green[bot] <60162190+gcf-merge-on-green[bot]@users.noreply.github.com>

* chore(deps): update dependency pytest to v5.4.3 (#4279)

* chore(deps): update dependency pytest to v5.4.3

* specify pytest for python 2 in appengine

Co-authored-by: Leah Cole <coleleah@google.com>

* chore(deps): update dependency mock to v4 (#4287)

* chore(deps): update dependency mock to v4

* specify mock version for appengine python 2

Co-authored-by: Leah Cole <coleleah@google.com>

* chore(deps): update dependency google-cloud-pubsub to v1.7.0 (#4290)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | minor | `==1.6.1` -> `==1.7.0` |

---

### Release Notes

<details>
<summary>googleapis/python-pubsub</summary>

### [`v1.7.0`](https://github.com/googleapis/python-pubsub/blob/master/CHANGELOG.md#&#8203;170-httpswwwgithubcomgoogleapispython-pubsubcomparev161v170-2020-07-13)

[Compare Source](https://github.com/googleapis/python-pubsub/compare/v1.6.1...v1.7.0)

##### New Features

-   Add support for server-side flow control. ([#&#8203;143](https://github.com/googleapis/python-pubsub/pull/143)) ([04e261c](https://www.github.com/googleapis/python-pubsub/commit/04e261c602a2919cc75b3efa3dab099fb2cf704c))

##### Dependencies

-   Update samples dependency `google-cloud-pubsub` to `v1.6.1`. ([#&#8203;144](https://github.com/googleapis/python-pubsub/pull/144)) ([1cb6746](https://github.com/googleapis/python-pubsub/commit/1cb6746b00ebb23dbf1663bae301b32c3fc65a88))

##### Documentation

-   Add pubsub/cloud-client samples from the common samples repo (with commit history). ([#&#8203;151](https://github.com/googleapis/python-pubsub/pull/151)) 
-   Add flow control section to publish overview. ([#&#8203;129](https://github.com/googleapis/python-pubsub/pull/129)) ([acc19eb](https://www.github.com/googleapis/python-pubsub/commit/acc19eb048eef067d9818ef3e310b165d9c6307e))
-   Add a link to Pub/Sub filtering language public documentation to `pubsub.proto`. ([#&#8203;121](https://github.com/googleapis/python-pubsub/pull/121)) ([8802d81](https://www.github.com/googleapis/python-pubsub/commit/8802d8126247f22e26057e68a42f5b5a82dcbf0d))

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#GoogleCloudPlatform/python-docs-samples).

* Fix mismatched storage region tags (#4194)

* Update dependency google-cloud-storage to v1.30.0

* Update dependency pytest to v6 (#4390)

* chore(deps): update dependency google-cloud-storage to v1.31.0 (#4564)

Co-authored-by: Takashi Matsuo <tmatsuo@google.com>

* chore: fix some more unmatched region tags (#4585)

fixes #4549

Co-authored-by: Dina Graves Portman <dinagraves@google.com>

* Update storage_get_metadata.py (#4615)

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* chore(deps): update dependency google-cloud-storage to v1.31.1 (#4714)

* chore(deps): update dependency google-cloud-storage to v1.31.2 (#4750)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [google-cloud-storage](https://github.com/googleapis/python-storage) | patch | `==1.31.1` -> `==1.31.2` |

---

### Release Notes

<details>
<summary>googleapis/python-storage</summary>

### [`v1.31.2`](https://github.com/googleapis/python-storage/blob/master/CHANGELOG.md#&#8203;1312-httpswwwgithubcomgoogleapispython-storagecomparev1311v1312-2020-09-23)

[Compare Source](https://github.com/googleapis/python-storage/compare/v1.31.1...v1.31.2)

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/GoogleCloudPlatform/python-docs-samples).

* chore(deps): update dependency pytest to v6.1.1 (#4761)

* chore(deps): update dependency google-cloud-storage to v1.32.0 (#4871)

* chore(deps): update dependency pytest to v6.1.2 (#4921)

Co-authored-by: Charles Engelke <engelke@google.com>

* change pprint to print. (#4856)

* change pprint to print.

Line 57 had pprint.pprint.. changing it to print.

* Update storage_get_bucket_metadata.py

Removing pprint import

Co-authored-by: Dina Graves Portman <dinagraves@google.com>
Co-authored-by: Charles Engelke <engelke@google.com>

* chore(deps): update dependency google-cloud-storage to v1.33.0 (#4990)

* Add patch call (#5013)

I believe a call to `blob.patch()` is necessary to actually save the metadata back to GCS.

* fix: add a comment to draw attention to using get_blob, not blob (#5052)

* fix: add a comment to draw attention to using get_blob, not blob

* docs: further elaboration

* docs: add clarifying doc string to download file

* Update storage_download_file.py

* Update storage_download_file.py

* chore(deps): update dependency mock to v4.0.3 (#5062)

* fix(storage): Update comment, prefix should include delimiter (#5064)

* chore(deps): update dependency google-cloud-storage to v1.35.0 (#5074)

* chore(deps): update dependency pytest to v6.2.1 (#5076)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [pytest](https://docs.pytest.org/en/latest/) ([source](https://github.com/pytest-dev/pytest)) | minor | `==6.1.2` -> `==6.2.1` |

---

### Release Notes

<details>
<summary>pytest-dev/pytest</summary>

### [`v6.2.1`](https://github.com/pytest-dev/pytest/releases/6.2.1)

[Compare Source](https://github.com/pytest-dev/pytest/compare/6.2.0...6.2.1)

# pytest 6.2.1 (2020-12-15)

## Bug Fixes

-   [#&#8203;7678](https://github.com/pytest-dev/pytest/issues/7678): Fixed bug where `ImportPathMismatchError` would be raised for files compiled in
    the host and loaded later from an UNC mounted path (Windows).
-   [#&#8203;8132](https://github.com/pytest-dev/pytest/issues/8132): Fixed regression in `approx`: in 6.2.0 `approx` no longer raises
    `TypeError` when dealing with non-numeric types, falling back to normal comparison.
    Before 6.2.0, array types like tf.DeviceArray fell through to the scalar case,
    and happened to compare correctly to a scalar if they had only one element.
    After 6.2.0, these types began failing, because they inherited neither from
    standard Python number hierarchy nor from `numpy.ndarray`.

    `approx` now converts arguments to `numpy.ndarray` if they expose the array
    protocol and are not scalars. This treats array-like objects like numpy arrays,
    regardless of size.

### [`v6.2.0`](https://github.com/pytest-dev/pytest/releases/6.2.0)

[Compare Source](https://github.com/pytest-dev/pytest/compare/6.1.2...6.2.0)

# pytest 6.2.0 (2020-12-12)

## Breaking Changes

-   [#&#8203;7808](https://github.com/pytest-dev/pytest/issues/7808): pytest now supports python3.6+ only.

## Deprecations

-   [#&#8203;7469](https://github.com/pytest-dev/pytest/issues/7469): Directly constructing/calling the following classes/functions is now deprecated:

    -   `_pytest.cacheprovider.Cache`
    -   `_pytest.cacheprovider.Cache.for_config()`
    -   `_pytest.cacheprovider.Cache.clear_cache()`
    -   `_pytest.cacheprovider.Cache.cache_dir_from_config()`
    -   `_pytest.capture.CaptureFixture`
    -   `_pytest.fixtures.FixtureRequest`
    -   `_pytest.fixtures.SubRequest`
    -   `_pytest.logging.LogCaptureFixture`
    -   `_pytest.pytester.Pytester`
    -   `_pytest.pytester.Testdir`
    -   `_pytest.recwarn.WarningsRecorder`
    -   `_pytest.recwarn.WarningsChecker`
    -   `_pytest.tmpdir.TempPathFactory`
    -   `_pytest.tmpdir.TempdirFactory`

    These have always been considered private, but now issue a deprecation warning, which may become a hard error in pytest 7.0.0.

-   [#&#8203;7530](https://github.com/pytest-dev/pytest/issues/7530): The `--strict` command-line option has been deprecated, use `--strict-markers` instead.

    We have plans to maybe in the future to reintroduce `--strict` and make it an encompassing flag for all strictness
    related options (`--strict-markers` and `--strict-config` at the moment, more might be introduced in the future).

-   [#&#8203;7988](https://github.com/pytest-dev/pytest/issues/7988): The `@pytest.yield_fixture` decorator/function is now deprecated. Use pytest.fixture instead.

    `yield_fixture` has been an alias for `fixture` for a very long time, so can be search/replaced safely.

## Features

-   [#&#8203;5299](https://github.com/pytest-dev/pytest/issues/5299): pytest now warns about unraisable exceptions and unhandled thread exceptions that occur in tests on Python>=3.8.
    See unraisable for more information.
-   [#&#8203;7425](https://github.com/pytest-dev/pytest/issues/7425): New pytester fixture, which is identical to testdir but its methods return pathlib.Path when appropriate instead of `py.path.local`.

    This is part of the movement to use pathlib.Path objects internally, in order to remove the dependency to `py` in the future.

    Internally, the old Testdir &lt;\_pytest.pytester.Testdir> is now a thin wrapper around Pytester &lt;\_pytest.pytester.Pytester>, preserving the old interface.

-   [#&#8203;7695](https://github.com/pytest-dev/pytest/issues/7695): A new hook was added, pytest_markeval_namespace which should return a dictionary.
    This dictionary will be used to augment the "global" variables available to evaluate skipif/xfail/xpass markers.

    Pseudo example

    `conftest.py`:

    ```{.sourceCode .python}
    def pytest_markeval_namespace():
        return {"color": "red"}
    ```

    `test_func.py`:

    ```{.sourceCode .python}
    @&#8203;pytest.mark.skipif("color == 'blue'", reason="Color is not red")
    def test_func():
        assert False
    ```

-   [#&#8203;8006](https://github.com/pytest-dev/pytest/issues/8006): It is now possible to construct a ~pytest.MonkeyPatch object directly as `pytest.MonkeyPatch()`,
    in cases when the monkeypatch fixture cannot be used. Previously some users imported it
    from the private \_pytest.monkeypatch.MonkeyPatch namespace.

    Additionally, MonkeyPatch.context &lt;pytest.MonkeyPatch.context> is now a classmethod,
    and can be used as `with MonkeyPatch.context() as mp: ...`. This is the recommended way to use
    `MonkeyPatch` directly, since unlike the `monkeypatch` fixture, an instance created directly
    is not `undo()`-ed automatically.

## Improvements

-   [#&#8203;1265](https://github.com/pytest-dev/pytest/issues/1265): Added an `__str__` implementation to the ~pytest.pytester.LineMatcher class which is returned from `pytester.run_pytest().stdout` and similar. It returns the entire output, like the existing `str()` method.
-   [#&#8203;2044](https://github.com/pytest-dev/pytest/issues/2044): Verbose mode now shows the reason that a test was skipped in the test's terminal line after the "SKIPPED", "XFAIL" or "XPASS".
-   [#&#8203;7469](https://github.com/pytest-dev/pytest/issues/7469) The types of builtin pytest fixtures are now exported so they may be used in type annotations of test functions.
    The newly-exported types are:

    -   `pytest.FixtureRequest` for the request fixture.
    -   `pytest.Cache` for the cache fixture.
    -   `pytest.CaptureFixture[str]` for the capfd and capsys fixtures.
    -   `pytest.CaptureFixture[bytes]` for the capfdbinary and capsysbinary fixtures.
    -   `pytest.LogCaptureFixture` for the caplog fixture.
    -   `pytest.Pytester` for the pytester fixture.
    -   `pytest.Testdir` for the testdir fixture.
    -   `pytest.TempdirFactory` for the tmpdir_factory fixture.
    -   `pytest.TempPathFactory` for the tmp_path_factory fixture.
    -   `pytest.MonkeyPatch` for the monkeypatch fixture.
    -   `pytest.WarningsRecorder` for the recwarn fixture.

    Constructing them is not supported (except for MonkeyPatch); they are only meant for use in type annotations.
    Doing so will emit a deprecation warning, and may become a hard-error in pytest 7.0.

    Subclassing them is also not supported. This is not currently enforced at runtime, but is detected by type-checkers such as mypy.

-   [#&#8203;7527](https://github.com/pytest-dev/pytest/issues/7527): When a comparison between namedtuple &lt;collections.namedtuple> instances of the same type fails, pytest now shows the differing field names (possibly nested) instead of their indexes.
-   [#&#8203;7615](https://github.com/pytest-dev/pytest/issues/7615): Node.warn &lt;\_pytest.nodes.Node.warn> now permits any subclass of Warning, not just PytestWarning &lt;pytest.PytestWarning>.
-   [#&#8203;7701](https://github.com/pytest-dev/pytest/issues/7701): Improved reporting when using `--collected-only`. It will now show the number of collected tests in the summary stats.
-   [#&#8203;7710](https://github.com/pytest-dev/pytest/issues/7710): Use strict equality comparison for non-numeric types in pytest.approx instead of
    raising TypeError.

    This was the undocumented behavior before 3.7, but is now officially a supported feature.

-   [#&#8203;7938](https://github.com/pytest-dev/pytest/issues/7938): New `--sw-skip` argument which is a shorthand for `--stepwise-skip`.
-   [#&#8203;8023](https://github.com/pytest-dev/pytest/issues/8023): Added `'node_modules'` to default value for norecursedirs.
-   [#&#8203;8032](https://github.com/pytest-dev/pytest/issues/8032): doClassCleanups &lt;unittest.TestCase.doClassCleanups> (introduced in unittest in Python and 3.8) is now called appropriately.

## Bug Fixes

-   [#&#8203;4824](https://github.com/pytest-dev/pytest/issues/4824): Fixed quadratic behavior and improved performance of collection of items using autouse fixtures and xunit fixtures.
-   [#&#8203;7758](https://github.com/pytest-dev/pytest/issues/7758): Fixed an issue where some files in packages are getting lost from `--lf` even though they contain tests that failed. Regressed in pytest 5.4.0.
-   [#&#8203;7911](https://github.com/pytest-dev/pytest/issues/7911): Directories created by by tmp_path and tmpdir are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites.
-   [#&#8203;7913](https://github.com/pytest-dev/pytest/issues/7913): Fixed a crash or hang in pytester.spawn &lt;\_pytest.pytester.Pytester.spawn> when the readline module is involved.
-   [#&#8203;7951](https://github.com/pytest-dev/pytest/issues/7951): Fixed handling of recursive symlinks when collecting tests.
-   [#&#8203;7981](https://github.com/pytest-dev/pytest/issues/7981): Fixed symlinked directories not being followed during collection. Regressed in pytest 6.1.0.
-   [#&#8203;8016](https://github.com/pytest-dev/pytest/issues/8016): Fixed only one doctest being collected when using `pytest --doctest-modules path/to/an/__init__.py`.

## Improved Documentation

-   [#&#8203;7429](https://github.com/pytest-dev/pytest/issues/7429): Add more information and use cases about skipping doctests.
-   [#&#8203;7780](https://github.com/pytest-dev/pytest/issues/7780): Classes which should not be inherited from are now marked `final class` in the API reference.
-   [#&#8203;7872](https://github.com/pytest-dev/pytest/issues/7872): `_pytest.config.argparsing.Parser.addini()` accepts explicit `None` and `"string"`.
-   [#&#8203;7878](https://github.com/pytest-dev/pytest/issues/7878): In pull request section, ask to commit after editing changelog and authors file.

## Trivial/Internal Changes

-   [#&#8203;7802](https://github.com/pytest-dev/pytest/issues/7802): The `attrs` dependency requirement is now >=19.2.0 instead of >=17.4.0.
-   [#&#8203;8014](https://github.com/pytest-dev/pytest/issues/8014): .pyc files created by pytest's assertion rewriting now conform to the newer PEP-552 format on Python>=3.7.
    (These files are internal and only interpreted by pytest itself.)

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/GoogleCloudPlatform/python-docs-samples).

* chore(deps): update dependency google-cloud-pubsub to v2.2.0 (#4673)

* chore(deps): update dependency google-cloud-pubsub to v2.2.0

* run pubsub script on healthcare/api-client/v1/dicom

* iot pubsub fixes, fix lint

* revert some changes pubsub script made

* try using return_value for mock

* undo previous change

* try adding publish_time in mock

* move publish_time param

* make publish_time a float

* make publish_time a datetime

* try using object instead of datetime

* another attempt

* undo the black stuff that messed up lint

Co-authored-by: Leah Cole <coleleah@google.com>
Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* chore(Dockerfile): add Python 3.9 (#4968)

* chore(Dockerfile): add Python 3.9

* Add py3.9 kokoro dir

* fix typo

* Add GPG keys

* Add 3.9 to noxfiles

* Update composer dep to avoid deprecation spam

* fix(storage): add py-3.9 specific key

* update psycopg2-binary, only run test in py-3.9 build

* add libmemcached-dev to the Dockerfile

* disable appengine standard test in py-3.9 build

* disable py-3.9 build for appengine cloud_debugger

* skip py-3.9 build for composer/workflows

* skip tests with pyarrow for py-3.9 build

* avoid ReferenceError in iot builds

* skip some tests due to pip error

* add a temporary statement for debugging

* fix lint

* use correct constant

* disable 2.7 builds

* disable builds due to pip conflict

The conflict is between google-cloud-monitoring==2.0.0 and
opencensus-ext-stackdriver.

* remove temporary debugging statement

* really skip py-3.9 build for pubsub/streaming-analytics

* copyright year fix

* fix(storage): explicitly use the test project for the test bucket

* fix(storage): use correct cloud project

* fix: disable py-3.9 builds

- appengine/standard_python3/bigquery
- data-science-onramp/data-ingestion

* disable py-3.9 build

- dataflow/encryption-keys
- dataflow/flex-templates/streaming_beam

* disable type hint checks

Co-authored-by: Takashi Matsuo <tmatsuo@google.com>

* fix(storage): list all versions (#5325)

## Description
Add the `versions=True` variable to the `list_file_archived_generations function` to actually list all the versions instead of the last one only.
Fixes the incongruency between python and the other languages in the [Listing noncurrent object versions code samples](https://cloud.google.com/storage/docs/using-object-versioning#list).

## Checklist
- [x] I have followed [Sample Guidelines from AUTHORING_GUIDE.MD](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md)
- [x] README is updated to include [all relevant information](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#readme-file)
- [x] **Tests** pass:   `nox -s py-3.6` (see [Test Environment Setup](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#test-environment-setup))
- [x] **Lint** pass:   `nox -s lint` (see [Test Environment Setup](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#test-environment-setup))
- [ ] These samples need a new **API enabled** in testing projects to pass (let us know which ones)
- [ ] These samples need a new/updated **env vars** in testing projects set to pass (let us know which ones)
- [x] Please **merge** this PR for me once it is approved.
- [ ] This sample adds a new sample directory, and I updated the [CODEOWNERS file](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/.github/CODEOWNERS) with the codeowners for this sample

* docs: address sample feedback issues (#5329)

## Description

Fixes #5180, captures work from #5181 authored by @keegan2149, thank you!

## Checklist
- [x] I have followed [Sample Guidelines from AUTHORING_GUIDE.MD](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md)
- [x] README is updated to include [all relevant information](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#readme-file)
- [x] **Tests** pass:   `nox -s py-3.6` (see [Test Environment Setup](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#test-environment-setup))
- [x] **Lint** pass:   `nox -s lint` (see [Test Environment Setup](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/AUTHORING_GUIDE.md#test-environment-setup))
- [x] Please **merge** this PR for me once it is approved.

* chore(deps): update dependency google-cloud-pubsub to v2.3.0 (#5347)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `==2.2.0` -> `==2.3.0` | [![age](https://badges.renovateapi.com/packages/pypi/google-cloud-pubsub/2.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-cloud-pubsub/2.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-cloud-pubsub/2.3.0/compatibility-slim/2.2.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-cloud-pubsub/2.3.0/confidence-slim/2.2.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>googleapis/python-pubsub</summary>

### [`v2.3.0`](https://github.com/googleapis/python-pubsub/blob/master/CHANGELOG.md#&#8203;230-httpswwwgithubcomgoogleapispython-pubsubcomparev220v230-2021-02-08)

[Compare Source](https://github.com/googleapis/python-pubsub/compare/v2.2.0...v2.3.0)

##### Features

-   surface SchemaServiceClient in google.cloud.pubsub ([#&#8203;281](https://www.github.com/googleapis/python-pubsub/issues/281)) ([8751bcc](https://www.github.com/googleapis/python-pubsub/commit/8751bcc5eb782df55769b48253629a3bde3d4661))

##### Bug Fixes

-   client version missing from the user agent header ([#&#8203;275](https://www.github.com/googleapis/python-pubsub/issues/275)) ([b112f4f](https://www.github.com/googleapis/python-pubsub/commit/b112f4fcbf6f2bce8dcf37871bdc540b11f54fe3))
-   Don't open the google.cloud package by adding pubsub.py ([#&#8203;269](https://www.github.com/googleapis/python-pubsub/issues/269)) ([542d79d](https://www.github.com/googleapis/python-pubsub/commit/542d79d7c5fb7403016150ba477485756cd4097b))
-   flaky samples tests ([#&#8203;263](https://www.github.com/googleapis/python-pubsub/issues/263)) ([3d6a29d](https://www.github.com/googleapis/python-pubsub/commit/3d6a29de07cc09be663c90a3333f4cd33633994f))
-   Modify synth.py to update grpc transport options ([#&#8203;266](https://www.github.com/googleapis/python-pubsub/issues/266)) ([41dcd30](https://www.github.com/googleapis/python-pubsub/commit/41dcd30636168f3dd1248f1d99170d531fc9bcb8))
-   pass anonymous credentials for emulator ([#&#8203;250](https://www.github.com/googleapis/python-pubsub/issues/250)) ([8eed8e1](https://www.github.com/googleapis/python-pubsub/commit/8eed8e16019510dc8b20fb6b009d61a7ac532d26))
-   remove grpc send/recieve limits ([#&#8203;259](https://www.github.com/googleapis/python-pubsub/issues/259)) ([fd2840c](https://www.github.com/googleapis/python-pubsub/commit/fd2840c10f92b03da7f4b40ac69c602220757c0a))

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/GoogleCloudPlatform/python-docs-samples).

* chore(deps): update dependency google-cloud-storage to v1.35.1 (#5321)

* chore(deps): update dependency google-cloud-pubsub to v2.4.0 (#5399)

* chore(deps): update dependency google-cloud-storage to v1.36.1 (#5353)

* chore(deps): update dependency google-cloud-storage to v1.36.1

* moving media transcoder separately

Co-authored-by: Leah Cole <coleleah@google.com>
Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* chore(deps): update dependency google-cloud-storage to v1.36.2 (#5520)

* chore(deps): update dependency google-cloud-storage to v1.37.0 (#5580)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google-cloud-storage](https://github.com/googleapis/python-storage) | `==1.36.2` -> `==1.37.0` | [![age](https://badges.renovateapi.com/packages/pypi/google-cloud-storage/1.37.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-cloud-storage/1.37.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-cloud-storage/1.37.0/compatibility-slim/1.36.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-cloud-storage/1.37.0/confidence-slim/1.36.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>googleapis/python-storage</summary>

### [`v1.37.0`](https://github.com/googleapis/python-storage/blob/master/CHANGELOG.md#&#8203;1370-httpswwwgithubcomgoogleapispython-storagecomparev1362v1370-2021-03-24)

[Compare Source](https://github.com/googleapis/python-storage/compare/v1.36.2...v1.37.0)

##### Features

-   add blob.open() for file-like I/O ([#&#8203;385](https://www.github.com/googleapis/python-storage/issues/385)) ([440a0a4](https://www.github.com/googleapis/python-storage/commit/440a0a4ffe00b1f7c562b0e9c1e47dbadeca33e1)), closes [#&#8203;29](https://www.github.com/googleapis/python-storage/issues/29)

##### Bug Fixes

-   update user_project usage and documentation in bucket/client class methods ([#&#8203;396](https://www.github.com/googleapis/python-storage/issues/396)) ([1a2734b](https://www.github.com/googleapis/python-storage/commit/1a2734ba6d316ce51e4e141571331e86196462b9))

##### [1.36.2](https://www.github.com/googleapis/python-storage/compare/v1.36.1...v1.36.2) (2021-03-09)

##### Bug Fixes

-   update batch connection to request api endpoint info from client ([#&#8203;392](https://www.github.com/googleapis/python-storage/issues/392)) ([91fc6d9](https://www.github.com/googleapis/python-storage/commit/91fc6d9870a36308b15a827ed6a691e5b4669b62))

##### [1.36.1](https://www.github.com/googleapis/python-storage/compare/v1.36.0...v1.36.1) (2021-02-19)

##### Bug Fixes

-   allow metadata keys to be cleared ([#&#8203;383](https://www.github.com/googleapis/python-storage/issues/383)) ([79d27da](https://www.github.com/googleapis/python-storage/commit/79d27da9fe842e44a9091076ea0ef52c5ef5ff72)), closes [#&#8203;381](https://www.github.com/googleapis/python-storage/issues/381)
-   allow signed url version v4 without signed credentials ([#&#8203;356](https://www.github.com/googleapis/python-storage/issues/356)) ([3e69bf9](https://www.github.com/googleapis/python-storage/commit/3e69bf92496616c5de28094dd42260b35c3bf982))
-   correctly encode bytes for V2 signature ([#&#8203;382](https://www.github.com/googleapis/python-storage/issues/382)) ([f44212b](https://www.github.com/googleapis/python-storage/commit/f44212b7b91a67ca661898400fe632f9fb3ec8f6))

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/GoogleCloudPlatform/python-docs-samples).

* chore(deps): update dependency google-cloud-pubsub to v2.4.1 (#5610)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google-cloud-pubsub](https://github.com/googleapis/python-pubsub) | `==2.4.0` -> `==2.4.1` | [![age](https://badges.renovateapi.com/packages/pypi/google-cloud-pubsub/2.4.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-cloud-pubsub/2.4.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-cloud-pubsub/2.4.1/compatibility-slim/2.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-cloud-pubsub/2.4.1/confidence-slim/2.4.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>googleapis/python-pubsub</summary>

### [`v2.4.1`](https://github.com/googleapis/python-pubsub/blob/master/CHANGELOG.md#&#8203;241-httpswwwgithubcomgoogleapispython-pubsubcomparev240v241-2021-03-30)

[Compare Source](https://github.com/googleapis/python-pubsub/compare/v2.4.0...2.4.1)

##### Bug Fixes

-   Move `await_msg_callbacks` flag to `subscribe()` method, fixing a regression in Pub/Sub Lite client.
    ([#&#8203;320](https://www.github.com/googleapis/python-pubsub/issues/320)) ([d40d027](https://www.github.com/googleapis/python-pubsub/commit/d40d02713c8c189937ae5c21d099b88a3131a59f))
-   SSL error when using the client with the emulator. ([#&#8203;297](https://www.github.com/googleapis/python-pubsub/issues/297)) ([83db672](https://www.github.com/googleapis/python-pubsub/commit/83db67239d3521457138699109f766d574a0a2c4))

##### Implementation Changes

-   (samples) Bump the max_time to 10 minutes for a flaky test. ([#&#8203;311](https://www.github.com/googleapis/python-pubsub/issues/311)) ([e2678d4](https://www.github.com/googleapis/python-pubsub/commit/e2678d47c08e6b03782d2d744a4e630b933fdd51)), closes [#&#8203;291](https://www.github.com/googleapis/python-pubsub/issues/291)
-   (samples) Mark delivery attempts test as flaky. ([#&#8203;326](https://www.github.com/googleapis/python-pubsub/issues/326)) ([5a97ef1](https://www.github.com/googleapis/python-pubsub/commit/5a97ef1bb7512fe814a8f72a43b3e9698434cd8d))
-   (samples) Mitigate flakiness in subscriber_tests. ([#&#8203;304](https://www.github.com/googleapis/python-pubsub/issues/304)) ([271a385](https://www.github.com/googleapis/python-pubsub/commit/271a3856d835967f18f6becdae5ad53d585d0ccf))
-   (samples) Retry `InternalServerError` in dead letter policy test. ([#&#8203;329](https://www.github.com/googleapis/python-pubsub/issues/329)) ([34c9b11](https://www.github.com/googleapis/python-pubsub/commit/34c9b11ae697c280f32642c3101b7f7da971f589)), closes [#&#8203;321](https://www.github.com/googleapis/python-pubsub/issues/321)

##### Documentation

-   Remove EXPERIMENTAL tag for ordering keys in `types.py`. ([#&#8203;323](https://www.github.com/googleapis/python-pubsub/issues/323)) ([659cd7a](https://www.github.com/googleapis/python-pubsub/commit/659cd7ae2784245d4217fbc722dac04bd3222d32))
-   Remove EXPERIMENTAL tag from `Schema` service (via synth). ([#&#8203;307](https://www.github.com/googleapis/python-pubsub/issues/307)) ([ad85202](https://www.github.com/googleapis/python-pubsub/commit/ad852028836520db779c5cc33689ffd7e5458a7d))

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Never, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/GoogleCloudPlatform/python-docs-samples).

* docs: update description of parameters in storage_upload_file (#5707)

* following Java's example https://github.com/googleapis/google-cloud-java/blob/b36db6a957bcfb7b6ccdb77fb12b4cc7fa22b807/google-cloud-examples/src/main/java/com/google/cloud/examples/storage/objects/UploadObject.java#L33-L40

* samples(storage): update storage_set_bucket_public_iam to explicitly set role and member (#5708)

* chore: fix typo on noxfile (#5739)

* chore: add noxfile config

* chore: fix typo on noxfile

* Remove "chore: add noxfile config"

This reverts commit 61972125cbbf110941da1227afed53f169bad3a6.

* chore: fix the base noxfile_config

* fix(storage): retry flaky test (#5744)

Fixes #5684

* chore(deps): update dependency google-api-python-client to v2.3.0 (#5689)

* Update storage_list_files_with_prefix.py (#5747)

* chore(deps): update dependency google-cloud-storage to v1.38.0 (#5640)

Test failures are unrelated

* chore(deps): update dependency pytest to v6.2.4 (#5787)

Co-authored-by: Dan Lee <71398022+dandhlee@users.noreply.github.com>

* chore(deps): update dependency google-cloud-pubsub to v2.4.2 (#5810)

Co-authored-by: Dan Lee <71398022+dandhlee@users.noreply.github.com>

* chore(deps): update dependency google-cloud-pubsub to v2.5.0 (#5845)

* chore(deps): update dependency google-api-python-client to v2.4.0 (#5820)

* chore(deps): update dependency google-api-python-client to v2.5.0 (#5857)

Co-authored-by: Dan Lee <71398022+dandhlee@users.noreply.github.com>

* chore(deps): update dependency google-api-python-client to v2.6.0 (#5890)

Co-authored-by: Dan Lee <71398022+dandhlee@users.noreply.github.com>

* chore(deps): update dependency google-api-python-client to v2.7.0 (#6062)

* chore(deps): update dependency google-cloud-pubsub to v2.6.0 (#6233)

* public access prevention samples & tests (#4971)

* public access prevention samples & tests

* linted files

* respnded to PR comments

* updated docstring

* updated docstring

* refactored fixture code

* renamed samples

* updated location for constants

* updated location for constants

* updated samples to conform to sample guidelines

* added license

* updated headers

* Updating requirements

* used f strings

* linted files

* f string suggestions from code review

Co-authored-by: Dina Graves Portman <dinagraves@google.com>

Co-authored-by: Dina Graves Portman <dinagraves@google.com>

* chore(deps): update dependency google-api-python-client to v2.11.0 (#6101)

* chore(deps): update dependency google-cloud-pubsub to v2.6.1 (#6284)

* chore(deps): update dependency backoff to v1.11.0 (#6285)

Co-authored-by: Dina Graves Portman <dinagraves@google.com>

* chore(deps): update dependency google-cloud-storage to v1.41.0 (#6197)

* chore(deps): update dependency google-cloud-storage to v1.41.0

* revert dataflow flex templates

* revert all dataflow changes

* correct my mistake with dataflow stuff

* restore dataflow file

Co-authored-by: Leah Cole <coleleah@google.com>

* chore(deps): update dependency google-api-python-client to v2.12.0 (#6269)

* chore(deps): update dependency google-api-python-client to v2.12.0

* revert dataflow

* revert dataflow

Co-authored-by: Leah Cole <coleleah@google.com>

* chore(deps): update dependency google-cloud-pubsub to v2.7.0 (#6486)

Co-authored-by: Dan Lee <71398022+dandhlee@users.noreply.github.com>
Co-authored-by: Anthonios Partheniou <partheniou@google.com>

* fix(storage): update service account email for acl tests (#6529)

* fix: update test email for acl tests. previous email was deleted in the project

* update to service account without project editor owner permissions

* update test email to avoid creating new service accounts

* docs(storage): update description in storage_download_file (#6553)

* Add storage move_blob sample and fix confusion with rename (#6554)

* Add storage move_blob sample and fix confusion with rename

* fix license heading issues

* Add descriptive comments to parameters

* Update storage/cloud-client/storage_move_file.py

* Apply suggestions from code review

Add print statement in except clause

Co-authored-by: cojenco <cathyo@google.com>
Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* chore(deps): update dependency backoff to v1.11.1 (#6571)

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* chore(deps): update dependency google-api-python-client to v2.15.0 (#6574)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `==2.12.0` -> `==2.15.0` | [![age](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/compatibility-slim/2.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/confidence-slim/2.12.0)](https://docs.renovatebot.com/merge-confidence/) |
| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `==2.11.0` -> `==2.15.0` | [![age](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/compatibility-slim/2.11.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/confidence-slim/2.11.0)](https://docs.renovatebot.com/merge-confidence/) |
| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `==2.1.0` -> `==2.15.0` | [![age](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/compatibility-slim/2.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-api-python-client/2.15.0/confidence-slim/2.1.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>googleapis/google-api-python-client</summary>

### [`v2.15.0`](https://github.com/googleapis/google-api-python-client/blob/master/CHANGELOG.md#&#8203;2150-httpswwwgithubcomgoogleapisgoogle-api-python-clientcomparev2141v2150-2021-07-27)

[Compare Source](https://github.com/googleapis/google-api-python-client/compare/v2.14.1...v2.15.0)

##### Features

-   **alertcenter:** update the api https://github.com/googleapis/google-api-python-client/commit/70810a52c85c6d0d6f00d7afb41c8608261eaebc ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **chat:** update the api https://github.com/googleapis/google-api-python-client/commit/a577cd0b71951176bbf849c1f7f139127205da54 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **cloudbuild:** update the api https://github.com/googleapis/google-api-python-client/commit/9066056a8b106d441fb7686fe84359484d0d58bc ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **content:** update the api https://github.com/googleapis/google-api-python-client/commit/b123349da33c11c0172a8efb3fadef685a30e6e1 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **displayvideo:** update the api https://github.com/googleapis/google-api-python-client/commit/c525d726ee6cffdd4bc7afd69080d5e52bae83a0 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **dns:** update the api https://github.com/googleapis/google-api-python-client/commit/13436ccd2b835fda5cb86952ac4ea991ee8651d8 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **eventarc:** update the api https://github.com/googleapis/google-api-python-client/commit/6be3394a64a5eb509f68ef779680fd36837708ee ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **file:** update the api https://github.com/googleapis/google-api-python-client/commit/817a0e636771445a988ef479bd52740f754b901a ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **monitoring:** update the api https://github.com/googleapis/google-api-python-client/commit/bd32149f308467f0f659119587afc77dcec65b14 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **people:** update the api https://github.com/googleapis/google-api-python-client/commit/aa6b47df40c5289f33aef6fb6aa007df2d038e20 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **retail:** update the api https://github.com/googleapis/google-api-python-client/commit/d39f06e2d77034bc837604a41dd52c577f158bf2 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **securitycenter:** update the api https://github.com/googleapis/google-api-python-client/commit/999fab5178208639c9eef289f9f441052ed832fc ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **speech:** update the api https://github.com/googleapis/google-api-python-client/commit/3b2c0fa62b2a0c86bba1e97f1b18f93250dbd551 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfdc5b3ac0a70ff1b014c4bc75f))
-   **sqladmin:** update the api https://github.com/googleapis/google-api-python-client/commit/cef24d829ab5be71563a2b668b8f6cf5dda2c8e4 ([a36e3b1](https://www.github.com/googleapis/google-api-python-client/commit/a36e3b130d609dfd…
Ark-kun added a commit to Ark-kun/python-storage that referenced this issue Feb 18, 2022
@cojenco
Copy link
Contributor

cojenco commented Sep 20, 2022

Based on #545 and previous discussion here, closing this issue with fixes in #545. If there's something that I missed please reopen.

@cojenco cojenco closed this as completed Sep 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: storage Issues related to the googleapis/python-storage API. type: question Request for information or clarification. Not an issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants