diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 9ee60f7..2567653 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: - image: gcr.io/repo-automation-bots/owlbot-python:latest - digest: sha256:aea14a583128771ae8aefa364e1652f3c56070168ef31beb203534222d842b8b + image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest + digest: sha256:87eee22d276554e4e52863ec9b1cb6a7245815dfae20439712bf644348215a5a diff --git a/.github/.OwlBot.yaml b/.github/.OwlBot.yaml index 3fb77da..dfd01bf 100644 --- a/.github/.OwlBot.yaml +++ b/.github/.OwlBot.yaml @@ -13,7 +13,7 @@ # limitations under the License. docker: - image: gcr.io/repo-automation-bots/owlbot-python:latest + image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest deep-preserve-regex: - /owl-bot-staging/v1beta1 diff --git a/.kokoro/build.sh b/.kokoro/build.sh index a29874f..48ed77d 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -41,7 +41,7 @@ python3 -m pip install --upgrade --quiet nox python3 -m nox --version # If this is a continuous build, send the test log to the FlakyBot. -# See https://github.com/googleapis/repo-automation-bots/tree/master/packages/flakybot. +# See https://github.com/googleapis/repo-automation-bots/tree/main/packages/flakybot. if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"continuous"* ]]; then cleanup() { chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot diff --git a/.kokoro/test-samples-impl.sh b/.kokoro/test-samples-impl.sh index 311a8d5..8a324c9 100755 --- a/.kokoro/test-samples-impl.sh +++ b/.kokoro/test-samples-impl.sh @@ -80,7 +80,7 @@ for file in samples/**/requirements.txt; do EXIT=$? # If this is a periodic build, send the test log to the FlakyBot. - # See https://github.com/googleapis/repo-automation-bots/tree/master/packages/flakybot. + # See https://github.com/googleapis/repo-automation-bots/tree/main/packages/flakybot. if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot $KOKORO_GFILE_DIR/linux_amd64/flakybot diff --git a/CHANGELOG.md b/CHANGELOG.md index a28ba4c..6fde9c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.0.1](https://www.github.com/googleapis/python-service-usage/compare/v1.0.0...v1.0.1) (2021-09-24) + + +### Bug Fixes + +* add 'dict' annotation type to 'request' ([172ba0d](https://www.github.com/googleapis/python-service-usage/commit/172ba0dd5ca2d1d6ffee0cccce45ee28c822704b)) + ## [1.0.0](https://www.github.com/googleapis/python-service-usage/compare/v0.2.2...v1.0.0) (2021-08-03) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index e50cc84..ae6947c 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -50,9 +50,9 @@ You'll have to create a development environment using a Git checkout: # Configure remotes such that you can pull changes from the googleapis/python-service-usage # repository into your local repository. $ git remote add upstream git@github.com:googleapis/python-service-usage.git - # fetch and merge changes from upstream into master + # fetch and merge changes from upstream into main $ git fetch upstream - $ git merge upstream/master + $ git merge upstream/main Now your local repo is set up such that you will push changes to your GitHub repo, from which you can submit a pull request. @@ -110,12 +110,12 @@ Coding Style variables:: export GOOGLE_CLOUD_TESTING_REMOTE="upstream" - export GOOGLE_CLOUD_TESTING_BRANCH="master" + export GOOGLE_CLOUD_TESTING_BRANCH="main" By doing this, you are specifying the location of the most up-to-date - version of ``python-service-usage``. The the suggested remote name ``upstream`` - should point to the official ``googleapis`` checkout and the - the branch should be the main branch on that remote (``master``). + version of ``python-service-usage``. The + remote name ``upstream`` should point to the official ``googleapis`` + checkout and the branch should be the default branch on that remote (``main``). - This repository contains configuration for the `pre-commit `__ tool, which automates checking @@ -209,7 +209,7 @@ The `description on PyPI`_ for the project comes directly from the ``README``. Due to the reStructuredText (``rst``) parser used by PyPI, relative links which will work on GitHub (e.g. ``CONTRIBUTING.rst`` instead of -``https://github.com/googleapis/python-service-usage/blob/master/CONTRIBUTING.rst``) +``https://github.com/googleapis/python-service-usage/blob/main/CONTRIBUTING.rst``) may cause problems creating links or rendering the description. .. _description on PyPI: https://pypi.org/project/google-cloud-service-usage @@ -234,7 +234,7 @@ We support: Supported versions can be found in our ``noxfile.py`` `config`_. -.. _config: https://github.com/googleapis/python-service-usage/blob/master/noxfile.py +.. _config: https://github.com/googleapis/python-service-usage/blob/main/noxfile.py We also explicitly decided to support Python 3 beginning with version 3.6. diff --git a/README.rst b/README.rst index 07a5fcd..e877deb 100644 --- a/README.rst +++ b/README.rst @@ -11,7 +11,7 @@ well as services created using Cloud Endpoints. - `Product Documentation`_ .. |ga| image:: https://img.shields.io/badge/support-ga-gold.svg - :target: https://github.com/googleapis/google-cloud-python/blob/master/README.rst#ga-support + :target: https://github.com/googleapis/google-cloud-python/blob/main/README.rst#ga-support .. |pypi| image:: https://img.shields.io/pypi/v/google-cloud-service-usage.svg :target: https://pypi.org/project/google-cloud-service-usage/ .. |versions| image:: https://img.shields.io/pypi/pyversions/google-cloud-service-usage.svg @@ -81,4 +81,4 @@ Next Steps APIs that we cover. .. _Service Usage API Product documentation: https://cloud.google.com/service-usage/docs -.. _README: https://github.com/googleapis/google-cloud-python/blob/master/README.rst \ No newline at end of file +.. _README: https://github.com/googleapis/google-cloud-python/blob/main/README.rst \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 3510641..d5f3abc 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -76,8 +76,8 @@ # The encoding of source files. # source_encoding = 'utf-8-sig' -# The master toctree document. -master_doc = "index" +# The root toctree document. +root_doc = "index" # General information about the project. project = "google-cloud-service-usage" @@ -110,6 +110,7 @@ # directories to ignore when looking for source files. exclude_patterns = [ "_build", + "**/.nox/**/*", "samples/AUTHORING_GUIDE.md", "samples/CONTRIBUTING.md", "samples/snippets/README.rst", @@ -279,7 +280,7 @@ # author, documentclass [howto, manual, or own class]). latex_documents = [ ( - master_doc, + root_doc, "google-cloud-service-usage.tex", "google-cloud-service-usage Documentation", author, @@ -314,7 +315,7 @@ # (source start file, name, description, authors, manual section). man_pages = [ ( - master_doc, + root_doc, "google-cloud-service-usage", "google-cloud-service-usage Documentation", [author], @@ -333,7 +334,7 @@ # dir menu entry, description, category) texinfo_documents = [ ( - master_doc, + root_doc, "google-cloud-service-usage", "google-cloud-service-usage Documentation", author, diff --git a/google/cloud/service_usage_v1/services/service_usage/client.py b/google/cloud/service_usage_v1/services/service_usage/client.py index 37c9d32..d748959 100644 --- a/google/cloud/service_usage_v1/services/service_usage/client.py +++ b/google/cloud/service_usage_v1/services/service_usage/client.py @@ -17,7 +17,7 @@ from distutils import util import os import re -from typing import Callable, Dict, Optional, Sequence, Tuple, Type, Union +from typing import Dict, Optional, Sequence, Tuple, Type, Union import pkg_resources from google.api_core import client_options as client_options_lib # type: ignore @@ -343,7 +343,7 @@ def __init__( def enable_service( self, - request: serviceusage.EnableServiceRequest = None, + request: Union[serviceusage.EnableServiceRequest, dict] = None, *, retry: retries.Retry = gapic_v1.method.DEFAULT, timeout: float = None, @@ -353,7 +353,7 @@ def enable_service( project. Args: - request (google.cloud.service_usage_v1.types.EnableServiceRequest): + request (Union[google.cloud.service_usage_v1.types.EnableServiceRequest, dict]): The request object. Request message for the `EnableService` method. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -406,7 +406,7 @@ def enable_service( def disable_service( self, - request: serviceusage.DisableServiceRequest = None, + request: Union[serviceusage.DisableServiceRequest, dict] = None, *, retry: retries.Retry = gapic_v1.method.DEFAULT, timeout: float = None, @@ -422,7 +422,7 @@ def disable_service( currently enabled. Args: - request (google.cloud.service_usage_v1.types.DisableServiceRequest): + request (Union[google.cloud.service_usage_v1.types.DisableServiceRequest, dict]): The request object. Request message for the `DisableService` method. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -475,7 +475,7 @@ def disable_service( def get_service( self, - request: serviceusage.GetServiceRequest = None, + request: Union[serviceusage.GetServiceRequest, dict] = None, *, retry: retries.Retry = gapic_v1.method.DEFAULT, timeout: float = None, @@ -485,7 +485,7 @@ def get_service( for a given service. Args: - request (google.cloud.service_usage_v1.types.GetServiceRequest): + request (Union[google.cloud.service_usage_v1.types.GetServiceRequest, dict]): The request object. Request message for the `GetService` method. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -526,7 +526,7 @@ def get_service( def list_services( self, - request: serviceusage.ListServicesRequest = None, + request: Union[serviceusage.ListServicesRequest, dict] = None, *, retry: retries.Retry = gapic_v1.method.DEFAULT, timeout: float = None, @@ -548,7 +548,7 @@ def list_services( capability. Args: - request (google.cloud.service_usage_v1.types.ListServicesRequest): + request (Union[google.cloud.service_usage_v1.types.ListServicesRequest, dict]): The request object. Request message for the `ListServices` method. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -597,7 +597,7 @@ def list_services( def batch_enable_services( self, - request: serviceusage.BatchEnableServicesRequest = None, + request: Union[serviceusage.BatchEnableServicesRequest, dict] = None, *, retry: retries.Retry = gapic_v1.method.DEFAULT, timeout: float = None, @@ -609,7 +609,7 @@ def batch_enable_services( ``EnableService`` method instead. Args: - request (google.cloud.service_usage_v1.types.BatchEnableServicesRequest): + request (Union[google.cloud.service_usage_v1.types.BatchEnableServicesRequest, dict]): The request object. Request message for the `BatchEnableServices` method. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -662,7 +662,7 @@ def batch_enable_services( def batch_get_services( self, - request: serviceusage.BatchGetServicesRequest = None, + request: Union[serviceusage.BatchGetServicesRequest, dict] = None, *, retry: retries.Retry = gapic_v1.method.DEFAULT, timeout: float = None, @@ -672,7 +672,7 @@ def batch_get_services( for a given list of services. Args: - request (google.cloud.service_usage_v1.types.BatchGetServicesRequest): + request (Union[google.cloud.service_usage_v1.types.BatchGetServicesRequest, dict]): The request object. Request message for the `BatchGetServices` method. retry (google.api_core.retry.Retry): Designation of what errors, if any, diff --git a/google/cloud/service_usage_v1/services/service_usage/transports/base.py b/google/cloud/service_usage_v1/services/service_usage/transports/base.py index e546819..f8f27ed 100644 --- a/google/cloud/service_usage_v1/services/service_usage/transports/base.py +++ b/google/cloud/service_usage_v1/services/service_usage/transports/base.py @@ -124,7 +124,7 @@ def __init__( **scopes_kwargs, quota_project_id=quota_project_id ) - # If the credentials is service account credentials, then always try to use self signed JWT. + # If the credentials are service account credentials, then always try to use self signed JWT. if ( always_use_jwt_access and isinstance(credentials, service_account.Credentials) diff --git a/google/cloud/service_usage_v1/services/service_usage/transports/grpc.py b/google/cloud/service_usage_v1/services/service_usage/transports/grpc.py index 0cba44d..4ffc10c 100644 --- a/google/cloud/service_usage_v1/services/service_usage/transports/grpc.py +++ b/google/cloud/service_usage_v1/services/service_usage/transports/grpc.py @@ -88,16 +88,16 @@ def __init__( api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. If provided, it overrides the ``host`` argument and tries to create a mutual TLS channel with client SSL credentials from - ``client_cert_source`` or applicatin default SSL credentials. + ``client_cert_source`` or application default SSL credentials. client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): Deprecated. A callback to provide client SSL certificate bytes and private key bytes, both in PEM format. It is ignored if ``api_mtls_endpoint`` is None. ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials - for grpc channel. It is ignored if ``channel`` is provided. + for the grpc channel. It is ignored if ``channel`` is provided. client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): A callback to provide client certificate bytes and private key bytes, - both in PEM format. It is used to configure mutual TLS channel. It is + both in PEM format. It is used to configure a mutual TLS channel. It is ignored if ``channel`` or ``ssl_channel_credentials`` is provided. quota_project_id (Optional[str]): An optional project to use for billing and quota. diff --git a/google/cloud/service_usage_v1/services/service_usage/transports/grpc_asyncio.py b/google/cloud/service_usage_v1/services/service_usage/transports/grpc_asyncio.py index 55134bf..be3338f 100644 --- a/google/cloud/service_usage_v1/services/service_usage/transports/grpc_asyncio.py +++ b/google/cloud/service_usage_v1/services/service_usage/transports/grpc_asyncio.py @@ -135,16 +135,16 @@ def __init__( api_mtls_endpoint (Optional[str]): Deprecated. The mutual TLS endpoint. If provided, it overrides the ``host`` argument and tries to create a mutual TLS channel with client SSL credentials from - ``client_cert_source`` or applicatin default SSL credentials. + ``client_cert_source`` or application default SSL credentials. client_cert_source (Optional[Callable[[], Tuple[bytes, bytes]]]): Deprecated. A callback to provide client SSL certificate bytes and private key bytes, both in PEM format. It is ignored if ``api_mtls_endpoint`` is None. ssl_channel_credentials (grpc.ChannelCredentials): SSL credentials - for grpc channel. It is ignored if ``channel`` is provided. + for the grpc channel. It is ignored if ``channel`` is provided. client_cert_source_for_mtls (Optional[Callable[[], Tuple[bytes, bytes]]]): A callback to provide client certificate bytes and private key bytes, - both in PEM format. It is used to configure mutual TLS channel. It is + both in PEM format. It is used to configure a mutual TLS channel. It is ignored if ``channel`` or ``ssl_channel_credentials`` is provided. quota_project_id (Optional[str]): An optional project to use for billing and quota. diff --git a/noxfile.py b/noxfile.py index d896e7f..935a924 100644 --- a/noxfile.py +++ b/noxfile.py @@ -84,9 +84,15 @@ def default(session): constraints_path = str( CURRENT_DIRECTORY / "testing" / f"constraints-{session.python}.txt" ) - session.install("asyncmock", "pytest-asyncio", "-c", constraints_path) - - session.install("mock", "pytest", "pytest-cov", "-c", constraints_path) + session.install( + "mock", + "asyncmock", + "pytest", + "pytest-cov", + "pytest-asyncio", + "-c", + constraints_path, + ) session.install("-e", ".", "-c", constraints_path) diff --git a/owlbot.py b/owlbot.py index d4b77a6..c89cb22 100644 --- a/owlbot.py +++ b/owlbot.py @@ -55,8 +55,11 @@ # ---------------------------------------------------------------------------- templated_files = gcp.CommonTemplates().py_library(microgenerator=True) + s.move(templated_files, excludes=[".coveragerc"]) # the microgenerator has a good coveragerc file +python.py_samples(skip_readmes=True) + # ---------------------------------------------------------------------------- # Run blacken session # ---------------------------------------------------------------------------- diff --git a/renovate.json b/renovate.json index c048955..c21036d 100644 --- a/renovate.json +++ b/renovate.json @@ -1,6 +1,9 @@ { "extends": [ - "config:base", ":preserveSemverRanges" + "config:base", + "group:all", + ":preserveSemverRanges", + ":disableDependencyDashboard" ], "ignorePaths": [".pre-commit-config.yaml"], "pip_requirements": { diff --git a/scripts/fixup_service_usage_v1_keywords.py b/scripts/fixup_service_usage_v1_keywords.py index 49585d6..dbcc0ed 100644 --- a/scripts/fixup_service_usage_v1_keywords.py +++ b/scripts/fixup_service_usage_v1_keywords.py @@ -39,12 +39,12 @@ def partition( class service_usageCallTransformer(cst.CSTTransformer): CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata') METHOD_TO_PARAMS: Dict[str, Tuple[str]] = { - 'batch_enable_services': ('parent', 'service_ids', ), - 'batch_get_services': ('parent', 'names', ), - 'disable_service': ('name', 'disable_dependent_services', 'check_if_service_has_usage', ), - 'enable_service': ('name', ), - 'get_service': ('name', ), - 'list_services': ('parent', 'page_size', 'page_token', 'filter', ), + 'batch_enable_services': ('parent', 'service_ids', ), + 'batch_get_services': ('parent', 'names', ), + 'disable_service': ('name', 'disable_dependent_services', 'check_if_service_has_usage', ), + 'enable_service': ('name', ), + 'get_service': ('name', ), + 'list_services': ('parent', 'page_size', 'page_token', 'filter', ), } def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode: @@ -63,7 +63,7 @@ def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode: return updated kwargs, ctrl_kwargs = partition( - lambda a: not a.keyword.value in self.CTRL_PARAMS, + lambda a: a.keyword.value not in self.CTRL_PARAMS, kwargs ) diff --git a/scripts/readme-gen/templates/install_deps.tmpl.rst b/scripts/readme-gen/templates/install_deps.tmpl.rst index a0406db..275d649 100644 --- a/scripts/readme-gen/templates/install_deps.tmpl.rst +++ b/scripts/readme-gen/templates/install_deps.tmpl.rst @@ -12,7 +12,7 @@ Install Dependencies .. _Python Development Environment Setup Guide: https://cloud.google.com/python/setup -#. Create a virtualenv. Samples are compatible with Python 2.7 and 3.4+. +#. Create a virtualenv. Samples are compatible with Python 3.6+. .. code-block:: bash diff --git a/setup.py b/setup.py index 0a61721..2d6511d 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ name = "google-cloud-service-usage" description = "Service Usage API client library" -version = "1.0.0" +version = "1.0.1" release_status = "Development Status :: 5 - Production/Stable" url = "https://github.com/googleapis/python-service-usage" dependencies = [