-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Remove 'Bucket.__iter__' and 'Bucket.__contains__'. #877
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
Remove 'Bucket.__iter__' and 'Bucket.__contains__'. #877
Conversation
|
Big time test failure here. Do you know why? |
|
I ran the tests in a different shell, which I closed accidentally before committing. :( I will rebase / fix after merging #876. |
|
@dhermes rebased. |
gcloud/storage/bucket.py
Outdated
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
|
So the reason I asked you to peel this off from #876 was really so we could discuss if this should happen. I have never really liked the methods, but some may like them. So let's discuss? |
|
To clarify what we are discussiing: first, we are removing: if blob_name in bucket:
do_something()which is a syntactic alias for: blob = Blob(blob_name, bucket)
if blob.exists():
do_something()Note that Second, we are removing: for blob in bucket:
do_something(blob)which is a syntactic alias for: for blob in bucket.list_blobs():
do_something(blob)Here, the |
Both are 'sugar' over other methods, but do not allow passing an explicit connection. In addition, 'Bucket.__iter__' has scaling issues, which cannot be mitigated using the filtering parameters accepted by 'Bucket.list_blobs'.
|
@jgeewax Are you OK with us removing this? I am on-board with this change. |
|
I'm down with removing the methods, but we need to update the docs in the same PR, right? (https://googlecloudplatform.github.io/gcloud-python/latest/storage-buckets.html refers to |
|
+1 |
…nd___contains__ Remove 'Bucket.__iter__' and 'Bucket.__contains__'.
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Tim Sweña (Swast) <swast@google.com>
Source-Link: googleapis/synthtool@d52e638 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:4f9b3b106ad0beafc2c8a415e3f62c1a0cc23cabea115dbe841b848f581cfe99 Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [click](https://palletsprojects.com/p/click/) ([changelog](https://click.palletsprojects.com/changes/)) | `==7.1.2` -> `==8.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **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/googleapis/gapic-generator-python).
* chore(deps): update all dependencies * pin importlib-resources for python 3.7 * revert urllib3 --------- Co-authored-by: Anthonios Partheniou <partheniou@google.com>
… in Cloud Run Jobs (#877) * fix: Added environment specific labels to client library when running in Cloud Run Jobs * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Removed unnecessary import * Changed unit tests to pytest * Renamed add_environmental_labels to add_resource_labels; cached portions of add_resource_labels * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Updated comments and _get_environmental_labels * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
… in Cloud Run Jobs (#877) * fix: Added environment specific labels to client library when running in Cloud Run Jobs * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Removed unnecessary import * Changed unit tests to pytest * Renamed add_environmental_labels to add_resource_labels; cached portions of add_resource_labels * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Updated comments and _get_environmental_labels * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
While service account impersonation is uncommonly used with workforce pool external credentials, there is a bug where the following commands raise exceptions when impersonated workforce pools are used: - `google.auth.default()` - `google.auth.load_credentials_from_file()` The issue is due to `google.auth.aws.Credentials` not supporting the `workforce_pool_user_project` argument in the constructor, unlike `google.auth.identity_pool.Credentials`. This was indirectly passed here: https://github.com/googleapis/google-auth-library-python/blob/a37ff00d7afd6c7aac2d0fab29e05708bbc068be/google/auth/external_account.py#L395 Causing a TypeError to be raised (we only catch ValueError). Updated the credential determination logic to explicitly check the subject token type. This is a more reliable indicator instead of a try/catch. Increased unit test coverage in tests/test__default.py to cover these credentials.
Both are "sugar" over other methods, but do not allow passing an explicit connection.
In addition,
Bucket.__iter__has scaling issues, which cannot be mitigated using the filtering parameters accepted byBucket.list_blobs.Moved to a new PR from #876.