diff --git a/appveyor/env_info.py b/appveyor/env_info.py index ec8142bbefd5..c27b686dd199 100644 --- a/appveyor/env_info.py +++ b/appveyor/env_info.py @@ -23,26 +23,26 @@ def env_var(var_name): value = os.environ.get(var_name) - print('os.environ[{!r}]: {}'.format(var_name, value)) + print("os.environ[{!r}]: {}".format(var_name, value)) def main(): - print('os.name: {}'.format(os.name)) - env_var('PYTHON_ARCH') - env_var('PYTHON_VERSION') - print('sys.platform: {}'.format(sys.platform)) - - if sys.maxsize == 2**63 - 1: - print('sys.maxsize: 2^(63) - 1') - elif sys.maxsize == 2**31 - 1: - print('sys.maxsize: 2^(31) - 1') + print("os.name: {}".format(os.name)) + env_var("PYTHON_ARCH") + env_var("PYTHON_VERSION") + print("sys.platform: {}".format(sys.platform)) + + if sys.maxsize == 2 ** 63 - 1: + print("sys.maxsize: 2^(63) - 1") + elif sys.maxsize == 2 ** 31 - 1: + print("sys.maxsize: 2^(31) - 1") else: - print('sys.maxsize: {}'.format(sys.maxsize)) + print("sys.maxsize: {}".format(sys.maxsize)) - print('sys.version:\n{}'.format(sys.version)) - bitness = struct.calcsize('P') * 8 - print('struct.calcsize(\'P\') * 8: {}'.format(bitness)) + print("sys.version:\n{}".format(sys.version)) + bitness = struct.calcsize("P") * 8 + print("struct.calcsize('P') * 8: {}".format(bitness)) -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/asset/docs/conf.py b/asset/docs/conf.py index b701e41caf99..21d9d37e1cfa 100644 --- a/asset/docs/conf.py +++ b/asset/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-asset' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-asset" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-asset-doc' +htmlhelp_basename = "google-cloud-asset-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,45 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-asset.tex', - u'google-cloud-asset Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-asset.tex", + u"google-cloud-asset Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-asset', - u'google-cloud-asset Documentation', [author], 1)] +man_pages = [ + (master_doc, "google-cloud-asset", u"google-cloud-asset Documentation", [author], 1) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +277,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-asset', - u'google-cloud-asset Documentation', author, - 'google-cloud-asset', - 'GAPIC library for the {metadata.shortName} v1beta1 service', 'APIs'), + ( + master_doc, + "google-cloud-asset", + u"google-cloud-asset Documentation", + author, + "google-cloud-asset", + "GAPIC library for the {metadata.shortName} v1beta1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/asset/google/__init__.py b/asset/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/asset/google/__init__.py +++ b/asset/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/asset/google/cloud/__init__.py b/asset/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/asset/google/cloud/__init__.py +++ b/asset/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/asset/google/cloud/asset.py b/asset/google/cloud/asset.py index 0aa16ee24654..4087e02995fa 100644 --- a/asset/google/cloud/asset.py +++ b/asset/google/cloud/asset.py @@ -20,8 +20,4 @@ from google.cloud.asset_v1beta1 import enums from google.cloud.asset_v1beta1 import types -__all__ = ( - 'enums', - 'types', - 'AssetServiceClient', -) +__all__ = ("enums", "types", "AssetServiceClient") diff --git a/asset/google/cloud/asset_v1beta1/__init__.py b/asset/google/cloud/asset_v1beta1/__init__.py index 6d4f99788c5b..45331153fe88 100644 --- a/asset/google/cloud/asset_v1beta1/__init__.py +++ b/asset/google/cloud/asset_v1beta1/__init__.py @@ -26,8 +26,4 @@ class AssetServiceClient(asset_service_client.AssetServiceClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'AssetServiceClient', -) +__all__ = ("enums", "types", "AssetServiceClient") diff --git a/asset/google/cloud/asset_v1beta1/gapic/asset_service_client.py b/asset/google/cloud/asset_v1beta1/gapic/asset_service_client.py index d3981effa565..cdaf8819999c 100644 --- a/asset/google/cloud/asset_v1beta1/gapic/asset_service_client.py +++ b/asset/google/cloud/asset_v1beta1/gapic/asset_service_client.py @@ -37,19 +37,18 @@ from google.longrunning import operations_pb2 from google.protobuf import timestamp_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-asset', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-asset").version class AssetServiceClient(object): """Asset service definition.""" - SERVICE_ADDRESS = 'cloudasset.googleapis.com:443' + SERVICE_ADDRESS = "cloudasset.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.asset.v1beta1.AssetService' + _INTERFACE_NAME = "google.cloud.asset.v1beta1.AssetService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -65,9 +64,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: AssetServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -76,16 +74,17 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -119,18 +118,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = asset_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -139,25 +139,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=asset_service_grpc_transport. - AssetServiceGrpcTransport, + default_class=asset_service_grpc_transport.AssetServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = asset_service_grpc_transport.AssetServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -167,7 +166,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -176,15 +176,17 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def export_assets(self, - parent, - output_config, - read_time=None, - asset_types=None, - content_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def export_assets( + self, + parent, + output_config, + read_time=None, + asset_types=None, + content_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Exports assets with time and resource types to a given Cloud Storage location. The output format is newline-delimited JSON. This API @@ -253,15 +255,15 @@ def export_assets(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'export_assets' not in self._inner_api_calls: + if "export_assets" not in self._inner_api_calls: self._inner_api_calls[ - 'export_assets'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.export_assets, - default_retry=self._method_configs['ExportAssets'].retry, - default_timeout=self._method_configs['ExportAssets']. - timeout, - client_info=self._client_info, - ) + "export_assets" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.export_assets, + default_retry=self._method_configs["ExportAssets"].retry, + default_timeout=self._method_configs["ExportAssets"].timeout, + client_info=self._client_info, + ) request = asset_service_pb2.ExportAssetsRequest( parent=parent, @@ -270,8 +272,9 @@ def export_assets(self, asset_types=asset_types, content_type=content_type, ) - operation = self._inner_api_calls['export_assets']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["export_assets"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -280,14 +283,15 @@ def export_assets(self, ) def batch_get_assets_history( - self, - parent, - content_type, - read_time_window, - asset_names=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + content_type, + read_time_window, + asset_names=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Batch gets the update history of assets that overlap a time window. For RESOURCE content, this API outputs history with asset in both non-delete @@ -350,16 +354,15 @@ def batch_get_assets_history( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'batch_get_assets_history' not in self._inner_api_calls: + if "batch_get_assets_history" not in self._inner_api_calls: self._inner_api_calls[ - 'batch_get_assets_history'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.batch_get_assets_history, - default_retry=self. - _method_configs['BatchGetAssetsHistory'].retry, - default_timeout=self. - _method_configs['BatchGetAssetsHistory'].timeout, - client_info=self._client_info, - ) + "batch_get_assets_history" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.batch_get_assets_history, + default_retry=self._method_configs["BatchGetAssetsHistory"].retry, + default_timeout=self._method_configs["BatchGetAssetsHistory"].timeout, + client_info=self._client_info, + ) request = asset_service_pb2.BatchGetAssetsHistoryRequest( parent=parent, @@ -367,5 +370,6 @@ def batch_get_assets_history( read_time_window=read_time_window, asset_names=asset_names, ) - return self._inner_api_calls['batch_get_assets_history']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["batch_get_assets_history"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/asset/google/cloud/asset_v1beta1/gapic/asset_service_client_config.py b/asset/google/cloud/asset_v1beta1/gapic/asset_service_client_config.py index e5d759d6f468..340e89de38b2 100644 --- a/asset/google/cloud/asset_v1beta1/gapic/asset_service_client_config.py +++ b/asset/google/cloud/asset_v1beta1/gapic/asset_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.asset.v1beta1.AssetService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,21 +13,21 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ExportAssets": { "timeout_millis": 600000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "BatchGetAssetsHistory": { "timeout_millis": 600000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/asset/google/cloud/asset_v1beta1/gapic/enums.py b/asset/google/cloud/asset_v1beta1/gapic/enums.py index eaa86d486168..e00e748a42d4 100644 --- a/asset/google/cloud/asset_v1beta1/gapic/enums.py +++ b/asset/google/cloud/asset_v1beta1/gapic/enums.py @@ -28,6 +28,7 @@ class NullValue(enum.IntEnum): Attributes: NULL_VALUE (int): Null value. """ + NULL_VALUE = 0 @@ -40,6 +41,7 @@ class ContentType(enum.IntEnum): RESOURCE (int): Resource metadata. IAM_POLICY (int): The actual IAM policy set on a resource. """ + CONTENT_TYPE_UNSPECIFIED = 0 RESOURCE = 1 IAM_POLICY = 2 diff --git a/asset/google/cloud/asset_v1beta1/gapic/transports/asset_service_grpc_transport.py b/asset/google/cloud/asset_v1beta1/gapic/transports/asset_service_grpc_transport.py index b9cc897241e7..e45c2b978035 100644 --- a/asset/google/cloud/asset_v1beta1/gapic/transports/asset_service_grpc_transport.py +++ b/asset/google/cloud/asset_v1beta1/gapic/transports/asset_service_grpc_transport.py @@ -28,14 +28,14 @@ class AssetServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='cloudasset.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="cloudasset.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,35 +53,30 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'asset_service_stub': - asset_service_pb2_grpc.AssetServiceStub(channel), + "asset_service_stub": asset_service_pb2_grpc.AssetServiceStub(channel) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='cloudasset.googleapis.com:443', - credentials=None): + def create_channel(cls, address="cloudasset.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -96,9 +91,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,7 +117,7 @@ def export_assets(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['asset_service_stub'].ExportAssets + return self._stubs["asset_service_stub"].ExportAssets @property def batch_get_assets_history(self): @@ -141,4 +134,4 @@ def batch_get_assets_history(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['asset_service_stub'].BatchGetAssetsHistory + return self._stubs["asset_service_stub"].BatchGetAssetsHistory diff --git a/asset/google/cloud/asset_v1beta1/types.py b/asset/google/cloud/asset_v1beta1/types.py index eb4c3d9023c9..d23cc19a458d 100644 --- a/asset/google/cloud/asset_v1beta1/types.py +++ b/asset/google/cloud/asset_v1beta1/types.py @@ -43,10 +43,7 @@ status_pb2, ] -_local_modules = [ - asset_service_pb2, - assets_pb2, -] +_local_modules = [asset_service_pb2, assets_pb2] names = [] @@ -56,7 +53,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.asset_v1beta1.types' + message.__module__ = "google.cloud.asset_v1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/asset/tests/unit/gapic/v1beta1/test_asset_service_client_v1beta1.py b/asset/tests/unit/gapic/v1beta1/test_asset_service_client_v1beta1.py index 4c2b65d11cdf..1cc4177bb164 100644 --- a/asset/tests/unit/gapic/v1beta1/test_asset_service_client_v1beta1.py +++ b/asset/tests/unit/gapic/v1beta1/test_asset_service_client_v1beta1.py @@ -55,10 +55,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,21 +67,21 @@ class TestAssetServiceClient(object): def test_export_assets(self): # Setup Expected Response expected_response = {} - expected_response = asset_service_pb2.ExportAssetsResponse( - **expected_response) + expected_response = asset_service_pb2.ExportAssetsResponse(**expected_response) operation = operations_pb2.Operation( - name='operations/test_export_assets', done=True) + name="operations/test_export_assets", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = asset_v1beta1.AssetServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") output_config = {} response = client.export_assets(parent, output_config) @@ -93,7 +90,8 @@ def test_export_assets(self): assert len(channel.requests) == 1 expected_request = asset_service_pb2.ExportAssetsRequest( - parent=parent, output_config=output_config) + parent=parent, output_config=output_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -101,18 +99,19 @@ def test_export_assets_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_export_assets_exception', done=True) + name="operations/test_export_assets_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = asset_v1beta1.AssetServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") output_config = {} response = client.export_assets(parent, output_config) @@ -123,45 +122,45 @@ def test_batch_get_assets_history(self): # Setup Expected Response expected_response = {} expected_response = asset_service_pb2.BatchGetAssetsHistoryResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = asset_v1beta1.AssetServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") content_type = enums.ContentType.CONTENT_TYPE_UNSPECIFIED read_time_window = {} - response = client.batch_get_assets_history(parent, content_type, - read_time_window) + response = client.batch_get_assets_history( + parent, content_type, read_time_window + ) assert expected_response == response assert len(channel.requests) == 1 expected_request = asset_service_pb2.BatchGetAssetsHistoryRequest( - parent=parent, - content_type=content_type, - read_time_window=read_time_window) + parent=parent, content_type=content_type, read_time_window=read_time_window + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_batch_get_assets_history_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = asset_v1beta1.AssetServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") content_type = enums.ContentType.CONTENT_TYPE_UNSPECIFIED read_time_window = {} with pytest.raises(CustomException): - client.batch_get_assets_history(parent, content_type, - read_time_window) + client.batch_get_assets_history(parent, content_type, read_time_window) diff --git a/automl/docs/conf.py b/automl/docs/conf.py index 0a9702df215a..f913376a74dc 100644 --- a/automl/docs/conf.py +++ b/automl/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-automl' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-automl" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-automl-doc' +htmlhelp_basename = "google-cloud-automl-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-automl.tex', - u'google-cloud-automl Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-automl.tex", + u"google-cloud-automl Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-automl', - u'google-cloud-automl Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-automl", + u"google-cloud-automl Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-automl', u'google-cloud-automl Documentation', - author, 'google-cloud-automl', - 'GAPIC library for the {metadata.shortName} v1beta1 service', 'APIs'), + ( + master_doc, + "google-cloud-automl", + u"google-cloud-automl Documentation", + author, + "google-cloud-automl", + "GAPIC library for the {metadata.shortName} v1beta1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/automl/google/__init__.py b/automl/google/__init__.py index 855a707300e1..dd3a9f485275 100644 --- a/automl/google/__init__.py +++ b/automl/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) \ No newline at end of file + + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/automl/google/cloud/__init__.py b/automl/google/cloud/__init__.py index 855a707300e1..dd3a9f485275 100644 --- a/automl/google/cloud/__init__.py +++ b/automl/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) \ No newline at end of file + + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/automl/google/cloud/automl.py b/automl/google/cloud/automl.py index def01415d72c..4bf998b12ad2 100644 --- a/automl/google/cloud/automl.py +++ b/automl/google/cloud/automl.py @@ -21,9 +21,4 @@ from google.cloud.automl_v1beta1 import enums from google.cloud.automl_v1beta1 import types -__all__ = ( - 'enums', - 'types', - 'PredictionServiceClient', - 'AutoMlClient', -) +__all__ = ("enums", "types", "PredictionServiceClient", "AutoMlClient") diff --git a/automl/google/cloud/automl_v1beta1/__init__.py b/automl/google/cloud/automl_v1beta1/__init__.py index 59d3df8458f2..aae6b72f5b6e 100644 --- a/automl/google/cloud/automl_v1beta1/__init__.py +++ b/automl/google/cloud/automl_v1beta1/__init__.py @@ -22,8 +22,7 @@ from google.cloud.automl_v1beta1.gapic import prediction_service_client -class PredictionServiceClient( - prediction_service_client.PredictionServiceClient): +class PredictionServiceClient(prediction_service_client.PredictionServiceClient): __doc__ = prediction_service_client.PredictionServiceClient.__doc__ enums = enums @@ -33,9 +32,4 @@ class AutoMlClient(auto_ml_client.AutoMlClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'PredictionServiceClient', - 'AutoMlClient', -) +__all__ = ("enums", "types", "PredictionServiceClient", "AutoMlClient") diff --git a/automl/google/cloud/automl_v1beta1/gapic/auto_ml_client.py b/automl/google/cloud/automl_v1beta1/gapic/auto_ml_client.py index 72cecb1b0047..7c872854a67d 100644 --- a/automl/google/cloud/automl_v1beta1/gapic/auto_ml_client.py +++ b/automl/google/cloud/automl_v1beta1/gapic/auto_ml_client.py @@ -46,8 +46,7 @@ from google.longrunning import operations_pb2 as longrunning_operations_pb2 from google.protobuf import empty_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-automl', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-automl").version class AutoMlClient(object): @@ -63,12 +62,12 @@ class AutoMlClient(object): then the id for the item is ``{dataset_id}``. """ - SERVICE_ADDRESS = 'automl.googleapis.com:443' + SERVICE_ADDRESS = "automl.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.automl.v1beta1.AutoMl' + _INTERFACE_NAME = "google.cloud.automl.v1beta1.AutoMl" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -84,9 +83,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: AutoMlClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -95,7 +93,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -104,7 +102,7 @@ def location_path(cls, project, location): def dataset_path(cls, project, location, dataset): """Return a fully-qualified dataset string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/datasets/{dataset}', + "projects/{project}/locations/{location}/datasets/{dataset}", project=project, location=location, dataset=dataset, @@ -114,7 +112,7 @@ def dataset_path(cls, project, location, dataset): def model_path(cls, project, location, model): """Return a fully-qualified model string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/models/{model}', + "projects/{project}/locations/{location}/models/{model}", project=project, location=location, model=model, @@ -124,19 +122,21 @@ def model_path(cls, project, location, model): def model_evaluation_path(cls, project, location, model, model_evaluation): """Return a fully-qualified model_evaluation string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/models/{model}/modelEvaluations/{model_evaluation}', + "projects/{project}/locations/{location}/models/{model}/modelEvaluations/{model_evaluation}", project=project, location=location, model=model, model_evaluation=model_evaluation, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -170,18 +170,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = auto_ml_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -195,19 +196,19 @@ def __init__(self, else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = auto_ml_grpc_transport.AutoMlGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -217,7 +218,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -226,12 +228,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_dataset(self, - parent, - dataset, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_dataset( + self, + parent, + dataset, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a dataset. @@ -273,28 +277,28 @@ def create_dataset(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_dataset' not in self._inner_api_calls: + if "create_dataset" not in self._inner_api_calls: self._inner_api_calls[ - 'create_dataset'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_dataset, - default_retry=self._method_configs['CreateDataset'].retry, - default_timeout=self._method_configs['CreateDataset']. - timeout, - client_info=self._client_info, - ) + "create_dataset" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_dataset, + default_retry=self._method_configs["CreateDataset"].retry, + default_timeout=self._method_configs["CreateDataset"].timeout, + client_info=self._client_info, + ) - request = service_pb2.CreateDatasetRequest( - parent=parent, - dataset=dataset, + request = service_pb2.CreateDatasetRequest(parent=parent, dataset=dataset) + return self._inner_api_calls["create_dataset"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_dataset']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_dataset(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_dataset( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a dataset. @@ -329,26 +333,30 @@ def get_dataset(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_dataset' not in self._inner_api_calls: + if "get_dataset" not in self._inner_api_calls: self._inner_api_calls[ - 'get_dataset'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_dataset, - default_retry=self._method_configs['GetDataset'].retry, - default_timeout=self._method_configs['GetDataset'].timeout, - client_info=self._client_info, - ) + "get_dataset" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_dataset, + default_retry=self._method_configs["GetDataset"].retry, + default_timeout=self._method_configs["GetDataset"].timeout, + client_info=self._client_info, + ) + + request = service_pb2.GetDatasetRequest(name=name) + return self._inner_api_calls["get_dataset"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = service_pb2.GetDatasetRequest(name=name, ) - return self._inner_api_calls['get_dataset']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_datasets(self, - parent, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_datasets( + self, + parent, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists datasets in a project. @@ -411,40 +419,41 @@ def list_datasets(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_datasets' not in self._inner_api_calls: + if "list_datasets" not in self._inner_api_calls: self._inner_api_calls[ - 'list_datasets'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_datasets, - default_retry=self._method_configs['ListDatasets'].retry, - default_timeout=self._method_configs['ListDatasets']. - timeout, - client_info=self._client_info, - ) + "list_datasets" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_datasets, + default_retry=self._method_configs["ListDatasets"].retry, + default_timeout=self._method_configs["ListDatasets"].timeout, + client_info=self._client_info, + ) request = service_pb2.ListDatasetsRequest( - parent=parent, - filter=filter_, - page_size=page_size, + parent=parent, filter=filter_, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_datasets'], + self._inner_api_calls["list_datasets"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='datasets', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="datasets", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def delete_dataset(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_dataset( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a dataset and all of its contents. Returns empty response in the ``response`` field when it completes, and ``delete_details`` in the @@ -490,19 +499,20 @@ def delete_dataset(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_dataset' not in self._inner_api_calls: + if "delete_dataset" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_dataset'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_dataset, - default_retry=self._method_configs['DeleteDataset'].retry, - default_timeout=self._method_configs['DeleteDataset']. - timeout, - client_info=self._client_info, - ) + "delete_dataset" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_dataset, + default_retry=self._method_configs["DeleteDataset"].retry, + default_timeout=self._method_configs["DeleteDataset"].timeout, + client_info=self._client_info, + ) - request = service_pb2.DeleteDatasetRequest(name=name, ) - operation = self._inner_api_calls['delete_dataset']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = service_pb2.DeleteDatasetRequest(name=name) + operation = self._inner_api_calls["delete_dataset"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -510,12 +520,14 @@ def delete_dataset(self, metadata_type=proto_operations_pb2.OperationMetadata, ) - def import_data(self, - name, - input_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def import_data( + self, + name, + input_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Imports data into a dataset. Returns an empty response in the ``response`` field when it completes. @@ -568,21 +580,20 @@ def import_data(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'import_data' not in self._inner_api_calls: + if "import_data" not in self._inner_api_calls: self._inner_api_calls[ - 'import_data'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.import_data, - default_retry=self._method_configs['ImportData'].retry, - default_timeout=self._method_configs['ImportData'].timeout, - client_info=self._client_info, - ) + "import_data" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.import_data, + default_retry=self._method_configs["ImportData"].retry, + default_timeout=self._method_configs["ImportData"].timeout, + client_info=self._client_info, + ) - request = service_pb2.ImportDataRequest( - name=name, - input_config=input_config, + request = service_pb2.ImportDataRequest(name=name, input_config=input_config) + operation = self._inner_api_calls["import_data"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['import_data']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -590,12 +601,14 @@ def import_data(self, metadata_type=proto_operations_pb2.OperationMetadata, ) - def export_data(self, - name, - output_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def export_data( + self, + name, + output_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Exports dataset's data to a Google Cloud Storage bucket. Returns an empty response in the ``response`` field when it completes. @@ -647,21 +660,20 @@ def export_data(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'export_data' not in self._inner_api_calls: + if "export_data" not in self._inner_api_calls: self._inner_api_calls[ - 'export_data'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.export_data, - default_retry=self._method_configs['ExportData'].retry, - default_timeout=self._method_configs['ExportData'].timeout, - client_info=self._client_info, - ) + "export_data" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.export_data, + default_retry=self._method_configs["ExportData"].retry, + default_timeout=self._method_configs["ExportData"].timeout, + client_info=self._client_info, + ) - request = service_pb2.ExportDataRequest( - name=name, - output_config=output_config, + request = service_pb2.ExportDataRequest(name=name, output_config=output_config) + operation = self._inner_api_calls["export_data"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['export_data']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -669,12 +681,14 @@ def export_data(self, metadata_type=proto_operations_pb2.OperationMetadata, ) - def create_model(self, - parent, - model, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_model( + self, + parent, + model, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a model. Returns a Model in the ``response`` field when it completes. When you create a model, several model evaluations are @@ -728,22 +742,20 @@ def create_model(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_model' not in self._inner_api_calls: + if "create_model" not in self._inner_api_calls: self._inner_api_calls[ - 'create_model'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_model, - default_retry=self._method_configs['CreateModel'].retry, - default_timeout=self._method_configs['CreateModel']. - timeout, - client_info=self._client_info, - ) + "create_model" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_model, + default_retry=self._method_configs["CreateModel"].retry, + default_timeout=self._method_configs["CreateModel"].timeout, + client_info=self._client_info, + ) - request = service_pb2.CreateModelRequest( - parent=parent, - model=model, + request = service_pb2.CreateModelRequest(parent=parent, model=model) + operation = self._inner_api_calls["create_model"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['create_model']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -751,11 +763,13 @@ def create_model(self, metadata_type=proto_operations_pb2.OperationMetadata, ) - def get_model(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_model( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a model. @@ -790,26 +804,30 @@ def get_model(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_model' not in self._inner_api_calls: + if "get_model" not in self._inner_api_calls: self._inner_api_calls[ - 'get_model'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_model, - default_retry=self._method_configs['GetModel'].retry, - default_timeout=self._method_configs['GetModel'].timeout, - client_info=self._client_info, - ) + "get_model" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_model, + default_retry=self._method_configs["GetModel"].retry, + default_timeout=self._method_configs["GetModel"].timeout, + client_info=self._client_info, + ) - request = service_pb2.GetModelRequest(name=name, ) - return self._inner_api_calls['get_model']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_models(self, - parent, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = service_pb2.GetModelRequest(name=name) + return self._inner_api_calls["get_model"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_models( + self, + parent, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists models. @@ -875,39 +893,41 @@ def list_models(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_models' not in self._inner_api_calls: + if "list_models" not in self._inner_api_calls: self._inner_api_calls[ - 'list_models'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_models, - default_retry=self._method_configs['ListModels'].retry, - default_timeout=self._method_configs['ListModels'].timeout, - client_info=self._client_info, - ) + "list_models" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_models, + default_retry=self._method_configs["ListModels"].retry, + default_timeout=self._method_configs["ListModels"].timeout, + client_info=self._client_info, + ) request = service_pb2.ListModelsRequest( - parent=parent, - filter=filter_, - page_size=page_size, + parent=parent, filter=filter_, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_models'], + self._inner_api_calls["list_models"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='model', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="model", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def delete_model(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_model( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a model. If a model is already deployed, this only deletes the model in AutoML BE, and does not change the status of the deployed model @@ -955,19 +975,20 @@ def delete_model(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_model' not in self._inner_api_calls: + if "delete_model" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_model'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_model, - default_retry=self._method_configs['DeleteModel'].retry, - default_timeout=self._method_configs['DeleteModel']. - timeout, - client_info=self._client_info, - ) + "delete_model" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_model, + default_retry=self._method_configs["DeleteModel"].retry, + default_timeout=self._method_configs["DeleteModel"].timeout, + client_info=self._client_info, + ) - request = service_pb2.DeleteModelRequest(name=name, ) - operation = self._inner_api_calls['delete_model']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = service_pb2.DeleteModelRequest(name=name) + operation = self._inner_api_calls["delete_model"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -975,11 +996,13 @@ def delete_model(self, metadata_type=proto_operations_pb2.OperationMetadata, ) - def deploy_model(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def deploy_model( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deploys model. Returns a ``DeployModelResponse`` in the ``response`` field when it completes. @@ -1015,25 +1038,28 @@ def deploy_model(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'deploy_model' not in self._inner_api_calls: + if "deploy_model" not in self._inner_api_calls: self._inner_api_calls[ - 'deploy_model'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.deploy_model, - default_retry=self._method_configs['DeployModel'].retry, - default_timeout=self._method_configs['DeployModel']. - timeout, - client_info=self._client_info, - ) + "deploy_model" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.deploy_model, + default_retry=self._method_configs["DeployModel"].retry, + default_timeout=self._method_configs["DeployModel"].timeout, + client_info=self._client_info, + ) - request = service_pb2.DeployModelRequest(name=name, ) - return self._inner_api_calls['deploy_model']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = service_pb2.DeployModelRequest(name=name) + return self._inner_api_calls["deploy_model"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def undeploy_model(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def undeploy_model( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Undeploys model. Returns an ``UndeployModelResponse`` in the ``response`` field when it completes. @@ -1069,25 +1095,28 @@ def undeploy_model(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'undeploy_model' not in self._inner_api_calls: + if "undeploy_model" not in self._inner_api_calls: self._inner_api_calls[ - 'undeploy_model'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.undeploy_model, - default_retry=self._method_configs['UndeployModel'].retry, - default_timeout=self._method_configs['UndeployModel']. - timeout, - client_info=self._client_info, - ) + "undeploy_model" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.undeploy_model, + default_retry=self._method_configs["UndeployModel"].retry, + default_timeout=self._method_configs["UndeployModel"].timeout, + client_info=self._client_info, + ) - request = service_pb2.UndeployModelRequest(name=name, ) - return self._inner_api_calls['undeploy_model']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = service_pb2.UndeployModelRequest(name=name) + return self._inner_api_calls["undeploy_model"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_model_evaluation(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_model_evaluation( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a model evaluation. @@ -1122,28 +1151,30 @@ def get_model_evaluation(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_model_evaluation' not in self._inner_api_calls: + if "get_model_evaluation" not in self._inner_api_calls: self._inner_api_calls[ - 'get_model_evaluation'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_model_evaluation, - default_retry=self._method_configs['GetModelEvaluation']. - retry, - default_timeout=self._method_configs['GetModelEvaluation']. - timeout, - client_info=self._client_info, - ) + "get_model_evaluation" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_model_evaluation, + default_retry=self._method_configs["GetModelEvaluation"].retry, + default_timeout=self._method_configs["GetModelEvaluation"].timeout, + client_info=self._client_info, + ) + + request = service_pb2.GetModelEvaluationRequest(name=name) + return self._inner_api_calls["get_model_evaluation"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = service_pb2.GetModelEvaluationRequest(name=name, ) - return self._inner_api_calls['get_model_evaluation']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_model_evaluations(self, - parent, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_model_evaluations( + self, + parent, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists model evaluations. @@ -1211,32 +1242,30 @@ def list_model_evaluations(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_model_evaluations' not in self._inner_api_calls: + if "list_model_evaluations" not in self._inner_api_calls: self._inner_api_calls[ - 'list_model_evaluations'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_model_evaluations, - default_retry=self._method_configs['ListModelEvaluations']. - retry, - default_timeout=self. - _method_configs['ListModelEvaluations'].timeout, - client_info=self._client_info, - ) + "list_model_evaluations" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_model_evaluations, + default_retry=self._method_configs["ListModelEvaluations"].retry, + default_timeout=self._method_configs["ListModelEvaluations"].timeout, + client_info=self._client_info, + ) request = service_pb2.ListModelEvaluationsRequest( - parent=parent, - filter=filter_, - page_size=page_size, + parent=parent, filter=filter_, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_model_evaluations'], + self._inner_api_calls["list_model_evaluations"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='model_evaluation', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="model_evaluation", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator diff --git a/automl/google/cloud/automl_v1beta1/gapic/auto_ml_client_config.py b/automl/google/cloud/automl_v1beta1/gapic/auto_ml_client_config.py index ce0e319ca99a..ce555cb08ebf 100644 --- a/automl/google/cloud/automl_v1beta1/gapic/auto_ml_client_config.py +++ b/automl/google/cloud/automl_v1beta1/gapic/auto_ml_client_config.py @@ -3,7 +3,7 @@ "google.cloud.automl.v1beta1.AutoMl": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,81 +13,81 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "CreateDataset": { "timeout_millis": 5000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetDataset": { "timeout_millis": 5000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListDatasets": { "timeout_millis": 5000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteDataset": { "timeout_millis": 5000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ImportData": { "timeout_millis": 5000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ExportData": { "timeout_millis": 5000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateModel": { "timeout_millis": 5000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetModel": { "timeout_millis": 5000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListModels": { "timeout_millis": 5000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteModel": { "timeout_millis": 5000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeployModel": { "timeout_millis": 5000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UndeployModel": { "timeout_millis": 5000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetModelEvaluation": { "timeout_millis": 5000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListModelEvaluations": { "timeout_millis": 5000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/automl/google/cloud/automl_v1beta1/gapic/enums.py b/automl/google/cloud/automl_v1beta1/gapic/enums.py index 51e477163662..b98cd0818972 100644 --- a/automl/google/cloud/automl_v1beta1/gapic/enums.py +++ b/automl/google/cloud/automl_v1beta1/gapic/enums.py @@ -27,6 +27,7 @@ class ClassificationType(enum.IntEnum): MULTICLASS (int): At most one label is allowed per example. MULTILABEL (int): Multiple labels are allowed for one example. """ + CLASSIFICATION_TYPE_UNSPECIFIED = 0 MULTICLASS = 1 MULTILABEL = 2 @@ -42,6 +43,7 @@ class DeploymentState(enum.IntEnum): DEPLOYED (int): Model is deployed. UNDEPLOYED (int): Model is not deployed. """ + DEPLOYMENT_STATE_UNSPECIFIED = 0 DEPLOYED = 1 UNDEPLOYED = 2 diff --git a/automl/google/cloud/automl_v1beta1/gapic/prediction_service_client.py b/automl/google/cloud/automl_v1beta1/gapic/prediction_service_client.py index bc5ff579ec7f..8a7d01e61049 100644 --- a/automl/google/cloud/automl_v1beta1/gapic/prediction_service_client.py +++ b/automl/google/cloud/automl_v1beta1/gapic/prediction_service_client.py @@ -28,24 +28,25 @@ from google.cloud.automl_v1beta1.gapic import enums from google.cloud.automl_v1beta1.gapic import prediction_service_client_config -from google.cloud.automl_v1beta1.gapic.transports import prediction_service_grpc_transport +from google.cloud.automl_v1beta1.gapic.transports import ( + prediction_service_grpc_transport, +) from google.cloud.automl_v1beta1.proto import data_items_pb2 from google.cloud.automl_v1beta1.proto import prediction_service_pb2 from google.cloud.automl_v1beta1.proto import prediction_service_pb2_grpc -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-automl', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-automl").version class PredictionServiceClient(object): """AutoML Prediction API.""" - SERVICE_ADDRESS = 'automl.googleapis.com:443' + SERVICE_ADDRESS = "automl.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.automl.v1beta1.PredictionService' + _INTERFACE_NAME = "google.cloud.automl.v1beta1.PredictionService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -61,9 +62,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: PredictionServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -72,18 +72,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): def model_path(cls, project, location, model): """Return a fully-qualified model string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/models/{model}', + "projects/{project}/locations/{location}/models/{model}", project=project, location=location, model=model, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -117,18 +119,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = prediction_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -137,25 +140,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=prediction_service_grpc_transport. - PredictionServiceGrpcTransport, + default_class=prediction_service_grpc_transport.PredictionServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = prediction_service_grpc_transport.PredictionServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -165,7 +167,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -174,13 +177,15 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def predict(self, - name, - payload, - params=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def predict( + self, + name, + payload, + params=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Perform a prediction. @@ -232,19 +237,19 @@ def predict(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'predict' not in self._inner_api_calls: + if "predict" not in self._inner_api_calls: self._inner_api_calls[ - 'predict'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.predict, - default_retry=self._method_configs['Predict'].retry, - default_timeout=self._method_configs['Predict'].timeout, - client_info=self._client_info, - ) + "predict" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.predict, + default_retry=self._method_configs["Predict"].retry, + default_timeout=self._method_configs["Predict"].timeout, + client_info=self._client_info, + ) request = prediction_service_pb2.PredictRequest( - name=name, - payload=payload, - params=params, + name=name, payload=payload, params=params + ) + return self._inner_api_calls["predict"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['predict']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/automl/google/cloud/automl_v1beta1/gapic/prediction_service_client_config.py b/automl/google/cloud/automl_v1beta1/gapic/prediction_service_client_config.py index 225cbca85413..aee4b80446f8 100644 --- a/automl/google/cloud/automl_v1beta1/gapic/prediction_service_client_config.py +++ b/automl/google/cloud/automl_v1beta1/gapic/prediction_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.automl.v1beta1.PredictionService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,16 +13,16 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "Predict": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", } - } + }, } } } diff --git a/automl/google/cloud/automl_v1beta1/gapic/transports/auto_ml_grpc_transport.py b/automl/google/cloud/automl_v1beta1/gapic/transports/auto_ml_grpc_transport.py index 3f197157afad..fea046b8ca4e 100644 --- a/automl/google/cloud/automl_v1beta1/gapic/transports/auto_ml_grpc_transport.py +++ b/automl/google/cloud/automl_v1beta1/gapic/transports/auto_ml_grpc_transport.py @@ -28,14 +28,14 @@ class AutoMlGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='automl.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="automl.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,34 +53,28 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'auto_ml_stub': service_pb2_grpc.AutoMlStub(channel), - } + self._stubs = {"auto_ml_stub": service_pb2_grpc.AutoMlStub(channel)} # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='automl.googleapis.com:443', - credentials=None): + def create_channel(cls, address="automl.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -95,9 +89,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -120,7 +112,7 @@ def create_dataset(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].CreateDataset + return self._stubs["auto_ml_stub"].CreateDataset @property def get_dataset(self): @@ -133,7 +125,7 @@ def get_dataset(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].GetDataset + return self._stubs["auto_ml_stub"].GetDataset @property def list_datasets(self): @@ -146,7 +138,7 @@ def list_datasets(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].ListDatasets + return self._stubs["auto_ml_stub"].ListDatasets @property def delete_dataset(self): @@ -161,7 +153,7 @@ def delete_dataset(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].DeleteDataset + return self._stubs["auto_ml_stub"].DeleteDataset @property def import_data(self): @@ -175,7 +167,7 @@ def import_data(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].ImportData + return self._stubs["auto_ml_stub"].ImportData @property def export_data(self): @@ -189,7 +181,7 @@ def export_data(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].ExportData + return self._stubs["auto_ml_stub"].ExportData @property def create_model(self): @@ -205,7 +197,7 @@ def create_model(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].CreateModel + return self._stubs["auto_ml_stub"].CreateModel @property def get_model(self): @@ -218,7 +210,7 @@ def get_model(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].GetModel + return self._stubs["auto_ml_stub"].GetModel @property def list_models(self): @@ -231,7 +223,7 @@ def list_models(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].ListModels + return self._stubs["auto_ml_stub"].ListModels @property def delete_model(self): @@ -248,7 +240,7 @@ def delete_model(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].DeleteModel + return self._stubs["auto_ml_stub"].DeleteModel @property def deploy_model(self): @@ -262,7 +254,7 @@ def deploy_model(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].DeployModel + return self._stubs["auto_ml_stub"].DeployModel @property def undeploy_model(self): @@ -276,7 +268,7 @@ def undeploy_model(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].UndeployModel + return self._stubs["auto_ml_stub"].UndeployModel @property def get_model_evaluation(self): @@ -289,7 +281,7 @@ def get_model_evaluation(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].GetModelEvaluation + return self._stubs["auto_ml_stub"].GetModelEvaluation @property def list_model_evaluations(self): @@ -302,4 +294,4 @@ def list_model_evaluations(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['auto_ml_stub'].ListModelEvaluations + return self._stubs["auto_ml_stub"].ListModelEvaluations diff --git a/automl/google/cloud/automl_v1beta1/gapic/transports/prediction_service_grpc_transport.py b/automl/google/cloud/automl_v1beta1/gapic/transports/prediction_service_grpc_transport.py index e837dc2bc03b..68d95e9423a1 100644 --- a/automl/google/cloud/automl_v1beta1/gapic/transports/prediction_service_grpc_transport.py +++ b/automl/google/cloud/automl_v1beta1/gapic/transports/prediction_service_grpc_transport.py @@ -27,14 +27,14 @@ class PredictionServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='automl.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="automl.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,29 +52,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'prediction_service_stub': - prediction_service_pb2_grpc.PredictionServiceStub(channel), + "prediction_service_stub": prediction_service_pb2_grpc.PredictionServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='automl.googleapis.com:443', - credentials=None): + def create_channel(cls, address="automl.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -89,9 +85,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,4 +108,4 @@ def predict(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['prediction_service_stub'].Predict + return self._stubs["prediction_service_stub"].Predict diff --git a/automl/google/cloud/automl_v1beta1/types.py b/automl/google/cloud/automl_v1beta1/types.py index a0b4d3a0f231..6342c8556788 100644 --- a/automl/google/cloud/automl_v1beta1/types.py +++ b/automl/google/cloud/automl_v1beta1/types.py @@ -76,7 +76,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.automl_v1beta1.types' + message.__module__ = "google.cloud.automl_v1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/automl/tests/unit/gapic/v1beta1/test_auto_ml_client_v1beta1.py b/automl/tests/unit/gapic/v1beta1/test_auto_ml_client_v1beta1.py index b3c3e7d573cb..9a59687a3cf3 100644 --- a/automl/tests/unit/gapic/v1beta1/test_auto_ml_client_v1beta1.py +++ b/automl/tests/unit/gapic/v1beta1/test_auto_ml_client_v1beta1.py @@ -58,10 +58,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -72,25 +69,25 @@ class CustomException(Exception): class TestAutoMlClient(object): def test_create_dataset(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' + name = "name3373707" + display_name = "displayName1615086568" example_count = 1517063674 expected_response = { - 'name': name, - 'display_name': display_name, - 'example_count': example_count + "name": name, + "display_name": display_name, + "example_count": example_count, } expected_response = dataset_pb2.Dataset(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") dataset = {} response = client.create_dataset(parent, dataset) @@ -98,20 +95,21 @@ def test_create_dataset(self): assert len(channel.requests) == 1 expected_request = service_pb2.CreateDatasetRequest( - parent=parent, dataset=dataset) + parent=parent, dataset=dataset + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_dataset_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") dataset = {} with pytest.raises(CustomException): @@ -119,25 +117,25 @@ def test_create_dataset_exception(self): def test_get_dataset(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" example_count = 1517063674 expected_response = { - 'name': name_2, - 'display_name': display_name, - 'example_count': example_count + "name": name_2, + "display_name": display_name, + "example_count": example_count, } expected_response = dataset_pb2.Dataset(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.dataset_path('[PROJECT]', '[LOCATION]', '[DATASET]') + name = client.dataset_path("[PROJECT]", "[LOCATION]", "[DATASET]") response = client.get_dataset(name) assert expected_response == response @@ -150,38 +148,34 @@ def test_get_dataset(self): def test_get_dataset_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - name = client.dataset_path('[PROJECT]', '[LOCATION]', '[DATASET]') + name = client.dataset_path("[PROJECT]", "[LOCATION]", "[DATASET]") with pytest.raises(CustomException): client.get_dataset(name) def test_list_datasets(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" datasets_element = {} datasets = [datasets_element] - expected_response = { - 'next_page_token': next_page_token, - 'datasets': datasets - } - expected_response = service_pb2.ListDatasetsResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "datasets": datasets} + expected_response = service_pb2.ListDatasetsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_datasets(parent) resources = list(paged_list_response) @@ -196,13 +190,13 @@ def test_list_datasets(self): def test_list_datasets_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_datasets(parent) with pytest.raises(CustomException): @@ -213,18 +207,19 @@ def test_delete_dataset(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_delete_dataset', done=True) + name="operations/test_delete_dataset", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.dataset_path('[PROJECT]', '[LOCATION]', '[DATASET]') + name = client.dataset_path("[PROJECT]", "[LOCATION]", "[DATASET]") response = client.delete_dataset(name) result = response.result() @@ -239,18 +234,19 @@ def test_delete_dataset_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_delete_dataset_exception', done=True) + name="operations/test_delete_dataset_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.dataset_path('[PROJECT]', '[LOCATION]', '[DATASET]') + name = client.dataset_path("[PROJECT]", "[LOCATION]", "[DATASET]") response = client.delete_dataset(name) exception = response.exception() @@ -261,18 +257,19 @@ def test_import_data(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_import_data', done=True) + name="operations/test_import_data", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.dataset_path('[PROJECT]', '[LOCATION]', '[DATASET]') + name = client.dataset_path("[PROJECT]", "[LOCATION]", "[DATASET]") input_config = {} response = client.import_data(name, input_config) @@ -281,7 +278,8 @@ def test_import_data(self): assert len(channel.requests) == 1 expected_request = service_pb2.ImportDataRequest( - name=name, input_config=input_config) + name=name, input_config=input_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -289,18 +287,19 @@ def test_import_data_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_import_data_exception', done=True) + name="operations/test_import_data_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.dataset_path('[PROJECT]', '[LOCATION]', '[DATASET]') + name = client.dataset_path("[PROJECT]", "[LOCATION]", "[DATASET]") input_config = {} response = client.import_data(name, input_config) @@ -312,18 +311,19 @@ def test_export_data(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_export_data', done=True) + name="operations/test_export_data", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.dataset_path('[PROJECT]', '[LOCATION]', '[DATASET]') + name = client.dataset_path("[PROJECT]", "[LOCATION]", "[DATASET]") output_config = {} response = client.export_data(name, output_config) @@ -332,7 +332,8 @@ def test_export_data(self): assert len(channel.requests) == 1 expected_request = service_pb2.ExportDataRequest( - name=name, output_config=output_config) + name=name, output_config=output_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -340,18 +341,19 @@ def test_export_data_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_export_data_exception', done=True) + name="operations/test_export_data_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.dataset_path('[PROJECT]', '[LOCATION]', '[DATASET]') + name = client.dataset_path("[PROJECT]", "[LOCATION]", "[DATASET]") output_config = {} response = client.export_data(name, output_config) @@ -360,28 +362,29 @@ def test_export_data_exception(self): def test_create_model(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - dataset_id = 'datasetId-2115646910' + name = "name3373707" + display_name = "displayName1615086568" + dataset_id = "datasetId-2115646910" expected_response = { - 'name': name, - 'display_name': display_name, - 'dataset_id': dataset_id + "name": name, + "display_name": display_name, + "dataset_id": dataset_id, } expected_response = model_pb2.Model(**expected_response) operation = operations_pb2.Operation( - name='operations/test_create_model', done=True) + name="operations/test_create_model", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") model = {} response = client.create_model(parent, model) @@ -389,8 +392,7 @@ def test_create_model(self): assert expected_response == result assert len(channel.requests) == 1 - expected_request = service_pb2.CreateModelRequest( - parent=parent, model=model) + expected_request = service_pb2.CreateModelRequest(parent=parent, model=model) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -398,18 +400,19 @@ def test_create_model_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_create_model_exception', done=True) + name="operations/test_create_model_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") model = {} response = client.create_model(parent, model) @@ -418,25 +421,25 @@ def test_create_model_exception(self): def test_get_model(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - dataset_id = 'datasetId-2115646910' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + dataset_id = "datasetId-2115646910" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'dataset_id': dataset_id + "name": name_2, + "display_name": display_name, + "dataset_id": dataset_id, } expected_response = model_pb2.Model(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") response = client.get_model(name) assert expected_response == response @@ -449,37 +452,34 @@ def test_get_model(self): def test_get_model_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") with pytest.raises(CustomException): client.get_model(name) def test_list_models(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" model_element = {} model = [model_element] - expected_response = { - 'next_page_token': next_page_token, - 'model': model - } + expected_response = {"next_page_token": next_page_token, "model": model} expected_response = service_pb2.ListModelsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_models(parent) resources = list(paged_list_response) @@ -494,13 +494,13 @@ def test_list_models(self): def test_list_models_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_models(parent) with pytest.raises(CustomException): @@ -511,18 +511,19 @@ def test_delete_model(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_delete_model', done=True) + name="operations/test_delete_model", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") response = client.delete_model(name) result = response.result() @@ -537,18 +538,19 @@ def test_delete_model_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_delete_model_exception', done=True) + name="operations/test_delete_model_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") response = client.delete_model(name) exception = response.exception() @@ -556,20 +558,20 @@ def test_delete_model_exception(self): def test_deploy_model(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" done = True - expected_response = {'name': name_2, 'done': done} + expected_response = {"name": name_2, "done": done} expected_response = operations_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") response = client.deploy_model(name) assert expected_response == response @@ -582,33 +584,33 @@ def test_deploy_model(self): def test_deploy_model_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") with pytest.raises(CustomException): client.deploy_model(name) def test_undeploy_model(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" done = True - expected_response = {'name': name_2, 'done': done} + expected_response = {"name": name_2, "done": done} expected_response = operations_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") response = client.undeploy_model(name) assert expected_response == response @@ -621,40 +623,40 @@ def test_undeploy_model(self): def test_undeploy_model_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") with pytest.raises(CustomException): client.undeploy_model(name) def test_get_model_evaluation(self): # Setup Expected Response - name_2 = 'name2-1052831874' - annotation_spec_id = 'annotationSpecId60690191' + name_2 = "name2-1052831874" + annotation_spec_id = "annotationSpecId60690191" evaluated_example_count = 277565350 expected_response = { - 'name': name_2, - 'annotation_spec_id': annotation_spec_id, - 'evaluated_example_count': evaluated_example_count + "name": name_2, + "annotation_spec_id": annotation_spec_id, + "evaluated_example_count": evaluated_example_count, } - expected_response = model_evaluation_pb2.ModelEvaluation( - **expected_response) + expected_response = model_evaluation_pb2.ModelEvaluation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - name = client.model_evaluation_path('[PROJECT]', '[LOCATION]', - '[MODEL]', '[MODEL_EVALUATION]') + name = client.model_evaluation_path( + "[PROJECT]", "[LOCATION]", "[MODEL]", "[MODEL_EVALUATION]" + ) response = client.get_model_evaluation(name) assert expected_response == response @@ -667,39 +669,41 @@ def test_get_model_evaluation(self): def test_get_model_evaluation_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - name = client.model_evaluation_path('[PROJECT]', '[LOCATION]', - '[MODEL]', '[MODEL_EVALUATION]') + name = client.model_evaluation_path( + "[PROJECT]", "[LOCATION]", "[MODEL]", "[MODEL_EVALUATION]" + ) with pytest.raises(CustomException): client.get_model_evaluation(name) def test_list_model_evaluations(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" model_evaluation_element = {} model_evaluation = [model_evaluation_element] expected_response = { - 'next_page_token': next_page_token, - 'model_evaluation': model_evaluation + "next_page_token": next_page_token, + "model_evaluation": model_evaluation, } expected_response = service_pb2.ListModelEvaluationsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup Request - parent = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + parent = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") paged_list_response = client.list_model_evaluations(parent) resources = list(paged_list_response) @@ -708,20 +712,19 @@ def test_list_model_evaluations(self): assert expected_response.model_evaluation[0] == resources[0] assert len(channel.requests) == 1 - expected_request = service_pb2.ListModelEvaluationsRequest( - parent=parent) + expected_request = service_pb2.ListModelEvaluationsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_model_evaluations_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.AutoMlClient() # Setup request - parent = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + parent = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") paged_list_response = client.list_model_evaluations(parent) with pytest.raises(CustomException): diff --git a/automl/tests/unit/gapic/v1beta1/test_prediction_service_client_v1beta1.py b/automl/tests/unit/gapic/v1beta1/test_prediction_service_client_v1beta1.py index f591f8d4257f..2bfeba020105 100644 --- a/automl/tests/unit/gapic/v1beta1/test_prediction_service_client_v1beta1.py +++ b/automl/tests/unit/gapic/v1beta1/test_prediction_service_client_v1beta1.py @@ -51,10 +51,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,18 +63,17 @@ class TestPredictionServiceClient(object): def test_predict(self): # Setup Expected Response expected_response = {} - expected_response = prediction_service_pb2.PredictResponse( - **expected_response) + expected_response = prediction_service_pb2.PredictResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.PredictionServiceClient() # Setup Request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") payload = {} response = client.predict(name, payload) @@ -85,20 +81,21 @@ def test_predict(self): assert len(channel.requests) == 1 expected_request = prediction_service_pb2.PredictRequest( - name=name, payload=payload) + name=name, payload=payload + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_predict_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = automl_v1beta1.PredictionServiceClient() # Setup request - name = client.model_path('[PROJECT]', '[LOCATION]', '[MODEL]') + name = client.model_path("[PROJECT]", "[LOCATION]", "[MODEL]") payload = {} with pytest.raises(CustomException): diff --git a/bigquery_datatransfer/docs/conf.py b/bigquery_datatransfer/docs/conf.py index ea5f6bb86709..4296369e17d6 100644 --- a/bigquery_datatransfer/docs/conf.py +++ b/bigquery_datatransfer/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.15.4' +__version__ = "0.15.4" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-bigquerydatatransfer' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-bigquerydatatransfer" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-bigquerydatatransfer-doc' +htmlhelp_basename = "google-cloud-bigquerydatatransfer-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-bigquerydatatransfer.tex', - u'google-cloud-bigquerydatatransfer Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-bigquerydatatransfer.tex", + u"google-cloud-bigquerydatatransfer Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-bigquerydatatransfer', - u'google-cloud-bigquerydatatransfer Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-bigquerydatatransfer", + u"google-cloud-bigquerydatatransfer Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-bigquerydatatransfer', - u'google-cloud-bigquerydatatransfer Documentation', author, - 'google-cloud-bigquerydatatransfer', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-bigquerydatatransfer", + u"google-cloud-bigquerydatatransfer Documentation", + author, + "google-cloud-bigquerydatatransfer", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/bigquery_datatransfer/google/__init__.py b/bigquery_datatransfer/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/bigquery_datatransfer/google/__init__.py +++ b/bigquery_datatransfer/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/bigquery_datatransfer/google/cloud/__init__.py b/bigquery_datatransfer/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/bigquery_datatransfer/google/cloud/__init__.py +++ b/bigquery_datatransfer/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/bigquery_datatransfer/google/cloud/bigquery_datatransfer.py b/bigquery_datatransfer/google/cloud/bigquery_datatransfer.py index 10c90dcf77a5..b3734a5c4924 100644 --- a/bigquery_datatransfer/google/cloud/bigquery_datatransfer.py +++ b/bigquery_datatransfer/google/cloud/bigquery_datatransfer.py @@ -20,8 +20,4 @@ from google.cloud.bigquery_datatransfer_v1 import enums from google.cloud.bigquery_datatransfer_v1 import types -__all__ = ( - 'enums', - 'types', - 'DataTransferServiceClient', -) +__all__ = ("enums", "types", "DataTransferServiceClient") diff --git a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/__init__.py b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/__init__.py index 1dcbddbfa4a2..bb210abc4e1a 100644 --- a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/__init__.py +++ b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/__init__.py @@ -21,14 +21,9 @@ from google.cloud.bigquery_datatransfer_v1.gapic import enums -class DataTransferServiceClient( - data_transfer_service_client.DataTransferServiceClient): +class DataTransferServiceClient(data_transfer_service_client.DataTransferServiceClient): __doc__ = data_transfer_service_client.DataTransferServiceClient.__doc__ enums = enums -__all__ = ( - 'enums', - 'types', - 'DataTransferServiceClient', -) +__all__ = ("enums", "types", "DataTransferServiceClient") diff --git a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client.py b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client.py index bc067602d68e..b78377d2f3c2 100644 --- a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client.py +++ b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client.py @@ -30,9 +30,13 @@ import google.api_core.path_template import grpc -from google.cloud.bigquery_datatransfer_v1.gapic import data_transfer_service_client_config +from google.cloud.bigquery_datatransfer_v1.gapic import ( + data_transfer_service_client_config, +) from google.cloud.bigquery_datatransfer_v1.gapic import enums -from google.cloud.bigquery_datatransfer_v1.gapic.transports import data_transfer_service_grpc_transport +from google.cloud.bigquery_datatransfer_v1.gapic.transports import ( + data_transfer_service_grpc_transport, +) from google.cloud.bigquery_datatransfer_v1.proto import datatransfer_pb2 from google.cloud.bigquery_datatransfer_v1.proto import datatransfer_pb2_grpc from google.cloud.bigquery_datatransfer_v1.proto import transfer_pb2 @@ -41,7 +45,8 @@ from google.protobuf import timestamp_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-bigquery-datatransfer', ).version + "google-cloud-bigquery-datatransfer" +).version class DataTransferServiceClient(object): @@ -52,12 +57,12 @@ class DataTransferServiceClient(object): frontend. """ - SERVICE_ADDRESS = 'bigquerydatatransfer.googleapis.com:443' + SERVICE_ADDRESS = "bigquerydatatransfer.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.bigquery.datatransfer.v1.DataTransferService' + _INTERFACE_NAME = "google.cloud.bigquery.datatransfer.v1.DataTransferService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -73,9 +78,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: DataTransferServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -84,7 +88,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_data_source_path(cls, project, data_source): """Return a fully-qualified project_data_source string.""" return google.api_core.path_template.expand( - 'projects/{project}/dataSources/{data_source}', + "projects/{project}/dataSources/{data_source}", project=project, data_source=data_source, ) @@ -93,15 +97,14 @@ def project_data_source_path(cls, project, data_source): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def project_transfer_config_path(cls, project, transfer_config): """Return a fully-qualified project_transfer_config string.""" return google.api_core.path_template.expand( - 'projects/{project}/transferConfigs/{transfer_config}', + "projects/{project}/transferConfigs/{transfer_config}", project=project, transfer_config=transfer_config, ) @@ -110,18 +113,20 @@ def project_transfer_config_path(cls, project, transfer_config): def project_run_path(cls, project, transfer_config, run): """Return a fully-qualified project_run string.""" return google.api_core.path_template.expand( - 'projects/{project}/transferConfigs/{transfer_config}/runs/{run}', + "projects/{project}/transferConfigs/{transfer_config}/runs/{run}", project=project, transfer_config=transfer_config, run=run, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -155,18 +160,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = data_transfer_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -175,25 +181,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=data_transfer_service_grpc_transport. - DataTransferServiceGrpcTransport, + default_class=data_transfer_service_grpc_transport.DataTransferServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = data_transfer_service_grpc_transport.DataTransferServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -203,7 +208,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -212,11 +218,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def get_data_source(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_data_source( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Retrieves a supported data source and returns its settings, which can be used for UI rendering. @@ -253,38 +261,42 @@ def get_data_source(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_data_source' not in self._inner_api_calls: + if "get_data_source" not in self._inner_api_calls: self._inner_api_calls[ - 'get_data_source'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_data_source, - default_retry=self._method_configs['GetDataSource'].retry, - default_timeout=self._method_configs['GetDataSource']. - timeout, - client_info=self._client_info, - ) + "get_data_source" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_data_source, + default_retry=self._method_configs["GetDataSource"].retry, + default_timeout=self._method_configs["GetDataSource"].timeout, + client_info=self._client_info, + ) - request = datatransfer_pb2.GetDataSourceRequest(name=name, ) + request = datatransfer_pb2.GetDataSourceRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_data_source']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_data_source"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_data_sources(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_data_sources( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists supported data sources and returns their settings, which can be used for UI rendering. @@ -341,54 +353,56 @@ def list_data_sources(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_data_sources' not in self._inner_api_calls: + if "list_data_sources" not in self._inner_api_calls: self._inner_api_calls[ - 'list_data_sources'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_data_sources, - default_retry=self._method_configs['ListDataSources']. - retry, - default_timeout=self._method_configs['ListDataSources']. - timeout, - client_info=self._client_info, - ) + "list_data_sources" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_data_sources, + default_retry=self._method_configs["ListDataSources"].retry, + default_timeout=self._method_configs["ListDataSources"].timeout, + client_info=self._client_info, + ) request = datatransfer_pb2.ListDataSourcesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_data_sources'], + self._inner_api_calls["list_data_sources"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='data_sources', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="data_sources", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def create_transfer_config(self, - parent, - transfer_config, - authorization_code=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_transfer_config( + self, + parent, + transfer_config, + authorization_code=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new data transfer configuration. @@ -451,16 +465,15 @@ def create_transfer_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_transfer_config' not in self._inner_api_calls: + if "create_transfer_config" not in self._inner_api_calls: self._inner_api_calls[ - 'create_transfer_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_transfer_config, - default_retry=self._method_configs['CreateTransferConfig']. - retry, - default_timeout=self. - _method_configs['CreateTransferConfig'].timeout, - client_info=self._client_info, - ) + "create_transfer_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_transfer_config, + default_retry=self._method_configs["CreateTransferConfig"].retry, + default_timeout=self._method_configs["CreateTransferConfig"].timeout, + client_info=self._client_info, + ) request = datatransfer_pb2.CreateTransferConfigRequest( parent=parent, @@ -471,24 +484,28 @@ def create_transfer_config(self, metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_transfer_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_transfer_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_transfer_config(self, - transfer_config, - update_mask, - authorization_code=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_transfer_config( + self, + transfer_config, + update_mask, + authorization_code=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a data transfer configuration. All fields must be set, even if they are not updated. @@ -552,16 +569,15 @@ def update_transfer_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_transfer_config' not in self._inner_api_calls: + if "update_transfer_config" not in self._inner_api_calls: self._inner_api_calls[ - 'update_transfer_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_transfer_config, - default_retry=self._method_configs['UpdateTransferConfig']. - retry, - default_timeout=self. - _method_configs['UpdateTransferConfig'].timeout, - client_info=self._client_info, - ) + "update_transfer_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_transfer_config, + default_retry=self._method_configs["UpdateTransferConfig"].retry, + default_timeout=self._method_configs["UpdateTransferConfig"].timeout, + client_info=self._client_info, + ) request = datatransfer_pb2.UpdateTransferConfigRequest( transfer_config=transfer_config, @@ -572,22 +588,26 @@ def update_transfer_config(self, metadata = [] metadata = list(metadata) try: - routing_header = [('transfer_config.name', transfer_config.name)] + routing_header = [("transfer_config.name", transfer_config.name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['update_transfer_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_transfer_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_transfer_config(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_transfer_config( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a data transfer configuration, including any associated transfer runs and logs. @@ -621,38 +641,41 @@ def delete_transfer_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_transfer_config' not in self._inner_api_calls: + if "delete_transfer_config" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_transfer_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_transfer_config, - default_retry=self._method_configs['DeleteTransferConfig']. - retry, - default_timeout=self. - _method_configs['DeleteTransferConfig'].timeout, - client_info=self._client_info, - ) + "delete_transfer_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_transfer_config, + default_retry=self._method_configs["DeleteTransferConfig"].retry, + default_timeout=self._method_configs["DeleteTransferConfig"].timeout, + client_info=self._client_info, + ) - request = datatransfer_pb2.DeleteTransferConfigRequest(name=name, ) + request = datatransfer_pb2.DeleteTransferConfigRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['delete_transfer_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + self._inner_api_calls["delete_transfer_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_transfer_config(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_transfer_config( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns information about a data transfer config. @@ -688,40 +711,43 @@ def get_transfer_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_transfer_config' not in self._inner_api_calls: + if "get_transfer_config" not in self._inner_api_calls: self._inner_api_calls[ - 'get_transfer_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_transfer_config, - default_retry=self._method_configs['GetTransferConfig']. - retry, - default_timeout=self._method_configs['GetTransferConfig']. - timeout, - client_info=self._client_info, - ) + "get_transfer_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_transfer_config, + default_retry=self._method_configs["GetTransferConfig"].retry, + default_timeout=self._method_configs["GetTransferConfig"].timeout, + client_info=self._client_info, + ) - request = datatransfer_pb2.GetTransferConfigRequest(name=name, ) + request = datatransfer_pb2.GetTransferConfigRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_transfer_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_transfer_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_transfer_configs(self, - parent, - data_source_ids=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_transfer_configs( + self, + parent, + data_source_ids=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns information about all data transfers in the project. @@ -778,55 +804,56 @@ def list_transfer_configs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_transfer_configs' not in self._inner_api_calls: + if "list_transfer_configs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_transfer_configs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_transfer_configs, - default_retry=self._method_configs['ListTransferConfigs']. - retry, - default_timeout=self. - _method_configs['ListTransferConfigs'].timeout, - client_info=self._client_info, - ) + "list_transfer_configs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_transfer_configs, + default_retry=self._method_configs["ListTransferConfigs"].retry, + default_timeout=self._method_configs["ListTransferConfigs"].timeout, + client_info=self._client_info, + ) request = datatransfer_pb2.ListTransferConfigsRequest( - parent=parent, - data_source_ids=data_source_ids, - page_size=page_size, + parent=parent, data_source_ids=data_source_ids, page_size=page_size ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_transfer_configs'], + self._inner_api_calls["list_transfer_configs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='transfer_configs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="transfer_configs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def schedule_transfer_runs(self, - parent, - start_time, - end_time, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def schedule_transfer_runs( + self, + parent, + start_time, + end_time, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates transfer runs for a time range [start\_time, end\_time]. For each date - or whatever granularity the data source supports - in the @@ -881,42 +908,43 @@ def schedule_transfer_runs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'schedule_transfer_runs' not in self._inner_api_calls: + if "schedule_transfer_runs" not in self._inner_api_calls: self._inner_api_calls[ - 'schedule_transfer_runs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.schedule_transfer_runs, - default_retry=self._method_configs['ScheduleTransferRuns']. - retry, - default_timeout=self. - _method_configs['ScheduleTransferRuns'].timeout, - client_info=self._client_info, - ) + "schedule_transfer_runs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.schedule_transfer_runs, + default_retry=self._method_configs["ScheduleTransferRuns"].retry, + default_timeout=self._method_configs["ScheduleTransferRuns"].timeout, + client_info=self._client_info, + ) request = datatransfer_pb2.ScheduleTransferRunsRequest( - parent=parent, - start_time=start_time, - end_time=end_time, + parent=parent, start_time=start_time, end_time=end_time ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['schedule_transfer_runs']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["schedule_transfer_runs"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_transfer_run(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_transfer_run( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns information about the particular transfer run. @@ -952,37 +980,41 @@ def get_transfer_run(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_transfer_run' not in self._inner_api_calls: + if "get_transfer_run" not in self._inner_api_calls: self._inner_api_calls[ - 'get_transfer_run'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_transfer_run, - default_retry=self._method_configs['GetTransferRun'].retry, - default_timeout=self._method_configs['GetTransferRun']. - timeout, - client_info=self._client_info, - ) + "get_transfer_run" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_transfer_run, + default_retry=self._method_configs["GetTransferRun"].retry, + default_timeout=self._method_configs["GetTransferRun"].timeout, + client_info=self._client_info, + ) - request = datatransfer_pb2.GetTransferRunRequest(name=name, ) + request = datatransfer_pb2.GetTransferRunRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_transfer_run']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_transfer_run"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_transfer_run(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_transfer_run( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes the specified transfer run. @@ -1015,41 +1047,44 @@ def delete_transfer_run(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_transfer_run' not in self._inner_api_calls: + if "delete_transfer_run" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_transfer_run'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_transfer_run, - default_retry=self._method_configs['DeleteTransferRun']. - retry, - default_timeout=self._method_configs['DeleteTransferRun']. - timeout, - client_info=self._client_info, - ) + "delete_transfer_run" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_transfer_run, + default_retry=self._method_configs["DeleteTransferRun"].retry, + default_timeout=self._method_configs["DeleteTransferRun"].timeout, + client_info=self._client_info, + ) - request = datatransfer_pb2.DeleteTransferRunRequest(name=name, ) + request = datatransfer_pb2.DeleteTransferRunRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['delete_transfer_run']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_transfer_runs(self, - parent, - states=None, - page_size=None, - run_attempt=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self._inner_api_calls["delete_transfer_run"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_transfer_runs( + self, + parent, + states=None, + page_size=None, + run_attempt=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns information about running and completed jobs. @@ -1108,56 +1143,56 @@ def list_transfer_runs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_transfer_runs' not in self._inner_api_calls: + if "list_transfer_runs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_transfer_runs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_transfer_runs, - default_retry=self._method_configs['ListTransferRuns']. - retry, - default_timeout=self._method_configs['ListTransferRuns']. - timeout, - client_info=self._client_info, - ) + "list_transfer_runs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_transfer_runs, + default_retry=self._method_configs["ListTransferRuns"].retry, + default_timeout=self._method_configs["ListTransferRuns"].timeout, + client_info=self._client_info, + ) request = datatransfer_pb2.ListTransferRunsRequest( - parent=parent, - states=states, - page_size=page_size, - run_attempt=run_attempt, + parent=parent, states=states, page_size=page_size, run_attempt=run_attempt ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_transfer_runs'], + self._inner_api_calls["list_transfer_runs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='transfer_runs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="transfer_runs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def list_transfer_logs(self, - parent, - page_size=None, - message_types=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_transfer_logs( + self, + parent, + page_size=None, + message_types=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns user facing log messages for the data transfer run. @@ -1215,53 +1250,54 @@ def list_transfer_logs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_transfer_logs' not in self._inner_api_calls: + if "list_transfer_logs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_transfer_logs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_transfer_logs, - default_retry=self._method_configs['ListTransferLogs']. - retry, - default_timeout=self._method_configs['ListTransferLogs']. - timeout, - client_info=self._client_info, - ) + "list_transfer_logs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_transfer_logs, + default_retry=self._method_configs["ListTransferLogs"].retry, + default_timeout=self._method_configs["ListTransferLogs"].timeout, + client_info=self._client_info, + ) request = datatransfer_pb2.ListTransferLogsRequest( - parent=parent, - page_size=page_size, - message_types=message_types, + parent=parent, page_size=page_size, message_types=message_types ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_transfer_logs'], + self._inner_api_calls["list_transfer_logs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='transfer_messages', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="transfer_messages", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def check_valid_creds(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def check_valid_creds( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns true if valid credentials exist for the given data source and requesting user. @@ -1302,29 +1338,30 @@ def check_valid_creds(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'check_valid_creds' not in self._inner_api_calls: + if "check_valid_creds" not in self._inner_api_calls: self._inner_api_calls[ - 'check_valid_creds'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.check_valid_creds, - default_retry=self._method_configs['CheckValidCreds']. - retry, - default_timeout=self._method_configs['CheckValidCreds']. - timeout, - client_info=self._client_info, - ) + "check_valid_creds" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.check_valid_creds, + default_retry=self._method_configs["CheckValidCreds"].retry, + default_timeout=self._method_configs["CheckValidCreds"].timeout, + client_info=self._client_info, + ) - request = datatransfer_pb2.CheckValidCredsRequest(name=name, ) + request = datatransfer_pb2.CheckValidCredsRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['check_valid_creds']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["check_valid_creds"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client_config.py b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client_config.py index e695ae7d2974..dc96b0931e35 100644 --- a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client_config.py +++ b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/data_transfer_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.bigquery.datatransfer.v1.DataTransferService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,76 +13,76 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "GetDataSource": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListDataSources": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateTransferConfig": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateTransferConfig": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteTransferConfig": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetTransferConfig": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTransferConfigs": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ScheduleTransferRuns": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetTransferRun": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteTransferRun": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTransferRuns": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTransferLogs": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CheckValidCreds": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/enums.py b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/enums.py index 4ea7a98b8a3b..5431f349c0e0 100644 --- a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/enums.py +++ b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/enums.py @@ -28,6 +28,7 @@ class NullValue(enum.IntEnum): Attributes: NULL_VALUE (int): Null value. """ + NULL_VALUE = 0 @@ -41,6 +42,7 @@ class TransferType(enum.IntEnum): STREAMING (int): Streaming data transfer. Streaming data source currently doesn't support multiple transfer configs per project. """ + TRANSFER_TYPE_UNSPECIFIED = 0 BATCH = 1 STREAMING = 2 @@ -59,6 +61,7 @@ class TransferState(enum.IntEnum): FAILED (int): Data transfer failed. CANCELLED (int): Data transfer is cancelled. """ + TRANSFER_STATE_UNSPECIFIED = 0 PENDING = 2 RUNNING = 3 @@ -78,6 +81,7 @@ class MessageSeverity(enum.IntEnum): WARNING (int): Warning message. ERROR (int): Error message. """ + MESSAGE_SEVERITY_UNSPECIFIED = 0 INFO = 1 WARNING = 2 @@ -99,6 +103,7 @@ class Type(enum.IntEnum): RECORD (int): Record parameter. PLUS_PAGE (int): Page ID for a Google+ Page. """ + TYPE_UNSPECIFIED = 0 STRING = 1 INTEGER = 2 @@ -120,6 +125,7 @@ class AuthorizationType(enum.IntEnum): GOOGLE_PLUS_AUTHORIZATION_CODE (int): Return an authorization code for a given Google+ page that can then be exchanged for a refresh token on the backend. """ + AUTHORIZATION_TYPE_UNSPECIFIED = 0 AUTHORIZATION_CODE = 1 GOOGLE_PLUS_AUTHORIZATION_CODE = 2 @@ -137,6 +143,7 @@ class DataRefreshType(enum.IntEnum): for the past few days. Allows custom values to be set for each transfer config. """ + DATA_REFRESH_TYPE_UNSPECIFIED = 0 SLIDING_WINDOW = 1 CUSTOM_SLIDING_WINDOW = 2 @@ -151,5 +158,6 @@ class RunAttempt(enum.IntEnum): RUN_ATTEMPT_UNSPECIFIED (int): All runs should be returned. LATEST (int): Only latest run per day should be returned. """ + RUN_ATTEMPT_UNSPECIFIED = 0 LATEST = 1 diff --git a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/transports/data_transfer_service_grpc_transport.py b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/transports/data_transfer_service_grpc_transport.py index ed7229bdfe0d..76363966f8f9 100644 --- a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/transports/data_transfer_service_grpc_transport.py +++ b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/gapic/transports/data_transfer_service_grpc_transport.py @@ -27,14 +27,17 @@ class DataTransferServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='bigquerydatatransfer.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="bigquerydatatransfer.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -52,29 +55,27 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'data_transfer_service_stub': - datatransfer_pb2_grpc.DataTransferServiceStub(channel), + "data_transfer_service_stub": datatransfer_pb2_grpc.DataTransferServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='bigquerydatatransfer.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="bigquerydatatransfer.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -89,9 +90,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -115,7 +114,7 @@ def get_data_source(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].GetDataSource + return self._stubs["data_transfer_service_stub"].GetDataSource @property def list_data_sources(self): @@ -129,7 +128,7 @@ def list_data_sources(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].ListDataSources + return self._stubs["data_transfer_service_stub"].ListDataSources @property def create_transfer_config(self): @@ -142,7 +141,7 @@ def create_transfer_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].CreateTransferConfig + return self._stubs["data_transfer_service_stub"].CreateTransferConfig @property def update_transfer_config(self): @@ -156,7 +155,7 @@ def update_transfer_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].UpdateTransferConfig + return self._stubs["data_transfer_service_stub"].UpdateTransferConfig @property def delete_transfer_config(self): @@ -170,7 +169,7 @@ def delete_transfer_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].DeleteTransferConfig + return self._stubs["data_transfer_service_stub"].DeleteTransferConfig @property def get_transfer_config(self): @@ -183,7 +182,7 @@ def get_transfer_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].GetTransferConfig + return self._stubs["data_transfer_service_stub"].GetTransferConfig @property def list_transfer_configs(self): @@ -196,7 +195,7 @@ def list_transfer_configs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].ListTransferConfigs + return self._stubs["data_transfer_service_stub"].ListTransferConfigs @property def schedule_transfer_runs(self): @@ -212,7 +211,7 @@ def schedule_transfer_runs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].ScheduleTransferRuns + return self._stubs["data_transfer_service_stub"].ScheduleTransferRuns @property def get_transfer_run(self): @@ -225,7 +224,7 @@ def get_transfer_run(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].GetTransferRun + return self._stubs["data_transfer_service_stub"].GetTransferRun @property def delete_transfer_run(self): @@ -238,7 +237,7 @@ def delete_transfer_run(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].DeleteTransferRun + return self._stubs["data_transfer_service_stub"].DeleteTransferRun @property def list_transfer_runs(self): @@ -251,7 +250,7 @@ def list_transfer_runs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].ListTransferRuns + return self._stubs["data_transfer_service_stub"].ListTransferRuns @property def list_transfer_logs(self): @@ -264,7 +263,7 @@ def list_transfer_logs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].ListTransferLogs + return self._stubs["data_transfer_service_stub"].ListTransferLogs @property def check_valid_creds(self): @@ -282,4 +281,4 @@ def check_valid_creds(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['data_transfer_service_stub'].CheckValidCreds + return self._stubs["data_transfer_service_stub"].CheckValidCreds diff --git a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/types.py b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/types.py index 6967a4bc1ac1..c50c10371da2 100644 --- a/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/types.py +++ b/bigquery_datatransfer/google/cloud/bigquery_datatransfer_v1/types.py @@ -45,10 +45,7 @@ status_pb2, ] -_local_modules = [ - datatransfer_pb2, - transfer_pb2, -] +_local_modules = [datatransfer_pb2, transfer_pb2] names = [] @@ -58,7 +55,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.bigquery_datatransfer_v1.types' + message.__module__ = "google.cloud.bigquery_datatransfer_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/bigquery_datatransfer/tests/system/gapic/v1/test_system_data_transfer_service_v1.py b/bigquery_datatransfer/tests/system/gapic/v1/test_system_data_transfer_service_v1.py index b42df5377e2c..7ead2b8a3595 100644 --- a/bigquery_datatransfer/tests/system/gapic/v1/test_system_data_transfer_service_v1.py +++ b/bigquery_datatransfer/tests/system/gapic/v1/test_system_data_transfer_service_v1.py @@ -23,7 +23,7 @@ class TestSystemDataTransferService(object): def test_list_data_sources(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = bigquery_datatransfer_v1.DataTransferServiceClient() parent = client.project_path(project_id) diff --git a/bigquery_datatransfer/tests/unit/gapic/v1/test_data_transfer_service_client_v1.py b/bigquery_datatransfer/tests/unit/gapic/v1/test_data_transfer_service_client_v1.py index abadfa21cc81..c0cce13a9de4 100644 --- a/bigquery_datatransfer/tests/unit/gapic/v1/test_data_transfer_service_client_v1.py +++ b/bigquery_datatransfer/tests/unit/gapic/v1/test_data_transfer_service_client_v1.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -68,44 +65,43 @@ class CustomException(Exception): class TestDataTransferServiceClient(object): def test_get_data_source(self): # Setup Expected Response - name_2 = 'name2-1052831874' - data_source_id = 'dataSourceId-1015796374' - display_name = 'displayName1615086568' - description = 'description-1724546052' - client_id = 'clientId-1904089585' + name_2 = "name2-1052831874" + data_source_id = "dataSourceId-1015796374" + display_name = "displayName1615086568" + description = "description-1724546052" + client_id = "clientId-1904089585" supports_multiple_transfers = True update_deadline_seconds = 991471694 - default_schedule = 'defaultSchedule-800168235' + default_schedule = "defaultSchedule-800168235" supports_custom_schedule = True - help_url = 'helpUrl-789431439' + help_url = "helpUrl-789431439" default_data_refresh_window_days = 1804935157 manual_runs_disabled = True expected_response = { - 'name': name_2, - 'data_source_id': data_source_id, - 'display_name': display_name, - 'description': description, - 'client_id': client_id, - 'supports_multiple_transfers': supports_multiple_transfers, - 'update_deadline_seconds': update_deadline_seconds, - 'default_schedule': default_schedule, - 'supports_custom_schedule': supports_custom_schedule, - 'help_url': help_url, - 'default_data_refresh_window_days': - default_data_refresh_window_days, - 'manual_runs_disabled': manual_runs_disabled + "name": name_2, + "data_source_id": data_source_id, + "display_name": display_name, + "description": description, + "client_id": client_id, + "supports_multiple_transfers": supports_multiple_transfers, + "update_deadline_seconds": update_deadline_seconds, + "default_schedule": default_schedule, + "supports_custom_schedule": supports_custom_schedule, + "help_url": help_url, + "default_data_refresh_window_days": default_data_refresh_window_days, + "manual_runs_disabled": manual_runs_disabled, } expected_response = datatransfer_pb2.DataSource(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - name = client.project_data_source_path('[PROJECT]', '[DATA_SOURCE]') + name = client.project_data_source_path("[PROJECT]", "[DATA_SOURCE]") response = client.get_data_source(name) assert expected_response == response @@ -118,38 +114,39 @@ def test_get_data_source(self): def test_get_data_source_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - name = client.project_data_source_path('[PROJECT]', '[DATA_SOURCE]') + name = client.project_data_source_path("[PROJECT]", "[DATA_SOURCE]") with pytest.raises(CustomException): client.get_data_source(name) def test_list_data_sources(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" data_sources_element = {} data_sources = [data_sources_element] expected_response = { - 'next_page_token': next_page_token, - 'data_sources': data_sources + "next_page_token": next_page_token, + "data_sources": data_sources, } expected_response = datatransfer_pb2.ListDataSourcesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_data_sources(parent) resources = list(paged_list_response) @@ -158,20 +155,19 @@ def test_list_data_sources(self): assert expected_response.data_sources[0] == resources[0] assert len(channel.requests) == 1 - expected_request = datatransfer_pb2.ListDataSourcesRequest( - parent=parent) + expected_request = datatransfer_pb2.ListDataSourcesRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_data_sources_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_data_sources(parent) with pytest.raises(CustomException): @@ -179,37 +175,37 @@ def test_list_data_sources_exception(self): def test_create_transfer_config(self): # Setup Expected Response - name = 'name3373707' - destination_dataset_id = 'destinationDatasetId1541564179' - display_name = 'displayName1615086568' - data_source_id = 'dataSourceId-1015796374' - schedule = 'schedule-697920873' + name = "name3373707" + destination_dataset_id = "destinationDatasetId1541564179" + display_name = "displayName1615086568" + data_source_id = "dataSourceId-1015796374" + schedule = "schedule-697920873" data_refresh_window_days = 327632845 disabled = True user_id = 147132913 - dataset_region = 'datasetRegion959248539' + dataset_region = "datasetRegion959248539" expected_response = { - 'name': name, - 'destination_dataset_id': destination_dataset_id, - 'display_name': display_name, - 'data_source_id': data_source_id, - 'schedule': schedule, - 'data_refresh_window_days': data_refresh_window_days, - 'disabled': disabled, - 'user_id': user_id, - 'dataset_region': dataset_region + "name": name, + "destination_dataset_id": destination_dataset_id, + "display_name": display_name, + "data_source_id": data_source_id, + "schedule": schedule, + "data_refresh_window_days": data_refresh_window_days, + "disabled": disabled, + "user_id": user_id, + "dataset_region": dataset_region, } expected_response = transfer_pb2.TransferConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") transfer_config = {} response = client.create_transfer_config(parent, transfer_config) @@ -217,20 +213,21 @@ def test_create_transfer_config(self): assert len(channel.requests) == 1 expected_request = datatransfer_pb2.CreateTransferConfigRequest( - parent=parent, transfer_config=transfer_config) + parent=parent, transfer_config=transfer_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_transfer_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") transfer_config = {} with pytest.raises(CustomException): @@ -238,31 +235,31 @@ def test_create_transfer_config_exception(self): def test_update_transfer_config(self): # Setup Expected Response - name = 'name3373707' - destination_dataset_id = 'destinationDatasetId1541564179' - display_name = 'displayName1615086568' - data_source_id = 'dataSourceId-1015796374' - schedule = 'schedule-697920873' + name = "name3373707" + destination_dataset_id = "destinationDatasetId1541564179" + display_name = "displayName1615086568" + data_source_id = "dataSourceId-1015796374" + schedule = "schedule-697920873" data_refresh_window_days = 327632845 disabled = True user_id = 147132913 - dataset_region = 'datasetRegion959248539' + dataset_region = "datasetRegion959248539" expected_response = { - 'name': name, - 'destination_dataset_id': destination_dataset_id, - 'display_name': display_name, - 'data_source_id': data_source_id, - 'schedule': schedule, - 'data_refresh_window_days': data_refresh_window_days, - 'disabled': disabled, - 'user_id': user_id, - 'dataset_region': dataset_region + "name": name, + "destination_dataset_id": destination_dataset_id, + "display_name": display_name, + "data_source_id": data_source_id, + "schedule": schedule, + "data_refresh_window_days": data_refresh_window_days, + "disabled": disabled, + "user_id": user_id, + "dataset_region": dataset_region, } expected_response = transfer_pb2.TransferConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() @@ -276,14 +273,15 @@ def test_update_transfer_config(self): assert len(channel.requests) == 1 expected_request = datatransfer_pb2.UpdateTransferConfigRequest( - transfer_config=transfer_config, update_mask=update_mask) + transfer_config=transfer_config, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_transfer_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() @@ -297,72 +295,68 @@ def test_update_transfer_config_exception(self): def test_delete_transfer_config(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - name = client.project_transfer_config_path('[PROJECT]', - '[TRANSFER_CONFIG]') + name = client.project_transfer_config_path("[PROJECT]", "[TRANSFER_CONFIG]") client.delete_transfer_config(name) assert len(channel.requests) == 1 - expected_request = datatransfer_pb2.DeleteTransferConfigRequest( - name=name) + expected_request = datatransfer_pb2.DeleteTransferConfigRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_transfer_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - name = client.project_transfer_config_path('[PROJECT]', - '[TRANSFER_CONFIG]') + name = client.project_transfer_config_path("[PROJECT]", "[TRANSFER_CONFIG]") with pytest.raises(CustomException): client.delete_transfer_config(name) def test_get_transfer_config(self): # Setup Expected Response - name_2 = 'name2-1052831874' - destination_dataset_id = 'destinationDatasetId1541564179' - display_name = 'displayName1615086568' - data_source_id = 'dataSourceId-1015796374' - schedule = 'schedule-697920873' + name_2 = "name2-1052831874" + destination_dataset_id = "destinationDatasetId1541564179" + display_name = "displayName1615086568" + data_source_id = "dataSourceId-1015796374" + schedule = "schedule-697920873" data_refresh_window_days = 327632845 disabled = True user_id = 147132913 - dataset_region = 'datasetRegion959248539' + dataset_region = "datasetRegion959248539" expected_response = { - 'name': name_2, - 'destination_dataset_id': destination_dataset_id, - 'display_name': display_name, - 'data_source_id': data_source_id, - 'schedule': schedule, - 'data_refresh_window_days': data_refresh_window_days, - 'disabled': disabled, - 'user_id': user_id, - 'dataset_region': dataset_region + "name": name_2, + "destination_dataset_id": destination_dataset_id, + "display_name": display_name, + "data_source_id": data_source_id, + "schedule": schedule, + "data_refresh_window_days": data_refresh_window_days, + "disabled": disabled, + "user_id": user_id, + "dataset_region": dataset_region, } expected_response = transfer_pb2.TransferConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - name = client.project_transfer_config_path('[PROJECT]', - '[TRANSFER_CONFIG]') + name = client.project_transfer_config_path("[PROJECT]", "[TRANSFER_CONFIG]") response = client.get_transfer_config(name) assert expected_response == response @@ -375,39 +369,39 @@ def test_get_transfer_config(self): def test_get_transfer_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - name = client.project_transfer_config_path('[PROJECT]', - '[TRANSFER_CONFIG]') + name = client.project_transfer_config_path("[PROJECT]", "[TRANSFER_CONFIG]") with pytest.raises(CustomException): client.get_transfer_config(name) def test_list_transfer_configs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" transfer_configs_element = {} transfer_configs = [transfer_configs_element] expected_response = { - 'next_page_token': next_page_token, - 'transfer_configs': transfer_configs + "next_page_token": next_page_token, + "transfer_configs": transfer_configs, } expected_response = datatransfer_pb2.ListTransferConfigsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_transfer_configs(parent) resources = list(paged_list_response) @@ -416,20 +410,19 @@ def test_list_transfer_configs(self): assert expected_response.transfer_configs[0] == resources[0] assert len(channel.requests) == 1 - expected_request = datatransfer_pb2.ListTransferConfigsRequest( - parent=parent) + expected_request = datatransfer_pb2.ListTransferConfigsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_transfer_configs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_transfer_configs(parent) with pytest.raises(CustomException): @@ -439,18 +432,18 @@ def test_schedule_transfer_runs(self): # Setup Expected Response expected_response = {} expected_response = datatransfer_pb2.ScheduleTransferRunsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - parent = client.project_transfer_config_path('[PROJECT]', - '[TRANSFER_CONFIG]') + parent = client.project_transfer_config_path("[PROJECT]", "[TRANSFER_CONFIG]") start_time = {} end_time = {} @@ -459,21 +452,21 @@ def test_schedule_transfer_runs(self): assert len(channel.requests) == 1 expected_request = datatransfer_pb2.ScheduleTransferRunsRequest( - parent=parent, start_time=start_time, end_time=end_time) + parent=parent, start_time=start_time, end_time=end_time + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_schedule_transfer_runs_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - parent = client.project_transfer_config_path('[PROJECT]', - '[TRANSFER_CONFIG]') + parent = client.project_transfer_config_path("[PROJECT]", "[TRANSFER_CONFIG]") start_time = {} end_time = {} @@ -482,30 +475,29 @@ def test_schedule_transfer_runs_exception(self): def test_get_transfer_run(self): # Setup Expected Response - name_2 = 'name2-1052831874' - destination_dataset_id = 'destinationDatasetId1541564179' - data_source_id = 'dataSourceId-1015796374' + name_2 = "name2-1052831874" + destination_dataset_id = "destinationDatasetId1541564179" + data_source_id = "dataSourceId-1015796374" user_id = 147132913 - schedule = 'schedule-697920873' + schedule = "schedule-697920873" expected_response = { - 'name': name_2, - 'destination_dataset_id': destination_dataset_id, - 'data_source_id': data_source_id, - 'user_id': user_id, - 'schedule': schedule + "name": name_2, + "destination_dataset_id": destination_dataset_id, + "data_source_id": data_source_id, + "user_id": user_id, + "schedule": schedule, } expected_response = transfer_pb2.TransferRun(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - name = client.project_run_path('[PROJECT]', '[TRANSFER_CONFIG]', - '[RUN]') + name = client.project_run_path("[PROJECT]", "[TRANSFER_CONFIG]", "[RUN]") response = client.get_transfer_run(name) assert expected_response == response @@ -518,28 +510,26 @@ def test_get_transfer_run(self): def test_get_transfer_run_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - name = client.project_run_path('[PROJECT]', '[TRANSFER_CONFIG]', - '[RUN]') + name = client.project_run_path("[PROJECT]", "[TRANSFER_CONFIG]", "[RUN]") with pytest.raises(CustomException): client.get_transfer_run(name) def test_delete_transfer_run(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - name = client.project_run_path('[PROJECT]', '[TRANSFER_CONFIG]', - '[RUN]') + name = client.project_run_path("[PROJECT]", "[TRANSFER_CONFIG]", "[RUN]") client.delete_transfer_run(name) @@ -551,40 +541,39 @@ def test_delete_transfer_run(self): def test_delete_transfer_run_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - name = client.project_run_path('[PROJECT]', '[TRANSFER_CONFIG]', - '[RUN]') + name = client.project_run_path("[PROJECT]", "[TRANSFER_CONFIG]", "[RUN]") with pytest.raises(CustomException): client.delete_transfer_run(name) def test_list_transfer_runs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" transfer_runs_element = {} transfer_runs = [transfer_runs_element] expected_response = { - 'next_page_token': next_page_token, - 'transfer_runs': transfer_runs + "next_page_token": next_page_token, + "transfer_runs": transfer_runs, } expected_response = datatransfer_pb2.ListTransferRunsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - parent = client.project_transfer_config_path('[PROJECT]', - '[TRANSFER_CONFIG]') + parent = client.project_transfer_config_path("[PROJECT]", "[TRANSFER_CONFIG]") paged_list_response = client.list_transfer_runs(parent) resources = list(paged_list_response) @@ -593,21 +582,19 @@ def test_list_transfer_runs(self): assert expected_response.transfer_runs[0] == resources[0] assert len(channel.requests) == 1 - expected_request = datatransfer_pb2.ListTransferRunsRequest( - parent=parent) + expected_request = datatransfer_pb2.ListTransferRunsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_transfer_runs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - parent = client.project_transfer_config_path('[PROJECT]', - '[TRANSFER_CONFIG]') + parent = client.project_transfer_config_path("[PROJECT]", "[TRANSFER_CONFIG]") paged_list_response = client.list_transfer_runs(parent) with pytest.raises(CustomException): @@ -615,26 +602,26 @@ def test_list_transfer_runs_exception(self): def test_list_transfer_logs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" transfer_messages_element = {} transfer_messages = [transfer_messages_element] expected_response = { - 'next_page_token': next_page_token, - 'transfer_messages': transfer_messages + "next_page_token": next_page_token, + "transfer_messages": transfer_messages, } expected_response = datatransfer_pb2.ListTransferLogsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - parent = client.project_run_path('[PROJECT]', '[TRANSFER_CONFIG]', - '[RUN]') + parent = client.project_run_path("[PROJECT]", "[TRANSFER_CONFIG]", "[RUN]") paged_list_response = client.list_transfer_logs(parent) resources = list(paged_list_response) @@ -643,21 +630,19 @@ def test_list_transfer_logs(self): assert expected_response.transfer_messages[0] == resources[0] assert len(channel.requests) == 1 - expected_request = datatransfer_pb2.ListTransferLogsRequest( - parent=parent) + expected_request = datatransfer_pb2.ListTransferLogsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_transfer_logs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - parent = client.project_run_path('[PROJECT]', '[TRANSFER_CONFIG]', - '[RUN]') + parent = client.project_run_path("[PROJECT]", "[TRANSFER_CONFIG]", "[RUN]") paged_list_response = client.list_transfer_logs(parent) with pytest.raises(CustomException): @@ -666,19 +651,20 @@ def test_list_transfer_logs_exception(self): def test_check_valid_creds(self): # Setup Expected Response has_valid_creds = False - expected_response = {'has_valid_creds': has_valid_creds} + expected_response = {"has_valid_creds": has_valid_creds} expected_response = datatransfer_pb2.CheckValidCredsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup Request - name = client.project_data_source_path('[PROJECT]', '[DATA_SOURCE]') + name = client.project_data_source_path("[PROJECT]", "[DATA_SOURCE]") response = client.check_valid_creds(name) assert expected_response == response @@ -691,13 +677,13 @@ def test_check_valid_creds(self): def test_check_valid_creds_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = bigquery_datatransfer_v1.DataTransferServiceClient() # Setup request - name = client.project_data_source_path('[PROJECT]', '[DATA_SOURCE]') + name = client.project_data_source_path("[PROJECT]", "[DATA_SOURCE]") with pytest.raises(CustomException): client.check_valid_creds(name) diff --git a/container/docs/conf.py b/container/docs/conf.py index 03851bb833af..e2ec0990d7fc 100644 --- a/container/docs/conf.py +++ b/container/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.15.4' +__version__ = "0.15.4" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-container' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-container" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-container-doc' +htmlhelp_basename = "google-cloud-container-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-container.tex', - u'google-cloud-container Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-container.tex", + u"google-cloud-container Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-container', - u'google-cloud-container Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-container", + u"google-cloud-container Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-container', - u'google-cloud-container Documentation', author, 'google-cloud-container', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-container", + u"google-cloud-container Documentation", + author, + "google-cloud-container", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/container/google/__init__.py b/container/google/__init__.py index d2547b8d952f..2f4b4738aee1 100644 --- a/container/google/__init__.py +++ b/container/google/__init__.py @@ -1,6 +1,8 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) \ No newline at end of file + + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/container/google/cloud/__init__.py b/container/google/cloud/__init__.py index 267f71008dcb..2f4b4738aee1 100644 --- a/container/google/cloud/__init__.py +++ b/container/google/cloud/__init__.py @@ -1,6 +1,8 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/container/google/cloud/container.py b/container/google/cloud/container.py index 96d8352cfc21..3060f5e1c84b 100644 --- a/container/google/cloud/container.py +++ b/container/google/cloud/container.py @@ -18,8 +18,4 @@ from google.cloud.container_v1 import enums from google.cloud.container_v1 import types -__all__ = ( - 'enums', - 'types', - 'ClusterManagerClient', -) +__all__ = ("enums", "types", "ClusterManagerClient") diff --git a/container/google/cloud/container_v1/__init__.py b/container/google/cloud/container_v1/__init__.py index 174e3fb4faa9..a249d25f7e14 100644 --- a/container/google/cloud/container_v1/__init__.py +++ b/container/google/cloud/container_v1/__init__.py @@ -26,8 +26,4 @@ class ClusterManagerClient(cluster_manager_client.ClusterManagerClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'ClusterManagerClient', -) +__all__ = ("enums", "types", "ClusterManagerClient") diff --git a/container/google/cloud/container_v1/gapic/cluster_manager_client.py b/container/google/cloud/container_v1/gapic/cluster_manager_client.py index c0acbdd8d6b5..ce004e1b4f00 100644 --- a/container/google/cloud/container_v1/gapic/cluster_manager_client.py +++ b/container/google/cloud/container_v1/gapic/cluster_manager_client.py @@ -33,18 +33,19 @@ from google.protobuf import empty_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-container', ).version + "google-cloud-container" +).version class ClusterManagerClient(object): """Google Kubernetes Engine Cluster Manager v1""" - SERVICE_ADDRESS = 'container.googleapis.com:443' + SERVICE_ADDRESS = "container.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.container.v1.ClusterManager' + _INTERFACE_NAME = "google.container.v1.ClusterManager" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -60,19 +61,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ClusterManagerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -106,18 +108,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = cluster_manager_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -126,25 +129,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=cluster_manager_grpc_transport. - ClusterManagerGrpcTransport, + default_class=cluster_manager_grpc_transport.ClusterManagerGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = cluster_manager_grpc_transport.ClusterManagerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -154,7 +156,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -163,13 +166,15 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_clusters(self, - project_id, - zone, - parent=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_clusters( + self, + project_id, + zone, + parent=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all clusters owned by a project in either the specified zone or all zones. @@ -218,32 +223,33 @@ def list_clusters(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_clusters' not in self._inner_api_calls: + if "list_clusters" not in self._inner_api_calls: self._inner_api_calls[ - 'list_clusters'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_clusters, - default_retry=self._method_configs['ListClusters'].retry, - default_timeout=self._method_configs['ListClusters']. - timeout, - client_info=self._client_info, - ) + "list_clusters" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_clusters, + default_retry=self._method_configs["ListClusters"].retry, + default_timeout=self._method_configs["ListClusters"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.ListClustersRequest( - project_id=project_id, - zone=zone, - parent=parent, + project_id=project_id, zone=zone, parent=parent + ) + return self._inner_api_calls["list_clusters"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['list_clusters']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_cluster(self, - project_id, - zone, - cluster_id, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_cluster( + self, + project_id, + zone, + cluster_id, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the details of a specific cluster. @@ -295,32 +301,33 @@ def get_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_cluster' not in self._inner_api_calls: + if "get_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'get_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_cluster, - default_retry=self._method_configs['GetCluster'].retry, - default_timeout=self._method_configs['GetCluster'].timeout, - client_info=self._client_info, - ) + "get_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_cluster, + default_retry=self._method_configs["GetCluster"].retry, + default_timeout=self._method_configs["GetCluster"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.GetClusterRequest( - project_id=project_id, - zone=zone, - cluster_id=cluster_id, - name=name, + project_id=project_id, zone=zone, cluster_id=cluster_id, name=name + ) + return self._inner_api_calls["get_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['get_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_cluster(self, - project_id, - zone, - cluster, - parent=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def create_cluster( + self, + project_id, + zone, + cluster, + parent=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a cluster, consisting of the specified number and type of Google Compute Engine instances. @@ -386,34 +393,34 @@ def create_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_cluster' not in self._inner_api_calls: + if "create_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'create_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_cluster, - default_retry=self._method_configs['CreateCluster'].retry, - default_timeout=self._method_configs['CreateCluster']. - timeout, - client_info=self._client_info, - ) + "create_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_cluster, + default_retry=self._method_configs["CreateCluster"].retry, + default_timeout=self._method_configs["CreateCluster"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.CreateClusterRequest( - project_id=project_id, - zone=zone, - cluster=cluster, - parent=parent, + project_id=project_id, zone=zone, cluster=cluster, parent=parent + ) + return self._inner_api_calls["create_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_cluster(self, - project_id, - zone, - cluster_id, - update, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def update_cluster( + self, + project_id, + zone, + cluster_id, + update, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the settings of a specific cluster. @@ -472,15 +479,15 @@ def update_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_cluster' not in self._inner_api_calls: + if "update_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'update_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_cluster, - default_retry=self._method_configs['UpdateCluster'].retry, - default_timeout=self._method_configs['UpdateCluster']. - timeout, - client_info=self._client_info, - ) + "update_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_cluster, + default_retry=self._method_configs["UpdateCluster"].retry, + default_timeout=self._method_configs["UpdateCluster"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.UpdateClusterRequest( project_id=project_id, @@ -489,20 +496,23 @@ def update_cluster(self, update=update, name=name, ) - return self._inner_api_calls['update_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_node_pool(self, - project_id, - zone, - cluster_id, - node_pool_id, - node_version, - image_type, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def update_node_pool( + self, + project_id, + zone, + cluster_id, + node_pool_id, + node_version, + image_type, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the version and/or image type for a specific node pool. @@ -578,15 +588,15 @@ def update_node_pool(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_node_pool' not in self._inner_api_calls: + if "update_node_pool" not in self._inner_api_calls: self._inner_api_calls[ - 'update_node_pool'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_node_pool, - default_retry=self._method_configs['UpdateNodePool'].retry, - default_timeout=self._method_configs['UpdateNodePool']. - timeout, - client_info=self._client_info, - ) + "update_node_pool" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_node_pool, + default_retry=self._method_configs["UpdateNodePool"].retry, + default_timeout=self._method_configs["UpdateNodePool"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.UpdateNodePoolRequest( project_id=project_id, @@ -597,20 +607,22 @@ def update_node_pool(self, image_type=image_type, name=name, ) - return self._inner_api_calls['update_node_pool']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_node_pool"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def set_node_pool_autoscaling( - self, - project_id, - zone, - cluster_id, - node_pool_id, - autoscaling, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + project_id, + zone, + cluster_id, + node_pool_id, + autoscaling, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the autoscaling settings for a specific node pool. @@ -675,16 +687,15 @@ def set_node_pool_autoscaling( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_node_pool_autoscaling' not in self._inner_api_calls: + if "set_node_pool_autoscaling" not in self._inner_api_calls: self._inner_api_calls[ - 'set_node_pool_autoscaling'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_node_pool_autoscaling, - default_retry=self. - _method_configs['SetNodePoolAutoscaling'].retry, - default_timeout=self. - _method_configs['SetNodePoolAutoscaling'].timeout, - client_info=self._client_info, - ) + "set_node_pool_autoscaling" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_node_pool_autoscaling, + default_retry=self._method_configs["SetNodePoolAutoscaling"].retry, + default_timeout=self._method_configs["SetNodePoolAutoscaling"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetNodePoolAutoscalingRequest( project_id=project_id, @@ -694,18 +705,21 @@ def set_node_pool_autoscaling( autoscaling=autoscaling, name=name, ) - return self._inner_api_calls['set_node_pool_autoscaling']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_logging_service(self, - project_id, - zone, - cluster_id, - logging_service, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_node_pool_autoscaling"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_logging_service( + self, + project_id, + zone, + cluster_id, + logging_service, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the logging service for a specific cluster. @@ -765,16 +779,15 @@ def set_logging_service(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_logging_service' not in self._inner_api_calls: + if "set_logging_service" not in self._inner_api_calls: self._inner_api_calls[ - 'set_logging_service'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_logging_service, - default_retry=self._method_configs['SetLoggingService']. - retry, - default_timeout=self._method_configs['SetLoggingService']. - timeout, - client_info=self._client_info, - ) + "set_logging_service" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_logging_service, + default_retry=self._method_configs["SetLoggingService"].retry, + default_timeout=self._method_configs["SetLoggingService"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetLoggingServiceRequest( project_id=project_id, @@ -783,18 +796,21 @@ def set_logging_service(self, logging_service=logging_service, name=name, ) - return self._inner_api_calls['set_logging_service']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_monitoring_service(self, - project_id, - zone, - cluster_id, - monitoring_service, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_logging_service"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_monitoring_service( + self, + project_id, + zone, + cluster_id, + monitoring_service, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the monitoring service for a specific cluster. @@ -854,16 +870,15 @@ def set_monitoring_service(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_monitoring_service' not in self._inner_api_calls: + if "set_monitoring_service" not in self._inner_api_calls: self._inner_api_calls[ - 'set_monitoring_service'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_monitoring_service, - default_retry=self._method_configs['SetMonitoringService']. - retry, - default_timeout=self. - _method_configs['SetMonitoringService'].timeout, - client_info=self._client_info, - ) + "set_monitoring_service" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_monitoring_service, + default_retry=self._method_configs["SetMonitoringService"].retry, + default_timeout=self._method_configs["SetMonitoringService"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetMonitoringServiceRequest( project_id=project_id, @@ -872,18 +887,21 @@ def set_monitoring_service(self, monitoring_service=monitoring_service, name=name, ) - return self._inner_api_calls['set_monitoring_service']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_addons_config(self, - project_id, - zone, - cluster_id, - addons_config, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_monitoring_service"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_addons_config( + self, + project_id, + zone, + cluster_id, + addons_config, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the addons for a specific cluster. @@ -943,16 +961,15 @@ def set_addons_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_addons_config' not in self._inner_api_calls: + if "set_addons_config" not in self._inner_api_calls: self._inner_api_calls[ - 'set_addons_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_addons_config, - default_retry=self._method_configs['SetAddonsConfig']. - retry, - default_timeout=self._method_configs['SetAddonsConfig']. - timeout, - client_info=self._client_info, - ) + "set_addons_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_addons_config, + default_retry=self._method_configs["SetAddonsConfig"].retry, + default_timeout=self._method_configs["SetAddonsConfig"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetAddonsConfigRequest( project_id=project_id, @@ -961,18 +978,21 @@ def set_addons_config(self, addons_config=addons_config, name=name, ) - return self._inner_api_calls['set_addons_config']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_locations(self, - project_id, - zone, - cluster_id, - locations, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_addons_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_locations( + self, + project_id, + zone, + cluster_id, + locations, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the locations for a specific cluster. @@ -1034,15 +1054,15 @@ def set_locations(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_locations' not in self._inner_api_calls: + if "set_locations" not in self._inner_api_calls: self._inner_api_calls[ - 'set_locations'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_locations, - default_retry=self._method_configs['SetLocations'].retry, - default_timeout=self._method_configs['SetLocations']. - timeout, - client_info=self._client_info, - ) + "set_locations" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_locations, + default_retry=self._method_configs["SetLocations"].retry, + default_timeout=self._method_configs["SetLocations"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetLocationsRequest( project_id=project_id, @@ -1051,18 +1071,21 @@ def set_locations(self, locations=locations, name=name, ) - return self._inner_api_calls['set_locations']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_master(self, - project_id, - zone, - cluster_id, - master_version, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_locations"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def update_master( + self, + project_id, + zone, + cluster_id, + master_version, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the master for a specific cluster. @@ -1127,15 +1150,15 @@ def update_master(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_master' not in self._inner_api_calls: + if "update_master" not in self._inner_api_calls: self._inner_api_calls[ - 'update_master'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_master, - default_retry=self._method_configs['UpdateMaster'].retry, - default_timeout=self._method_configs['UpdateMaster']. - timeout, - client_info=self._client_info, - ) + "update_master" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_master, + default_retry=self._method_configs["UpdateMaster"].retry, + default_timeout=self._method_configs["UpdateMaster"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.UpdateMasterRequest( project_id=project_id, @@ -1144,19 +1167,22 @@ def update_master(self, master_version=master_version, name=name, ) - return self._inner_api_calls['update_master']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_master_auth(self, - project_id, - zone, - cluster_id, - action, - update, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_master"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_master_auth( + self, + project_id, + zone, + cluster_id, + action, + update, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Used to set master auth materials. Currently supports :- Changing the admin password for a specific cluster. @@ -1222,15 +1248,15 @@ def set_master_auth(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_master_auth' not in self._inner_api_calls: + if "set_master_auth" not in self._inner_api_calls: self._inner_api_calls[ - 'set_master_auth'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_master_auth, - default_retry=self._method_configs['SetMasterAuth'].retry, - default_timeout=self._method_configs['SetMasterAuth']. - timeout, - client_info=self._client_info, - ) + "set_master_auth" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_master_auth, + default_retry=self._method_configs["SetMasterAuth"].retry, + default_timeout=self._method_configs["SetMasterAuth"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetMasterAuthRequest( project_id=project_id, @@ -1240,17 +1266,20 @@ def set_master_auth(self, update=update, name=name, ) - return self._inner_api_calls['set_master_auth']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_cluster(self, - project_id, - zone, - cluster_id, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_master_auth"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def delete_cluster( + self, + project_id, + zone, + cluster_id, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes the cluster, including the Kubernetes endpoint and all worker nodes. @@ -1310,32 +1339,32 @@ def delete_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_cluster' not in self._inner_api_calls: + if "delete_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_cluster, - default_retry=self._method_configs['DeleteCluster'].retry, - default_timeout=self._method_configs['DeleteCluster']. - timeout, - client_info=self._client_info, - ) + "delete_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_cluster, + default_retry=self._method_configs["DeleteCluster"].retry, + default_timeout=self._method_configs["DeleteCluster"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.DeleteClusterRequest( - project_id=project_id, - zone=zone, - cluster_id=cluster_id, - name=name, + project_id=project_id, zone=zone, cluster_id=cluster_id, name=name + ) + return self._inner_api_calls["delete_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['delete_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_operations(self, - project_id, - zone, - parent=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def list_operations( + self, + project_id, + zone, + parent=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all operations in a project in a specific zone or all zones. @@ -1383,32 +1412,33 @@ def list_operations(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_operations' not in self._inner_api_calls: + if "list_operations" not in self._inner_api_calls: self._inner_api_calls[ - 'list_operations'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_operations, - default_retry=self._method_configs['ListOperations'].retry, - default_timeout=self._method_configs['ListOperations']. - timeout, - client_info=self._client_info, - ) + "list_operations" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_operations, + default_retry=self._method_configs["ListOperations"].retry, + default_timeout=self._method_configs["ListOperations"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.ListOperationsRequest( - project_id=project_id, - zone=zone, - parent=parent, + project_id=project_id, zone=zone, parent=parent + ) + return self._inner_api_calls["list_operations"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['list_operations']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_operation(self, - project_id, - zone, - operation_id, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_operation( + self, + project_id, + zone, + operation_id, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the specified operation. @@ -1460,33 +1490,33 @@ def get_operation(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_operation' not in self._inner_api_calls: + if "get_operation" not in self._inner_api_calls: self._inner_api_calls[ - 'get_operation'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_operation, - default_retry=self._method_configs['GetOperation'].retry, - default_timeout=self._method_configs['GetOperation']. - timeout, - client_info=self._client_info, - ) + "get_operation" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_operation, + default_retry=self._method_configs["GetOperation"].retry, + default_timeout=self._method_configs["GetOperation"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.GetOperationRequest( - project_id=project_id, - zone=zone, - operation_id=operation_id, - name=name, + project_id=project_id, zone=zone, operation_id=operation_id, name=name + ) + return self._inner_api_calls["get_operation"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['get_operation']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def cancel_operation(self, - project_id, - zone, - operation_id, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def cancel_operation( + self, + project_id, + zone, + operation_id, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Cancels the specified operation. @@ -1535,33 +1565,32 @@ def cancel_operation(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'cancel_operation' not in self._inner_api_calls: + if "cancel_operation" not in self._inner_api_calls: self._inner_api_calls[ - 'cancel_operation'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.cancel_operation, - default_retry=self._method_configs['CancelOperation']. - retry, - default_timeout=self._method_configs['CancelOperation']. - timeout, - client_info=self._client_info, - ) + "cancel_operation" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.cancel_operation, + default_retry=self._method_configs["CancelOperation"].retry, + default_timeout=self._method_configs["CancelOperation"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.CancelOperationRequest( - project_id=project_id, - zone=zone, - operation_id=operation_id, - name=name, + project_id=project_id, zone=zone, operation_id=operation_id, name=name + ) + self._inner_api_calls["cancel_operation"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['cancel_operation']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_server_config(self, - project_id, - zone, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_server_config( + self, + project_id, + zone, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns configuration info about the Kubernetes Engine service. @@ -1608,33 +1637,33 @@ def get_server_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_server_config' not in self._inner_api_calls: + if "get_server_config" not in self._inner_api_calls: self._inner_api_calls[ - 'get_server_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_server_config, - default_retry=self._method_configs['GetServerConfig']. - retry, - default_timeout=self._method_configs['GetServerConfig']. - timeout, - client_info=self._client_info, - ) + "get_server_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_server_config, + default_retry=self._method_configs["GetServerConfig"].retry, + default_timeout=self._method_configs["GetServerConfig"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.GetServerConfigRequest( - project_id=project_id, - zone=zone, - name=name, + project_id=project_id, zone=zone, name=name ) - return self._inner_api_calls['get_server_config']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_node_pools(self, - project_id, - zone, - cluster_id, - parent=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["get_server_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_node_pools( + self, + project_id, + zone, + cluster_id, + parent=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the node pools for a cluster. @@ -1686,34 +1715,34 @@ def list_node_pools(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_node_pools' not in self._inner_api_calls: + if "list_node_pools" not in self._inner_api_calls: self._inner_api_calls[ - 'list_node_pools'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_node_pools, - default_retry=self._method_configs['ListNodePools'].retry, - default_timeout=self._method_configs['ListNodePools']. - timeout, - client_info=self._client_info, - ) + "list_node_pools" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_node_pools, + default_retry=self._method_configs["ListNodePools"].retry, + default_timeout=self._method_configs["ListNodePools"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.ListNodePoolsRequest( - project_id=project_id, - zone=zone, - cluster_id=cluster_id, - parent=parent, + project_id=project_id, zone=zone, cluster_id=cluster_id, parent=parent + ) + return self._inner_api_calls["list_node_pools"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['list_node_pools']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_node_pool(self, - project_id, - zone, - cluster_id, - node_pool_id, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_node_pool( + self, + project_id, + zone, + cluster_id, + node_pool_id, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Retrieves the node pool requested. @@ -1771,15 +1800,15 @@ def get_node_pool(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_node_pool' not in self._inner_api_calls: + if "get_node_pool" not in self._inner_api_calls: self._inner_api_calls[ - 'get_node_pool'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_node_pool, - default_retry=self._method_configs['GetNodePool'].retry, - default_timeout=self._method_configs['GetNodePool']. - timeout, - client_info=self._client_info, - ) + "get_node_pool" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_node_pool, + default_retry=self._method_configs["GetNodePool"].retry, + default_timeout=self._method_configs["GetNodePool"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.GetNodePoolRequest( project_id=project_id, @@ -1788,18 +1817,21 @@ def get_node_pool(self, node_pool_id=node_pool_id, name=name, ) - return self._inner_api_calls['get_node_pool']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_node_pool(self, - project_id, - zone, - cluster_id, - node_pool, - parent=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["get_node_pool"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_node_pool( + self, + project_id, + zone, + cluster_id, + node_pool, + parent=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a node pool for a cluster. @@ -1858,15 +1890,15 @@ def create_node_pool(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_node_pool' not in self._inner_api_calls: + if "create_node_pool" not in self._inner_api_calls: self._inner_api_calls[ - 'create_node_pool'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_node_pool, - default_retry=self._method_configs['CreateNodePool'].retry, - default_timeout=self._method_configs['CreateNodePool']. - timeout, - client_info=self._client_info, - ) + "create_node_pool" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_node_pool, + default_retry=self._method_configs["CreateNodePool"].retry, + default_timeout=self._method_configs["CreateNodePool"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.CreateNodePoolRequest( project_id=project_id, @@ -1875,18 +1907,21 @@ def create_node_pool(self, node_pool=node_pool, parent=parent, ) - return self._inner_api_calls['create_node_pool']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_node_pool(self, - project_id, - zone, - cluster_id, - node_pool_id, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["create_node_pool"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def delete_node_pool( + self, + project_id, + zone, + cluster_id, + node_pool_id, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a node pool from a cluster. @@ -1944,15 +1979,15 @@ def delete_node_pool(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_node_pool' not in self._inner_api_calls: + if "delete_node_pool" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_node_pool'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_node_pool, - default_retry=self._method_configs['DeleteNodePool'].retry, - default_timeout=self._method_configs['DeleteNodePool']. - timeout, - client_info=self._client_info, - ) + "delete_node_pool" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_node_pool, + default_retry=self._method_configs["DeleteNodePool"].retry, + default_timeout=self._method_configs["DeleteNodePool"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.DeleteNodePoolRequest( project_id=project_id, @@ -1961,19 +1996,21 @@ def delete_node_pool(self, node_pool_id=node_pool_id, name=name, ) - return self._inner_api_calls['delete_node_pool']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["delete_node_pool"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def rollback_node_pool_upgrade( - self, - project_id, - zone, - cluster_id, - node_pool_id, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + project_id, + zone, + cluster_id, + node_pool_id, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Roll back the previously Aborted or Failed NodePool upgrade. This will be an no-op if the last upgrade successfully completed. @@ -2032,16 +2069,15 @@ def rollback_node_pool_upgrade( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'rollback_node_pool_upgrade' not in self._inner_api_calls: + if "rollback_node_pool_upgrade" not in self._inner_api_calls: self._inner_api_calls[ - 'rollback_node_pool_upgrade'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.rollback_node_pool_upgrade, - default_retry=self. - _method_configs['RollbackNodePoolUpgrade'].retry, - default_timeout=self. - _method_configs['RollbackNodePoolUpgrade'].timeout, - client_info=self._client_info, - ) + "rollback_node_pool_upgrade" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.rollback_node_pool_upgrade, + default_retry=self._method_configs["RollbackNodePoolUpgrade"].retry, + default_timeout=self._method_configs["RollbackNodePoolUpgrade"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.RollbackNodePoolUpgradeRequest( project_id=project_id, @@ -2050,20 +2086,22 @@ def rollback_node_pool_upgrade( node_pool_id=node_pool_id, name=name, ) - return self._inner_api_calls['rollback_node_pool_upgrade']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["rollback_node_pool_upgrade"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def set_node_pool_management( - self, - project_id, - zone, - cluster_id, - node_pool_id, - management, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + project_id, + zone, + cluster_id, + node_pool_id, + management, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the NodeManagement options for a node pool. @@ -2128,16 +2166,15 @@ def set_node_pool_management( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_node_pool_management' not in self._inner_api_calls: + if "set_node_pool_management" not in self._inner_api_calls: self._inner_api_calls[ - 'set_node_pool_management'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_node_pool_management, - default_retry=self. - _method_configs['SetNodePoolManagement'].retry, - default_timeout=self. - _method_configs['SetNodePoolManagement'].timeout, - client_info=self._client_info, - ) + "set_node_pool_management" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_node_pool_management, + default_retry=self._method_configs["SetNodePoolManagement"].retry, + default_timeout=self._method_configs["SetNodePoolManagement"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetNodePoolManagementRequest( project_id=project_id, @@ -2147,19 +2184,22 @@ def set_node_pool_management( management=management, name=name, ) - return self._inner_api_calls['set_node_pool_management']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_labels(self, - project_id, - zone, - cluster_id, - resource_labels, - label_fingerprint, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_node_pool_management"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_labels( + self, + project_id, + zone, + cluster_id, + resource_labels, + label_fingerprint, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets labels on a cluster. @@ -2224,14 +2264,15 @@ def set_labels(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_labels' not in self._inner_api_calls: + if "set_labels" not in self._inner_api_calls: self._inner_api_calls[ - 'set_labels'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_labels, - default_retry=self._method_configs['SetLabels'].retry, - default_timeout=self._method_configs['SetLabels'].timeout, - client_info=self._client_info, - ) + "set_labels" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_labels, + default_retry=self._method_configs["SetLabels"].retry, + default_timeout=self._method_configs["SetLabels"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetLabelsRequest( project_id=project_id, @@ -2241,18 +2282,21 @@ def set_labels(self, label_fingerprint=label_fingerprint, name=name, ) - return self._inner_api_calls['set_labels']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_legacy_abac(self, - project_id, - zone, - cluster_id, - enabled, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_labels"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_legacy_abac( + self, + project_id, + zone, + cluster_id, + enabled, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Enables or disables the ABAC authorization mechanism on a cluster. @@ -2308,15 +2352,15 @@ def set_legacy_abac(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_legacy_abac' not in self._inner_api_calls: + if "set_legacy_abac" not in self._inner_api_calls: self._inner_api_calls[ - 'set_legacy_abac'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_legacy_abac, - default_retry=self._method_configs['SetLegacyAbac'].retry, - default_timeout=self._method_configs['SetLegacyAbac']. - timeout, - client_info=self._client_info, - ) + "set_legacy_abac" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_legacy_abac, + default_retry=self._method_configs["SetLegacyAbac"].retry, + default_timeout=self._method_configs["SetLegacyAbac"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetLegacyAbacRequest( project_id=project_id, @@ -2325,18 +2369,21 @@ def set_legacy_abac(self, enabled=enabled, name=name, ) - return self._inner_api_calls['set_legacy_abac']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def start_i_p_rotation(self, - project_id, - zone, - cluster_id, - name=None, - rotate_credentials=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_legacy_abac"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def start_i_p_rotation( + self, + project_id, + zone, + cluster_id, + name=None, + rotate_credentials=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Start master IP rotation. @@ -2389,16 +2436,15 @@ def start_i_p_rotation(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'start_i_p_rotation' not in self._inner_api_calls: + if "start_i_p_rotation" not in self._inner_api_calls: self._inner_api_calls[ - 'start_i_p_rotation'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.start_i_p_rotation, - default_retry=self._method_configs['StartIPRotation']. - retry, - default_timeout=self._method_configs['StartIPRotation']. - timeout, - client_info=self._client_info, - ) + "start_i_p_rotation" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.start_i_p_rotation, + default_retry=self._method_configs["StartIPRotation"].retry, + default_timeout=self._method_configs["StartIPRotation"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.StartIPRotationRequest( project_id=project_id, @@ -2407,17 +2453,20 @@ def start_i_p_rotation(self, name=name, rotate_credentials=rotate_credentials, ) - return self._inner_api_calls['start_i_p_rotation']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def complete_i_p_rotation(self, - project_id, - zone, - cluster_id, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["start_i_p_rotation"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def complete_i_p_rotation( + self, + project_id, + zone, + cluster_id, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Completes master IP rotation. @@ -2469,36 +2518,35 @@ def complete_i_p_rotation(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'complete_i_p_rotation' not in self._inner_api_calls: + if "complete_i_p_rotation" not in self._inner_api_calls: self._inner_api_calls[ - 'complete_i_p_rotation'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.complete_i_p_rotation, - default_retry=self._method_configs['CompleteIPRotation']. - retry, - default_timeout=self._method_configs['CompleteIPRotation']. - timeout, - client_info=self._client_info, - ) + "complete_i_p_rotation" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.complete_i_p_rotation, + default_retry=self._method_configs["CompleteIPRotation"].retry, + default_timeout=self._method_configs["CompleteIPRotation"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.CompleteIPRotationRequest( - project_id=project_id, - zone=zone, - cluster_id=cluster_id, - name=name, + project_id=project_id, zone=zone, cluster_id=cluster_id, name=name + ) + return self._inner_api_calls["complete_i_p_rotation"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['complete_i_p_rotation']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_node_pool_size(self, - project_id, - zone, - cluster_id, - node_pool_id, - node_count, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def set_node_pool_size( + self, + project_id, + zone, + cluster_id, + node_pool_id, + node_count, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the size for a specific node pool. @@ -2560,16 +2608,15 @@ def set_node_pool_size(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_node_pool_size' not in self._inner_api_calls: + if "set_node_pool_size" not in self._inner_api_calls: self._inner_api_calls[ - 'set_node_pool_size'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_node_pool_size, - default_retry=self._method_configs['SetNodePoolSize']. - retry, - default_timeout=self._method_configs['SetNodePoolSize']. - timeout, - client_info=self._client_info, - ) + "set_node_pool_size" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_node_pool_size, + default_retry=self._method_configs["SetNodePoolSize"].retry, + default_timeout=self._method_configs["SetNodePoolSize"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetNodePoolSizeRequest( project_id=project_id, @@ -2579,18 +2626,21 @@ def set_node_pool_size(self, node_count=node_count, name=name, ) - return self._inner_api_calls['set_node_pool_size']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_network_policy(self, - project_id, - zone, - cluster_id, - network_policy, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_node_pool_size"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_network_policy( + self, + project_id, + zone, + cluster_id, + network_policy, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Enables/Disables Network Policy for a cluster. @@ -2650,16 +2700,15 @@ def set_network_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_network_policy' not in self._inner_api_calls: + if "set_network_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_network_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_network_policy, - default_retry=self._method_configs['SetNetworkPolicy']. - retry, - default_timeout=self._method_configs['SetNetworkPolicy']. - timeout, - client_info=self._client_info, - ) + "set_network_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_network_policy, + default_retry=self._method_configs["SetNetworkPolicy"].retry, + default_timeout=self._method_configs["SetNetworkPolicy"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetNetworkPolicyRequest( project_id=project_id, @@ -2668,18 +2717,21 @@ def set_network_policy(self, network_policy=network_policy, name=name, ) - return self._inner_api_calls['set_network_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_maintenance_policy(self, - project_id, - zone, - cluster_id, - maintenance_policy, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["set_network_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_maintenance_policy( + self, + project_id, + zone, + cluster_id, + maintenance_policy, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the maintenance policy for a cluster. @@ -2737,16 +2789,15 @@ def set_maintenance_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_maintenance_policy' not in self._inner_api_calls: + if "set_maintenance_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_maintenance_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_maintenance_policy, - default_retry=self._method_configs['SetMaintenancePolicy']. - retry, - default_timeout=self. - _method_configs['SetMaintenancePolicy'].timeout, - client_info=self._client_info, - ) + "set_maintenance_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_maintenance_policy, + default_retry=self._method_configs["SetMaintenancePolicy"].retry, + default_timeout=self._method_configs["SetMaintenancePolicy"].timeout, + client_info=self._client_info, + ) request = cluster_service_pb2.SetMaintenancePolicyRequest( project_id=project_id, @@ -2755,5 +2806,6 @@ def set_maintenance_policy(self, maintenance_policy=maintenance_policy, name=name, ) - return self._inner_api_calls['set_maintenance_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["set_maintenance_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/container/google/cloud/container_v1/gapic/cluster_manager_client_config.py b/container/google/cloud/container_v1/gapic/cluster_manager_client_config.py index c48f8bc20ebf..cf96a732a581 100644 --- a/container/google/cloud/container_v1/gapic/cluster_manager_client_config.py +++ b/container/google/cloud/container_v1/gapic/cluster_manager_client_config.py @@ -3,7 +3,7 @@ "google.container.v1.ClusterManager": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,161 +13,161 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListClusters": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetCluster": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateCluster": { "timeout_millis": 45000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateCluster": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateNodePool": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetNodePoolAutoscaling": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetLoggingService": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetMonitoringService": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetAddonsConfig": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetLocations": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateMaster": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetMasterAuth": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteCluster": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListOperations": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetOperation": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CancelOperation": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetServerConfig": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListNodePools": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetNodePool": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateNodePool": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteNodePool": { "timeout_millis": 20000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RollbackNodePoolUpgrade": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetNodePoolManagement": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetLabels": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetLegacyAbac": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "StartIPRotation": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CompleteIPRotation": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetNodePoolSize": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetNetworkPolicy": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetMaintenancePolicy": { "timeout_millis": 20000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/container/google/cloud/container_v1/gapic/enums.py b/container/google/cloud/container_v1/gapic/enums.py index 190325408d5f..b66805fe39b6 100644 --- a/container/google/cloud/container_v1/gapic/enums.py +++ b/container/google/cloud/container_v1/gapic/enums.py @@ -27,6 +27,7 @@ class Provider(enum.IntEnum): PROVIDER_UNSPECIFIED (int): Not set CALICO (int): Tigera (Calico Felix). """ + PROVIDER_UNSPECIFIED = 0 CALICO = 1 @@ -50,6 +51,7 @@ class Status(enum.IntEnum): DEGRADED (int): The DEGRADED state indicates the cluster requires user action to restore full functionality. Details can be found in the ``statusMessage`` field. """ + STATUS_UNSPECIFIED = 0 PROVISIONING = 1 RUNNING = 2 @@ -71,6 +73,7 @@ class Status(enum.IntEnum): DONE (int): The operation is done, either cancelled or completed. ABORTING (int): The operation is aborting. """ + STATUS_UNSPECIFIED = 0 PENDING = 1 RUNNING = 2 @@ -100,6 +103,7 @@ class Type(enum.IntEnum): SET_NETWORK_POLICY (int): Updates network policy for a cluster. SET_MAINTENANCE_POLICY (int): Set the maintenance policy. """ + TYPE_UNSPECIFIED = 0 CREATE_CLUSTER = 1 DELETE_CLUSTER = 2 @@ -133,6 +137,7 @@ class Action(enum.IntEnum): authentication is enabled, with either a provided password or a generated one. """ + UNKNOWN = 0 SET_PASSWORD = 1 GENERATE_PASSWORD = 2 @@ -160,6 +165,7 @@ class Status(enum.IntEnum): ERROR (int): The ERROR state indicates the node pool may be unusable. Details can be found in the ``statusMessage`` field. """ + STATUS_UNSPECIFIED = 0 PROVISIONING = 1 RUNNING = 2 diff --git a/container/google/cloud/container_v1/gapic/transports/cluster_manager_grpc_transport.py b/container/google/cloud/container_v1/gapic/transports/cluster_manager_grpc_transport.py index 62e1c4c9ccbb..4230163493f2 100644 --- a/container/google/cloud/container_v1/gapic/transports/cluster_manager_grpc_transport.py +++ b/container/google/cloud/container_v1/gapic/transports/cluster_manager_grpc_transport.py @@ -27,14 +27,14 @@ class ClusterManagerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='container.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="container.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,29 +52,23 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'cluster_manager_stub': - cluster_service_pb2_grpc.ClusterManagerStub(channel), + "cluster_manager_stub": cluster_service_pb2_grpc.ClusterManagerStub(channel) } @classmethod - def create_channel(cls, - address='container.googleapis.com:443', - credentials=None): + def create_channel(cls, address="container.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -89,9 +83,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -115,7 +107,7 @@ def list_clusters(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].ListClusters + return self._stubs["cluster_manager_stub"].ListClusters @property def get_cluster(self): @@ -128,7 +120,7 @@ def get_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].GetCluster + return self._stubs["cluster_manager_stub"].GetCluster @property def create_cluster(self): @@ -152,7 +144,7 @@ def create_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].CreateCluster + return self._stubs["cluster_manager_stub"].CreateCluster @property def update_cluster(self): @@ -165,7 +157,7 @@ def update_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].UpdateCluster + return self._stubs["cluster_manager_stub"].UpdateCluster @property def update_node_pool(self): @@ -178,7 +170,7 @@ def update_node_pool(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].UpdateNodePool + return self._stubs["cluster_manager_stub"].UpdateNodePool @property def set_node_pool_autoscaling(self): @@ -191,7 +183,7 @@ def set_node_pool_autoscaling(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetNodePoolAutoscaling + return self._stubs["cluster_manager_stub"].SetNodePoolAutoscaling @property def set_logging_service(self): @@ -204,7 +196,7 @@ def set_logging_service(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetLoggingService + return self._stubs["cluster_manager_stub"].SetLoggingService @property def set_monitoring_service(self): @@ -217,7 +209,7 @@ def set_monitoring_service(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetMonitoringService + return self._stubs["cluster_manager_stub"].SetMonitoringService @property def set_addons_config(self): @@ -230,7 +222,7 @@ def set_addons_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetAddonsConfig + return self._stubs["cluster_manager_stub"].SetAddonsConfig @property def set_locations(self): @@ -243,7 +235,7 @@ def set_locations(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetLocations + return self._stubs["cluster_manager_stub"].SetLocations @property def update_master(self): @@ -256,7 +248,7 @@ def update_master(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].UpdateMaster + return self._stubs["cluster_manager_stub"].UpdateMaster @property def set_master_auth(self): @@ -271,7 +263,7 @@ def set_master_auth(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetMasterAuth + return self._stubs["cluster_manager_stub"].SetMasterAuth @property def delete_cluster(self): @@ -292,7 +284,7 @@ def delete_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].DeleteCluster + return self._stubs["cluster_manager_stub"].DeleteCluster @property def list_operations(self): @@ -305,7 +297,7 @@ def list_operations(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].ListOperations + return self._stubs["cluster_manager_stub"].ListOperations @property def get_operation(self): @@ -318,7 +310,7 @@ def get_operation(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].GetOperation + return self._stubs["cluster_manager_stub"].GetOperation @property def cancel_operation(self): @@ -331,7 +323,7 @@ def cancel_operation(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].CancelOperation + return self._stubs["cluster_manager_stub"].CancelOperation @property def get_server_config(self): @@ -344,7 +336,7 @@ def get_server_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].GetServerConfig + return self._stubs["cluster_manager_stub"].GetServerConfig @property def list_node_pools(self): @@ -357,7 +349,7 @@ def list_node_pools(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].ListNodePools + return self._stubs["cluster_manager_stub"].ListNodePools @property def get_node_pool(self): @@ -370,7 +362,7 @@ def get_node_pool(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].GetNodePool + return self._stubs["cluster_manager_stub"].GetNodePool @property def create_node_pool(self): @@ -383,7 +375,7 @@ def create_node_pool(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].CreateNodePool + return self._stubs["cluster_manager_stub"].CreateNodePool @property def delete_node_pool(self): @@ -396,7 +388,7 @@ def delete_node_pool(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].DeleteNodePool + return self._stubs["cluster_manager_stub"].DeleteNodePool @property def rollback_node_pool_upgrade(self): @@ -410,7 +402,7 @@ def rollback_node_pool_upgrade(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].RollbackNodePoolUpgrade + return self._stubs["cluster_manager_stub"].RollbackNodePoolUpgrade @property def set_node_pool_management(self): @@ -423,7 +415,7 @@ def set_node_pool_management(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetNodePoolManagement + return self._stubs["cluster_manager_stub"].SetNodePoolManagement @property def set_labels(self): @@ -436,7 +428,7 @@ def set_labels(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetLabels + return self._stubs["cluster_manager_stub"].SetLabels @property def set_legacy_abac(self): @@ -449,7 +441,7 @@ def set_legacy_abac(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetLegacyAbac + return self._stubs["cluster_manager_stub"].SetLegacyAbac @property def start_i_p_rotation(self): @@ -462,7 +454,7 @@ def start_i_p_rotation(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].StartIPRotation + return self._stubs["cluster_manager_stub"].StartIPRotation @property def complete_i_p_rotation(self): @@ -475,7 +467,7 @@ def complete_i_p_rotation(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].CompleteIPRotation + return self._stubs["cluster_manager_stub"].CompleteIPRotation @property def set_node_pool_size(self): @@ -488,7 +480,7 @@ def set_node_pool_size(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetNodePoolSize + return self._stubs["cluster_manager_stub"].SetNodePoolSize @property def set_network_policy(self): @@ -501,7 +493,7 @@ def set_network_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetNetworkPolicy + return self._stubs["cluster_manager_stub"].SetNetworkPolicy @property def set_maintenance_policy(self): @@ -514,4 +506,4 @@ def set_maintenance_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_manager_stub'].SetMaintenancePolicy + return self._stubs["cluster_manager_stub"].SetMaintenancePolicy diff --git a/container/google/cloud/container_v1/types.py b/container/google/cloud/container_v1/types.py index b768b36e8a95..6111f943a833 100644 --- a/container/google/cloud/container_v1/types.py +++ b/container/google/cloud/container_v1/types.py @@ -24,15 +24,9 @@ from google.protobuf import descriptor_pb2 from google.protobuf import empty_pb2 -_shared_modules = [ - http_pb2, - descriptor_pb2, - empty_pb2, -] +_shared_modules = [http_pb2, descriptor_pb2, empty_pb2] -_local_modules = [ - cluster_service_pb2, -] +_local_modules = [cluster_service_pb2] names = [] @@ -42,7 +36,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.container_v1.types' + message.__module__ = "google.cloud.container_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/container/tests/system/gapic/v1/test_system_cluster_manager_v1.py b/container/tests/system/gapic/v1/test_system_cluster_manager_v1.py index 3f10cd2b4879..edd29d99dfae 100644 --- a/container/tests/system/gapic/v1/test_system_cluster_manager_v1.py +++ b/container/tests/system/gapic/v1/test_system_cluster_manager_v1.py @@ -21,9 +21,9 @@ class TestSystemClusterManager(object): def test_list_clusters(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = container_v1.ClusterManagerClient() project_id_2 = project_id - zone = 'us-central1-a' + zone = "us-central1-a" response = client.list_clusters(project_id_2, zone) diff --git a/container/tests/unit/gapic/v1/test_cluster_manager_client_v1.py b/container/tests/unit/gapic/v1/test_cluster_manager_client_v1.py index 17ded8c91289..0b259efc5f61 100644 --- a/container/tests/unit/gapic/v1/test_cluster_manager_client_v1.py +++ b/container/tests/unit/gapic/v1/test_cluster_manager_client_v1.py @@ -52,10 +52,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -68,166 +65,169 @@ def test_list_clusters(self): # Setup Expected Response expected_response = {} expected_response = cluster_service_pb2.ListClustersResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' + project_id = "projectId-1969970175" + zone = "zone3744684" response = client.list_clusters(project_id, zone) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.ListClustersRequest( - project_id=project_id, zone=zone) + project_id=project_id, zone=zone + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_clusters_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' + project_id = "projectId-1969970175" + zone = "zone3744684" with pytest.raises(CustomException): client.list_clusters(project_id, zone) def test_get_cluster(self): # Setup Expected Response - name = 'name3373707' - description = 'description-1724546052' + name = "name3373707" + description = "description-1724546052" initial_node_count = 1682564205 - logging_service = 'loggingService-1700501035' - monitoring_service = 'monitoringService1469270462' - network = 'network1843485230' - cluster_ipv4_cidr = 'clusterIpv4Cidr-141875831' - subnetwork = 'subnetwork-1302785042' + logging_service = "loggingService-1700501035" + monitoring_service = "monitoringService1469270462" + network = "network1843485230" + cluster_ipv4_cidr = "clusterIpv4Cidr-141875831" + subnetwork = "subnetwork-1302785042" enable_kubernetes_alpha = False - label_fingerprint = 'labelFingerprint714995737' - self_link = 'selfLink-1691268851' - zone_2 = 'zone2-696322977' - endpoint = 'endpoint1741102485' - initial_cluster_version = 'initialClusterVersion-276373352' - current_master_version = 'currentMasterVersion-920953983' - current_node_version = 'currentNodeVersion-407476063' - create_time = 'createTime-493574096' - status_message = 'statusMessage-239442758' + label_fingerprint = "labelFingerprint714995737" + self_link = "selfLink-1691268851" + zone_2 = "zone2-696322977" + endpoint = "endpoint1741102485" + initial_cluster_version = "initialClusterVersion-276373352" + current_master_version = "currentMasterVersion-920953983" + current_node_version = "currentNodeVersion-407476063" + create_time = "createTime-493574096" + status_message = "statusMessage-239442758" node_ipv4_cidr_size = 1181176815 - services_ipv4_cidr = 'servicesIpv4Cidr1966438125' + services_ipv4_cidr = "servicesIpv4Cidr1966438125" current_node_count = 178977560 - expire_time = 'expireTime-96179731' - location = 'location1901043637' + expire_time = "expireTime-96179731" + location = "location1901043637" expected_response = { - 'name': name, - 'description': description, - 'initial_node_count': initial_node_count, - 'logging_service': logging_service, - 'monitoring_service': monitoring_service, - 'network': network, - 'cluster_ipv4_cidr': cluster_ipv4_cidr, - 'subnetwork': subnetwork, - 'enable_kubernetes_alpha': enable_kubernetes_alpha, - 'label_fingerprint': label_fingerprint, - 'self_link': self_link, - 'zone': zone_2, - 'endpoint': endpoint, - 'initial_cluster_version': initial_cluster_version, - 'current_master_version': current_master_version, - 'current_node_version': current_node_version, - 'create_time': create_time, - 'status_message': status_message, - 'node_ipv4_cidr_size': node_ipv4_cidr_size, - 'services_ipv4_cidr': services_ipv4_cidr, - 'current_node_count': current_node_count, - 'expire_time': expire_time, - 'location': location + "name": name, + "description": description, + "initial_node_count": initial_node_count, + "logging_service": logging_service, + "monitoring_service": monitoring_service, + "network": network, + "cluster_ipv4_cidr": cluster_ipv4_cidr, + "subnetwork": subnetwork, + "enable_kubernetes_alpha": enable_kubernetes_alpha, + "label_fingerprint": label_fingerprint, + "self_link": self_link, + "zone": zone_2, + "endpoint": endpoint, + "initial_cluster_version": initial_cluster_version, + "current_master_version": current_master_version, + "current_node_version": current_node_version, + "create_time": create_time, + "status_message": status_message, + "node_ipv4_cidr_size": node_ipv4_cidr_size, + "services_ipv4_cidr": services_ipv4_cidr, + "current_node_count": current_node_count, + "expire_time": expire_time, + "location": location, } expected_response = cluster_service_pb2.Cluster(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" response = client.get_cluster(project_id, zone, cluster_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.GetClusterRequest( - project_id=project_id, zone=zone, cluster_id=cluster_id) + project_id=project_id, zone=zone, cluster_id=cluster_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_cluster_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" with pytest.raises(CustomException): client.get_cluster(project_id, zone, cluster_id) def test_create_cluster(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' + project_id = "projectId-1969970175" + zone = "zone3744684" cluster = {} response = client.create_cluster(project_id, zone, cluster) @@ -235,21 +235,22 @@ def test_create_cluster(self): assert len(channel.requests) == 1 expected_request = cluster_service_pb2.CreateClusterRequest( - project_id=project_id, zone=zone, cluster=cluster) + project_id=project_id, zone=zone, cluster=cluster + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_cluster_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' + project_id = "projectId-1969970175" + zone = "zone3744684" cluster = {} with pytest.raises(CustomException): @@ -257,39 +258,39 @@ def test_create_cluster_exception(self): def test_update_cluster(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" update = {} response = client.update_cluster(project_id, zone, cluster_id, update) @@ -297,25 +298,23 @@ def test_update_cluster(self): assert len(channel.requests) == 1 expected_request = cluster_service_pb2.UpdateClusterRequest( - project_id=project_id, - zone=zone, - cluster_id=cluster_id, - update=update) + project_id=project_id, zone=zone, cluster_id=cluster_id, update=update + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_cluster_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" update = {} with pytest.raises(CustomException): @@ -323,46 +322,46 @@ def test_update_cluster_exception(self): def test_update_node_pool(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' - node_version = 'nodeVersion1790136219' - image_type = 'imageType-1442758754' - - response = client.update_node_pool(project_id, zone, cluster_id, - node_pool_id, node_version, - image_type) + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" + node_version = "nodeVersion1790136219" + image_type = "imageType-1442758754" + + response = client.update_node_pool( + project_id, zone, cluster_id, node_pool_id, node_version, image_type + ) assert expected_response == response assert len(channel.requests) == 1 @@ -372,70 +371,73 @@ def test_update_node_pool(self): cluster_id=cluster_id, node_pool_id=node_pool_id, node_version=node_version, - image_type=image_type) + image_type=image_type, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_node_pool_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' - node_version = 'nodeVersion1790136219' - image_type = 'imageType-1442758754' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" + node_version = "nodeVersion1790136219" + image_type = "imageType-1442758754" with pytest.raises(CustomException): - client.update_node_pool(project_id, zone, cluster_id, node_pool_id, - node_version, image_type) + client.update_node_pool( + project_id, zone, cluster_id, node_pool_id, node_version, image_type + ) def test_set_node_pool_autoscaling(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" autoscaling = {} response = client.set_node_pool_autoscaling( - project_id, zone, cluster_id, node_pool_id, autoscaling) + project_id, zone, cluster_id, node_pool_id, autoscaling + ) assert expected_response == response assert len(channel.requests) == 1 @@ -444,68 +446,71 @@ def test_set_node_pool_autoscaling(self): zone=zone, cluster_id=cluster_id, node_pool_id=node_pool_id, - autoscaling=autoscaling) + autoscaling=autoscaling, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_node_pool_autoscaling_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" autoscaling = {} with pytest.raises(CustomException): - client.set_node_pool_autoscaling(project_id, zone, cluster_id, - node_pool_id, autoscaling) + client.set_node_pool_autoscaling( + project_id, zone, cluster_id, node_pool_id, autoscaling + ) def test_set_logging_service(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - logging_service = 'loggingService-1700501035' - - response = client.set_logging_service(project_id, zone, cluster_id, - logging_service) + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + logging_service = "loggingService-1700501035" + + response = client.set_logging_service( + project_id, zone, cluster_id, logging_service + ) assert expected_response == response assert len(channel.requests) == 1 @@ -513,67 +518,68 @@ def test_set_logging_service(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - logging_service=logging_service) + logging_service=logging_service, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_logging_service_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - logging_service = 'loggingService-1700501035' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + logging_service = "loggingService-1700501035" with pytest.raises(CustomException): - client.set_logging_service(project_id, zone, cluster_id, - logging_service) + client.set_logging_service(project_id, zone, cluster_id, logging_service) def test_set_monitoring_service(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - monitoring_service = 'monitoringService1469270462' - - response = client.set_monitoring_service(project_id, zone, cluster_id, - monitoring_service) + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + monitoring_service = "monitoringService1469270462" + + response = client.set_monitoring_service( + project_id, zone, cluster_id, monitoring_service + ) assert expected_response == response assert len(channel.requests) == 1 @@ -581,67 +587,68 @@ def test_set_monitoring_service(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - monitoring_service=monitoring_service) + monitoring_service=monitoring_service, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_monitoring_service_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - monitoring_service = 'monitoringService1469270462' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + monitoring_service = "monitoringService1469270462" with pytest.raises(CustomException): - client.set_monitoring_service(project_id, zone, cluster_id, - monitoring_service) + client.set_monitoring_service( + project_id, zone, cluster_id, monitoring_service + ) def test_set_addons_config(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" addons_config = {} - response = client.set_addons_config(project_id, zone, cluster_id, - addons_config) + response = client.set_addons_config(project_id, zone, cluster_id, addons_config) assert expected_response == response assert len(channel.requests) == 1 @@ -649,90 +656,87 @@ def test_set_addons_config(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - addons_config=addons_config) + addons_config=addons_config, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_addons_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" addons_config = {} with pytest.raises(CustomException): - client.set_addons_config(project_id, zone, cluster_id, - addons_config) + client.set_addons_config(project_id, zone, cluster_id, addons_config) def test_set_locations(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" locations = [] - response = client.set_locations(project_id, zone, cluster_id, - locations) + response = client.set_locations(project_id, zone, cluster_id, locations) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.SetLocationsRequest( - project_id=project_id, - zone=zone, - cluster_id=cluster_id, - locations=locations) + project_id=project_id, zone=zone, cluster_id=cluster_id, locations=locations + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_locations_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" locations = [] with pytest.raises(CustomException): @@ -740,43 +744,42 @@ def test_set_locations_exception(self): def test_update_master(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - master_version = 'masterVersion-2139460613' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + master_version = "masterVersion-2139460613" - response = client.update_master(project_id, zone, cluster_id, - master_version) + response = client.update_master(project_id, zone, cluster_id, master_version) assert expected_response == response assert len(channel.requests) == 1 @@ -784,67 +787,67 @@ def test_update_master(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - master_version=master_version) + master_version=master_version, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_master_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - master_version = 'masterVersion-2139460613' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + master_version = "masterVersion-2139460613" with pytest.raises(CustomException): client.update_master(project_id, zone, cluster_id, master_version) def test_set_master_auth(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" action = enums.SetMasterAuthRequest.Action.UNKNOWN update = {} - response = client.set_master_auth(project_id, zone, cluster_id, action, - update) + response = client.set_master_auth(project_id, zone, cluster_id, action, update) assert expected_response == response assert len(channel.requests) == 1 @@ -853,86 +856,87 @@ def test_set_master_auth(self): zone=zone, cluster_id=cluster_id, action=action, - update=update) + update=update, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_master_auth_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" action = enums.SetMasterAuthRequest.Action.UNKNOWN update = {} with pytest.raises(CustomException): - client.set_master_auth(project_id, zone, cluster_id, action, - update) + client.set_master_auth(project_id, zone, cluster_id, action, update) def test_delete_cluster(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" response = client.delete_cluster(project_id, zone, cluster_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.DeleteClusterRequest( - project_id=project_id, zone=zone, cluster_id=cluster_id) + project_id=project_id, zone=zone, cluster_id=cluster_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_cluster_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" with pytest.raises(CustomException): client.delete_cluster(project_id, zone, cluster_id) @@ -941,182 +945,186 @@ def test_list_operations(self): # Setup Expected Response expected_response = {} expected_response = cluster_service_pb2.ListOperationsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' + project_id = "projectId-1969970175" + zone = "zone3744684" response = client.list_operations(project_id, zone) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.ListOperationsRequest( - project_id=project_id, zone=zone) + project_id=project_id, zone=zone + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_operations_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' + project_id = "projectId-1969970175" + zone = "zone3744684" with pytest.raises(CustomException): client.list_operations(project_id, zone) def test_get_operation(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - operation_id = 'operationId-274116877' + project_id = "projectId-1969970175" + zone = "zone3744684" + operation_id = "operationId-274116877" response = client.get_operation(project_id, zone, operation_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.GetOperationRequest( - project_id=project_id, zone=zone, operation_id=operation_id) + project_id=project_id, zone=zone, operation_id=operation_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_operation_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - operation_id = 'operationId-274116877' + project_id = "projectId-1969970175" + zone = "zone3744684" + operation_id = "operationId-274116877" with pytest.raises(CustomException): client.get_operation(project_id, zone, operation_id) def test_cancel_operation(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - operation_id = 'operationId-274116877' + project_id = "projectId-1969970175" + zone = "zone3744684" + operation_id = "operationId-274116877" client.cancel_operation(project_id, zone, operation_id) assert len(channel.requests) == 1 expected_request = cluster_service_pb2.CancelOperationRequest( - project_id=project_id, zone=zone, operation_id=operation_id) + project_id=project_id, zone=zone, operation_id=operation_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_cancel_operation_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - operation_id = 'operationId-274116877' + project_id = "projectId-1969970175" + zone = "zone3744684" + operation_id = "operationId-274116877" with pytest.raises(CustomException): client.cancel_operation(project_id, zone, operation_id) def test_get_server_config(self): # Setup Expected Response - default_cluster_version = 'defaultClusterVersion111003029' - default_image_type = 'defaultImageType-918225828' + default_cluster_version = "defaultClusterVersion111003029" + default_image_type = "defaultImageType-918225828" expected_response = { - 'default_cluster_version': default_cluster_version, - 'default_image_type': default_image_type + "default_cluster_version": default_cluster_version, + "default_image_type": default_image_type, } - expected_response = cluster_service_pb2.ServerConfig( - **expected_response) + expected_response = cluster_service_pb2.ServerConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' + project_id = "projectId-1969970175" + zone = "zone3744684" response = client.get_server_config(project_id, zone) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.GetServerConfigRequest( - project_id=project_id, zone=zone) + project_id=project_id, zone=zone + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_server_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' + project_id = "projectId-1969970175" + zone = "zone3744684" with pytest.raises(CustomException): client.get_server_config(project_id, zone) @@ -1125,76 +1133,77 @@ def test_list_node_pools(self): # Setup Expected Response expected_response = {} expected_response = cluster_service_pb2.ListNodePoolsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" response = client.list_node_pools(project_id, zone, cluster_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.ListNodePoolsRequest( - project_id=project_id, zone=zone, cluster_id=cluster_id) + project_id=project_id, zone=zone, cluster_id=cluster_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_node_pools_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" with pytest.raises(CustomException): client.list_node_pools(project_id, zone, cluster_id) def test_get_node_pool(self): # Setup Expected Response - name = 'name3373707' + name = "name3373707" initial_node_count = 1682564205 - self_link = 'selfLink-1691268851' - version = 'version351608024' - status_message = 'statusMessage-239442758' + self_link = "selfLink-1691268851" + version = "version351608024" + status_message = "statusMessage-239442758" expected_response = { - 'name': name, - 'initial_node_count': initial_node_count, - 'self_link': self_link, - 'version': version, - 'status_message': status_message + "name": name, + "initial_node_count": initial_node_count, + "self_link": self_link, + "version": version, + "status_message": status_message, } expected_response = cluster_service_pb2.NodePool(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" - response = client.get_node_pool(project_id, zone, cluster_id, - node_pool_id) + response = client.get_node_pool(project_id, zone, cluster_id, node_pool_id) assert expected_response == response assert len(channel.requests) == 1 @@ -1202,89 +1211,87 @@ def test_get_node_pool(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - node_pool_id=node_pool_id) + node_pool_id=node_pool_id, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_node_pool_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" with pytest.raises(CustomException): client.get_node_pool(project_id, zone, cluster_id, node_pool_id) def test_create_node_pool(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" node_pool = {} - response = client.create_node_pool(project_id, zone, cluster_id, - node_pool) + response = client.create_node_pool(project_id, zone, cluster_id, node_pool) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.CreateNodePoolRequest( - project_id=project_id, - zone=zone, - cluster_id=cluster_id, - node_pool=node_pool) + project_id=project_id, zone=zone, cluster_id=cluster_id, node_pool=node_pool + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_node_pool_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" node_pool = {} with pytest.raises(CustomException): @@ -1292,43 +1299,42 @@ def test_create_node_pool_exception(self): def test_delete_node_pool(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" - response = client.delete_node_pool(project_id, zone, cluster_id, - node_pool_id) + response = client.delete_node_pool(project_id, zone, cluster_id, node_pool_id) assert expected_response == response assert len(channel.requests) == 1 @@ -1336,66 +1342,68 @@ def test_delete_node_pool(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - node_pool_id=node_pool_id) + node_pool_id=node_pool_id, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_node_pool_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" with pytest.raises(CustomException): client.delete_node_pool(project_id, zone, cluster_id, node_pool_id) def test_rollback_node_pool_upgrade(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' - - response = client.rollback_node_pool_upgrade(project_id, zone, - cluster_id, node_pool_id) + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" + + response = client.rollback_node_pool_upgrade( + project_id, zone, cluster_id, node_pool_id + ) assert expected_response == response assert len(channel.requests) == 1 @@ -1403,68 +1411,71 @@ def test_rollback_node_pool_upgrade(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - node_pool_id=node_pool_id) + node_pool_id=node_pool_id, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_rollback_node_pool_upgrade_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" with pytest.raises(CustomException): - client.rollback_node_pool_upgrade(project_id, zone, cluster_id, - node_pool_id) + client.rollback_node_pool_upgrade( + project_id, zone, cluster_id, node_pool_id + ) def test_set_node_pool_management(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" management = {} response = client.set_node_pool_management( - project_id, zone, cluster_id, node_pool_id, management) + project_id, zone, cluster_id, node_pool_id, management + ) assert expected_response == response assert len(channel.requests) == 1 @@ -1473,69 +1484,72 @@ def test_set_node_pool_management(self): zone=zone, cluster_id=cluster_id, node_pool_id=node_pool_id, - management=management) + management=management, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_node_pool_management_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" management = {} with pytest.raises(CustomException): - client.set_node_pool_management(project_id, zone, cluster_id, - node_pool_id, management) + client.set_node_pool_management( + project_id, zone, cluster_id, node_pool_id, management + ) def test_set_labels(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" resource_labels = {} - label_fingerprint = 'labelFingerprint714995737' + label_fingerprint = "labelFingerprint714995737" - response = client.set_labels(project_id, zone, cluster_id, - resource_labels, label_fingerprint) + response = client.set_labels( + project_id, zone, cluster_id, resource_labels, label_fingerprint + ) assert expected_response == response assert len(channel.requests) == 1 @@ -1544,91 +1558,90 @@ def test_set_labels(self): zone=zone, cluster_id=cluster_id, resource_labels=resource_labels, - label_fingerprint=label_fingerprint) + label_fingerprint=label_fingerprint, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_labels_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" resource_labels = {} - label_fingerprint = 'labelFingerprint714995737' + label_fingerprint = "labelFingerprint714995737" with pytest.raises(CustomException): - client.set_labels(project_id, zone, cluster_id, resource_labels, - label_fingerprint) + client.set_labels( + project_id, zone, cluster_id, resource_labels, label_fingerprint + ) def test_set_legacy_abac(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" enabled = False - response = client.set_legacy_abac(project_id, zone, cluster_id, - enabled) + response = client.set_legacy_abac(project_id, zone, cluster_id, enabled) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.SetLegacyAbacRequest( - project_id=project_id, - zone=zone, - cluster_id=cluster_id, - enabled=enabled) + project_id=project_id, zone=zone, cluster_id=cluster_id, enabled=enabled + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_legacy_abac_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" enabled = False with pytest.raises(CustomException): @@ -1636,166 +1649,169 @@ def test_set_legacy_abac_exception(self): def test_start_i_p_rotation(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" response = client.start_i_p_rotation(project_id, zone, cluster_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.StartIPRotationRequest( - project_id=project_id, zone=zone, cluster_id=cluster_id) + project_id=project_id, zone=zone, cluster_id=cluster_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_start_i_p_rotation_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" with pytest.raises(CustomException): client.start_i_p_rotation(project_id, zone, cluster_id) def test_complete_i_p_rotation(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" response = client.complete_i_p_rotation(project_id, zone, cluster_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = cluster_service_pb2.CompleteIPRotationRequest( - project_id=project_id, zone=zone, cluster_id=cluster_id) + project_id=project_id, zone=zone, cluster_id=cluster_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_complete_i_p_rotation_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" with pytest.raises(CustomException): client.complete_i_p_rotation(project_id, zone, cluster_id) def test_set_node_pool_size(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" node_count = 1539922066 - response = client.set_node_pool_size(project_id, zone, cluster_id, - node_pool_id, node_count) + response = client.set_node_pool_size( + project_id, zone, cluster_id, node_pool_id, node_count + ) assert expected_response == response assert len(channel.requests) == 1 @@ -1804,68 +1820,71 @@ def test_set_node_pool_size(self): zone=zone, cluster_id=cluster_id, node_pool_id=node_pool_id, - node_count=node_count) + node_count=node_count, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_node_pool_size_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' - node_pool_id = 'nodePoolId1043384033' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" + node_pool_id = "nodePoolId1043384033" node_count = 1539922066 with pytest.raises(CustomException): - client.set_node_pool_size(project_id, zone, cluster_id, - node_pool_id, node_count) + client.set_node_pool_size( + project_id, zone, cluster_id, node_pool_id, node_count + ) def test_set_network_policy(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" network_policy = {} - response = client.set_network_policy(project_id, zone, cluster_id, - network_policy) + response = client.set_network_policy( + project_id, zone, cluster_id, network_policy + ) assert expected_response == response assert len(channel.requests) == 1 @@ -1873,67 +1892,68 @@ def test_set_network_policy(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - network_policy=network_policy) + network_policy=network_policy, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_network_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" network_policy = {} with pytest.raises(CustomException): - client.set_network_policy(project_id, zone, cluster_id, - network_policy) + client.set_network_policy(project_id, zone, cluster_id, network_policy) def test_set_maintenance_policy(self): # Setup Expected Response - name = 'name3373707' - zone_2 = 'zone2-696322977' - detail = 'detail-1335224239' - status_message = 'statusMessage-239442758' - self_link = 'selfLink-1691268851' - target_link = 'targetLink-2084812312' - location = 'location1901043637' - start_time = 'startTime-1573145462' - end_time = 'endTime1725551537' + name = "name3373707" + zone_2 = "zone2-696322977" + detail = "detail-1335224239" + status_message = "statusMessage-239442758" + self_link = "selfLink-1691268851" + target_link = "targetLink-2084812312" + location = "location1901043637" + start_time = "startTime-1573145462" + end_time = "endTime1725551537" expected_response = { - 'name': name, - 'zone': zone_2, - 'detail': detail, - 'status_message': status_message, - 'self_link': self_link, - 'target_link': target_link, - 'location': location, - 'start_time': start_time, - 'end_time': end_time + "name": name, + "zone": zone_2, + "detail": detail, + "status_message": status_message, + "self_link": self_link, + "target_link": target_link, + "location": location, + "start_time": start_time, + "end_time": end_time, } expected_response = cluster_service_pb2.Operation(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup Request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" maintenance_policy = {} - response = client.set_maintenance_policy(project_id, zone, cluster_id, - maintenance_policy) + response = client.set_maintenance_policy( + project_id, zone, cluster_id, maintenance_policy + ) assert expected_response == response assert len(channel.requests) == 1 @@ -1941,24 +1961,26 @@ def test_set_maintenance_policy(self): project_id=project_id, zone=zone, cluster_id=cluster_id, - maintenance_policy=maintenance_policy) + maintenance_policy=maintenance_policy, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_maintenance_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = container_v1.ClusterManagerClient() # Setup request - project_id = 'projectId-1969970175' - zone = 'zone3744684' - cluster_id = 'clusterId240280960' + project_id = "projectId-1969970175" + zone = "zone3744684" + cluster_id = "clusterId240280960" maintenance_policy = {} with pytest.raises(CustomException): - client.set_maintenance_policy(project_id, zone, cluster_id, - maintenance_policy) + client.set_maintenance_policy( + project_id, zone, cluster_id, maintenance_policy + ) diff --git a/dataproc/docs/conf.py b/dataproc/docs/conf.py index bb7ad0cb9147..8b8f68837388 100644 --- a/dataproc/docs/conf.py +++ b/dataproc/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-dataproc' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-dataproc" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-dataproc-doc' +htmlhelp_basename = "google-cloud-dataproc-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-dataproc.tex', - u'google-cloud-dataproc Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-dataproc.tex", + u"google-cloud-dataproc Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-dataproc', - u'google-cloud-dataproc Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-dataproc", + u"google-cloud-dataproc Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-dataproc', - u'google-cloud-dataproc Documentation', author, 'google-cloud-dataproc', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-dataproc", + u"google-cloud-dataproc Documentation", + author, + "google-cloud-dataproc", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/dataproc/google/__init__.py b/dataproc/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/dataproc/google/__init__.py +++ b/dataproc/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/dataproc/google/cloud/__init__.py b/dataproc/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/dataproc/google/cloud/__init__.py +++ b/dataproc/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/dataproc/google/cloud/dataproc.py b/dataproc/google/cloud/dataproc.py index c064373670d2..f707c5fad6d4 100644 --- a/dataproc/google/cloud/dataproc.py +++ b/dataproc/google/cloud/dataproc.py @@ -23,9 +23,9 @@ from google.cloud.dataproc_v1 import types __all__ = ( - 'enums', - 'types', - 'ClusterControllerClient', - 'JobControllerClient', - 'WorkflowTemplateServiceClient', + "enums", + "types", + "ClusterControllerClient", + "JobControllerClient", + "WorkflowTemplateServiceClient", ) diff --git a/dataproc/google/cloud/dataproc_v1/__init__.py b/dataproc/google/cloud/dataproc_v1/__init__.py index 24ef51068a20..ca1bd76e31ce 100644 --- a/dataproc/google/cloud/dataproc_v1/__init__.py +++ b/dataproc/google/cloud/dataproc_v1/__init__.py @@ -23,8 +23,7 @@ from google.cloud.dataproc_v1.gapic import workflow_template_service_client -class ClusterControllerClient( - cluster_controller_client.ClusterControllerClient): +class ClusterControllerClient(cluster_controller_client.ClusterControllerClient): __doc__ = cluster_controller_client.ClusterControllerClient.__doc__ enums = enums @@ -35,15 +34,16 @@ class JobControllerClient(job_controller_client.JobControllerClient): class WorkflowTemplateServiceClient( - workflow_template_service_client.WorkflowTemplateServiceClient): + workflow_template_service_client.WorkflowTemplateServiceClient +): __doc__ = workflow_template_service_client.WorkflowTemplateServiceClient.__doc__ enums = enums __all__ = ( - 'enums', - 'types', - 'ClusterControllerClient', - 'JobControllerClient', - 'WorkflowTemplateServiceClient', + "enums", + "types", + "ClusterControllerClient", + "JobControllerClient", + "WorkflowTemplateServiceClient", ) diff --git a/dataproc/google/cloud/dataproc_v1/gapic/cluster_controller_client.py b/dataproc/google/cloud/dataproc_v1/gapic/cluster_controller_client.py index 27ca50511481..a9d3bd782a27 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/cluster_controller_client.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/cluster_controller_client.py @@ -40,8 +40,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-dataproc', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-dataproc").version class ClusterControllerClient(object): @@ -50,12 +49,12 @@ class ClusterControllerClient(object): of Compute Engine instances. """ - SERVICE_ADDRESS = 'dataproc.googleapis.com:443' + SERVICE_ADDRESS = "dataproc.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.dataproc.v1.ClusterController' + _INTERFACE_NAME = "google.cloud.dataproc.v1.ClusterController" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -71,19 +70,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ClusterControllerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -117,18 +117,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = cluster_controller_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -137,25 +138,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=cluster_controller_grpc_transport. - ClusterControllerGrpcTransport, + default_class=cluster_controller_grpc_transport.ClusterControllerGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = cluster_controller_grpc_transport.ClusterControllerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -165,7 +165,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -174,14 +175,16 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_cluster(self, - project_id, - region, - cluster, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_cluster( + self, + project_id, + region, + cluster, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a cluster in a project. @@ -249,24 +252,22 @@ def create_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_cluster' not in self._inner_api_calls: + if "create_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'create_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_cluster, - default_retry=self._method_configs['CreateCluster'].retry, - default_timeout=self._method_configs['CreateCluster']. - timeout, - client_info=self._client_info, - ) + "create_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_cluster, + default_retry=self._method_configs["CreateCluster"].retry, + default_timeout=self._method_configs["CreateCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.CreateClusterRequest( - project_id=project_id, - region=region, - cluster=cluster, - request_id=request_id, + project_id=project_id, region=region, cluster=cluster, request_id=request_id + ) + operation = self._inner_api_calls["create_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['create_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -274,17 +275,19 @@ def create_cluster(self, metadata_type=proto_operations_pb2.ClusterOperationMetadata, ) - def update_cluster(self, - project_id, - region, - cluster_name, - cluster, - update_mask, - graceful_decommission_timeout=None, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_cluster( + self, + project_id, + region, + cluster_name, + cluster, + update_mask, + graceful_decommission_timeout=None, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a cluster in a project. @@ -413,15 +416,15 @@ def update_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_cluster' not in self._inner_api_calls: + if "update_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'update_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_cluster, - default_retry=self._method_configs['UpdateCluster'].retry, - default_timeout=self._method_configs['UpdateCluster']. - timeout, - client_info=self._client_info, - ) + "update_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_cluster, + default_retry=self._method_configs["UpdateCluster"].retry, + default_timeout=self._method_configs["UpdateCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.UpdateClusterRequest( project_id=project_id, @@ -432,8 +435,9 @@ def update_cluster(self, graceful_decommission_timeout=graceful_decommission_timeout, request_id=request_id, ) - operation = self._inner_api_calls['update_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["update_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -441,15 +445,17 @@ def update_cluster(self, metadata_type=proto_operations_pb2.ClusterOperationMetadata, ) - def delete_cluster(self, - project_id, - region, - cluster_name, - cluster_uuid=None, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_cluster( + self, + project_id, + region, + cluster_name, + cluster_uuid=None, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a cluster in a project. @@ -516,15 +522,15 @@ def delete_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_cluster' not in self._inner_api_calls: + if "delete_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_cluster, - default_retry=self._method_configs['DeleteCluster'].retry, - default_timeout=self._method_configs['DeleteCluster']. - timeout, - client_info=self._client_info, - ) + "delete_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_cluster, + default_retry=self._method_configs["DeleteCluster"].retry, + default_timeout=self._method_configs["DeleteCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.DeleteClusterRequest( project_id=project_id, @@ -533,8 +539,9 @@ def delete_cluster(self, cluster_uuid=cluster_uuid, request_id=request_id, ) - operation = self._inner_api_calls['delete_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["delete_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -542,13 +549,15 @@ def delete_cluster(self, metadata_type=proto_operations_pb2.ClusterOperationMetadata, ) - def get_cluster(self, - project_id, - region, - cluster_name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_cluster( + self, + project_id, + region, + cluster_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the resource representation for a cluster in a project. @@ -593,31 +602,33 @@ def get_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_cluster' not in self._inner_api_calls: + if "get_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'get_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_cluster, - default_retry=self._method_configs['GetCluster'].retry, - default_timeout=self._method_configs['GetCluster'].timeout, - client_info=self._client_info, - ) + "get_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_cluster, + default_retry=self._method_configs["GetCluster"].retry, + default_timeout=self._method_configs["GetCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.GetClusterRequest( - project_id=project_id, - region=region, - cluster_name=cluster_name, + project_id=project_id, region=region, cluster_name=cluster_name ) - return self._inner_api_calls['get_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_clusters(self, - project_id, - region, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["get_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_clusters( + self, + project_id, + region, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all regions/{region}/clusters in a project. @@ -698,43 +709,43 @@ def list_clusters(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_clusters' not in self._inner_api_calls: + if "list_clusters" not in self._inner_api_calls: self._inner_api_calls[ - 'list_clusters'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_clusters, - default_retry=self._method_configs['ListClusters'].retry, - default_timeout=self._method_configs['ListClusters']. - timeout, - client_info=self._client_info, - ) + "list_clusters" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_clusters, + default_retry=self._method_configs["ListClusters"].retry, + default_timeout=self._method_configs["ListClusters"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.ListClustersRequest( - project_id=project_id, - region=region, - filter=filter_, - page_size=page_size, + project_id=project_id, region=region, filter=filter_, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_clusters'], + self._inner_api_calls["list_clusters"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='clusters', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="clusters", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def diagnose_cluster(self, - project_id, - region, - cluster_name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def diagnose_cluster( + self, + project_id, + region, + cluster_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets cluster diagnostic information. After the operation completes, the Operation.response field contains ``DiagnoseClusterOutputLocation``. @@ -789,24 +800,22 @@ def diagnose_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'diagnose_cluster' not in self._inner_api_calls: + if "diagnose_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'diagnose_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.diagnose_cluster, - default_retry=self._method_configs['DiagnoseCluster']. - retry, - default_timeout=self._method_configs['DiagnoseCluster']. - timeout, - client_info=self._client_info, - ) + "diagnose_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.diagnose_cluster, + default_retry=self._method_configs["DiagnoseCluster"].retry, + default_timeout=self._method_configs["DiagnoseCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.DiagnoseClusterRequest( - project_id=project_id, - region=region, - cluster_name=cluster_name, + project_id=project_id, region=region, cluster_name=cluster_name + ) + operation = self._inner_api_calls["diagnose_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['diagnose_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/dataproc/google/cloud/dataproc_v1/gapic/cluster_controller_client_config.py b/dataproc/google/cloud/dataproc_v1/gapic/cluster_controller_client_config.py index 2662bba0fc7f..02c0cb49d099 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/cluster_controller_client_config.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/cluster_controller_client_config.py @@ -3,7 +3,7 @@ "google.cloud.dataproc.v1.ClusterController": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"], - "non_idempotent": ["UNAVAILABLE"] + "non_idempotent": ["UNAVAILABLE"], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 10000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 10000, - "total_timeout_millis": 300000 + "total_timeout_millis": 300000, } }, "methods": { "CreateCluster": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateCluster": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteCluster": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetCluster": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListClusters": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DiagnoseCluster": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/dataproc/google/cloud/dataproc_v1/gapic/enums.py b/dataproc/google/cloud/dataproc_v1/gapic/enums.py index 65f776eaeca9..0b68e1fdeaf6 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/enums.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/enums.py @@ -31,6 +31,7 @@ class State(enum.IntEnum): DELETING (int): The cluster is being deleted. It cannot be used. UPDATING (int): The cluster is being updated. It continues to accept and process jobs. """ + UNKNOWN = 0 CREATING = 1 RUNNING = 2 @@ -54,6 +55,7 @@ class Substate(enum.IntEnum): Applies to RUNNING state. """ + UNSPECIFIED = 0 UNHEALTHY = 1 STALE_STATUS = 2 @@ -77,6 +79,7 @@ class Level(enum.IntEnum): FATAL (int): Use FATAL level for log4j. OFF (int): Turn off log4j. """ + LEVEL_UNSPECIFIED = 0 ALL = 1 TRACE = 2 @@ -110,6 +113,7 @@ class State(enum.IntEnum): Applies to restartable jobs only. """ + STATE_UNSPECIFIED = 0 PENDING = 1 SETUP_DONE = 8 @@ -141,6 +145,7 @@ class Substate(enum.IntEnum): Applies to RUNNING state. """ + UNSPECIFIED = 0 SUBMITTED = 1 QUEUED = 2 @@ -164,6 +169,7 @@ class State(enum.IntEnum): FAILED (int): Status is FAILED. KILLED (int): Status is KILLED. """ + STATE_UNSPECIFIED = 0 NEW = 1 NEW_SAVING = 2 @@ -186,6 +192,7 @@ class JobStateMatcher(enum.IntEnum): CANCEL\_PENDING. NON_ACTIVE (int): Only match jobs in terminal states: CANCELLED, DONE, or ERROR. """ + ALL = 0 ACTIVE = 1 NON_ACTIVE = 2 @@ -202,6 +209,7 @@ class State(enum.IntEnum): RUNNING (int): The operation is running. DONE (int): The operation is done; either cancelled or completed. """ + UNKNOWN = 0 PENDING = 1 RUNNING = 2 @@ -219,6 +227,7 @@ class State(enum.IntEnum): RUNNING (int): The operation is running. DONE (int): The operation is done; either cancelled or completed. """ + UNKNOWN = 0 PENDING = 1 RUNNING = 2 @@ -239,6 +248,7 @@ class NodeState(enum.IntEnum): FAILED (int): The node failed. A node can be marked FAILED because its ancestor or peer failed. """ + NODE_STATE_UNSPECIFIED = 0 BLOCKED = 1 RUNNABLE = 2 diff --git a/dataproc/google/cloud/dataproc_v1/gapic/job_controller_client.py b/dataproc/google/cloud/dataproc_v1/gapic/job_controller_client.py index 47b1c3579572..1e821e7b4c86 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/job_controller_client.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/job_controller_client.py @@ -40,19 +40,18 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-dataproc', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-dataproc").version class JobControllerClient(object): """The JobController provides methods to manage jobs.""" - SERVICE_ADDRESS = 'dataproc.googleapis.com:443' + SERVICE_ADDRESS = "dataproc.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.dataproc.v1.JobController' + _INTERFACE_NAME = "google.cloud.dataproc.v1.JobController" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -68,19 +67,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: JobControllerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -114,18 +114,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = job_controller_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -134,25 +135,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=job_controller_grpc_transport. - JobControllerGrpcTransport, + default_class=job_controller_grpc_transport.JobControllerGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = job_controller_grpc_transport.JobControllerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -162,7 +162,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -171,14 +172,16 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def submit_job(self, - project_id, - region, - job, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def submit_job( + self, + project_id, + region, + job, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Submits a job to a cluster. @@ -236,31 +239,32 @@ def submit_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'submit_job' not in self._inner_api_calls: + if "submit_job" not in self._inner_api_calls: self._inner_api_calls[ - 'submit_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.submit_job, - default_retry=self._method_configs['SubmitJob'].retry, - default_timeout=self._method_configs['SubmitJob'].timeout, - client_info=self._client_info, - ) + "submit_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.submit_job, + default_retry=self._method_configs["SubmitJob"].retry, + default_timeout=self._method_configs["SubmitJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.SubmitJobRequest( - project_id=project_id, - region=region, - job=job, - request_id=request_id, + project_id=project_id, region=region, job=job, request_id=request_id + ) + return self._inner_api_calls["submit_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['submit_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_job(self, - project_id, - region, - job_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_job( + self, + project_id, + region, + job_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the resource representation for a job in a project. @@ -305,33 +309,35 @@ def get_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_job' not in self._inner_api_calls: + if "get_job" not in self._inner_api_calls: self._inner_api_calls[ - 'get_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_job, - default_retry=self._method_configs['GetJob'].retry, - default_timeout=self._method_configs['GetJob'].timeout, - client_info=self._client_info, - ) + "get_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_job, + default_retry=self._method_configs["GetJob"].retry, + default_timeout=self._method_configs["GetJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.GetJobRequest( - project_id=project_id, - region=region, - job_id=job_id, + project_id=project_id, region=region, job_id=job_id + ) + return self._inner_api_calls["get_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['get_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_jobs(self, - project_id, - region, - page_size=None, - cluster_name=None, - job_state_matcher=None, - filter_=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def list_jobs( + self, + project_id, + region, + page_size=None, + cluster_name=None, + job_state_matcher=None, + filter_=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists regions/{region}/jobs in a project. @@ -412,14 +418,15 @@ def list_jobs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_jobs' not in self._inner_api_calls: + if "list_jobs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_jobs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_jobs, - default_retry=self._method_configs['ListJobs'].retry, - default_timeout=self._method_configs['ListJobs'].timeout, - client_info=self._client_info, - ) + "list_jobs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_jobs, + default_retry=self._method_configs["ListJobs"].retry, + default_timeout=self._method_configs["ListJobs"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.ListJobsRequest( project_id=project_id, @@ -432,26 +439,29 @@ def list_jobs(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_jobs'], + self._inner_api_calls["list_jobs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='jobs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="jobs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def update_job(self, - project_id, - region, - job_id, - job, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_job( + self, + project_id, + region, + job_id, + job, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a job in a project. @@ -514,14 +524,15 @@ def update_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_job' not in self._inner_api_calls: + if "update_job" not in self._inner_api_calls: self._inner_api_calls[ - 'update_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_job, - default_retry=self._method_configs['UpdateJob'].retry, - default_timeout=self._method_configs['UpdateJob'].timeout, - client_info=self._client_info, - ) + "update_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_job, + default_retry=self._method_configs["UpdateJob"].retry, + default_timeout=self._method_configs["UpdateJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.UpdateJobRequest( project_id=project_id, @@ -530,16 +541,19 @@ def update_job(self, job=job, update_mask=update_mask, ) - return self._inner_api_calls['update_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def cancel_job(self, - project_id, - region, - job_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def cancel_job( + self, + project_id, + region, + job_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Starts a job cancellation request. To access the job resource after cancellation, call @@ -588,30 +602,32 @@ def cancel_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'cancel_job' not in self._inner_api_calls: + if "cancel_job" not in self._inner_api_calls: self._inner_api_calls[ - 'cancel_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.cancel_job, - default_retry=self._method_configs['CancelJob'].retry, - default_timeout=self._method_configs['CancelJob'].timeout, - client_info=self._client_info, - ) + "cancel_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.cancel_job, + default_retry=self._method_configs["CancelJob"].retry, + default_timeout=self._method_configs["CancelJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.CancelJobRequest( - project_id=project_id, - region=region, - job_id=job_id, + project_id=project_id, region=region, job_id=job_id + ) + return self._inner_api_calls["cancel_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['cancel_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_job(self, - project_id, - region, - job_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def delete_job( + self, + project_id, + region, + job_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes the job from the project. If the job is active, the delete fails, and the response returns ``FAILED_PRECONDITION``. @@ -654,19 +670,19 @@ def delete_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_job' not in self._inner_api_calls: + if "delete_job" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_job, - default_retry=self._method_configs['DeleteJob'].retry, - default_timeout=self._method_configs['DeleteJob'].timeout, - client_info=self._client_info, - ) + "delete_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_job, + default_retry=self._method_configs["DeleteJob"].retry, + default_timeout=self._method_configs["DeleteJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.DeleteJobRequest( - project_id=project_id, - region=region, - job_id=job_id, + project_id=project_id, region=region, job_id=job_id + ) + self._inner_api_calls["delete_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['delete_job']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/dataproc/google/cloud/dataproc_v1/gapic/job_controller_client_config.py b/dataproc/google/cloud/dataproc_v1/gapic/job_controller_client_config.py index e9ef06504cc2..7cc7eaba38df 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/job_controller_client_config.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/job_controller_client_config.py @@ -3,7 +3,7 @@ "google.cloud.dataproc.v1.JobController": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"], - "non_idempotent": ["UNAVAILABLE"] + "non_idempotent": ["UNAVAILABLE"], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 30000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 30000, - "total_timeout_millis": 900000 + "total_timeout_millis": 900000, } }, "methods": { "SubmitJob": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetJob": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListJobs": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateJob": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CancelJob": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteJob": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/dataproc/google/cloud/dataproc_v1/gapic/transports/cluster_controller_grpc_transport.py b/dataproc/google/cloud/dataproc_v1/gapic/transports/cluster_controller_grpc_transport.py index c9ce91b99ee0..93e39b64ce3e 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/transports/cluster_controller_grpc_transport.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/transports/cluster_controller_grpc_transport.py @@ -28,14 +28,14 @@ class ClusterControllerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='dataproc.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="dataproc.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,35 +53,30 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'cluster_controller_stub': - clusters_pb2_grpc.ClusterControllerStub(channel), + "cluster_controller_stub": clusters_pb2_grpc.ClusterControllerStub(channel) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='dataproc.googleapis.com:443', - credentials=None): + def create_channel(cls, address="dataproc.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -96,9 +91,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -121,7 +114,7 @@ def create_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].CreateCluster + return self._stubs["cluster_controller_stub"].CreateCluster @property def update_cluster(self): @@ -134,7 +127,7 @@ def update_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].UpdateCluster + return self._stubs["cluster_controller_stub"].UpdateCluster @property def delete_cluster(self): @@ -147,7 +140,7 @@ def delete_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].DeleteCluster + return self._stubs["cluster_controller_stub"].DeleteCluster @property def get_cluster(self): @@ -160,7 +153,7 @@ def get_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].GetCluster + return self._stubs["cluster_controller_stub"].GetCluster @property def list_clusters(self): @@ -173,7 +166,7 @@ def list_clusters(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].ListClusters + return self._stubs["cluster_controller_stub"].ListClusters @property def diagnose_cluster(self): @@ -187,4 +180,4 @@ def diagnose_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].DiagnoseCluster + return self._stubs["cluster_controller_stub"].DiagnoseCluster diff --git a/dataproc/google/cloud/dataproc_v1/gapic/transports/job_controller_grpc_transport.py b/dataproc/google/cloud/dataproc_v1/gapic/transports/job_controller_grpc_transport.py index 77a8e35d2b9e..2237d44c3797 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/transports/job_controller_grpc_transport.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/transports/job_controller_grpc_transport.py @@ -27,14 +27,14 @@ class JobControllerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='dataproc.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="dataproc.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,28 +52,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'job_controller_stub': jobs_pb2_grpc.JobControllerStub(channel), - } + self._stubs = {"job_controller_stub": jobs_pb2_grpc.JobControllerStub(channel)} @classmethod - def create_channel(cls, - address='dataproc.googleapis.com:443', - credentials=None): + def create_channel(cls, address="dataproc.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -88,9 +81,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -113,7 +104,7 @@ def submit_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].SubmitJob + return self._stubs["job_controller_stub"].SubmitJob @property def get_job(self): @@ -126,7 +117,7 @@ def get_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].GetJob + return self._stubs["job_controller_stub"].GetJob @property def list_jobs(self): @@ -139,7 +130,7 @@ def list_jobs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].ListJobs + return self._stubs["job_controller_stub"].ListJobs @property def update_job(self): @@ -152,7 +143,7 @@ def update_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].UpdateJob + return self._stubs["job_controller_stub"].UpdateJob @property def cancel_job(self): @@ -169,7 +160,7 @@ def cancel_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].CancelJob + return self._stubs["job_controller_stub"].CancelJob @property def delete_job(self): @@ -183,4 +174,4 @@ def delete_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].DeleteJob + return self._stubs["job_controller_stub"].DeleteJob diff --git a/dataproc/google/cloud/dataproc_v1/gapic/transports/workflow_template_service_grpc_transport.py b/dataproc/google/cloud/dataproc_v1/gapic/transports/workflow_template_service_grpc_transport.py index 7e4708fb6f71..bdf1c84ed79e 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/transports/workflow_template_service_grpc_transport.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/transports/workflow_template_service_grpc_transport.py @@ -28,14 +28,14 @@ class WorkflowTemplateServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='dataproc.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="dataproc.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,35 +53,32 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'workflow_template_service_stub': - workflow_templates_pb2_grpc.WorkflowTemplateServiceStub(channel), + "workflow_template_service_stub": workflow_templates_pb2_grpc.WorkflowTemplateServiceStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='dataproc.googleapis.com:443', - credentials=None): + def create_channel(cls, address="dataproc.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -96,9 +93,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -121,8 +116,7 @@ def create_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].CreateWorkflowTemplate + return self._stubs["workflow_template_service_stub"].CreateWorkflowTemplate @property def get_workflow_template(self): @@ -138,8 +132,7 @@ def get_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].GetWorkflowTemplate + return self._stubs["workflow_template_service_stub"].GetWorkflowTemplate @property def instantiate_workflow_template(self): @@ -164,8 +157,7 @@ def instantiate_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].InstantiateWorkflowTemplate + return self._stubs["workflow_template_service_stub"].InstantiateWorkflowTemplate @property def instantiate_inline_workflow_template(self): @@ -195,7 +187,8 @@ def instantiate_inline_workflow_template(self): deserialized response object. """ return self._stubs[ - 'workflow_template_service_stub'].InstantiateInlineWorkflowTemplate + "workflow_template_service_stub" + ].InstantiateInlineWorkflowTemplate @property def update_workflow_template(self): @@ -209,8 +202,7 @@ def update_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].UpdateWorkflowTemplate + return self._stubs["workflow_template_service_stub"].UpdateWorkflowTemplate @property def list_workflow_templates(self): @@ -223,8 +215,7 @@ def list_workflow_templates(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].ListWorkflowTemplates + return self._stubs["workflow_template_service_stub"].ListWorkflowTemplates @property def delete_workflow_template(self): @@ -237,5 +228,4 @@ def delete_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].DeleteWorkflowTemplate + return self._stubs["workflow_template_service_stub"].DeleteWorkflowTemplate diff --git a/dataproc/google/cloud/dataproc_v1/gapic/workflow_template_service_client.py b/dataproc/google/cloud/dataproc_v1/gapic/workflow_template_service_client.py index 5e97b4ea6327..25507ea49f75 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/workflow_template_service_client.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/workflow_template_service_client.py @@ -32,7 +32,9 @@ from google.cloud.dataproc_v1.gapic import enums from google.cloud.dataproc_v1.gapic import workflow_template_service_client_config -from google.cloud.dataproc_v1.gapic.transports import workflow_template_service_grpc_transport +from google.cloud.dataproc_v1.gapic.transports import ( + workflow_template_service_grpc_transport, +) from google.cloud.dataproc_v1.proto import clusters_pb2 from google.cloud.dataproc_v1.proto import clusters_pb2_grpc from google.cloud.dataproc_v1.proto import jobs_pb2 @@ -45,8 +47,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-dataproc', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-dataproc").version class WorkflowTemplateServiceClient(object): @@ -55,12 +56,12 @@ class WorkflowTemplateServiceClient(object): Cloud Dataproc API. """ - SERVICE_ADDRESS = 'dataproc.googleapis.com:443' + SERVICE_ADDRESS = "dataproc.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.dataproc.v1.WorkflowTemplateService' + _INTERFACE_NAME = "google.cloud.dataproc.v1.WorkflowTemplateService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -76,9 +77,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: WorkflowTemplateServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -87,27 +87,27 @@ def from_service_account_file(cls, filename, *args, **kwargs): def region_path(cls, project, region): """Return a fully-qualified region string.""" return google.api_core.path_template.expand( - 'projects/{project}/regions/{region}', - project=project, - region=region, + "projects/{project}/regions/{region}", project=project, region=region ) @classmethod def workflow_template_path(cls, project, region, workflow_template): """Return a fully-qualified workflow_template string.""" return google.api_core.path_template.expand( - 'projects/{project}/regions/{region}/workflowTemplates/{workflow_template}', + "projects/{project}/regions/{region}/workflowTemplates/{workflow_template}", project=project, region=region, workflow_template=workflow_template, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -141,18 +141,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = workflow_template_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -161,25 +162,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=workflow_template_service_grpc_transport. - WorkflowTemplateServiceGrpcTransport, + default_class=workflow_template_service_grpc_transport.WorkflowTemplateServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = workflow_template_service_grpc_transport.WorkflowTemplateServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -189,7 +189,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -199,12 +200,13 @@ def __init__(self, # Service calls def create_workflow_template( - self, - parent, - template, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + template, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates new workflow template. @@ -248,30 +250,31 @@ def create_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_workflow_template' not in self._inner_api_calls: + if "create_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'create_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_workflow_template, - default_retry=self. - _method_configs['CreateWorkflowTemplate'].retry, - default_timeout=self. - _method_configs['CreateWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "create_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_workflow_template, + default_retry=self._method_configs["CreateWorkflowTemplate"].retry, + default_timeout=self._method_configs["CreateWorkflowTemplate"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.CreateWorkflowTemplateRequest( - parent=parent, - template=template, + parent=parent, template=template + ) + return self._inner_api_calls["create_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_workflow_template(self, - name, - version=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_workflow_template( + self, + name, + version=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Retrieves the latest workflow template. @@ -315,33 +318,33 @@ def get_workflow_template(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_workflow_template' not in self._inner_api_calls: + if "get_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'get_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_workflow_template, - default_retry=self._method_configs['GetWorkflowTemplate']. - retry, - default_timeout=self. - _method_configs['GetWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "get_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_workflow_template, + default_retry=self._method_configs["GetWorkflowTemplate"].retry, + default_timeout=self._method_configs["GetWorkflowTemplate"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.GetWorkflowTemplateRequest( - name=name, - version=version, + name=name, version=version + ) + return self._inner_api_calls["get_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['get_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) def instantiate_workflow_template( - self, - name, - version=None, - request_id=None, - parameters=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + version=None, + request_id=None, + parameters=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Instantiates a template and begins execution. @@ -416,25 +419,24 @@ def instantiate_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'instantiate_workflow_template' not in self._inner_api_calls: + if "instantiate_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'instantiate_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.instantiate_workflow_template, - default_retry=self. - _method_configs['InstantiateWorkflowTemplate'].retry, - default_timeout=self. - _method_configs['InstantiateWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "instantiate_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.instantiate_workflow_template, + default_retry=self._method_configs["InstantiateWorkflowTemplate"].retry, + default_timeout=self._method_configs[ + "InstantiateWorkflowTemplate" + ].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.InstantiateWorkflowTemplateRequest( - name=name, - version=version, - request_id=request_id, - parameters=parameters, + name=name, version=version, request_id=request_id, parameters=parameters + ) + operation = self._inner_api_calls["instantiate_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['instantiate_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -443,13 +445,14 @@ def instantiate_workflow_template( ) def instantiate_inline_workflow_template( - self, - parent, - template, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + template, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Instantiates a template and begins execution. @@ -527,25 +530,26 @@ def instantiate_inline_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'instantiate_inline_workflow_template' not in self._inner_api_calls: + if "instantiate_inline_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'instantiate_inline_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.instantiate_inline_workflow_template, - default_retry=self. - _method_configs['InstantiateInlineWorkflowTemplate'].retry, - default_timeout=self._method_configs[ - 'InstantiateInlineWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "instantiate_inline_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.instantiate_inline_workflow_template, + default_retry=self._method_configs[ + "InstantiateInlineWorkflowTemplate" + ].retry, + default_timeout=self._method_configs[ + "InstantiateInlineWorkflowTemplate" + ].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.InstantiateInlineWorkflowTemplateRequest( - parent=parent, - template=template, - request_id=request_id, + parent=parent, template=template, request_id=request_id + ) + operation = self._inner_api_calls["instantiate_inline_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls[ - 'instantiate_inline_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -554,11 +558,12 @@ def instantiate_inline_workflow_template( ) def update_workflow_template( - self, - template, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + template, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates (replaces) workflow template. The updated template must contain version that matches the current server version. @@ -600,29 +605,31 @@ def update_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_workflow_template' not in self._inner_api_calls: + if "update_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'update_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_workflow_template, - default_retry=self. - _method_configs['UpdateWorkflowTemplate'].retry, - default_timeout=self. - _method_configs['UpdateWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "update_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_workflow_template, + default_retry=self._method_configs["UpdateWorkflowTemplate"].retry, + default_timeout=self._method_configs["UpdateWorkflowTemplate"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.UpdateWorkflowTemplateRequest( - template=template, ) - return self._inner_api_calls['update_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) + template=template + ) + return self._inner_api_calls["update_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def list_workflow_templates( - self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists workflows that match the specified filter in the request. @@ -679,42 +686,42 @@ def list_workflow_templates( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_workflow_templates' not in self._inner_api_calls: + if "list_workflow_templates" not in self._inner_api_calls: self._inner_api_calls[ - 'list_workflow_templates'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_workflow_templates, - default_retry=self. - _method_configs['ListWorkflowTemplates'].retry, - default_timeout=self. - _method_configs['ListWorkflowTemplates'].timeout, - client_info=self._client_info, - ) + "list_workflow_templates" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_workflow_templates, + default_retry=self._method_configs["ListWorkflowTemplates"].retry, + default_timeout=self._method_configs["ListWorkflowTemplates"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.ListWorkflowTemplatesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_workflow_templates'], + self._inner_api_calls["list_workflow_templates"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='templates', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="templates", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def delete_workflow_template( - self, - name, - version=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + version=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a workflow template. It does not cancel in-progress workflows. @@ -751,20 +758,19 @@ def delete_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_workflow_template' not in self._inner_api_calls: + if "delete_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_workflow_template, - default_retry=self. - _method_configs['DeleteWorkflowTemplate'].retry, - default_timeout=self. - _method_configs['DeleteWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "delete_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_workflow_template, + default_retry=self._method_configs["DeleteWorkflowTemplate"].retry, + default_timeout=self._method_configs["DeleteWorkflowTemplate"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.DeleteWorkflowTemplateRequest( - name=name, - version=version, + name=name, version=version + ) + self._inner_api_calls["delete_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['delete_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/dataproc/google/cloud/dataproc_v1/gapic/workflow_template_service_client_config.py b/dataproc/google/cloud/dataproc_v1/gapic/workflow_template_service_client_config.py index 92ab51c80e83..65b6260b5801 100644 --- a/dataproc/google/cloud/dataproc_v1/gapic/workflow_template_service_client_config.py +++ b/dataproc/google/cloud/dataproc_v1/gapic/workflow_template_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.dataproc.v1.WorkflowTemplateService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"], - "non_idempotent": ["UNAVAILABLE"] + "non_idempotent": ["UNAVAILABLE"], }, "retry_params": { "default": { @@ -13,46 +13,46 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "CreateWorkflowTemplate": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "InstantiateWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "InstantiateInlineWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListWorkflowTemplates": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/dataproc/google/cloud/dataproc_v1/types.py b/dataproc/google/cloud/dataproc_v1/types.py index 622ae092c754..b28e8d27ffcf 100644 --- a/dataproc/google/cloud/dataproc_v1/types.py +++ b/dataproc/google/cloud/dataproc_v1/types.py @@ -45,12 +45,7 @@ status_pb2, ] -_local_modules = [ - clusters_pb2, - jobs_pb2, - proto_operations_pb2, - workflow_templates_pb2, -] +_local_modules = [clusters_pb2, jobs_pb2, proto_operations_pb2, workflow_templates_pb2] names = [] @@ -60,7 +55,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.dataproc_v1.types' + message.__module__ = "google.cloud.dataproc_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/dataproc/google/cloud/dataproc_v1beta2/__init__.py b/dataproc/google/cloud/dataproc_v1beta2/__init__.py index 7782e09e43d2..0eccd560ddbc 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/__init__.py +++ b/dataproc/google/cloud/dataproc_v1beta2/__init__.py @@ -23,8 +23,7 @@ from google.cloud.dataproc_v1beta2.gapic import workflow_template_service_client -class ClusterControllerClient( - cluster_controller_client.ClusterControllerClient): +class ClusterControllerClient(cluster_controller_client.ClusterControllerClient): __doc__ = cluster_controller_client.ClusterControllerClient.__doc__ enums = enums @@ -35,15 +34,16 @@ class JobControllerClient(job_controller_client.JobControllerClient): class WorkflowTemplateServiceClient( - workflow_template_service_client.WorkflowTemplateServiceClient): + workflow_template_service_client.WorkflowTemplateServiceClient +): __doc__ = workflow_template_service_client.WorkflowTemplateServiceClient.__doc__ enums = enums __all__ = ( - 'enums', - 'types', - 'ClusterControllerClient', - 'JobControllerClient', - 'WorkflowTemplateServiceClient', + "enums", + "types", + "ClusterControllerClient", + "JobControllerClient", + "WorkflowTemplateServiceClient", ) diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/cluster_controller_client.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/cluster_controller_client.py index 6c34d44e57ed..56074d1e7ed2 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/cluster_controller_client.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/cluster_controller_client.py @@ -31,7 +31,9 @@ from google.cloud.dataproc_v1beta2.gapic import cluster_controller_client_config from google.cloud.dataproc_v1beta2.gapic import enums -from google.cloud.dataproc_v1beta2.gapic.transports import cluster_controller_grpc_transport +from google.cloud.dataproc_v1beta2.gapic.transports import ( + cluster_controller_grpc_transport, +) from google.cloud.dataproc_v1beta2.proto import clusters_pb2 from google.cloud.dataproc_v1beta2.proto import clusters_pb2_grpc from google.cloud.dataproc_v1beta2.proto import operations_pb2 as proto_operations_pb2 @@ -40,8 +42,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-dataproc', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-dataproc").version class ClusterControllerClient(object): @@ -50,12 +51,12 @@ class ClusterControllerClient(object): of Compute Engine instances. """ - SERVICE_ADDRESS = 'dataproc.googleapis.com:443' + SERVICE_ADDRESS = "dataproc.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.dataproc.v1beta2.ClusterController' + _INTERFACE_NAME = "google.cloud.dataproc.v1beta2.ClusterController" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -71,19 +72,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ClusterControllerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -117,18 +119,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = cluster_controller_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -137,25 +140,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=cluster_controller_grpc_transport. - ClusterControllerGrpcTransport, + default_class=cluster_controller_grpc_transport.ClusterControllerGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = cluster_controller_grpc_transport.ClusterControllerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -165,7 +167,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -174,14 +177,16 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_cluster(self, - project_id, - region, - cluster, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_cluster( + self, + project_id, + region, + cluster, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a cluster in a project. @@ -249,24 +254,22 @@ def create_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_cluster' not in self._inner_api_calls: + if "create_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'create_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_cluster, - default_retry=self._method_configs['CreateCluster'].retry, - default_timeout=self._method_configs['CreateCluster']. - timeout, - client_info=self._client_info, - ) + "create_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_cluster, + default_retry=self._method_configs["CreateCluster"].retry, + default_timeout=self._method_configs["CreateCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.CreateClusterRequest( - project_id=project_id, - region=region, - cluster=cluster, - request_id=request_id, + project_id=project_id, region=region, cluster=cluster, request_id=request_id + ) + operation = self._inner_api_calls["create_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['create_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -274,17 +277,19 @@ def create_cluster(self, metadata_type=proto_operations_pb2.ClusterOperationMetadata, ) - def update_cluster(self, - project_id, - region, - cluster_name, - cluster, - update_mask, - graceful_decommission_timeout=None, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_cluster( + self, + project_id, + region, + cluster_name, + cluster, + update_mask, + graceful_decommission_timeout=None, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a cluster in a project. @@ -413,15 +418,15 @@ def update_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_cluster' not in self._inner_api_calls: + if "update_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'update_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_cluster, - default_retry=self._method_configs['UpdateCluster'].retry, - default_timeout=self._method_configs['UpdateCluster']. - timeout, - client_info=self._client_info, - ) + "update_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_cluster, + default_retry=self._method_configs["UpdateCluster"].retry, + default_timeout=self._method_configs["UpdateCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.UpdateClusterRequest( project_id=project_id, @@ -432,8 +437,9 @@ def update_cluster(self, graceful_decommission_timeout=graceful_decommission_timeout, request_id=request_id, ) - operation = self._inner_api_calls['update_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["update_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -441,15 +447,17 @@ def update_cluster(self, metadata_type=proto_operations_pb2.ClusterOperationMetadata, ) - def delete_cluster(self, - project_id, - region, - cluster_name, - cluster_uuid=None, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_cluster( + self, + project_id, + region, + cluster_name, + cluster_uuid=None, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a cluster in a project. @@ -516,15 +524,15 @@ def delete_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_cluster' not in self._inner_api_calls: + if "delete_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_cluster, - default_retry=self._method_configs['DeleteCluster'].retry, - default_timeout=self._method_configs['DeleteCluster']. - timeout, - client_info=self._client_info, - ) + "delete_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_cluster, + default_retry=self._method_configs["DeleteCluster"].retry, + default_timeout=self._method_configs["DeleteCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.DeleteClusterRequest( project_id=project_id, @@ -533,8 +541,9 @@ def delete_cluster(self, cluster_uuid=cluster_uuid, request_id=request_id, ) - operation = self._inner_api_calls['delete_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["delete_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -542,13 +551,15 @@ def delete_cluster(self, metadata_type=proto_operations_pb2.ClusterOperationMetadata, ) - def get_cluster(self, - project_id, - region, - cluster_name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_cluster( + self, + project_id, + region, + cluster_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the resource representation for a cluster in a project. @@ -593,31 +604,33 @@ def get_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_cluster' not in self._inner_api_calls: + if "get_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'get_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_cluster, - default_retry=self._method_configs['GetCluster'].retry, - default_timeout=self._method_configs['GetCluster'].timeout, - client_info=self._client_info, - ) + "get_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_cluster, + default_retry=self._method_configs["GetCluster"].retry, + default_timeout=self._method_configs["GetCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.GetClusterRequest( - project_id=project_id, - region=region, - cluster_name=cluster_name, + project_id=project_id, region=region, cluster_name=cluster_name ) - return self._inner_api_calls['get_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_clusters(self, - project_id, - region, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["get_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_clusters( + self, + project_id, + region, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all regions/{region}/clusters in a project. @@ -698,43 +711,43 @@ def list_clusters(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_clusters' not in self._inner_api_calls: + if "list_clusters" not in self._inner_api_calls: self._inner_api_calls[ - 'list_clusters'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_clusters, - default_retry=self._method_configs['ListClusters'].retry, - default_timeout=self._method_configs['ListClusters']. - timeout, - client_info=self._client_info, - ) + "list_clusters" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_clusters, + default_retry=self._method_configs["ListClusters"].retry, + default_timeout=self._method_configs["ListClusters"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.ListClustersRequest( - project_id=project_id, - region=region, - filter=filter_, - page_size=page_size, + project_id=project_id, region=region, filter=filter_, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_clusters'], + self._inner_api_calls["list_clusters"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='clusters', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="clusters", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def diagnose_cluster(self, - project_id, - region, - cluster_name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def diagnose_cluster( + self, + project_id, + region, + cluster_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets cluster diagnostic information. After the operation completes, the Operation.response field contains ``DiagnoseClusterOutputLocation``. @@ -789,24 +802,22 @@ def diagnose_cluster(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'diagnose_cluster' not in self._inner_api_calls: + if "diagnose_cluster" not in self._inner_api_calls: self._inner_api_calls[ - 'diagnose_cluster'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.diagnose_cluster, - default_retry=self._method_configs['DiagnoseCluster']. - retry, - default_timeout=self._method_configs['DiagnoseCluster']. - timeout, - client_info=self._client_info, - ) + "diagnose_cluster" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.diagnose_cluster, + default_retry=self._method_configs["DiagnoseCluster"].retry, + default_timeout=self._method_configs["DiagnoseCluster"].timeout, + client_info=self._client_info, + ) request = clusters_pb2.DiagnoseClusterRequest( - project_id=project_id, - region=region, - cluster_name=cluster_name, + project_id=project_id, region=region, cluster_name=cluster_name + ) + operation = self._inner_api_calls["diagnose_cluster"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['diagnose_cluster']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/cluster_controller_client_config.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/cluster_controller_client_config.py index b60faec126b4..e551c9299161 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/cluster_controller_client_config.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/cluster_controller_client_config.py @@ -3,7 +3,7 @@ "google.cloud.dataproc.v1beta2.ClusterController": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"], - "non_idempotent": ["UNAVAILABLE"] + "non_idempotent": ["UNAVAILABLE"], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 10000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 10000, - "total_timeout_millis": 300000 + "total_timeout_millis": 300000, } }, "methods": { "CreateCluster": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateCluster": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteCluster": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetCluster": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListClusters": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DiagnoseCluster": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/enums.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/enums.py index c1a4de2b21df..fe2623123239 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/enums.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/enums.py @@ -31,6 +31,7 @@ class State(enum.IntEnum): DELETING (int): The cluster is being deleted. It cannot be used. UPDATING (int): The cluster is being updated. It continues to accept and process jobs. """ + UNKNOWN = 0 CREATING = 1 RUNNING = 2 @@ -54,6 +55,7 @@ class Substate(enum.IntEnum): Applies to RUNNING state. """ + UNSPECIFIED = 0 UNHEALTHY = 1 STALE_STATUS = 2 @@ -77,6 +79,7 @@ class Level(enum.IntEnum): FATAL (int): Use FATAL level for log4j. OFF (int): Turn off log4j. """ + LEVEL_UNSPECIFIED = 0 ALL = 1 TRACE = 2 @@ -110,6 +113,7 @@ class State(enum.IntEnum): Applies to restartable jobs only. """ + STATE_UNSPECIFIED = 0 PENDING = 1 SETUP_DONE = 8 @@ -141,6 +145,7 @@ class Substate(enum.IntEnum): Applies to RUNNING state. """ + UNSPECIFIED = 0 SUBMITTED = 1 QUEUED = 2 @@ -164,6 +169,7 @@ class State(enum.IntEnum): FAILED (int): Status is FAILED. KILLED (int): Status is KILLED. """ + STATE_UNSPECIFIED = 0 NEW = 1 NEW_SAVING = 2 @@ -186,6 +192,7 @@ class JobStateMatcher(enum.IntEnum): CANCEL\_PENDING. NON_ACTIVE (int): Only match jobs in terminal states: CANCELLED, DONE, or ERROR. """ + ALL = 0 ACTIVE = 1 NON_ACTIVE = 2 @@ -202,6 +209,7 @@ class State(enum.IntEnum): RUNNING (int): The operation is running. DONE (int): The operation is done; either cancelled or completed. """ + UNKNOWN = 0 PENDING = 1 RUNNING = 2 @@ -219,6 +227,7 @@ class State(enum.IntEnum): RUNNING (int): The operation is running. DONE (int): The operation is done; either cancelled or completed. """ + UNKNOWN = 0 PENDING = 1 RUNNING = 2 @@ -239,6 +248,7 @@ class NodeState(enum.IntEnum): FAILED (int): The node failed. A node can be marked FAILED because its ancestor or peer failed. """ + NODE_STATUS_UNSPECIFIED = 0 BLOCKED = 1 RUNNABLE = 2 diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/job_controller_client.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/job_controller_client.py index 6f4f2c360a84..3c5402cc9e32 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/job_controller_client.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/job_controller_client.py @@ -40,19 +40,18 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-dataproc', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-dataproc").version class JobControllerClient(object): """The JobController provides methods to manage jobs.""" - SERVICE_ADDRESS = 'dataproc.googleapis.com:443' + SERVICE_ADDRESS = "dataproc.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.dataproc.v1beta2.JobController' + _INTERFACE_NAME = "google.cloud.dataproc.v1beta2.JobController" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -68,19 +67,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: JobControllerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -114,18 +114,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = job_controller_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -134,25 +135,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=job_controller_grpc_transport. - JobControllerGrpcTransport, + default_class=job_controller_grpc_transport.JobControllerGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = job_controller_grpc_transport.JobControllerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -162,7 +162,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -171,14 +172,16 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def submit_job(self, - project_id, - region, - job, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def submit_job( + self, + project_id, + region, + job, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Submits a job to a cluster. @@ -236,31 +239,32 @@ def submit_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'submit_job' not in self._inner_api_calls: + if "submit_job" not in self._inner_api_calls: self._inner_api_calls[ - 'submit_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.submit_job, - default_retry=self._method_configs['SubmitJob'].retry, - default_timeout=self._method_configs['SubmitJob'].timeout, - client_info=self._client_info, - ) + "submit_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.submit_job, + default_retry=self._method_configs["SubmitJob"].retry, + default_timeout=self._method_configs["SubmitJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.SubmitJobRequest( - project_id=project_id, - region=region, - job=job, - request_id=request_id, + project_id=project_id, region=region, job=job, request_id=request_id + ) + return self._inner_api_calls["submit_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['submit_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_job(self, - project_id, - region, - job_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_job( + self, + project_id, + region, + job_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the resource representation for a job in a project. @@ -305,33 +309,35 @@ def get_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_job' not in self._inner_api_calls: + if "get_job" not in self._inner_api_calls: self._inner_api_calls[ - 'get_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_job, - default_retry=self._method_configs['GetJob'].retry, - default_timeout=self._method_configs['GetJob'].timeout, - client_info=self._client_info, - ) + "get_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_job, + default_retry=self._method_configs["GetJob"].retry, + default_timeout=self._method_configs["GetJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.GetJobRequest( - project_id=project_id, - region=region, - job_id=job_id, + project_id=project_id, region=region, job_id=job_id + ) + return self._inner_api_calls["get_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['get_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_jobs(self, - project_id, - region, - page_size=None, - cluster_name=None, - job_state_matcher=None, - filter_=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def list_jobs( + self, + project_id, + region, + page_size=None, + cluster_name=None, + job_state_matcher=None, + filter_=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists regions/{region}/jobs in a project. @@ -412,14 +418,15 @@ def list_jobs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_jobs' not in self._inner_api_calls: + if "list_jobs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_jobs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_jobs, - default_retry=self._method_configs['ListJobs'].retry, - default_timeout=self._method_configs['ListJobs'].timeout, - client_info=self._client_info, - ) + "list_jobs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_jobs, + default_retry=self._method_configs["ListJobs"].retry, + default_timeout=self._method_configs["ListJobs"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.ListJobsRequest( project_id=project_id, @@ -432,26 +439,29 @@ def list_jobs(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_jobs'], + self._inner_api_calls["list_jobs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='jobs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="jobs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def update_job(self, - project_id, - region, - job_id, - job, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_job( + self, + project_id, + region, + job_id, + job, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a job in a project. @@ -514,14 +524,15 @@ def update_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_job' not in self._inner_api_calls: + if "update_job" not in self._inner_api_calls: self._inner_api_calls[ - 'update_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_job, - default_retry=self._method_configs['UpdateJob'].retry, - default_timeout=self._method_configs['UpdateJob'].timeout, - client_info=self._client_info, - ) + "update_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_job, + default_retry=self._method_configs["UpdateJob"].retry, + default_timeout=self._method_configs["UpdateJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.UpdateJobRequest( project_id=project_id, @@ -530,16 +541,19 @@ def update_job(self, job=job, update_mask=update_mask, ) - return self._inner_api_calls['update_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def cancel_job(self, - project_id, - region, - job_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def cancel_job( + self, + project_id, + region, + job_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Starts a job cancellation request. To access the job resource after cancellation, call @@ -588,30 +602,32 @@ def cancel_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'cancel_job' not in self._inner_api_calls: + if "cancel_job" not in self._inner_api_calls: self._inner_api_calls[ - 'cancel_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.cancel_job, - default_retry=self._method_configs['CancelJob'].retry, - default_timeout=self._method_configs['CancelJob'].timeout, - client_info=self._client_info, - ) + "cancel_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.cancel_job, + default_retry=self._method_configs["CancelJob"].retry, + default_timeout=self._method_configs["CancelJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.CancelJobRequest( - project_id=project_id, - region=region, - job_id=job_id, + project_id=project_id, region=region, job_id=job_id + ) + return self._inner_api_calls["cancel_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['cancel_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_job(self, - project_id, - region, - job_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def delete_job( + self, + project_id, + region, + job_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes the job from the project. If the job is active, the delete fails, and the response returns ``FAILED_PRECONDITION``. @@ -654,19 +670,19 @@ def delete_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_job' not in self._inner_api_calls: + if "delete_job" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_job, - default_retry=self._method_configs['DeleteJob'].retry, - default_timeout=self._method_configs['DeleteJob'].timeout, - client_info=self._client_info, - ) + "delete_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_job, + default_retry=self._method_configs["DeleteJob"].retry, + default_timeout=self._method_configs["DeleteJob"].timeout, + client_info=self._client_info, + ) request = jobs_pb2.DeleteJobRequest( - project_id=project_id, - region=region, - job_id=job_id, + project_id=project_id, region=region, job_id=job_id + ) + self._inner_api_calls["delete_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['delete_job']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/job_controller_client_config.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/job_controller_client_config.py index 774373d5d2a3..9bacf1251078 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/job_controller_client_config.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/job_controller_client_config.py @@ -3,7 +3,7 @@ "google.cloud.dataproc.v1beta2.JobController": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"], - "non_idempotent": ["UNAVAILABLE"] + "non_idempotent": ["UNAVAILABLE"], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 30000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 30000, - "total_timeout_millis": 900000 + "total_timeout_millis": 900000, } }, "methods": { "SubmitJob": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetJob": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListJobs": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateJob": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CancelJob": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteJob": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/cluster_controller_grpc_transport.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/cluster_controller_grpc_transport.py index 22bb9da80558..21ffbd1cd26a 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/cluster_controller_grpc_transport.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/cluster_controller_grpc_transport.py @@ -28,14 +28,14 @@ class ClusterControllerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='dataproc.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="dataproc.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,35 +53,30 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'cluster_controller_stub': - clusters_pb2_grpc.ClusterControllerStub(channel), + "cluster_controller_stub": clusters_pb2_grpc.ClusterControllerStub(channel) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='dataproc.googleapis.com:443', - credentials=None): + def create_channel(cls, address="dataproc.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -96,9 +91,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -121,7 +114,7 @@ def create_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].CreateCluster + return self._stubs["cluster_controller_stub"].CreateCluster @property def update_cluster(self): @@ -134,7 +127,7 @@ def update_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].UpdateCluster + return self._stubs["cluster_controller_stub"].UpdateCluster @property def delete_cluster(self): @@ -147,7 +140,7 @@ def delete_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].DeleteCluster + return self._stubs["cluster_controller_stub"].DeleteCluster @property def get_cluster(self): @@ -160,7 +153,7 @@ def get_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].GetCluster + return self._stubs["cluster_controller_stub"].GetCluster @property def list_clusters(self): @@ -173,7 +166,7 @@ def list_clusters(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].ListClusters + return self._stubs["cluster_controller_stub"].ListClusters @property def diagnose_cluster(self): @@ -187,4 +180,4 @@ def diagnose_cluster(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cluster_controller_stub'].DiagnoseCluster + return self._stubs["cluster_controller_stub"].DiagnoseCluster diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/job_controller_grpc_transport.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/job_controller_grpc_transport.py index ddb242ede88e..c527b61a8b91 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/job_controller_grpc_transport.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/job_controller_grpc_transport.py @@ -27,14 +27,14 @@ class JobControllerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='dataproc.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="dataproc.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,28 +52,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'job_controller_stub': jobs_pb2_grpc.JobControllerStub(channel), - } + self._stubs = {"job_controller_stub": jobs_pb2_grpc.JobControllerStub(channel)} @classmethod - def create_channel(cls, - address='dataproc.googleapis.com:443', - credentials=None): + def create_channel(cls, address="dataproc.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -88,9 +81,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -113,7 +104,7 @@ def submit_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].SubmitJob + return self._stubs["job_controller_stub"].SubmitJob @property def get_job(self): @@ -126,7 +117,7 @@ def get_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].GetJob + return self._stubs["job_controller_stub"].GetJob @property def list_jobs(self): @@ -139,7 +130,7 @@ def list_jobs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].ListJobs + return self._stubs["job_controller_stub"].ListJobs @property def update_job(self): @@ -152,7 +143,7 @@ def update_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].UpdateJob + return self._stubs["job_controller_stub"].UpdateJob @property def cancel_job(self): @@ -169,7 +160,7 @@ def cancel_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].CancelJob + return self._stubs["job_controller_stub"].CancelJob @property def delete_job(self): @@ -183,4 +174,4 @@ def delete_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['job_controller_stub'].DeleteJob + return self._stubs["job_controller_stub"].DeleteJob diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/workflow_template_service_grpc_transport.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/workflow_template_service_grpc_transport.py index d55e72b0e7b6..d947b5f526cb 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/workflow_template_service_grpc_transport.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/transports/workflow_template_service_grpc_transport.py @@ -28,14 +28,14 @@ class WorkflowTemplateServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='dataproc.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="dataproc.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,35 +53,32 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'workflow_template_service_stub': - workflow_templates_pb2_grpc.WorkflowTemplateServiceStub(channel), + "workflow_template_service_stub": workflow_templates_pb2_grpc.WorkflowTemplateServiceStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='dataproc.googleapis.com:443', - credentials=None): + def create_channel(cls, address="dataproc.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -96,9 +93,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -121,8 +116,7 @@ def create_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].CreateWorkflowTemplate + return self._stubs["workflow_template_service_stub"].CreateWorkflowTemplate @property def get_workflow_template(self): @@ -138,8 +132,7 @@ def get_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].GetWorkflowTemplate + return self._stubs["workflow_template_service_stub"].GetWorkflowTemplate @property def instantiate_workflow_template(self): @@ -164,8 +157,7 @@ def instantiate_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].InstantiateWorkflowTemplate + return self._stubs["workflow_template_service_stub"].InstantiateWorkflowTemplate @property def instantiate_inline_workflow_template(self): @@ -195,7 +187,8 @@ def instantiate_inline_workflow_template(self): deserialized response object. """ return self._stubs[ - 'workflow_template_service_stub'].InstantiateInlineWorkflowTemplate + "workflow_template_service_stub" + ].InstantiateInlineWorkflowTemplate @property def update_workflow_template(self): @@ -209,8 +202,7 @@ def update_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].UpdateWorkflowTemplate + return self._stubs["workflow_template_service_stub"].UpdateWorkflowTemplate @property def list_workflow_templates(self): @@ -223,8 +215,7 @@ def list_workflow_templates(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].ListWorkflowTemplates + return self._stubs["workflow_template_service_stub"].ListWorkflowTemplates @property def delete_workflow_template(self): @@ -237,5 +228,4 @@ def delete_workflow_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'workflow_template_service_stub'].DeleteWorkflowTemplate + return self._stubs["workflow_template_service_stub"].DeleteWorkflowTemplate diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/workflow_template_service_client.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/workflow_template_service_client.py index 199941ee6971..f070f48a2012 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/workflow_template_service_client.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/workflow_template_service_client.py @@ -32,7 +32,9 @@ from google.cloud.dataproc_v1beta2.gapic import enums from google.cloud.dataproc_v1beta2.gapic import workflow_template_service_client_config -from google.cloud.dataproc_v1beta2.gapic.transports import workflow_template_service_grpc_transport +from google.cloud.dataproc_v1beta2.gapic.transports import ( + workflow_template_service_grpc_transport, +) from google.cloud.dataproc_v1beta2.proto import clusters_pb2 from google.cloud.dataproc_v1beta2.proto import clusters_pb2_grpc from google.cloud.dataproc_v1beta2.proto import jobs_pb2 @@ -45,8 +47,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-dataproc', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-dataproc").version class WorkflowTemplateServiceClient(object): @@ -55,12 +56,12 @@ class WorkflowTemplateServiceClient(object): Cloud Dataproc API. """ - SERVICE_ADDRESS = 'dataproc.googleapis.com:443' + SERVICE_ADDRESS = "dataproc.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.dataproc.v1beta2.WorkflowTemplateService' + _INTERFACE_NAME = "google.cloud.dataproc.v1beta2.WorkflowTemplateService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -76,9 +77,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: WorkflowTemplateServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -87,27 +87,27 @@ def from_service_account_file(cls, filename, *args, **kwargs): def region_path(cls, project, region): """Return a fully-qualified region string.""" return google.api_core.path_template.expand( - 'projects/{project}/regions/{region}', - project=project, - region=region, + "projects/{project}/regions/{region}", project=project, region=region ) @classmethod def workflow_template_path(cls, project, region, workflow_template): """Return a fully-qualified workflow_template string.""" return google.api_core.path_template.expand( - 'projects/{project}/regions/{region}/workflowTemplates/{workflow_template}', + "projects/{project}/regions/{region}/workflowTemplates/{workflow_template}", project=project, region=region, workflow_template=workflow_template, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -141,18 +141,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = workflow_template_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -161,25 +162,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=workflow_template_service_grpc_transport. - WorkflowTemplateServiceGrpcTransport, + default_class=workflow_template_service_grpc_transport.WorkflowTemplateServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = workflow_template_service_grpc_transport.WorkflowTemplateServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -189,7 +189,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -199,12 +200,13 @@ def __init__(self, # Service calls def create_workflow_template( - self, - parent, - template, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + template, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates new workflow template. @@ -248,30 +250,31 @@ def create_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_workflow_template' not in self._inner_api_calls: + if "create_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'create_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_workflow_template, - default_retry=self. - _method_configs['CreateWorkflowTemplate'].retry, - default_timeout=self. - _method_configs['CreateWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "create_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_workflow_template, + default_retry=self._method_configs["CreateWorkflowTemplate"].retry, + default_timeout=self._method_configs["CreateWorkflowTemplate"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.CreateWorkflowTemplateRequest( - parent=parent, - template=template, + parent=parent, template=template + ) + return self._inner_api_calls["create_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_workflow_template(self, - name, - version=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_workflow_template( + self, + name, + version=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Retrieves the latest workflow template. @@ -315,34 +318,34 @@ def get_workflow_template(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_workflow_template' not in self._inner_api_calls: + if "get_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'get_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_workflow_template, - default_retry=self._method_configs['GetWorkflowTemplate']. - retry, - default_timeout=self. - _method_configs['GetWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "get_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_workflow_template, + default_retry=self._method_configs["GetWorkflowTemplate"].retry, + default_timeout=self._method_configs["GetWorkflowTemplate"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.GetWorkflowTemplateRequest( - name=name, - version=version, + name=name, version=version + ) + return self._inner_api_calls["get_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['get_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) def instantiate_workflow_template( - self, - name, - version=None, - instance_id=None, - request_id=None, - parameters=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + version=None, + instance_id=None, + request_id=None, + parameters=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Instantiates a template and begins execution. @@ -418,16 +421,17 @@ def instantiate_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'instantiate_workflow_template' not in self._inner_api_calls: + if "instantiate_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'instantiate_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.instantiate_workflow_template, - default_retry=self. - _method_configs['InstantiateWorkflowTemplate'].retry, - default_timeout=self. - _method_configs['InstantiateWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "instantiate_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.instantiate_workflow_template, + default_retry=self._method_configs["InstantiateWorkflowTemplate"].retry, + default_timeout=self._method_configs[ + "InstantiateWorkflowTemplate" + ].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.InstantiateWorkflowTemplateRequest( name=name, @@ -436,8 +440,9 @@ def instantiate_workflow_template( request_id=request_id, parameters=parameters, ) - operation = self._inner_api_calls['instantiate_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["instantiate_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -446,14 +451,15 @@ def instantiate_workflow_template( ) def instantiate_inline_workflow_template( - self, - parent, - template, - instance_id=None, - request_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + template, + instance_id=None, + request_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Instantiates a template and begins execution. @@ -532,16 +538,19 @@ def instantiate_inline_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'instantiate_inline_workflow_template' not in self._inner_api_calls: + if "instantiate_inline_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'instantiate_inline_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.instantiate_inline_workflow_template, - default_retry=self. - _method_configs['InstantiateInlineWorkflowTemplate'].retry, - default_timeout=self._method_configs[ - 'InstantiateInlineWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "instantiate_inline_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.instantiate_inline_workflow_template, + default_retry=self._method_configs[ + "InstantiateInlineWorkflowTemplate" + ].retry, + default_timeout=self._method_configs[ + "InstantiateInlineWorkflowTemplate" + ].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.InstantiateInlineWorkflowTemplateRequest( parent=parent, @@ -549,9 +558,9 @@ def instantiate_inline_workflow_template( instance_id=instance_id, request_id=request_id, ) - operation = self._inner_api_calls[ - 'instantiate_inline_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["instantiate_inline_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -560,11 +569,12 @@ def instantiate_inline_workflow_template( ) def update_workflow_template( - self, - template, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + template, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates (replaces) workflow template. The updated template must contain version that matches the current server version. @@ -606,29 +616,31 @@ def update_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_workflow_template' not in self._inner_api_calls: + if "update_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'update_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_workflow_template, - default_retry=self. - _method_configs['UpdateWorkflowTemplate'].retry, - default_timeout=self. - _method_configs['UpdateWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "update_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_workflow_template, + default_retry=self._method_configs["UpdateWorkflowTemplate"].retry, + default_timeout=self._method_configs["UpdateWorkflowTemplate"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.UpdateWorkflowTemplateRequest( - template=template, ) - return self._inner_api_calls['update_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) + template=template + ) + return self._inner_api_calls["update_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def list_workflow_templates( - self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists workflows that match the specified filter in the request. @@ -685,42 +697,42 @@ def list_workflow_templates( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_workflow_templates' not in self._inner_api_calls: + if "list_workflow_templates" not in self._inner_api_calls: self._inner_api_calls[ - 'list_workflow_templates'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_workflow_templates, - default_retry=self. - _method_configs['ListWorkflowTemplates'].retry, - default_timeout=self. - _method_configs['ListWorkflowTemplates'].timeout, - client_info=self._client_info, - ) + "list_workflow_templates" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_workflow_templates, + default_retry=self._method_configs["ListWorkflowTemplates"].retry, + default_timeout=self._method_configs["ListWorkflowTemplates"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.ListWorkflowTemplatesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_workflow_templates'], + self._inner_api_calls["list_workflow_templates"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='templates', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="templates", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def delete_workflow_template( - self, - name, - version=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + version=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a workflow template. It does not cancel in-progress workflows. @@ -757,20 +769,19 @@ def delete_workflow_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_workflow_template' not in self._inner_api_calls: + if "delete_workflow_template" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_workflow_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_workflow_template, - default_retry=self. - _method_configs['DeleteWorkflowTemplate'].retry, - default_timeout=self. - _method_configs['DeleteWorkflowTemplate'].timeout, - client_info=self._client_info, - ) + "delete_workflow_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_workflow_template, + default_retry=self._method_configs["DeleteWorkflowTemplate"].retry, + default_timeout=self._method_configs["DeleteWorkflowTemplate"].timeout, + client_info=self._client_info, + ) request = workflow_templates_pb2.DeleteWorkflowTemplateRequest( - name=name, - version=version, + name=name, version=version + ) + self._inner_api_calls["delete_workflow_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['delete_workflow_template']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/dataproc/google/cloud/dataproc_v1beta2/gapic/workflow_template_service_client_config.py b/dataproc/google/cloud/dataproc_v1beta2/gapic/workflow_template_service_client_config.py index aafa9ba68e4f..75aad0b5f8bf 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/gapic/workflow_template_service_client_config.py +++ b/dataproc/google/cloud/dataproc_v1beta2/gapic/workflow_template_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.dataproc.v1beta2.WorkflowTemplateService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"], - "non_idempotent": ["UNAVAILABLE"] + "non_idempotent": ["UNAVAILABLE"], }, "retry_params": { "default": { @@ -13,46 +13,46 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "CreateWorkflowTemplate": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "InstantiateWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "InstantiateInlineWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListWorkflowTemplates": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteWorkflowTemplate": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/dataproc/google/cloud/dataproc_v1beta2/types.py b/dataproc/google/cloud/dataproc_v1beta2/types.py index b079266300b8..43b6330dbc43 100644 --- a/dataproc/google/cloud/dataproc_v1beta2/types.py +++ b/dataproc/google/cloud/dataproc_v1beta2/types.py @@ -45,12 +45,7 @@ status_pb2, ] -_local_modules = [ - clusters_pb2, - jobs_pb2, - proto_operations_pb2, - workflow_templates_pb2, -] +_local_modules = [clusters_pb2, jobs_pb2, proto_operations_pb2, workflow_templates_pb2] names = [] @@ -60,7 +55,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.dataproc_v1beta2.types' + message.__module__ = "google.cloud.dataproc_v1beta2.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/dataproc/tests/system/gapic/v1/test_system_cluster_controller_v1.py b/dataproc/tests/system/gapic/v1/test_system_cluster_controller_v1.py index 02f88ea33a4f..815ac2377b37 100644 --- a/dataproc/tests/system/gapic/v1/test_system_cluster_controller_v1.py +++ b/dataproc/tests/system/gapic/v1/test_system_cluster_controller_v1.py @@ -23,9 +23,9 @@ class TestSystemClusterController(object): def test_list_clusters(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = dataproc_v1.ClusterControllerClient() project_id_2 = project_id - region = 'global' + region = "global" response = client.list_clusters(project_id_2, region) diff --git a/dataproc/tests/system/gapic/v1beta2/test_system_cluster_controller_v1beta2.py b/dataproc/tests/system/gapic/v1beta2/test_system_cluster_controller_v1beta2.py index 2975544d2bda..255e34157c29 100644 --- a/dataproc/tests/system/gapic/v1beta2/test_system_cluster_controller_v1beta2.py +++ b/dataproc/tests/system/gapic/v1beta2/test_system_cluster_controller_v1beta2.py @@ -23,9 +23,9 @@ class TestSystemClusterController(object): def test_list_clusters(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = dataproc_v1beta2.ClusterControllerClient() project_id_2 = project_id - region = 'global' + region = "global" response = client.list_clusters(project_id_2, region) diff --git a/dataproc/tests/unit/gapic/v1/test_cluster_controller_client_v1.py b/dataproc/tests/unit/gapic/v1/test_cluster_controller_client_v1.py index 02e6b0bba2e5..4f856b00fe0e 100644 --- a/dataproc/tests/unit/gapic/v1/test_cluster_controller_client_v1.py +++ b/dataproc/tests/unit/gapic/v1/test_cluster_controller_client_v1.py @@ -55,10 +55,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -69,29 +66,30 @@ class CustomException(Exception): class TestClusterControllerClient(object): def test_create_cluster(self): # Setup Expected Response - project_id_2 = 'projectId2939242356' - cluster_name = 'clusterName-1018081872' - cluster_uuid = 'clusterUuid-1017854240' + project_id_2 = "projectId2939242356" + cluster_name = "clusterName-1018081872" + cluster_uuid = "clusterUuid-1017854240" expected_response = { - 'project_id': project_id_2, - 'cluster_name': cluster_name, - 'cluster_uuid': cluster_uuid + "project_id": project_id_2, + "cluster_name": cluster_name, + "cluster_uuid": cluster_uuid, } expected_response = clusters_pb2.Cluster(**expected_response) operation = operations_pb2.Operation( - name='operations/test_create_cluster', done=True) + name="operations/test_create_cluster", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" cluster = {} response = client.create_cluster(project_id, region, cluster) @@ -100,7 +98,8 @@ def test_create_cluster(self): assert len(channel.requests) == 1 expected_request = clusters_pb2.CreateClusterRequest( - project_id=project_id, region=region, cluster=cluster) + project_id=project_id, region=region, cluster=cluster + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -108,19 +107,20 @@ def test_create_cluster_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_create_cluster_exception', done=True) + name="operations/test_create_cluster_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" cluster = {} response = client.create_cluster(project_id, region, cluster) @@ -129,35 +129,37 @@ def test_create_cluster_exception(self): def test_update_cluster(self): # Setup Expected Response - project_id_2 = 'projectId2939242356' - cluster_name_2 = 'clusterName2875867491' - cluster_uuid = 'clusterUuid-1017854240' + project_id_2 = "projectId2939242356" + cluster_name_2 = "clusterName2875867491" + cluster_uuid = "clusterUuid-1017854240" expected_response = { - 'project_id': project_id_2, - 'cluster_name': cluster_name_2, - 'cluster_uuid': cluster_uuid + "project_id": project_id_2, + "cluster_name": cluster_name_2, + "cluster_uuid": cluster_uuid, } expected_response = clusters_pb2.Cluster(**expected_response) operation = operations_pb2.Operation( - name='operations/test_update_cluster', done=True) + name="operations/test_update_cluster", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" cluster = {} update_mask = {} - response = client.update_cluster(project_id, region, cluster_name, - cluster, update_mask) + response = client.update_cluster( + project_id, region, cluster_name, cluster, update_mask + ) result = response.result() assert expected_response == result @@ -167,7 +169,8 @@ def test_update_cluster(self): region=region, cluster_name=cluster_name, cluster=cluster, - update_mask=update_mask) + update_mask=update_mask, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -175,25 +178,27 @@ def test_update_cluster_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_update_cluster_exception', done=True) + name="operations/test_update_cluster_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" cluster = {} update_mask = {} - response = client.update_cluster(project_id, region, cluster_name, - cluster, update_mask) + response = client.update_cluster( + project_id, region, cluster_name, cluster, update_mask + ) exception = response.exception() assert exception.errors[0] == error @@ -202,20 +207,21 @@ def test_delete_cluster(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_delete_cluster', done=True) + name="operations/test_delete_cluster", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.delete_cluster(project_id, region, cluster_name) result = response.result() @@ -223,7 +229,8 @@ def test_delete_cluster(self): assert len(channel.requests) == 1 expected_request = clusters_pb2.DeleteClusterRequest( - project_id=project_id, region=region, cluster_name=cluster_name) + project_id=project_id, region=region, cluster_name=cluster_name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -231,20 +238,21 @@ def test_delete_cluster_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_delete_cluster_exception', done=True) + name="operations/test_delete_cluster_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.delete_cluster(project_id, region, cluster_name) exception = response.exception() @@ -252,75 +260,72 @@ def test_delete_cluster_exception(self): def test_get_cluster(self): # Setup Expected Response - project_id_2 = 'projectId2939242356' - cluster_name_2 = 'clusterName2875867491' - cluster_uuid = 'clusterUuid-1017854240' + project_id_2 = "projectId2939242356" + cluster_name_2 = "clusterName2875867491" + cluster_uuid = "clusterUuid-1017854240" expected_response = { - 'project_id': project_id_2, - 'cluster_name': cluster_name_2, - 'cluster_uuid': cluster_uuid + "project_id": project_id_2, + "cluster_name": cluster_name_2, + "cluster_uuid": cluster_uuid, } expected_response = clusters_pb2.Cluster(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.get_cluster(project_id, region, cluster_name) assert expected_response == response assert len(channel.requests) == 1 expected_request = clusters_pb2.GetClusterRequest( - project_id=project_id, region=region, cluster_name=cluster_name) + project_id=project_id, region=region, cluster_name=cluster_name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_cluster_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" with pytest.raises(CustomException): client.get_cluster(project_id, region, cluster_name) def test_list_clusters(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" clusters_element = {} clusters = [clusters_element] - expected_response = { - 'next_page_token': next_page_token, - 'clusters': clusters - } - expected_response = clusters_pb2.ListClustersResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "clusters": clusters} + expected_response = clusters_pb2.ListClustersResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" paged_list_response = client.list_clusters(project_id, region) resources = list(paged_list_response) @@ -330,20 +335,21 @@ def test_list_clusters(self): assert len(channel.requests) == 1 expected_request = clusters_pb2.ListClustersRequest( - project_id=project_id, region=region) + project_id=project_id, region=region + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_clusters_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" paged_list_response = client.list_clusters(project_id, region) with pytest.raises(CustomException): @@ -354,20 +360,21 @@ def test_diagnose_cluster(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_diagnose_cluster', done=True) + name="operations/test_diagnose_cluster", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.diagnose_cluster(project_id, region, cluster_name) result = response.result() @@ -375,7 +382,8 @@ def test_diagnose_cluster(self): assert len(channel.requests) == 1 expected_request = clusters_pb2.DiagnoseClusterRequest( - project_id=project_id, region=region, cluster_name=cluster_name) + project_id=project_id, region=region, cluster_name=cluster_name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -383,20 +391,21 @@ def test_diagnose_cluster_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_diagnose_cluster_exception', done=True) + name="operations/test_diagnose_cluster_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.diagnose_cluster(project_id, region, cluster_name) exception = response.exception() diff --git a/dataproc/tests/unit/gapic/v1/test_job_controller_client_v1.py b/dataproc/tests/unit/gapic/v1/test_job_controller_client_v1.py index 060b95f0a523..c0a6bae2e776 100644 --- a/dataproc/tests/unit/gapic/v1/test_job_controller_client_v1.py +++ b/dataproc/tests/unit/gapic/v1/test_job_controller_client_v1.py @@ -52,10 +52,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,26 +63,26 @@ class CustomException(Exception): class TestJobControllerClient(object): def test_submit_job(self): # Setup Expected Response - driver_output_resource_uri = 'driverOutputResourceUri-542229086' - driver_control_files_uri = 'driverControlFilesUri207057643' - job_uuid = 'jobUuid-1615012099' + driver_output_resource_uri = "driverOutputResourceUri-542229086" + driver_control_files_uri = "driverControlFilesUri207057643" + job_uuid = "jobUuid-1615012099" expected_response = { - 'driver_output_resource_uri': driver_output_resource_uri, - 'driver_control_files_uri': driver_control_files_uri, - 'job_uuid': job_uuid + "driver_output_resource_uri": driver_output_resource_uri, + "driver_control_files_uri": driver_control_files_uri, + "job_uuid": job_uuid, } expected_response = jobs_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" job = {} response = client.submit_job(project_id, region, job) @@ -93,21 +90,22 @@ def test_submit_job(self): assert len(channel.requests) == 1 expected_request = jobs_pb2.SubmitJobRequest( - project_id=project_id, region=region, job=job) + project_id=project_id, region=region, job=job + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_submit_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" job = {} with pytest.raises(CustomException): @@ -115,71 +113,72 @@ def test_submit_job_exception(self): def test_get_job(self): # Setup Expected Response - driver_output_resource_uri = 'driverOutputResourceUri-542229086' - driver_control_files_uri = 'driverControlFilesUri207057643' - job_uuid = 'jobUuid-1615012099' + driver_output_resource_uri = "driverOutputResourceUri-542229086" + driver_control_files_uri = "driverControlFilesUri207057643" + job_uuid = "jobUuid-1615012099" expected_response = { - 'driver_output_resource_uri': driver_output_resource_uri, - 'driver_control_files_uri': driver_control_files_uri, - 'job_uuid': job_uuid + "driver_output_resource_uri": driver_output_resource_uri, + "driver_control_files_uri": driver_control_files_uri, + "job_uuid": job_uuid, } expected_response = jobs_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" response = client.get_job(project_id, region, job_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = jobs_pb2.GetJobRequest( - project_id=project_id, region=region, job_id=job_id) + project_id=project_id, region=region, job_id=job_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" with pytest.raises(CustomException): client.get_job(project_id, region, job_id) def test_list_jobs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" jobs_element = {} jobs = [jobs_element] - expected_response = {'next_page_token': next_page_token, 'jobs': jobs} + expected_response = {"next_page_token": next_page_token, "jobs": jobs} expected_response = jobs_pb2.ListJobsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" paged_list_response = client.list_jobs(project_id, region) resources = list(paged_list_response) @@ -189,20 +188,21 @@ def test_list_jobs(self): assert len(channel.requests) == 1 expected_request = jobs_pb2.ListJobsRequest( - project_id=project_id, region=region) + project_id=project_id, region=region + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_jobs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" paged_list_response = client.list_jobs(project_id, region) with pytest.raises(CustomException): @@ -210,32 +210,31 @@ def test_list_jobs_exception(self): def test_update_job(self): # Setup Expected Response - driver_output_resource_uri = 'driverOutputResourceUri-542229086' - driver_control_files_uri = 'driverControlFilesUri207057643' - job_uuid = 'jobUuid-1615012099' + driver_output_resource_uri = "driverOutputResourceUri-542229086" + driver_control_files_uri = "driverControlFilesUri207057643" + job_uuid = "jobUuid-1615012099" expected_response = { - 'driver_output_resource_uri': driver_output_resource_uri, - 'driver_control_files_uri': driver_control_files_uri, - 'job_uuid': job_uuid + "driver_output_resource_uri": driver_output_resource_uri, + "driver_control_files_uri": driver_control_files_uri, + "job_uuid": job_uuid, } expected_response = jobs_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" job = {} update_mask = {} - response = client.update_job(project_id, region, job_id, job, - update_mask) + response = client.update_job(project_id, region, job_id, job, update_mask) assert expected_response == response assert len(channel.requests) == 1 @@ -244,22 +243,23 @@ def test_update_job(self): region=region, job_id=job_id, job=job, - update_mask=update_mask) + update_mask=update_mask, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" job = {} update_mask = {} @@ -268,85 +268,87 @@ def test_update_job_exception(self): def test_cancel_job(self): # Setup Expected Response - driver_output_resource_uri = 'driverOutputResourceUri-542229086' - driver_control_files_uri = 'driverControlFilesUri207057643' - job_uuid = 'jobUuid-1615012099' + driver_output_resource_uri = "driverOutputResourceUri-542229086" + driver_control_files_uri = "driverControlFilesUri207057643" + job_uuid = "jobUuid-1615012099" expected_response = { - 'driver_output_resource_uri': driver_output_resource_uri, - 'driver_control_files_uri': driver_control_files_uri, - 'job_uuid': job_uuid + "driver_output_resource_uri": driver_output_resource_uri, + "driver_control_files_uri": driver_control_files_uri, + "job_uuid": job_uuid, } expected_response = jobs_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" response = client.cancel_job(project_id, region, job_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = jobs_pb2.CancelJobRequest( - project_id=project_id, region=region, job_id=job_id) + project_id=project_id, region=region, job_id=job_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_cancel_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" with pytest.raises(CustomException): client.cancel_job(project_id, region, job_id) def test_delete_job(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" client.delete_job(project_id, region, job_id) assert len(channel.requests) == 1 expected_request = jobs_pb2.DeleteJobRequest( - project_id=project_id, region=region, job_id=job_id) + project_id=project_id, region=region, job_id=job_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" with pytest.raises(CustomException): client.delete_job(project_id, region, job_id) diff --git a/dataproc/tests/unit/gapic/v1/test_workflow_template_service_client_v1.py b/dataproc/tests/unit/gapic/v1/test_workflow_template_service_client_v1.py index c81c93e96cc9..e438a07d91b9 100644 --- a/dataproc/tests/unit/gapic/v1/test_workflow_template_service_client_v1.py +++ b/dataproc/tests/unit/gapic/v1/test_workflow_template_service_client_v1.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -68,22 +65,21 @@ class CustomException(Exception): class TestWorkflowTemplateServiceClient(object): def test_create_workflow_template(self): # Setup Expected Response - id_ = 'id3355' - name = 'name3373707' + id_ = "id3355" + name = "name3373707" version = 351608024 - expected_response = {'id': id_, 'name': name, 'version': version} - expected_response = workflow_templates_pb2.WorkflowTemplate( - **expected_response) + expected_response = {"id": id_, "name": name, "version": version} + expected_response = workflow_templates_pb2.WorkflowTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup Request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") template = {} response = client.create_workflow_template(parent, template) @@ -91,20 +87,21 @@ def test_create_workflow_template(self): assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.CreateWorkflowTemplateRequest( - parent=parent, template=template) + parent=parent, template=template + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_workflow_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") template = {} with pytest.raises(CustomException): @@ -112,44 +109,44 @@ def test_create_workflow_template_exception(self): def test_get_workflow_template(self): # Setup Expected Response - id_ = 'id3355' - name_2 = 'name2-1052831874' + id_ = "id3355" + name_2 = "name2-1052831874" version = 351608024 - expected_response = {'id': id_, 'name': name_2, 'version': version} - expected_response = workflow_templates_pb2.WorkflowTemplate( - **expected_response) + expected_response = {"id": id_, "name": name_2, "version": version} + expected_response = workflow_templates_pb2.WorkflowTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup Request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) response = client.get_workflow_template(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = workflow_templates_pb2.GetWorkflowTemplateRequest( - name=name) + expected_request = workflow_templates_pb2.GetWorkflowTemplateRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_workflow_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) with pytest.raises(CustomException): client.get_workflow_template(name) @@ -159,19 +156,21 @@ def test_instantiate_workflow_template(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_instantiate_workflow_template', done=True) + name="operations/test_instantiate_workflow_template", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup Request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) response = client.instantiate_workflow_template(name) result = response.result() @@ -179,7 +178,8 @@ def test_instantiate_workflow_template(self): assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.InstantiateWorkflowTemplateRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -187,20 +187,21 @@ def test_instantiate_workflow_template_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_instantiate_workflow_template_exception', - done=True) + name="operations/test_instantiate_workflow_template_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup Request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) response = client.instantiate_workflow_template(name) exception = response.exception() @@ -211,29 +212,29 @@ def test_instantiate_inline_workflow_template(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_instantiate_inline_workflow_template', - done=True) + name="operations/test_instantiate_inline_workflow_template", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup Request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") template = {} - response = client.instantiate_inline_workflow_template( - parent, template) + response = client.instantiate_inline_workflow_template(parent, template) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.InstantiateInlineWorkflowTemplateRequest( - parent=parent, template=template) + parent=parent, template=template + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -241,39 +242,37 @@ def test_instantiate_inline_workflow_template_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name= - 'operations/test_instantiate_inline_workflow_template_exception', - done=True) + name="operations/test_instantiate_inline_workflow_template_exception", + done=True, + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup Request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") template = {} - response = client.instantiate_inline_workflow_template( - parent, template) + response = client.instantiate_inline_workflow_template(parent, template) exception = response.exception() assert exception.errors[0] == error def test_update_workflow_template(self): # Setup Expected Response - id_ = 'id3355' - name = 'name3373707' + id_ = "id3355" + name = "name3373707" version = 351608024 - expected_response = {'id': id_, 'name': name, 'version': version} - expected_response = workflow_templates_pb2.WorkflowTemplate( - **expected_response) + expected_response = {"id": id_, "name": name, "version": version} + expected_response = workflow_templates_pb2.WorkflowTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() @@ -286,14 +285,15 @@ def test_update_workflow_template(self): assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.UpdateWorkflowTemplateRequest( - template=template) + template=template + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_workflow_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() @@ -306,25 +306,23 @@ def test_update_workflow_template_exception(self): def test_list_workflow_templates(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" templates_element = {} templates = [templates_element] - expected_response = { - 'next_page_token': next_page_token, - 'templates': templates - } + expected_response = {"next_page_token": next_page_token, "templates": templates} expected_response = workflow_templates_pb2.ListWorkflowTemplatesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup Request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") paged_list_response = client.list_workflow_templates(parent) resources = list(paged_list_response) @@ -334,19 +332,20 @@ def test_list_workflow_templates(self): assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.ListWorkflowTemplatesRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_workflow_templates_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") paged_list_response = client.list_workflow_templates(parent) with pytest.raises(CustomException): @@ -354,34 +353,37 @@ def test_list_workflow_templates_exception(self): def test_delete_workflow_template(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup Request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) client.delete_workflow_template(name) assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.DeleteWorkflowTemplateRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_workflow_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1.WorkflowTemplateServiceClient() # Setup request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) with pytest.raises(CustomException): client.delete_workflow_template(name) diff --git a/dataproc/tests/unit/gapic/v1beta2/test_cluster_controller_client_v1beta2.py b/dataproc/tests/unit/gapic/v1beta2/test_cluster_controller_client_v1beta2.py index df756855bb95..bf9692799440 100644 --- a/dataproc/tests/unit/gapic/v1beta2/test_cluster_controller_client_v1beta2.py +++ b/dataproc/tests/unit/gapic/v1beta2/test_cluster_controller_client_v1beta2.py @@ -55,10 +55,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -69,29 +66,30 @@ class CustomException(Exception): class TestClusterControllerClient(object): def test_create_cluster(self): # Setup Expected Response - project_id_2 = 'projectId2939242356' - cluster_name = 'clusterName-1018081872' - cluster_uuid = 'clusterUuid-1017854240' + project_id_2 = "projectId2939242356" + cluster_name = "clusterName-1018081872" + cluster_uuid = "clusterUuid-1017854240" expected_response = { - 'project_id': project_id_2, - 'cluster_name': cluster_name, - 'cluster_uuid': cluster_uuid + "project_id": project_id_2, + "cluster_name": cluster_name, + "cluster_uuid": cluster_uuid, } expected_response = clusters_pb2.Cluster(**expected_response) operation = operations_pb2.Operation( - name='operations/test_create_cluster', done=True) + name="operations/test_create_cluster", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" cluster = {} response = client.create_cluster(project_id, region, cluster) @@ -100,7 +98,8 @@ def test_create_cluster(self): assert len(channel.requests) == 1 expected_request = clusters_pb2.CreateClusterRequest( - project_id=project_id, region=region, cluster=cluster) + project_id=project_id, region=region, cluster=cluster + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -108,19 +107,20 @@ def test_create_cluster_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_create_cluster_exception', done=True) + name="operations/test_create_cluster_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" cluster = {} response = client.create_cluster(project_id, region, cluster) @@ -129,35 +129,37 @@ def test_create_cluster_exception(self): def test_update_cluster(self): # Setup Expected Response - project_id_2 = 'projectId2939242356' - cluster_name_2 = 'clusterName2875867491' - cluster_uuid = 'clusterUuid-1017854240' + project_id_2 = "projectId2939242356" + cluster_name_2 = "clusterName2875867491" + cluster_uuid = "clusterUuid-1017854240" expected_response = { - 'project_id': project_id_2, - 'cluster_name': cluster_name_2, - 'cluster_uuid': cluster_uuid + "project_id": project_id_2, + "cluster_name": cluster_name_2, + "cluster_uuid": cluster_uuid, } expected_response = clusters_pb2.Cluster(**expected_response) operation = operations_pb2.Operation( - name='operations/test_update_cluster', done=True) + name="operations/test_update_cluster", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" cluster = {} update_mask = {} - response = client.update_cluster(project_id, region, cluster_name, - cluster, update_mask) + response = client.update_cluster( + project_id, region, cluster_name, cluster, update_mask + ) result = response.result() assert expected_response == result @@ -167,7 +169,8 @@ def test_update_cluster(self): region=region, cluster_name=cluster_name, cluster=cluster, - update_mask=update_mask) + update_mask=update_mask, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -175,25 +178,27 @@ def test_update_cluster_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_update_cluster_exception', done=True) + name="operations/test_update_cluster_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" cluster = {} update_mask = {} - response = client.update_cluster(project_id, region, cluster_name, - cluster, update_mask) + response = client.update_cluster( + project_id, region, cluster_name, cluster, update_mask + ) exception = response.exception() assert exception.errors[0] == error @@ -202,20 +207,21 @@ def test_delete_cluster(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_delete_cluster', done=True) + name="operations/test_delete_cluster", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.delete_cluster(project_id, region, cluster_name) result = response.result() @@ -223,7 +229,8 @@ def test_delete_cluster(self): assert len(channel.requests) == 1 expected_request = clusters_pb2.DeleteClusterRequest( - project_id=project_id, region=region, cluster_name=cluster_name) + project_id=project_id, region=region, cluster_name=cluster_name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -231,20 +238,21 @@ def test_delete_cluster_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_delete_cluster_exception', done=True) + name="operations/test_delete_cluster_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.delete_cluster(project_id, region, cluster_name) exception = response.exception() @@ -252,75 +260,72 @@ def test_delete_cluster_exception(self): def test_get_cluster(self): # Setup Expected Response - project_id_2 = 'projectId2939242356' - cluster_name_2 = 'clusterName2875867491' - cluster_uuid = 'clusterUuid-1017854240' + project_id_2 = "projectId2939242356" + cluster_name_2 = "clusterName2875867491" + cluster_uuid = "clusterUuid-1017854240" expected_response = { - 'project_id': project_id_2, - 'cluster_name': cluster_name_2, - 'cluster_uuid': cluster_uuid + "project_id": project_id_2, + "cluster_name": cluster_name_2, + "cluster_uuid": cluster_uuid, } expected_response = clusters_pb2.Cluster(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.get_cluster(project_id, region, cluster_name) assert expected_response == response assert len(channel.requests) == 1 expected_request = clusters_pb2.GetClusterRequest( - project_id=project_id, region=region, cluster_name=cluster_name) + project_id=project_id, region=region, cluster_name=cluster_name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_cluster_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" with pytest.raises(CustomException): client.get_cluster(project_id, region, cluster_name) def test_list_clusters(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" clusters_element = {} clusters = [clusters_element] - expected_response = { - 'next_page_token': next_page_token, - 'clusters': clusters - } - expected_response = clusters_pb2.ListClustersResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "clusters": clusters} + expected_response = clusters_pb2.ListClustersResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" paged_list_response = client.list_clusters(project_id, region) resources = list(paged_list_response) @@ -330,20 +335,21 @@ def test_list_clusters(self): assert len(channel.requests) == 1 expected_request = clusters_pb2.ListClustersRequest( - project_id=project_id, region=region) + project_id=project_id, region=region + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_clusters_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" paged_list_response = client.list_clusters(project_id, region) with pytest.raises(CustomException): @@ -354,20 +360,21 @@ def test_diagnose_cluster(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_diagnose_cluster', done=True) + name="operations/test_diagnose_cluster", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.diagnose_cluster(project_id, region, cluster_name) result = response.result() @@ -375,7 +382,8 @@ def test_diagnose_cluster(self): assert len(channel.requests) == 1 expected_request = clusters_pb2.DiagnoseClusterRequest( - project_id=project_id, region=region, cluster_name=cluster_name) + project_id=project_id, region=region, cluster_name=cluster_name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -383,20 +391,21 @@ def test_diagnose_cluster_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_diagnose_cluster_exception', done=True) + name="operations/test_diagnose_cluster_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.ClusterControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - cluster_name = 'clusterName-1018081872' + project_id = "projectId-1969970175" + region = "region-934795532" + cluster_name = "clusterName-1018081872" response = client.diagnose_cluster(project_id, region, cluster_name) exception = response.exception() diff --git a/dataproc/tests/unit/gapic/v1beta2/test_job_controller_client_v1beta2.py b/dataproc/tests/unit/gapic/v1beta2/test_job_controller_client_v1beta2.py index e4b1665c8397..1f8b3599cfff 100644 --- a/dataproc/tests/unit/gapic/v1beta2/test_job_controller_client_v1beta2.py +++ b/dataproc/tests/unit/gapic/v1beta2/test_job_controller_client_v1beta2.py @@ -52,10 +52,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,28 +63,28 @@ class CustomException(Exception): class TestJobControllerClient(object): def test_submit_job(self): # Setup Expected Response - submitted_by = 'submittedBy-2047729125' - driver_output_resource_uri = 'driverOutputResourceUri-542229086' - driver_control_files_uri = 'driverControlFilesUri207057643' - job_uuid = 'jobUuid-1615012099' + submitted_by = "submittedBy-2047729125" + driver_output_resource_uri = "driverOutputResourceUri-542229086" + driver_control_files_uri = "driverControlFilesUri207057643" + job_uuid = "jobUuid-1615012099" expected_response = { - 'submitted_by': submitted_by, - 'driver_output_resource_uri': driver_output_resource_uri, - 'driver_control_files_uri': driver_control_files_uri, - 'job_uuid': job_uuid + "submitted_by": submitted_by, + "driver_output_resource_uri": driver_output_resource_uri, + "driver_control_files_uri": driver_control_files_uri, + "job_uuid": job_uuid, } expected_response = jobs_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" job = {} response = client.submit_job(project_id, region, job) @@ -95,21 +92,22 @@ def test_submit_job(self): assert len(channel.requests) == 1 expected_request = jobs_pb2.SubmitJobRequest( - project_id=project_id, region=region, job=job) + project_id=project_id, region=region, job=job + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_submit_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" job = {} with pytest.raises(CustomException): @@ -117,73 +115,74 @@ def test_submit_job_exception(self): def test_get_job(self): # Setup Expected Response - submitted_by = 'submittedBy-2047729125' - driver_output_resource_uri = 'driverOutputResourceUri-542229086' - driver_control_files_uri = 'driverControlFilesUri207057643' - job_uuid = 'jobUuid-1615012099' + submitted_by = "submittedBy-2047729125" + driver_output_resource_uri = "driverOutputResourceUri-542229086" + driver_control_files_uri = "driverControlFilesUri207057643" + job_uuid = "jobUuid-1615012099" expected_response = { - 'submitted_by': submitted_by, - 'driver_output_resource_uri': driver_output_resource_uri, - 'driver_control_files_uri': driver_control_files_uri, - 'job_uuid': job_uuid + "submitted_by": submitted_by, + "driver_output_resource_uri": driver_output_resource_uri, + "driver_control_files_uri": driver_control_files_uri, + "job_uuid": job_uuid, } expected_response = jobs_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" response = client.get_job(project_id, region, job_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = jobs_pb2.GetJobRequest( - project_id=project_id, region=region, job_id=job_id) + project_id=project_id, region=region, job_id=job_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" with pytest.raises(CustomException): client.get_job(project_id, region, job_id) def test_list_jobs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" jobs_element = {} jobs = [jobs_element] - expected_response = {'next_page_token': next_page_token, 'jobs': jobs} + expected_response = {"next_page_token": next_page_token, "jobs": jobs} expected_response = jobs_pb2.ListJobsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" paged_list_response = client.list_jobs(project_id, region) resources = list(paged_list_response) @@ -193,20 +192,21 @@ def test_list_jobs(self): assert len(channel.requests) == 1 expected_request = jobs_pb2.ListJobsRequest( - project_id=project_id, region=region) + project_id=project_id, region=region + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_jobs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' + project_id = "projectId-1969970175" + region = "region-934795532" paged_list_response = client.list_jobs(project_id, region) with pytest.raises(CustomException): @@ -214,34 +214,33 @@ def test_list_jobs_exception(self): def test_update_job(self): # Setup Expected Response - submitted_by = 'submittedBy-2047729125' - driver_output_resource_uri = 'driverOutputResourceUri-542229086' - driver_control_files_uri = 'driverControlFilesUri207057643' - job_uuid = 'jobUuid-1615012099' + submitted_by = "submittedBy-2047729125" + driver_output_resource_uri = "driverOutputResourceUri-542229086" + driver_control_files_uri = "driverControlFilesUri207057643" + job_uuid = "jobUuid-1615012099" expected_response = { - 'submitted_by': submitted_by, - 'driver_output_resource_uri': driver_output_resource_uri, - 'driver_control_files_uri': driver_control_files_uri, - 'job_uuid': job_uuid + "submitted_by": submitted_by, + "driver_output_resource_uri": driver_output_resource_uri, + "driver_control_files_uri": driver_control_files_uri, + "job_uuid": job_uuid, } expected_response = jobs_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" job = {} update_mask = {} - response = client.update_job(project_id, region, job_id, job, - update_mask) + response = client.update_job(project_id, region, job_id, job, update_mask) assert expected_response == response assert len(channel.requests) == 1 @@ -250,22 +249,23 @@ def test_update_job(self): region=region, job_id=job_id, job=job, - update_mask=update_mask) + update_mask=update_mask, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" job = {} update_mask = {} @@ -274,87 +274,89 @@ def test_update_job_exception(self): def test_cancel_job(self): # Setup Expected Response - submitted_by = 'submittedBy-2047729125' - driver_output_resource_uri = 'driverOutputResourceUri-542229086' - driver_control_files_uri = 'driverControlFilesUri207057643' - job_uuid = 'jobUuid-1615012099' + submitted_by = "submittedBy-2047729125" + driver_output_resource_uri = "driverOutputResourceUri-542229086" + driver_control_files_uri = "driverControlFilesUri207057643" + job_uuid = "jobUuid-1615012099" expected_response = { - 'submitted_by': submitted_by, - 'driver_output_resource_uri': driver_output_resource_uri, - 'driver_control_files_uri': driver_control_files_uri, - 'job_uuid': job_uuid + "submitted_by": submitted_by, + "driver_output_resource_uri": driver_output_resource_uri, + "driver_control_files_uri": driver_control_files_uri, + "job_uuid": job_uuid, } expected_response = jobs_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" response = client.cancel_job(project_id, region, job_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = jobs_pb2.CancelJobRequest( - project_id=project_id, region=region, job_id=job_id) + project_id=project_id, region=region, job_id=job_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_cancel_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" with pytest.raises(CustomException): client.cancel_job(project_id, region, job_id) def test_delete_job(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup Request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" client.delete_job(project_id, region, job_id) assert len(channel.requests) == 1 expected_request = jobs_pb2.DeleteJobRequest( - project_id=project_id, region=region, job_id=job_id) + project_id=project_id, region=region, job_id=job_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.JobControllerClient() # Setup request - project_id = 'projectId-1969970175' - region = 'region-934795532' - job_id = 'jobId-1154752291' + project_id = "projectId-1969970175" + region = "region-934795532" + job_id = "jobId-1154752291" with pytest.raises(CustomException): client.delete_job(project_id, region, job_id) diff --git a/dataproc/tests/unit/gapic/v1beta2/test_workflow_template_service_client_v1beta2.py b/dataproc/tests/unit/gapic/v1beta2/test_workflow_template_service_client_v1beta2.py index 603622ffb142..b4064c2113ce 100644 --- a/dataproc/tests/unit/gapic/v1beta2/test_workflow_template_service_client_v1beta2.py +++ b/dataproc/tests/unit/gapic/v1beta2/test_workflow_template_service_client_v1beta2.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -68,22 +65,21 @@ class CustomException(Exception): class TestWorkflowTemplateServiceClient(object): def test_create_workflow_template(self): # Setup Expected Response - id_ = 'id3355' - name = 'name3373707' + id_ = "id3355" + name = "name3373707" version = 351608024 - expected_response = {'id': id_, 'name': name, 'version': version} - expected_response = workflow_templates_pb2.WorkflowTemplate( - **expected_response) + expected_response = {"id": id_, "name": name, "version": version} + expected_response = workflow_templates_pb2.WorkflowTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") template = {} response = client.create_workflow_template(parent, template) @@ -91,20 +87,21 @@ def test_create_workflow_template(self): assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.CreateWorkflowTemplateRequest( - parent=parent, template=template) + parent=parent, template=template + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_workflow_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") template = {} with pytest.raises(CustomException): @@ -112,44 +109,44 @@ def test_create_workflow_template_exception(self): def test_get_workflow_template(self): # Setup Expected Response - id_ = 'id3355' - name_2 = 'name2-1052831874' + id_ = "id3355" + name_2 = "name2-1052831874" version = 351608024 - expected_response = {'id': id_, 'name': name_2, 'version': version} - expected_response = workflow_templates_pb2.WorkflowTemplate( - **expected_response) + expected_response = {"id": id_, "name": name_2, "version": version} + expected_response = workflow_templates_pb2.WorkflowTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) response = client.get_workflow_template(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = workflow_templates_pb2.GetWorkflowTemplateRequest( - name=name) + expected_request = workflow_templates_pb2.GetWorkflowTemplateRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_workflow_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) with pytest.raises(CustomException): client.get_workflow_template(name) @@ -159,19 +156,21 @@ def test_instantiate_workflow_template(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_instantiate_workflow_template', done=True) + name="operations/test_instantiate_workflow_template", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) response = client.instantiate_workflow_template(name) result = response.result() @@ -179,7 +178,8 @@ def test_instantiate_workflow_template(self): assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.InstantiateWorkflowTemplateRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -187,20 +187,21 @@ def test_instantiate_workflow_template_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_instantiate_workflow_template_exception', - done=True) + name="operations/test_instantiate_workflow_template_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) response = client.instantiate_workflow_template(name) exception = response.exception() @@ -211,29 +212,29 @@ def test_instantiate_inline_workflow_template(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_instantiate_inline_workflow_template', - done=True) + name="operations/test_instantiate_inline_workflow_template", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") template = {} - response = client.instantiate_inline_workflow_template( - parent, template) + response = client.instantiate_inline_workflow_template(parent, template) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.InstantiateInlineWorkflowTemplateRequest( - parent=parent, template=template) + parent=parent, template=template + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -241,39 +242,37 @@ def test_instantiate_inline_workflow_template_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name= - 'operations/test_instantiate_inline_workflow_template_exception', - done=True) + name="operations/test_instantiate_inline_workflow_template_exception", + done=True, + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") template = {} - response = client.instantiate_inline_workflow_template( - parent, template) + response = client.instantiate_inline_workflow_template(parent, template) exception = response.exception() assert exception.errors[0] == error def test_update_workflow_template(self): # Setup Expected Response - id_ = 'id3355' - name = 'name3373707' + id_ = "id3355" + name = "name3373707" version = 351608024 - expected_response = {'id': id_, 'name': name, 'version': version} - expected_response = workflow_templates_pb2.WorkflowTemplate( - **expected_response) + expected_response = {"id": id_, "name": name, "version": version} + expected_response = workflow_templates_pb2.WorkflowTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() @@ -286,14 +285,15 @@ def test_update_workflow_template(self): assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.UpdateWorkflowTemplateRequest( - template=template) + template=template + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_workflow_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() @@ -306,25 +306,23 @@ def test_update_workflow_template_exception(self): def test_list_workflow_templates(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" templates_element = {} templates = [templates_element] - expected_response = { - 'next_page_token': next_page_token, - 'templates': templates - } + expected_response = {"next_page_token": next_page_token, "templates": templates} expected_response = workflow_templates_pb2.ListWorkflowTemplatesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") paged_list_response = client.list_workflow_templates(parent) resources = list(paged_list_response) @@ -334,19 +332,20 @@ def test_list_workflow_templates(self): assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.ListWorkflowTemplatesRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_workflow_templates_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup request - parent = client.region_path('[PROJECT]', '[REGION]') + parent = client.region_path("[PROJECT]", "[REGION]") paged_list_response = client.list_workflow_templates(parent) with pytest.raises(CustomException): @@ -354,34 +353,37 @@ def test_list_workflow_templates_exception(self): def test_delete_workflow_template(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup Request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) client.delete_workflow_template(name) assert len(channel.requests) == 1 expected_request = workflow_templates_pb2.DeleteWorkflowTemplateRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_workflow_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dataproc_v1beta2.WorkflowTemplateServiceClient() # Setup request - name = client.workflow_template_path('[PROJECT]', '[REGION]', - '[WORKFLOW_TEMPLATE]') + name = client.workflow_template_path( + "[PROJECT]", "[REGION]", "[WORKFLOW_TEMPLATE]" + ) with pytest.raises(CustomException): client.delete_workflow_template(name) diff --git a/datastore/docs/conf.py b/datastore/docs/conf.py index fd43beccaf91..a24a380e1afd 100644 --- a/datastore/docs/conf.py +++ b/datastore/docs/conf.py @@ -18,57 +18,55 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.90.4' +__version__ = "0.90.4" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.doctest', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.doctest", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # Allow markdown includes (so releases.md can include CHANGLEOG.md) # http://www.sphinx-doc.org/en/master/markdown.html -source_parsers = { - '.md': 'recommonmark.parser.CommonMarkParser', -} +source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-datastore' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-datastore" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -77,7 +75,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -88,37 +86,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -127,31 +125,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'alabaster' +html_theme = "alabaster" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -161,78 +159,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-datastore-doc' +htmlhelp_basename = "google-cloud-datastore-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -241,39 +236,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-datastore.tex', - u'google-cloud-datastore Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-datastore.tex", + u"google-cloud-datastore Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-datastore', - u'google-cloud-datastore Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-datastore", + u"google-cloud-datastore Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -281,27 +288,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-datastore', - u'google-cloud-datastore Documentation', author, 'google-cloud-datastore', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-datastore", + u"google-cloud-datastore Documentation", + author, + "google-cloud-datastore", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/datastore/google/__init__.py b/datastore/google/__init__.py index 9ee9bf4342ab..0e1bc5131ba6 100644 --- a/datastore/google/__init__.py +++ b/datastore/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/datastore/google/cloud/__init__.py b/datastore/google/cloud/__init__.py index 9ee9bf4342ab..0e1bc5131ba6 100644 --- a/datastore/google/cloud/__init__.py +++ b/datastore/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/datastore/google/cloud/datastore/__init__.py b/datastore/google/cloud/datastore/__init__.py index 8ceee43f0f74..078180f57128 100644 --- a/datastore/google/cloud/datastore/__init__.py +++ b/datastore/google/cloud/datastore/__init__.py @@ -56,7 +56,8 @@ from pkg_resources import get_distribution -__version__ = get_distribution('google-cloud-datastore').version + +__version__ = get_distribution("google-cloud-datastore").version from google.cloud.datastore.batch import Batch from google.cloud.datastore.client import Client @@ -65,5 +66,4 @@ from google.cloud.datastore.query import Query from google.cloud.datastore.transaction import Transaction -__all__ = ['__version__', 'Batch', 'Client', 'Entity', 'Key', 'Query', - 'Transaction'] +__all__ = ["__version__", "Batch", "Client", "Entity", "Key", "Query", "Transaction"] diff --git a/datastore/google/cloud/datastore/_app_engine_key_pb2.py b/datastore/google/cloud/datastore/_app_engine_key_pb2.py index bbb1c75b80df..7fcd8fb181a4 100644 --- a/datastore/google/cloud/datastore/_app_engine_key_pb2.py +++ b/datastore/google/cloud/datastore/_app_engine_key_pb2.py @@ -2,181 +2,262 @@ # source: _app_engine_key.proto import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) + +_b = sys.version_info[0] < 3 and (lambda x: x) or (lambda x: x.encode("latin1")) from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database from google.protobuf import descriptor_pb2 + # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() - - DESCRIPTOR = _descriptor.FileDescriptor( - name='_app_engine_key.proto', - package='', - syntax='proto2', - serialized_pb=_b('\n\x15_app_engine_key.proto\"V\n\tReference\x12\x0b\n\x03\x61pp\x18\r \x02(\t\x12\x12\n\nname_space\x18\x14 \x01(\t\x12\x13\n\x04path\x18\x0e \x02(\x0b\x32\x05.Path\x12\x13\n\x0b\x64\x61tabase_id\x18\x17 \x01(\t\"Y\n\x04Path\x12\x1e\n\x07\x65lement\x18\x01 \x03(\n2\r.Path.Element\x1a\x31\n\x07\x45lement\x12\x0c\n\x04type\x18\x02 \x02(\t\x12\n\n\x02id\x18\x03 \x01(\x03\x12\x0c\n\x04name\x18\x04 \x01(\t') + name="_app_engine_key.proto", + package="", + syntax="proto2", + serialized_pb=_b( + '\n\x15_app_engine_key.proto"V\n\tReference\x12\x0b\n\x03\x61pp\x18\r \x02(\t\x12\x12\n\nname_space\x18\x14 \x01(\t\x12\x13\n\x04path\x18\x0e \x02(\x0b\x32\x05.Path\x12\x13\n\x0b\x64\x61tabase_id\x18\x17 \x01(\t"Y\n\x04Path\x12\x1e\n\x07\x65lement\x18\x01 \x03(\n2\r.Path.Element\x1a\x31\n\x07\x45lement\x12\x0c\n\x04type\x18\x02 \x02(\t\x12\n\n\x02id\x18\x03 \x01(\x03\x12\x0c\n\x04name\x18\x04 \x01(\t' + ), ) _sym_db.RegisterFileDescriptor(DESCRIPTOR) - - _REFERENCE = _descriptor.Descriptor( - name='Reference', - full_name='Reference', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='app', full_name='Reference.app', index=0, - number=13, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='name_space', full_name='Reference.name_space', index=1, - number=20, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='path', full_name='Reference.path', index=2, - number=14, type=11, cpp_type=10, label=2, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='database_id', full_name='Reference.database_id', index=3, - number=23, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=25, - serialized_end=111, + name="Reference", + full_name="Reference", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="app", + full_name="Reference.app", + index=0, + number=13, + type=9, + cpp_type=9, + label=2, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None, + ), + _descriptor.FieldDescriptor( + name="name_space", + full_name="Reference.name_space", + index=1, + number=20, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None, + ), + _descriptor.FieldDescriptor( + name="path", + full_name="Reference.path", + index=2, + number=14, + type=11, + cpp_type=10, + label=2, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None, + ), + _descriptor.FieldDescriptor( + name="database_id", + full_name="Reference.database_id", + index=3, + number=23, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=25, + serialized_end=111, ) _PATH_ELEMENT = _descriptor.Descriptor( - name='Element', - full_name='Path.Element', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='type', full_name='Path.Element.type', index=0, - number=2, type=9, cpp_type=9, label=2, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='id', full_name='Path.Element.id', index=1, - number=3, type=3, cpp_type=2, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='name', full_name='Path.Element.name', index=2, - number=4, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=153, - serialized_end=202, + name="Element", + full_name="Path.Element", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="type", + full_name="Path.Element.type", + index=0, + number=2, + type=9, + cpp_type=9, + label=2, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None, + ), + _descriptor.FieldDescriptor( + name="id", + full_name="Path.Element.id", + index=1, + number=3, + type=3, + cpp_type=2, + label=1, + has_default_value=False, + default_value=0, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None, + ), + _descriptor.FieldDescriptor( + name="name", + full_name="Path.Element.name", + index=2, + number=4, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode("utf-8"), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None, + ), + ], + extensions=[], + nested_types=[], + enum_types=[], + options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=153, + serialized_end=202, ) _PATH = _descriptor.Descriptor( - name='Path', - full_name='Path', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='element', full_name='Path.element', index=0, - number=1, type=10, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[_PATH_ELEMENT, ], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[ - ], - serialized_start=113, - serialized_end=202, + name="Path", + full_name="Path", + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name="element", + full_name="Path.element", + index=0, + number=1, + type=10, + cpp_type=10, + label=3, + has_default_value=False, + default_value=[], + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None, + ) + ], + extensions=[], + nested_types=[_PATH_ELEMENT], + enum_types=[], + options=None, + is_extendable=False, + syntax="proto2", + extension_ranges=[], + oneofs=[], + serialized_start=113, + serialized_end=202, ) -_REFERENCE.fields_by_name['path'].message_type = _PATH +_REFERENCE.fields_by_name["path"].message_type = _PATH _PATH_ELEMENT.containing_type = _PATH -_PATH.fields_by_name['element'].message_type = _PATH_ELEMENT -DESCRIPTOR.message_types_by_name['Reference'] = _REFERENCE -DESCRIPTOR.message_types_by_name['Path'] = _PATH - -Reference = _reflection.GeneratedProtocolMessageType('Reference', (_message.Message,), dict( - DESCRIPTOR = _REFERENCE, - __module__ = '_app_engine_key_pb2' - # @@protoc_insertion_point(class_scope:Reference) - )) +_PATH.fields_by_name["element"].message_type = _PATH_ELEMENT +DESCRIPTOR.message_types_by_name["Reference"] = _REFERENCE +DESCRIPTOR.message_types_by_name["Path"] = _PATH + +Reference = _reflection.GeneratedProtocolMessageType( + "Reference", + (_message.Message,), + dict( + DESCRIPTOR=_REFERENCE, + __module__="_app_engine_key_pb2" + # @@protoc_insertion_point(class_scope:Reference) + ), +) _sym_db.RegisterMessage(Reference) -Path = _reflection.GeneratedProtocolMessageType('Path', (_message.Message,), dict( - - Element = _reflection.GeneratedProtocolMessageType('Element', (_message.Message,), dict( - DESCRIPTOR = _PATH_ELEMENT, - __module__ = '_app_engine_key_pb2' - # @@protoc_insertion_point(class_scope:Path.Element) - )) - , - DESCRIPTOR = _PATH, - __module__ = '_app_engine_key_pb2' - # @@protoc_insertion_point(class_scope:Path) - )) +Path = _reflection.GeneratedProtocolMessageType( + "Path", + (_message.Message,), + dict( + Element=_reflection.GeneratedProtocolMessageType( + "Element", + (_message.Message,), + dict( + DESCRIPTOR=_PATH_ELEMENT, + __module__="_app_engine_key_pb2" + # @@protoc_insertion_point(class_scope:Path.Element) + ), + ), + DESCRIPTOR=_PATH, + __module__="_app_engine_key_pb2" + # @@protoc_insertion_point(class_scope:Path) + ), +) _sym_db.RegisterMessage(Path) _sym_db.RegisterMessage(Path.Element) diff --git a/datastore/google/cloud/datastore/_gapic.py b/datastore/google/cloud/datastore/_gapic.py index b56ba5e89c64..1210f2821802 100644 --- a/datastore/google/cloud/datastore/_gapic.py +++ b/datastore/google/cloud/datastore/_gapic.py @@ -34,19 +34,16 @@ def make_datastore_api(client): :rtype: :class:`.datastore.v1.datastore_client.DatastoreClient` :returns: A datastore API instance with the proper credentials. """ - parse_result = six.moves.urllib_parse.urlparse( - client._base_url) + parse_result = six.moves.urllib_parse.urlparse(client._base_url) host = parse_result.netloc - if parse_result.scheme == 'https': - channel = make_secure_channel( - client._credentials, DEFAULT_USER_AGENT, host) + if parse_result.scheme == "https": + channel = make_secure_channel(client._credentials, DEFAULT_USER_AGENT, host) else: channel = insecure_channel(host) return datastore_client.DatastoreClient( channel=channel, client_info=client_info.ClientInfo( - client_library_version=__version__, - gapic_version=__version__, + client_library_version=__version__, gapic_version=__version__ ), ) diff --git a/datastore/google/cloud/datastore/_http.py b/datastore/google/cloud/datastore/_http.py index ef02bbbff4ce..03a551cec64e 100644 --- a/datastore/google/cloud/datastore/_http.py +++ b/datastore/google/cloud/datastore/_http.py @@ -23,14 +23,13 @@ from google.cloud.datastore import __version__ -DATASTORE_API_HOST = 'datastore.googleapis.com' +DATASTORE_API_HOST = "datastore.googleapis.com" """Datastore API request host.""" -API_BASE_URL = 'https://' + DATASTORE_API_HOST +API_BASE_URL = "https://" + DATASTORE_API_HOST """The base of the API call URL.""" -API_VERSION = 'v1' +API_VERSION = "v1" """The version of the API, used in building the API call's URL.""" -API_URL_TEMPLATE = ('{api_base}/{api_version}/projects' - '/{project}:{method}') +API_URL_TEMPLATE = "{api_base}/{api_version}/projects" "/{project}:{method}" """A template for the URL of a particular API call.""" _CLIENT_INFO = connection_module.CLIENT_INFO_TEMPLATE.format(__version__) @@ -62,19 +61,19 @@ def _request(http, project, method, data, base_url): response code is not 200 OK. """ headers = { - 'Content-Type': 'application/x-protobuf', - 'User-Agent': connection_module.DEFAULT_USER_AGENT, + "Content-Type": "application/x-protobuf", + "User-Agent": connection_module.DEFAULT_USER_AGENT, connection_module.CLIENT_INFO_HEADER: _CLIENT_INFO, } api_url = build_api_url(project, method, base_url) - response = http.request( - url=api_url, method='POST', headers=headers, data=data) + response = http.request(url=api_url, method="POST", headers=headers, data=data) if response.status_code != 200: error_status = status_pb2.Status.FromString(response.content) raise exceptions.from_http_status( - response.status_code, error_status.message, errors=[error_status]) + response.status_code, error_status.message, errors=[error_status] + ) return response.content @@ -107,8 +106,7 @@ def _rpc(http, project, method, base_url, request_pb, response_pb_cls): :returns: The RPC message parsed from the response. """ req_data = request_pb.SerializeToString() - response = _request( - http, project, method, req_data, base_url) + response = _request(http, project, method, req_data, base_url) return response_pb_cls.FromString(response) @@ -132,8 +130,8 @@ def build_api_url(project, method, base_url): :returns: The API URL created. """ return API_URL_TEMPLATE.format( - api_base=base_url, api_version=API_VERSION, - project=project, method=method) + api_base=base_url, api_version=API_VERSION, project=project, method=method + ) class HTTPDatastoreAPI(object): @@ -167,16 +165,20 @@ def lookup(self, project_id, keys, read_options=None): :returns: The returned protobuf response object. """ request_pb = _datastore_pb2.LookupRequest( - project_id=project_id, - read_options=read_options, - keys=keys, + project_id=project_id, read_options=read_options, keys=keys + ) + return _rpc( + self.client._http, + project_id, + "lookup", + self.client._base_url, + request_pb, + _datastore_pb2.LookupResponse, ) - return _rpc(self.client._http, project_id, 'lookup', - self.client._base_url, - request_pb, _datastore_pb2.LookupResponse) - def run_query(self, project_id, partition_id, read_options=None, - query=None, gql_query=None): + def run_query( + self, project_id, partition_id, read_options=None, query=None, gql_query=None + ): """Perform a ``runQuery`` request. :type project_id: str @@ -210,9 +212,14 @@ def run_query(self, project_id, partition_id, read_options=None, query=query, gql_query=gql_query, ) - return _rpc(self.client._http, project_id, 'runQuery', - self.client._base_url, - request_pb, _datastore_pb2.RunQueryResponse) + return _rpc( + self.client._http, + project_id, + "runQuery", + self.client._base_url, + request_pb, + _datastore_pb2.RunQueryResponse, + ) def begin_transaction(self, project_id, transaction_options=None): """Perform a ``beginTransaction`` request. @@ -228,9 +235,14 @@ def begin_transaction(self, project_id, transaction_options=None): :returns: The returned protobuf response object. """ request_pb = _datastore_pb2.BeginTransactionRequest() - return _rpc(self.client._http, project_id, 'beginTransaction', - self.client._base_url, - request_pb, _datastore_pb2.BeginTransactionResponse) + return _rpc( + self.client._http, + project_id, + "beginTransaction", + self.client._base_url, + request_pb, + _datastore_pb2.BeginTransactionResponse, + ) def commit(self, project_id, mode, mutations, transaction=None): """Perform a ``commit`` request. @@ -261,9 +273,14 @@ def commit(self, project_id, mode, mutations, transaction=None): transaction=transaction, mutations=mutations, ) - return _rpc(self.client._http, project_id, 'commit', - self.client._base_url, - request_pb, _datastore_pb2.CommitResponse) + return _rpc( + self.client._http, + project_id, + "commit", + self.client._base_url, + request_pb, + _datastore_pb2.CommitResponse, + ) def rollback(self, project_id, transaction): """Perform a ``rollback`` request. @@ -279,13 +296,17 @@ def rollback(self, project_id, transaction): :returns: The returned protobuf response object. """ request_pb = _datastore_pb2.RollbackRequest( - project_id=project_id, - transaction=transaction, + project_id=project_id, transaction=transaction ) # Response is empty (i.e. no fields) but we return it anyway. - return _rpc(self.client._http, project_id, 'rollback', - self.client._base_url, - request_pb, _datastore_pb2.RollbackResponse) + return _rpc( + self.client._http, + project_id, + "rollback", + self.client._base_url, + request_pb, + _datastore_pb2.RollbackResponse, + ) def allocate_ids(self, project_id, keys): """Perform an ``allocateIds`` request. @@ -301,6 +322,11 @@ def allocate_ids(self, project_id, keys): :returns: The returned protobuf response object. """ request_pb = _datastore_pb2.AllocateIdsRequest(keys=keys) - return _rpc(self.client._http, project_id, 'allocateIds', - self.client._base_url, - request_pb, _datastore_pb2.AllocateIdsResponse) + return _rpc( + self.client._http, + project_id, + "allocateIds", + self.client._base_url, + request_pb, + _datastore_pb2.AllocateIdsResponse, + ) diff --git a/datastore/google/cloud/datastore/batch.py b/datastore/google/cloud/datastore/batch.py index 49be09964eb3..eaa839f4e540 100644 --- a/datastore/google/cloud/datastore/batch.py +++ b/datastore/google/cloud/datastore/batch.py @@ -182,7 +182,7 @@ def put(self, entity): ``project`` does not match ours. """ if self._status != self._IN_PROGRESS: - raise ValueError('Batch must be in progress to put()') + raise ValueError("Batch must be in progress to put()") if entity.key is None: raise ValueError("Entity must have a key") @@ -209,7 +209,7 @@ def delete(self, key): ``project`` does not match ours. """ if self._status != self._IN_PROGRESS: - raise ValueError('Batch must be in progress to delete()') + raise ValueError("Batch must be in progress to delete()") if key.is_partial: raise ValueError("Key must be complete") @@ -232,7 +232,7 @@ def begin(self): :raises: :class:`ValueError` if the batch has already begun. """ if self._status != self._INITIAL: - raise ValueError('Batch already started previously.') + raise ValueError("Batch already started previously.") self._status = self._IN_PROGRESS def _commit(self): @@ -246,13 +246,13 @@ def _commit(self): mode = _datastore_pb2.CommitRequest.TRANSACTIONAL commit_response_pb = self._client._datastore_api.commit( - self.project, mode, self._mutations, transaction=self._id) + self.project, mode, self._mutations, transaction=self._id + ) _, updated_keys = _parse_commit_response(commit_response_pb) # If the back-end returns without error, we are guaranteed that # ``commit`` will return keys that match (length and # order) directly ``_partial_key_entities``. - for new_key_pb, entity in zip(updated_keys, - self._partial_key_entities): + for new_key_pb, entity in zip(updated_keys, self._partial_key_entities): new_id = new_key_pb.path[-1].id entity.key = entity.key.completed_key(new_id) @@ -267,7 +267,7 @@ def commit(self): in progress. """ if self._status != self._IN_PROGRESS: - raise ValueError('Batch must be in progress to commit()') + raise ValueError("Batch must be in progress to commit()") try: self._commit() @@ -285,7 +285,7 @@ def rollback(self): in progress. """ if self._status != self._IN_PROGRESS: - raise ValueError('Batch must be in progress to rollback()') + raise ValueError("Batch must be in progress to rollback()") self._status = self._ABORTED @@ -334,6 +334,7 @@ def _parse_commit_response(commit_response_pb): """ mut_results = commit_response_pb.mutation_results index_updates = commit_response_pb.index_updates - completed_keys = [mut_result.key for mut_result in mut_results - if mut_result.HasField('key')] # Message field (Key) + completed_keys = [ + mut_result.key for mut_result in mut_results if mut_result.HasField("key") + ] # Message field (Key) return index_updates, completed_keys diff --git a/datastore/google/cloud/datastore/client.py b/datastore/google/cloud/datastore/client.py index 8daa68c937c9..6f4d82eae672 100644 --- a/datastore/google/cloud/datastore/client.py +++ b/datastore/google/cloud/datastore/client.py @@ -16,8 +16,7 @@ import os from google.cloud._helpers import _LocalStack -from google.cloud._helpers import (_determine_default_project as - _base_default_project) +from google.cloud._helpers import _determine_default_project as _base_default_project from google.cloud.client import ClientWithProject from google.cloud.datastore import helpers from google.cloud.datastore._http import HTTPDatastoreAPI @@ -32,6 +31,7 @@ try: from google.cloud.datastore._gapic import make_datastore_api + _HAVE_GRPC = True except ImportError: # pragma: NO COVER make_datastore_api = None @@ -40,7 +40,7 @@ _MAX_LOOPS = 128 """Maximum number of iterations to wait for deferred keys.""" -_DATASTORE_BASE_URL = 'https://datastore.googleapis.com' +_DATASTORE_BASE_URL = "https://datastore.googleapis.com" """Datastore API request URL base.""" _USE_GRPC = _HAVE_GRPC and not os.getenv(DISABLE_GRPC, False) @@ -77,9 +77,15 @@ def _determine_default_project(project=None): return project -def _extended_lookup(datastore_api, project, key_pbs, - missing=None, deferred=None, - eventual=False, transaction_id=None): +def _extended_lookup( + datastore_api, + project, + key_pbs, + missing=None, + deferred=None, + eventual=False, + transaction_id=None, +): """Repeat lookup until all keys found (unless stop requested). Helper function for :meth:`Client.get_multi`. @@ -121,10 +127,10 @@ def _extended_lookup(datastore_api, project, key_pbs, empty list. """ if missing is not None and missing != []: - raise ValueError('missing must be None or an empty list') + raise ValueError("missing must be None or an empty list") if deferred is not None and deferred != []: - raise ValueError('deferred must be None or an empty list') + raise ValueError("deferred must be None or an empty list") results = [] @@ -133,9 +139,7 @@ def _extended_lookup(datastore_api, project, key_pbs, while loop_num < _MAX_LOOPS: # loop against possible deferred. loop_num += 1 lookup_response = datastore_api.lookup( - project, - key_pbs, - read_options=read_options, + project, key_pbs, read_options=read_options ) # Accumulate the new results. @@ -196,13 +200,15 @@ class Client(ClientWithProject): change in the future. """ - SCOPE = ('https://www.googleapis.com/auth/datastore',) + SCOPE = ("https://www.googleapis.com/auth/datastore",) """The scopes required for authenticating as a Cloud Datastore consumer.""" - def __init__(self, project=None, namespace=None, - credentials=None, _http=None, _use_grpc=None): + def __init__( + self, project=None, namespace=None, credentials=None, _http=None, _use_grpc=None + ): super(Client, self).__init__( - project=project, credentials=credentials, _http=_http) + project=project, credentials=credentials, _http=_http + ) self.namespace = namespace self._batch_stack = _LocalStack() self._datastore_api_internal = None @@ -212,7 +218,7 @@ def __init__(self, project=None, namespace=None, self._use_grpc = _use_grpc try: host = os.environ[GCD_HOST] - self._base_url = 'http://' + host + self._base_url = "http://" + host except KeyError: self._base_url = _DATASTORE_BASE_URL @@ -287,8 +293,7 @@ def current_transaction(self): if isinstance(transaction, Transaction): return transaction - def get(self, key, missing=None, deferred=None, - transaction=None, eventual=False): + def get(self, key, missing=None, deferred=None, transaction=None, eventual=False): """Retrieve an entity from a single key (if it exists). .. note:: @@ -324,16 +329,19 @@ def get(self, key, missing=None, deferred=None, :raises: :class:`ValueError` if eventual is True and in a transaction. """ - entities = self.get_multi(keys=[key], - missing=missing, - deferred=deferred, - transaction=transaction, - eventual=eventual) + entities = self.get_multi( + keys=[key], + missing=missing, + deferred=deferred, + transaction=transaction, + eventual=eventual, + ) if entities: return entities[0] - def get_multi(self, keys, missing=None, deferred=None, - transaction=None, eventual=False): + def get_multi( + self, keys, missing=None, deferred=None, transaction=None, eventual=False + ): """Retrieve entities, along with their attributes. :type keys: list of :class:`google.cloud.datastore.key.Key` @@ -371,7 +379,7 @@ def get_multi(self, keys, missing=None, deferred=None, ids = set(key.project for key in keys) for current_id in ids: if current_id != self.project: - raise ValueError('Keys do not match project') + raise ValueError("Keys do not match project") if transaction is None: transaction = self.current_transaction @@ -388,16 +396,15 @@ def get_multi(self, keys, missing=None, deferred=None, if missing is not None: missing[:] = [ - helpers.entity_from_protobuf(missed_pb) - for missed_pb in missing] + helpers.entity_from_protobuf(missed_pb) for missed_pb in missing + ] if deferred is not None: deferred[:] = [ - helpers.key_from_protobuf(deferred_pb) - for deferred_pb in deferred] + helpers.key_from_protobuf(deferred_pb) for deferred_pb in deferred + ] - return [helpers.entity_from_protobuf(entity_pb) - for entity_pb in entity_pbs] + return [helpers.entity_from_protobuf(entity_pb) for entity_pb in entity_pbs] def put(self, entity): """Save an entity in the Cloud Datastore. @@ -493,28 +500,31 @@ def allocate_ids(self, incomplete_key, num_ids): partial key. """ if not incomplete_key.is_partial: - raise ValueError(('Key is not partial.', incomplete_key)) + raise ValueError(("Key is not partial.", incomplete_key)) incomplete_key_pb = incomplete_key.to_protobuf() incomplete_key_pbs = [incomplete_key_pb] * num_ids response_pb = self._datastore_api.allocate_ids( - incomplete_key.project, incomplete_key_pbs) - allocated_ids = [allocated_key_pb.path[-1].id - for allocated_key_pb in response_pb.keys] - return [incomplete_key.completed_key(allocated_id) - for allocated_id in allocated_ids] + incomplete_key.project, incomplete_key_pbs + ) + allocated_ids = [ + allocated_key_pb.path[-1].id for allocated_key_pb in response_pb.keys + ] + return [ + incomplete_key.completed_key(allocated_id) for allocated_id in allocated_ids + ] def key(self, *path_args, **kwargs): """Proxy to :class:`google.cloud.datastore.key.Key`. Passes our ``project``. """ - if 'project' in kwargs: - raise TypeError('Cannot pass project') - kwargs['project'] = self.project - if 'namespace' not in kwargs: - kwargs['namespace'] = self.namespace + if "project" in kwargs: + raise TypeError("Cannot pass project") + kwargs["project"] = self.project + if "namespace" not in kwargs: + kwargs["namespace"] = self.namespace return Key(*path_args, **kwargs) def batch(self): @@ -604,11 +614,11 @@ def do_something(entity): :rtype: :class:`~google.cloud.datastore.query.Query` :returns: A query object. """ - if 'client' in kwargs: - raise TypeError('Cannot pass client') - if 'project' in kwargs: - raise TypeError('Cannot pass project') - kwargs['project'] = self.project - if 'namespace' not in kwargs: - kwargs['namespace'] = self.namespace + if "client" in kwargs: + raise TypeError("Cannot pass client") + if "project" in kwargs: + raise TypeError("Cannot pass project") + kwargs["project"] = self.project + if "namespace" not in kwargs: + kwargs["namespace"] = self.namespace return Query(self, **kwargs) diff --git a/datastore/google/cloud/datastore/entity.py b/datastore/google/cloud/datastore/entity.py index 6f76e869645d..c317bdda85fd 100644 --- a/datastore/google/cloud/datastore/entity.py +++ b/datastore/google/cloud/datastore/entity.py @@ -135,8 +135,9 @@ class Entity(dict): def __init__(self, key=None, exclude_from_indexes=()): super(Entity, self).__init__() self.key = key - self.exclude_from_indexes = set(_ensure_tuple_or_list( - 'exclude_from_indexes', exclude_from_indexes)) + self.exclude_from_indexes = set( + _ensure_tuple_or_list("exclude_from_indexes", exclude_from_indexes) + ) """Names of fields which are *not* to be indexed for this entity.""" # NOTE: This will be populated when parsing a protobuf in # google.cloud.datastore.helpers.entity_from_protobuf. @@ -154,10 +155,12 @@ def __eq__(self, other): if not isinstance(other, Entity): return NotImplemented - return (self.key == other.key and - self.exclude_from_indexes == other.exclude_from_indexes and - self._meanings == other._meanings and - super(Entity, self).__eq__(other)) + return ( + self.key == other.key + and self.exclude_from_indexes == other.exclude_from_indexes + and self._meanings == other._meanings + and super(Entity, self).__eq__(other) + ) def __ne__(self, other): """Compare two entities for inequality. @@ -202,7 +205,9 @@ def id(self): def __repr__(self): if self.key: - return '' % (self.key._flat_path, - super(Entity, self).__repr__()) + return "" % ( + self.key._flat_path, + super(Entity, self).__repr__(), + ) else: - return '' % (super(Entity, self).__repr__(),) + return "" % (super(Entity, self).__repr__(),) diff --git a/datastore/google/cloud/datastore/helpers.py b/datastore/google/cloud/datastore/helpers.py index 38c4b0ddfdf6..db6f150eff8b 100644 --- a/datastore/google/cloud/datastore/helpers.py +++ b/datastore/google/cloud/datastore/helpers.py @@ -58,8 +58,9 @@ def _get_meaning(value_pb, is_list=False): # We check among all the meanings, some of which may be None, # the rest which may be enum/int values. - all_meanings = [_get_meaning(sub_value_pb) - for sub_value_pb in value_pb.array_value.values] + all_meanings = [ + _get_meaning(sub_value_pb) for sub_value_pb in value_pb.array_value.values + ] unique_meanings = set(all_meanings) if len(unique_meanings) == 1: # If there is a unique meaning, we preserve it. @@ -114,7 +115,7 @@ def entity_from_protobuf(pb): :returns: The entity derived from the protobuf. """ key = None - if pb.HasField('key'): # Message field (Key) + if pb.HasField("key"): # Message field (Key) key = key_from_protobuf(pb.key) entity_props = {} @@ -135,12 +136,16 @@ def entity_from_protobuf(pb): # special-cased and we require all ``exclude_from_indexes`` values # in a list agree. if is_list and len(value) > 0: - exclude_values = set(value_pb.exclude_from_indexes - for value_pb in value_pb.array_value.values) + exclude_values = set( + value_pb.exclude_from_indexes + for value_pb in value_pb.array_value.values + ) if len(exclude_values) != 1: - raise ValueError('For an array_value, subvalues must either ' - 'all be indexed or all excluded from ' - 'indexes.') + raise ValueError( + "For an array_value, subvalues must either " + "all be indexed or all excluded from " + "indexes." + ) if exclude_values.pop(): exclude_from_indexes.append(prop_name) @@ -154,8 +159,7 @@ def entity_from_protobuf(pb): return entity -def _set_pb_meaning_from_entity(entity, name, value, value_pb, - is_list=False): +def _set_pb_meaning_from_entity(entity, name, value, value_pb, is_list=False): """Add meaning information (from an entity) to a protobuf. :type entity: :class:`google.cloud.datastore.entity.Entity` @@ -187,8 +191,7 @@ def _set_pb_meaning_from_entity(entity, name, value, value_pb, if is_list: if not isinstance(meaning, list): meaning = itertools.repeat(meaning) - val_iter = six.moves.zip(value_pb.array_value.values, - meaning) + val_iter = six.moves.zip(value_pb.array_value.values, meaning) for sub_value_pb, sub_meaning in val_iter: if sub_meaning is not None: sub_value_pb.meaning = sub_meaning @@ -226,8 +229,9 @@ def entity_to_protobuf(entity): sub_value.exclude_from_indexes = True # Add meaning information to protobuf. - _set_pb_meaning_from_entity(entity, name, value, value_pb, - is_list=value_is_list) + _set_pb_meaning_from_entity( + entity, name, value, value_pb, is_list=value_is_list + ) return entity_pb @@ -252,15 +256,15 @@ def get_read_options(eventual, transaction_id): if transaction_id is None: if eventual: return datastore_pb2.ReadOptions( - read_consistency=datastore_pb2.ReadOptions.EVENTUAL) + read_consistency=datastore_pb2.ReadOptions.EVENTUAL + ) else: return datastore_pb2.ReadOptions() else: if eventual: - raise ValueError('eventual must be False when in a transaction') + raise ValueError("eventual must be False when in a transaction") else: - return datastore_pb2.ReadOptions( - transaction=transaction_id) + return datastore_pb2.ReadOptions(transaction=transaction_id) def key_from_protobuf(pb): @@ -332,36 +336,36 @@ def _pb_attr_value(val): """ if isinstance(val, datetime.datetime): - name = 'timestamp' + name = "timestamp" value = _datetime_to_pb_timestamp(val) elif isinstance(val, Key): - name, value = 'key', val.to_protobuf() + name, value = "key", val.to_protobuf() elif isinstance(val, bool): - name, value = 'boolean', val + name, value = "boolean", val elif isinstance(val, float): - name, value = 'double', val + name, value = "double", val elif isinstance(val, six.integer_types): - name, value = 'integer', val + name, value = "integer", val elif isinstance(val, six.text_type): - name, value = 'string', val + name, value = "string", val elif isinstance(val, six.binary_type): - name, value = 'blob', val + name, value = "blob", val elif isinstance(val, Entity): - name, value = 'entity', val + name, value = "entity", val elif isinstance(val, dict): entity_val = Entity(key=None) entity_val.update(val) - name, value = 'entity', entity_val + name, value = "entity", entity_val elif isinstance(val, list): - name, value = 'array', val + name, value = "array", val elif isinstance(val, GeoPoint): - name, value = 'geo_point', val.to_protobuf() + name, value = "geo_point", val.to_protobuf() elif val is None: - name, value = 'null', struct_pb2.NULL_VALUE + name, value = "null", struct_pb2.NULL_VALUE else: - raise ValueError('Unknown protobuf attr type', type(val)) + raise ValueError("Unknown protobuf attr type", type(val)) - return name + '_value', value + return name + "_value", value def _get_value_from_value_pb(value_pb): @@ -382,45 +386,47 @@ def _get_value_from_value_pb(value_pb): :raises: :class:`ValueError ` if no value type has been set. """ - value_type = value_pb.WhichOneof('value_type') + value_type = value_pb.WhichOneof("value_type") - if value_type == 'timestamp_value': + if value_type == "timestamp_value": result = _pb_timestamp_to_datetime(value_pb.timestamp_value) - elif value_type == 'key_value': + elif value_type == "key_value": result = key_from_protobuf(value_pb.key_value) - elif value_type == 'boolean_value': + elif value_type == "boolean_value": result = value_pb.boolean_value - elif value_type == 'double_value': + elif value_type == "double_value": result = value_pb.double_value - elif value_type == 'integer_value': + elif value_type == "integer_value": result = value_pb.integer_value - elif value_type == 'string_value': + elif value_type == "string_value": result = value_pb.string_value - elif value_type == 'blob_value': + elif value_type == "blob_value": result = value_pb.blob_value - elif value_type == 'entity_value': + elif value_type == "entity_value": result = entity_from_protobuf(value_pb.entity_value) - elif value_type == 'array_value': - result = [_get_value_from_value_pb(value) - for value in value_pb.array_value.values] + elif value_type == "array_value": + result = [ + _get_value_from_value_pb(value) for value in value_pb.array_value.values + ] - elif value_type == 'geo_point_value': - result = GeoPoint(value_pb.geo_point_value.latitude, - value_pb.geo_point_value.longitude) + elif value_type == "geo_point_value": + result = GeoPoint( + value_pb.geo_point_value.latitude, value_pb.geo_point_value.longitude + ) - elif value_type == 'null_value': + elif value_type == "null_value": result = None else: - raise ValueError('Value protobuf did not have any value set') + raise ValueError("Value protobuf did not have any value set") return result @@ -443,14 +449,14 @@ def _set_protobuf_value(value_pb, val): :param val: The value to be assigned. """ attr, val = _pb_attr_value(val) - if attr == 'key_value': + if attr == "key_value": value_pb.key_value.CopyFrom(val) - elif attr == 'timestamp_value': + elif attr == "timestamp_value": value_pb.timestamp_value.CopyFrom(val) - elif attr == 'entity_value': + elif attr == "entity_value": entity_pb = entity_to_protobuf(val) value_pb.entity_value.CopyFrom(entity_pb) - elif attr == 'array_value': + elif attr == "array_value": if len(val) == 0: array_value = entity_pb2.ArrayValue(values=[]) value_pb.array_value.CopyFrom(array_value) @@ -459,7 +465,7 @@ def _set_protobuf_value(value_pb, val): for item in val: i_pb = l_pb.add() _set_protobuf_value(i_pb, item) - elif attr == 'geo_point_value': + elif attr == "geo_point_value": value_pb.geo_point_value.CopyFrom(val) else: # scalar, just assign setattr(value_pb, attr, val) @@ -485,8 +491,7 @@ def to_protobuf(self): :rtype: :class:`google.type.latlng_pb2.LatLng`. :returns: The current point as a protobuf. """ - return latlng_pb2.LatLng(latitude=self.latitude, - longitude=self.longitude) + return latlng_pb2.LatLng(latitude=self.latitude, longitude=self.longitude) def __eq__(self, other): """Compare two geo points for equality. @@ -497,8 +502,7 @@ def __eq__(self, other): if not isinstance(other, GeoPoint): return NotImplemented - return (self.latitude == other.latitude and - self.longitude == other.longitude) + return self.latitude == other.latitude and self.longitude == other.longitude def __ne__(self, other): """Compare two geo points for inequality. diff --git a/datastore/google/cloud/datastore/key.py b/datastore/google/cloud/datastore/key.py index 2824e57d3ebf..f537e9d0fd69 100644 --- a/datastore/google/cloud/datastore/key.py +++ b/datastore/google/cloud/datastore/key.py @@ -25,16 +25,19 @@ _DATABASE_ID_TEMPLATE = ( - 'Received non-empty database ID: {!r}.\n' - 'urlsafe strings are not expected to encode a Reference that ' - 'contains a database ID.') + "Received non-empty database ID: {!r}.\n" + "urlsafe strings are not expected to encode a Reference that " + "contains a database ID." +) _BAD_ELEMENT_TEMPLATE = ( - 'At most one of ID and name can be set on an element. Received ' - 'id = {!r} and name = {!r}.') + "At most one of ID and name can be set on an element. Received " + "id = {!r} and name = {!r}." +) _EMPTY_ELEMENT = ( - 'Exactly one of ID and name must be set on an element. ' - 'Encountered an element with neither set that was not the last ' - 'element of a path.') + "Exactly one of ID and name must be set on an element. " + "Encountered an element with neither set that was not the last " + "element of a path." +) class Key(object): @@ -103,9 +106,9 @@ class Key(object): def __init__(self, *path_args, **kwargs): self._flat_path = path_args - parent = self._parent = kwargs.get('parent') - self._namespace = kwargs.get('namespace') - project = kwargs.get('project') + parent = self._parent = kwargs.get("parent") + self._namespace = kwargs.get("namespace") + project = kwargs.get("project") self._project = _validate_project(project, parent) # _flat_path, _parent, _namespace and _project must be set before # _combine_args() is called. @@ -128,9 +131,11 @@ def __eq__(self, other): if self.is_partial or other.is_partial: return False - return (self.flat_path == other.flat_path and - self.project == other.project and - self.namespace == other.namespace) + return ( + self.flat_path == other.flat_path + and self.project == other.project + and self.namespace == other.namespace + ) def __ne__(self, other): """Compare two keys for inequality. @@ -151,9 +156,7 @@ def __hash__(self): :rtype: int :returns: a hash of the key's state. """ - return (hash(self.flat_path) + - hash(self.project) + - hash(self.namespace)) + return hash(self.flat_path) + hash(self.project) + hash(self.namespace) @staticmethod def _parse_path(path_args): @@ -171,7 +174,7 @@ def _parse_path(path_args): a string or an integer. """ if len(path_args) == 0: - raise ValueError('Key path must not be empty.') + raise ValueError("Key path must not be empty.") kind_list = path_args[::2] id_or_name_list = path_args[1::2] @@ -184,17 +187,16 @@ def _parse_path(path_args): for kind, id_or_name in zip(kind_list, id_or_name_list): curr_key_part = {} if isinstance(kind, six.string_types): - curr_key_part['kind'] = kind + curr_key_part["kind"] = kind else: - raise ValueError(kind, 'Kind was not a string.') + raise ValueError(kind, "Kind was not a string.") if isinstance(id_or_name, six.string_types): - curr_key_part['name'] = id_or_name + curr_key_part["name"] = id_or_name elif isinstance(id_or_name, six.integer_types): - curr_key_part['id'] = id_or_name + curr_key_part["id"] = id_or_name elif id_or_name is not partial_ending: - raise ValueError(id_or_name, - 'ID/name was not a string or integer.') + raise ValueError(id_or_name, "ID/name was not a string or integer.") result.append(curr_key_part) @@ -214,18 +216,19 @@ def _combine_args(self): if self._parent is not None: if self._parent.is_partial: - raise ValueError('Parent key must be complete.') + raise ValueError("Parent key must be complete.") # We know that _parent.path() will return a copy. child_path = self._parent.path + child_path self._flat_path = self._parent.flat_path + self._flat_path - if (self._namespace is not None and - self._namespace != self._parent.namespace): - raise ValueError('Child namespace must agree with parent\'s.') + if ( + self._namespace is not None + and self._namespace != self._parent.namespace + ): + raise ValueError("Child namespace must agree with parent's.") self._namespace = self._parent.namespace - if (self._project is not None and - self._project != self._parent.project): - raise ValueError('Child project must agree with parent\'s.') + if self._project is not None and self._project != self._parent.project: + raise ValueError("Child project must agree with parent's.") self._project = self._parent.project return child_path @@ -239,9 +242,9 @@ def _clone(self): :rtype: :class:`google.cloud.datastore.key.Key` :returns: A new ``Key`` instance with the same data as the current one. """ - cloned_self = self.__class__(*self.flat_path, - project=self.project, - namespace=self.namespace) + cloned_self = self.__class__( + *self.flat_path, project=self.project, namespace=self.namespace + ) # If the current parent has already been set, we re-use # the same instance cloned_self._parent = self._parent @@ -260,15 +263,14 @@ def completed_key(self, id_or_name): ``id_or_name`` is not a string or integer. """ if not self.is_partial: - raise ValueError('Only a partial key can be completed.') + raise ValueError("Only a partial key can be completed.") if isinstance(id_or_name, six.string_types): - id_or_name_key = 'name' + id_or_name_key = "name" elif isinstance(id_or_name, six.integer_types): - id_or_name_key = 'id' + id_or_name_key = "id" else: - raise ValueError(id_or_name, - 'ID/name was not a string or integer.') + raise ValueError(id_or_name, "ID/name was not a string or integer.") new_key = self._clone() new_key._path[-1][id_or_name_key] = id_or_name @@ -289,12 +291,12 @@ def to_protobuf(self): for item in self.path: element = key.path.add() - if 'kind' in item: - element.kind = item['kind'] - if 'id' in item: - element.id = item['id'] - if 'name' in item: - element.name = item['name'] + if "kind" in item: + element.kind = item["kind"] + if "id" in item: + element.id = item["id"] + if "name" in item: + element.name = item["name"] return key @@ -334,7 +336,7 @@ def to_legacy_urlsafe(self, location_prefix=None): name_space=self.namespace, ) raw_bytes = reference.SerializeToString() - return base64.urlsafe_b64encode(raw_bytes).strip(b'=') + return base64.urlsafe_b64encode(raw_bytes).strip(b"=") @classmethod def from_legacy_urlsafe(cls, urlsafe): @@ -352,8 +354,8 @@ def from_legacy_urlsafe(cls, urlsafe): :rtype: :class:`~google.cloud.datastore.key.Key`. :returns: The key corresponding to ``urlsafe``. """ - urlsafe = _to_bytes(urlsafe, encoding='ascii') - padding = b'=' * (-len(urlsafe) % 4) + urlsafe = _to_bytes(urlsafe, encoding="ascii") + padding = b"=" * (-len(urlsafe) % 4) urlsafe += padding raw_bytes = base64.urlsafe_b64decode(urlsafe) @@ -361,7 +363,7 @@ def from_legacy_urlsafe(cls, urlsafe): reference.ParseFromString(raw_bytes) project = _clean_app(reference.app) - namespace = _get_empty(reference.name_space, u'') + namespace = _get_empty(reference.name_space, u"") _check_database_id(reference.database_id) flat_path = _get_flat_path(reference.path) return cls(*flat_path, project=project, namespace=namespace) @@ -412,7 +414,7 @@ def kind(self): :rtype: str :returns: The kind of the current key. """ - return self.path[-1]['kind'] + return self.path[-1]["kind"] @property def id(self): @@ -421,7 +423,7 @@ def id(self): :rtype: int :returns: The (integer) ID of the key. """ - return self.path[-1].get('id') + return self.path[-1].get("id") @property def name(self): @@ -430,7 +432,7 @@ def name(self): :rtype: str :returns: The (string) name of the key. """ - return self.path[-1].get('name') + return self.path[-1].get("name") @property def id_or_name(self): @@ -467,8 +469,9 @@ def _make_parent(self): else: parent_args = self.flat_path[:-2] if parent_args: - return self.__class__(*parent_args, project=self.project, - namespace=self.namespace) + return self.__class__( + *parent_args, project=self.project, namespace=self.namespace + ) @property def parent(self): @@ -485,7 +488,7 @@ def parent(self): return self._parent def __repr__(self): - return '' % (self._flat_path, self.project) + return "" % (self._flat_path, self.project) def _validate_project(project, parent): @@ -523,7 +526,7 @@ def _clean_app(app_str): :rtype: str :returns: The cleaned value. """ - parts = app_str.split('~', 1) + parts = app_str.split("~", 1) return parts[-1] @@ -551,7 +554,7 @@ def _check_database_id(database_id): :raises: :exc:`ValueError` if the ``database_id`` is not empty. """ - if database_id != u'': + if database_id != u"": msg = _DATABASE_ID_TEMPLATE.format(database_id) raise ValueError(msg) @@ -577,13 +580,13 @@ def _add_id_or_name(flat_path, element_pb, empty_allowed): # NOTE: Below 0 and the empty string are the "null" values for their # respective types, indicating that the value is unset. if id_ == 0: - if name == u'': + if name == u"": if not empty_allowed: raise ValueError(_EMPTY_ELEMENT) else: flat_path.append(name) else: - if name == u'': + if name == u"": flat_path.append(id_) else: msg = _BAD_ELEMENT_TEMPLATE.format(id_, name) @@ -642,11 +645,11 @@ def _to_legacy_path(dict_path): """ elements = [] for part in dict_path: - element_kwargs = {'type': part['kind']} - if 'id' in part: - element_kwargs['id'] = part['id'] - elif 'name' in part: - element_kwargs['name'] = part['name'] + element_kwargs = {"type": part["kind"]} + if "id" in part: + element_kwargs["id"] = part["id"] + elif "name" in part: + element_kwargs["name"] = part["name"] element = _app_engine_key_pb2.Path.Element(**element_kwargs) elements.append(element) diff --git a/datastore/google/cloud/datastore/query.py b/datastore/google/cloud/datastore/query.py index 5a331da79ccc..f7979d12be70 100644 --- a/datastore/google/cloud/datastore/query.py +++ b/datastore/google/cloud/datastore/query.py @@ -81,24 +81,26 @@ class Query(object): """ OPERATORS = { - '<=': query_pb2.PropertyFilter.LESS_THAN_OR_EQUAL, - '>=': query_pb2.PropertyFilter.GREATER_THAN_OR_EQUAL, - '<': query_pb2.PropertyFilter.LESS_THAN, - '>': query_pb2.PropertyFilter.GREATER_THAN, - '=': query_pb2.PropertyFilter.EQUAL, + "<=": query_pb2.PropertyFilter.LESS_THAN_OR_EQUAL, + ">=": query_pb2.PropertyFilter.GREATER_THAN_OR_EQUAL, + "<": query_pb2.PropertyFilter.LESS_THAN, + ">": query_pb2.PropertyFilter.GREATER_THAN, + "=": query_pb2.PropertyFilter.EQUAL, } """Mapping of operator strings and their protobuf equivalents.""" - def __init__(self, - client, - kind=None, - project=None, - namespace=None, - ancestor=None, - filters=(), - projection=(), - order=(), - distinct_on=()): + def __init__( + self, + client, + kind=None, + project=None, + namespace=None, + ancestor=None, + filters=(), + projection=(), + order=(), + distinct_on=(), + ): self._client = client self._kind = kind @@ -109,9 +111,9 @@ def __init__(self, # Verify filters passed in. for property_name, operator, value in filters: self.add_filter(property_name, operator, value) - self._projection = _ensure_tuple_or_list('projection', projection) - self._order = _ensure_tuple_or_list('order', order) - self._distinct_on = _ensure_tuple_or_list('distinct_on', distinct_on) + self._projection = _ensure_tuple_or_list("projection", projection) + self._order = _ensure_tuple_or_list("order", order) + self._distinct_on = _ensure_tuple_or_list("distinct_on", distinct_on) @property def project(self): @@ -239,10 +241,10 @@ def add_filter(self, property_name, operator, value): """ if self.OPERATORS.get(operator) is None: error_message = 'Invalid expression: "%s"' % (operator,) - choices_message = 'Please use one of: =, <, <=, >, >=.' + choices_message = "Please use one of: =, <, <=, >, >=." raise ValueError(error_message, choices_message) - if property_name == '__key__' and not isinstance(value, Key): + if property_name == "__key__" and not isinstance(value, Key): raise ValueError('Invalid key: "%s"' % value) self._filters.append((property_name, operator, value)) @@ -270,9 +272,9 @@ def projection(self, projection): def keys_only(self): """Set the projection to include only keys.""" - self._projection[:] = ['__key__'] + self._projection[:] = ["__key__"] - def key_filter(self, key, operator='='): + def key_filter(self, key, operator="="): """Filter on a key. :type key: :class:`google.cloud.datastore.key.Key` @@ -282,7 +284,7 @@ def key_filter(self, key, operator='='): :param operator: (Optional) One of ``=``, ``<``, ``<=``, ``>``, ``>=``. Defaults to ``=``. """ - self.add_filter('__key__', operator, key) + self.add_filter("__key__", operator, key) @property def order(self): @@ -330,8 +332,15 @@ def distinct_on(self, value): value = [value] self._distinct_on[:] = value - def fetch(self, limit=None, offset=0, start_cursor=None, end_cursor=None, - client=None, eventual=False): + def fetch( + self, + limit=None, + offset=0, + start_cursor=None, + end_cursor=None, + client=None, + eventual=False, + ): """Execute the Query; return an iterator for the matching entities. For example:: @@ -373,13 +382,15 @@ def fetch(self, limit=None, offset=0, start_cursor=None, end_cursor=None, if client is None: client = self._client - return Iterator(self, - client, - limit=limit, - offset=offset, - start_cursor=start_cursor, - end_cursor=end_cursor, - eventual=eventual) + return Iterator( + self, + client, + limit=limit, + offset=offset, + start_cursor=start_cursor, + end_cursor=end_cursor, + eventual=eventual, + ) class Iterator(page_iterator.Iterator): @@ -416,11 +427,22 @@ class Iterator(page_iterator.Iterator): next_page_token = None - def __init__(self, query, client, limit=None, offset=None, - start_cursor=None, end_cursor=None, eventual=False): + def __init__( + self, + query, + client, + limit=None, + offset=None, + start_cursor=None, + end_cursor=None, + eventual=False, + ): super(Iterator, self).__init__( - client=client, item_to_value=_item_to_entity, - page_token=start_cursor, max_results=limit) + client=client, + item_to_value=_item_to_entity, + page_token=start_cursor, + max_results=limit, + ) self._query = query self._offset = offset self._end_cursor = end_cursor @@ -477,7 +499,8 @@ def _process_query_results(self, response_pb): self.next_page_token = None else: self.next_page_token = base64.urlsafe_b64encode( - response_pb.batch.end_cursor) + response_pb.batch.end_cursor + ) self._end_cursor = None if response_pb.batch.more_results == _NOT_FINISHED: @@ -485,7 +508,7 @@ def _process_query_results(self, response_pb): elif response_pb.batch.more_results in _FINISHED: self._more_results = False else: - raise ValueError('Unexpected value returned for `more_results`.') + raise ValueError("Unexpected value returned for `more_results`.") return [result.entity for result in response_pb.batch.entity_results] @@ -508,13 +531,10 @@ def _next_page(self): read_options = helpers.get_read_options(self._eventual, transaction_id) partition_id = entity_pb2.PartitionId( - project_id=self._query.project, - namespace_id=self._query.namespace) + project_id=self._query.project, namespace_id=self._query.namespace + ) response_pb = self.client._datastore_api.run_query( - self._query.project, - partition_id, - read_options, - query=query_pb, + self._query.project, partition_id, read_options, query=query_pb ) entity_pbs = self._process_query_results(response_pb) return page_iterator.Page(self, entity_pbs, self.item_to_value) @@ -547,7 +567,7 @@ def _pb_from_query(query): # Filter on __key__ HAS_ANCESTOR == ancestor. ancestor_filter = composite_filter.filters.add().property_filter - ancestor_filter.property.name = '__key__' + ancestor_filter.property.name = "__key__" ancestor_filter.op = query_pb2.PropertyFilter.HAS_ANCESTOR ancestor_filter.value.key_value.CopyFrom(ancestor_pb) @@ -560,19 +580,19 @@ def _pb_from_query(query): property_filter.op = pb_op_enum # Set the value to filter on based on the type. - if property_name == '__key__': + if property_name == "__key__": key_pb = value.to_protobuf() property_filter.value.key_value.CopyFrom(key_pb) else: helpers._set_protobuf_value(property_filter.value, value) if not composite_filter.filters: - pb.ClearField('filter') + pb.ClearField("filter") for prop in query.order: property_order = pb.order.add() - if prop.startswith('-'): + if prop.startswith("-"): property_order.property.name = prop[1:] property_order.direction = property_order.DESCENDING else: @@ -600,4 +620,6 @@ def _item_to_entity(iterator, entity_pb): :returns: The next entity in the page. """ return helpers.entity_from_protobuf(entity_pb) + + # pylint: enable=unused-argument diff --git a/datastore/google/cloud/datastore/transaction.py b/datastore/google/cloud/datastore/transaction.py index 8fa71db25d54..ccff5561c644 100644 --- a/datastore/google/cloud/datastore/transaction.py +++ b/datastore/google/cloud/datastore/transaction.py @@ -164,8 +164,7 @@ def __init__(self, client, read_only=False): super(Transaction, self).__init__(client) self._id = None if read_only: - options = TransactionOptions( - read_only=TransactionOptions.ReadOnly()) + options = TransactionOptions(read_only=TransactionOptions.ReadOnly()) else: options = TransactionOptions() self._options = options @@ -206,8 +205,7 @@ def begin(self): """ super(Transaction, self).begin() try: - response_pb = self._client._datastore_api.begin_transaction( - self.project) + response_pb = self._client._datastore_api.begin_transaction(self.project) self._id = response_pb.transaction except: # noqa: E722 do not use bare except, specify exception instead self._status = self._ABORTED @@ -258,7 +256,7 @@ def put(self, entity): :raises: :class:`RuntimeError` if the transaction is marked ReadOnly """ - if self._options.HasField('read_only'): + if self._options.HasField("read_only"): raise RuntimeError("Transaction is read only") else: super(Transaction, self).put(entity) diff --git a/datastore/google/cloud/datastore_v1/__init__.py b/datastore/google/cloud/datastore_v1/__init__.py index 5297ae3121d7..0308f10c0a6a 100644 --- a/datastore/google/cloud/datastore_v1/__init__.py +++ b/datastore/google/cloud/datastore_v1/__init__.py @@ -24,8 +24,4 @@ class DatastoreClient(datastore_client.DatastoreClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'DatastoreClient', -) +__all__ = ("enums", "types", "DatastoreClient") diff --git a/datastore/google/cloud/datastore_v1/gapic/datastore_client.py b/datastore/google/cloud/datastore_v1/gapic/datastore_client.py index d1ebd3c925bf..cd1ba4582a63 100644 --- a/datastore/google/cloud/datastore_v1/gapic/datastore_client.py +++ b/datastore/google/cloud/datastore_v1/gapic/datastore_client.py @@ -35,7 +35,8 @@ from google.cloud.datastore_v1.proto import query_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-datastore', ).version + "google-cloud-datastore" +).version class DatastoreClient(object): @@ -48,12 +49,12 @@ class DatastoreClient(object): the request. """ - SERVICE_ADDRESS = 'datastore.googleapis.com:443' + SERVICE_ADDRESS = "datastore.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.datastore.v1.Datastore' + _INTERFACE_NAME = "google.datastore.v1.Datastore" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -69,19 +70,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: DatastoreClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -115,18 +117,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = datastore_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -135,25 +138,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=datastore_grpc_transport. - DatastoreGrpcTransport, + default_class=datastore_grpc_transport.DatastoreGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = datastore_grpc_transport.DatastoreGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -163,7 +165,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -172,13 +175,15 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def lookup(self, - project_id, - keys, - read_options=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def lookup( + self, + project_id, + keys, + read_options=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Looks up entities by key. @@ -225,32 +230,34 @@ def lookup(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'lookup' not in self._inner_api_calls: + if "lookup" not in self._inner_api_calls: self._inner_api_calls[ - 'lookup'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.lookup, - default_retry=self._method_configs['Lookup'].retry, - default_timeout=self._method_configs['Lookup'].timeout, - client_info=self._client_info, - ) + "lookup" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.lookup, + default_retry=self._method_configs["Lookup"].retry, + default_timeout=self._method_configs["Lookup"].timeout, + client_info=self._client_info, + ) request = datastore_pb2.LookupRequest( - project_id=project_id, - keys=keys, - read_options=read_options, + project_id=project_id, keys=keys, read_options=read_options ) - return self._inner_api_calls['lookup']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def run_query(self, - project_id, - partition_id, - read_options=None, - query=None, - gql_query=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["lookup"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def run_query( + self, + project_id, + partition_id, + read_options=None, + query=None, + gql_query=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Queries for entities. @@ -308,21 +315,19 @@ def run_query(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'run_query' not in self._inner_api_calls: + if "run_query" not in self._inner_api_calls: self._inner_api_calls[ - 'run_query'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.run_query, - default_retry=self._method_configs['RunQuery'].retry, - default_timeout=self._method_configs['RunQuery'].timeout, - client_info=self._client_info, - ) + "run_query" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.run_query, + default_retry=self._method_configs["RunQuery"].retry, + default_timeout=self._method_configs["RunQuery"].timeout, + client_info=self._client_info, + ) # Sanity check: We have some fields which are mutually exclusive; # raise ValueError if more than one is sent. - google.api_core.protobuf_helpers.check_oneof( - query=query, - gql_query=gql_query, - ) + google.api_core.protobuf_helpers.check_oneof(query=query, gql_query=gql_query) request = datastore_pb2.RunQueryRequest( project_id=project_id, @@ -331,15 +336,18 @@ def run_query(self, query=query, gql_query=gql_query, ) - return self._inner_api_calls['run_query']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def begin_transaction(self, - project_id, - transaction_options=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["run_query"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def begin_transaction( + self, + project_id, + transaction_options=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Begins a new transaction. @@ -379,32 +387,33 @@ def begin_transaction(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'begin_transaction' not in self._inner_api_calls: + if "begin_transaction" not in self._inner_api_calls: self._inner_api_calls[ - 'begin_transaction'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.begin_transaction, - default_retry=self._method_configs['BeginTransaction']. - retry, - default_timeout=self._method_configs['BeginTransaction']. - timeout, - client_info=self._client_info, - ) + "begin_transaction" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.begin_transaction, + default_retry=self._method_configs["BeginTransaction"].retry, + default_timeout=self._method_configs["BeginTransaction"].timeout, + client_info=self._client_info, + ) request = datastore_pb2.BeginTransactionRequest( - project_id=project_id, - transaction_options=transaction_options, + project_id=project_id, transaction_options=transaction_options ) - return self._inner_api_calls['begin_transaction']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def commit(self, - project_id, - mode, - mutations, - transaction=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["begin_transaction"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def commit( + self, + project_id, + mode, + mutations, + transaction=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Commits a transaction, optionally creating, deleting or modifying some entities. @@ -468,18 +477,19 @@ def commit(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'commit' not in self._inner_api_calls: + if "commit" not in self._inner_api_calls: self._inner_api_calls[ - 'commit'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.commit, - default_retry=self._method_configs['Commit'].retry, - default_timeout=self._method_configs['Commit'].timeout, - client_info=self._client_info, - ) + "commit" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.commit, + default_retry=self._method_configs["Commit"].retry, + default_timeout=self._method_configs["Commit"].timeout, + client_info=self._client_info, + ) # Sanity check: We have some fields which are mutually exclusive; # raise ValueError if more than one is sent. - google.api_core.protobuf_helpers.check_oneof(transaction=transaction, ) + google.api_core.protobuf_helpers.check_oneof(transaction=transaction) request = datastore_pb2.CommitRequest( project_id=project_id, @@ -487,15 +497,18 @@ def commit(self, mutations=mutations, transaction=transaction, ) - return self._inner_api_calls['commit']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def rollback(self, - project_id, - transaction, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["commit"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def rollback( + self, + project_id, + transaction, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Rolls back a transaction. @@ -536,28 +549,31 @@ def rollback(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'rollback' not in self._inner_api_calls: + if "rollback" not in self._inner_api_calls: self._inner_api_calls[ - 'rollback'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.rollback, - default_retry=self._method_configs['Rollback'].retry, - default_timeout=self._method_configs['Rollback'].timeout, - client_info=self._client_info, - ) + "rollback" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.rollback, + default_retry=self._method_configs["Rollback"].retry, + default_timeout=self._method_configs["Rollback"].timeout, + client_info=self._client_info, + ) request = datastore_pb2.RollbackRequest( - project_id=project_id, - transaction=transaction, + project_id=project_id, transaction=transaction ) - return self._inner_api_calls['rollback']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def allocate_ids(self, - project_id, - keys, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["rollback"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def allocate_ids( + self, + project_id, + keys, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Allocates IDs for the given keys, which is useful for referencing an entity before it is inserted. @@ -602,30 +618,30 @@ def allocate_ids(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'allocate_ids' not in self._inner_api_calls: + if "allocate_ids" not in self._inner_api_calls: self._inner_api_calls[ - 'allocate_ids'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.allocate_ids, - default_retry=self._method_configs['AllocateIds'].retry, - default_timeout=self._method_configs['AllocateIds']. - timeout, - client_info=self._client_info, - ) + "allocate_ids" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.allocate_ids, + default_retry=self._method_configs["AllocateIds"].retry, + default_timeout=self._method_configs["AllocateIds"].timeout, + client_info=self._client_info, + ) - request = datastore_pb2.AllocateIdsRequest( - project_id=project_id, - keys=keys, + request = datastore_pb2.AllocateIdsRequest(project_id=project_id, keys=keys) + return self._inner_api_calls["allocate_ids"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['allocate_ids']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def reserve_ids(self, - project_id, - keys, - database_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def reserve_ids( + self, + project_id, + keys, + database_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Prevents the supplied keys' IDs from being auto-allocated by Cloud Datastore. @@ -671,19 +687,19 @@ def reserve_ids(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'reserve_ids' not in self._inner_api_calls: + if "reserve_ids" not in self._inner_api_calls: self._inner_api_calls[ - 'reserve_ids'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.reserve_ids, - default_retry=self._method_configs['ReserveIds'].retry, - default_timeout=self._method_configs['ReserveIds'].timeout, - client_info=self._client_info, - ) + "reserve_ids" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.reserve_ids, + default_retry=self._method_configs["ReserveIds"].retry, + default_timeout=self._method_configs["ReserveIds"].timeout, + client_info=self._client_info, + ) request = datastore_pb2.ReserveIdsRequest( - project_id=project_id, - keys=keys, - database_id=database_id, + project_id=project_id, keys=keys, database_id=database_id + ) + return self._inner_api_calls["reserve_ids"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['reserve_ids']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/datastore/google/cloud/datastore_v1/gapic/datastore_client_config.py b/datastore/google/cloud/datastore_v1/gapic/datastore_client_config.py index 1a3eb9523447..95822b8babfc 100644 --- a/datastore/google/cloud/datastore_v1/gapic/datastore_client_config.py +++ b/datastore/google/cloud/datastore_v1/gapic/datastore_client_config.py @@ -3,7 +3,7 @@ "google.datastore.v1.Datastore": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,46 +13,46 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "Lookup": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RunQuery": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "BeginTransaction": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "Commit": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "Rollback": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AllocateIds": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ReserveIds": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/datastore/google/cloud/datastore_v1/gapic/enums.py b/datastore/google/cloud/datastore_v1/gapic/enums.py index 41497f71781b..78de5345e377 100644 --- a/datastore/google/cloud/datastore_v1/gapic/enums.py +++ b/datastore/google/cloud/datastore_v1/gapic/enums.py @@ -28,6 +28,7 @@ class NullValue(enum.IntEnum): Attributes: NULL_VALUE (int): Null value. """ + NULL_VALUE = 0 @@ -47,6 +48,7 @@ class ResultType(enum.IntEnum): PROJECTION (int): A projected subset of properties. The entity may have no key. KEY_ONLY (int): Only the key. """ + RESULT_TYPE_UNSPECIFIED = 0 FULL = 1 PROJECTION = 2 @@ -63,6 +65,7 @@ class Direction(enum.IntEnum): ASCENDING (int): Ascending. DESCENDING (int): Descending. """ + DIRECTION_UNSPECIFIED = 0 ASCENDING = 1 DESCENDING = 2 @@ -77,6 +80,7 @@ class Operator(enum.IntEnum): OPERATOR_UNSPECIFIED (int): Unspecified. This value must not be used. AND (int): The results are required to satisfy each of the combined filters. """ + OPERATOR_UNSPECIFIED = 0 AND = 1 @@ -95,6 +99,7 @@ class Operator(enum.IntEnum): EQUAL (int): Equal. HAS_ANCESTOR (int): Has ancestor. """ + OPERATOR_UNSPECIFIED = 0 LESS_THAN = 1 LESS_THAN_OR_EQUAL = 2 @@ -117,6 +122,7 @@ class MoreResultsType(enum.IntEnum): cursor. NO_MORE_RESULTS (int): The query is finished, and there are no more results. """ + MORE_RESULTS_TYPE_UNSPECIFIED = 0 NOT_FINISHED = 1 MORE_RESULTS_AFTER_LIMIT = 2 @@ -136,6 +142,7 @@ class Mode(enum.IntEnum): `here `__. NON_TRANSACTIONAL (int): Non-transactional: The mutations may not apply as all or none. """ + MODE_UNSPECIFIED = 0 TRANSACTIONAL = 1 NON_TRANSACTIONAL = 2 @@ -151,6 +158,7 @@ class ReadConsistency(enum.IntEnum): STRONG (int): Strong consistency. EVENTUAL (int): Eventual consistency. """ + READ_CONSISTENCY_UNSPECIFIED = 0 STRONG = 1 EVENTUAL = 2 diff --git a/datastore/google/cloud/datastore_v1/gapic/transports/datastore_grpc_transport.py b/datastore/google/cloud/datastore_v1/gapic/transports/datastore_grpc_transport.py index 3f0e8ef0cd13..1b5639d2dd44 100644 --- a/datastore/google/cloud/datastore_v1/gapic/transports/datastore_grpc_transport.py +++ b/datastore/google/cloud/datastore_v1/gapic/transports/datastore_grpc_transport.py @@ -27,17 +27,17 @@ class DatastoreGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/datastore', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/datastore", ) - def __init__(self, - channel=None, - credentials=None, - address='datastore.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="datastore.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -55,28 +55,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'datastore_stub': datastore_pb2_grpc.DatastoreStub(channel), - } + self._stubs = {"datastore_stub": datastore_pb2_grpc.DatastoreStub(channel)} @classmethod - def create_channel(cls, - address='datastore.googleapis.com:443', - credentials=None): + def create_channel(cls, address="datastore.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -91,9 +84,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -116,7 +107,7 @@ def lookup(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['datastore_stub'].Lookup + return self._stubs["datastore_stub"].Lookup @property def run_query(self): @@ -129,7 +120,7 @@ def run_query(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['datastore_stub'].RunQuery + return self._stubs["datastore_stub"].RunQuery @property def begin_transaction(self): @@ -142,7 +133,7 @@ def begin_transaction(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['datastore_stub'].BeginTransaction + return self._stubs["datastore_stub"].BeginTransaction @property def commit(self): @@ -156,7 +147,7 @@ def commit(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['datastore_stub'].Commit + return self._stubs["datastore_stub"].Commit @property def rollback(self): @@ -169,7 +160,7 @@ def rollback(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['datastore_stub'].Rollback + return self._stubs["datastore_stub"].Rollback @property def allocate_ids(self): @@ -183,7 +174,7 @@ def allocate_ids(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['datastore_stub'].AllocateIds + return self._stubs["datastore_stub"].AllocateIds @property def reserve_ids(self): @@ -197,4 +188,4 @@ def reserve_ids(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['datastore_stub'].ReserveIds + return self._stubs["datastore_stub"].ReserveIds diff --git a/datastore/google/cloud/datastore_v1/types.py b/datastore/google/cloud/datastore_v1/types.py index 6f9f243b3a84..ac154bda0e67 100644 --- a/datastore/google/cloud/datastore_v1/types.py +++ b/datastore/google/cloud/datastore_v1/types.py @@ -37,11 +37,7 @@ latlng_pb2, ] -_local_modules = [ - datastore_pb2, - entity_pb2, - query_pb2, -] +_local_modules = [datastore_pb2, entity_pb2, query_pb2] names = [] @@ -52,7 +48,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.datastore_v1.types' + message.__module__ = "google.cloud.datastore_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/datastore/tests/doctests.py b/datastore/tests/doctests.py index 4901d8de538f..329b3d416d3b 100644 --- a/datastore/tests/doctests.py +++ b/datastore/tests/doctests.py @@ -39,9 +39,8 @@ """ -@unittest.skipIf(six.PY2, 'Doctests run against Python 3 only.') +@unittest.skipIf(six.PY2, "Doctests run against Python 3 only.") class TestDoctest(unittest.TestCase): - def _submodules(self): pkg_iter = pkgutil.iter_modules(datastore.__path__) result = [] @@ -49,29 +48,29 @@ def _submodules(self): self.assertFalse(ispkg) result.append(mod_name) - self.assertNotIn('__init__', result) + self.assertNotIn("__init__", result) return result @staticmethod def _add_section(index, mod_name, file_obj): - mod_part = 'datastore' - if mod_name != '__init__': - mod_part += '.' + mod_name + mod_part = "datastore" + if mod_name != "__init__": + mod_part += "." + mod_name content = SPHINX_SECTION_TEMPLATE % (index, mod_part) file_obj.write(content) def _make_temp_docs(self): - docs_dir = tempfile.mkdtemp(prefix='datastore-') + docs_dir = tempfile.mkdtemp(prefix="datastore-") - conf_file = os.path.join(docs_dir, 'conf.py') + conf_file = os.path.join(docs_dir, "conf.py") - with open(conf_file, 'w') as file_obj: + with open(conf_file, "w") as file_obj: file_obj.write(SPHINX_CONF) - index_file = os.path.join(docs_dir, 'contents.rst') + index_file = os.path.join(docs_dir, "contents.rst") datastore_modules = self._submodules() - with open(index_file, 'w') as file_obj: - self._add_section(0, '__init__', file_obj) + with open(index_file, "w") as file_obj: + self._add_section(0, "__init__", file_obj) for index, datastore_module in enumerate(datastore_modules): self._add_section(index + 1, datastore_module, file_obj) @@ -81,13 +80,18 @@ def test_it(self): from sphinx import application docs_dir = self._make_temp_docs() - outdir = os.path.join(docs_dir, 'doctest', 'out') - doctreedir = os.path.join(docs_dir, 'doctest', 'doctrees') + outdir = os.path.join(docs_dir, "doctest", "out") + doctreedir = os.path.join(docs_dir, "doctest", "doctrees") app = application.Sphinx( - srcdir=docs_dir, confdir=docs_dir, - outdir=outdir, doctreedir=doctreedir, - buildername='doctest', warningiserror=True, parallel=1) + srcdir=docs_dir, + confdir=docs_dir, + outdir=outdir, + doctreedir=doctreedir, + buildername="doctest", + warningiserror=True, + parallel=1, + ) app.build() self.assertEqual(app.statuscode, 0) diff --git a/datastore/tests/system/test_system.py b/datastore/tests/system/test_system.py index 2a1080b628e5..482b0b80ba7d 100644 --- a/datastore/tests/system/test_system.py +++ b/datastore/tests/system/test_system.py @@ -38,30 +38,35 @@ class Config(object): This is a mutable stand-in to allow test set-up to modify global state. """ + CLIENT = None TO_DELETE = [] def clone_client(client): - return datastore.Client(project=client.project, - namespace=client.namespace, - credentials=client._credentials, - _http=client._http) + return datastore.Client( + project=client.project, + namespace=client.namespace, + credentials=client._credentials, + _http=client._http, + ) def setUpModule(): emulator_dataset = os.getenv(GCD_DATASET) # Isolated namespace so concurrent test runs don't collide. - test_namespace = 'ns' + unique_resource_id() + test_namespace = "ns" + unique_resource_id() if emulator_dataset is None: Config.CLIENT = datastore.Client(namespace=test_namespace) else: credentials = EmulatorCreds() http = requests.Session() # Un-authorized. - Config.CLIENT = datastore.Client(project=emulator_dataset, - namespace=test_namespace, - credentials=credentials, - _http=http) + Config.CLIENT = datastore.Client( + project=emulator_dataset, + namespace=test_namespace, + credentials=credentials, + _http=http, + ) def tearDownModule(): @@ -71,7 +76,6 @@ def tearDownModule(): class TestDatastore(unittest.TestCase): - def setUp(self): self.case_entities_to_delete = [] @@ -82,11 +86,9 @@ def tearDown(self): class TestDatastoreAllocateIDs(TestDatastore): - def test_allocate_ids(self): num_ids = 10 - allocated_keys = Config.CLIENT.allocate_ids( - Config.CLIENT.key('Kind'), num_ids) + allocated_keys = Config.CLIENT.allocate_ids(Config.CLIENT.key("Kind"), num_ids) self.assertEqual(len(allocated_keys), num_ids) unique_ids = set() @@ -99,25 +101,24 @@ def test_allocate_ids(self): class TestDatastoreSave(TestDatastore): - @classmethod def setUpClass(cls): - cls.PARENT = Config.CLIENT.key('Blog', 'PizzaMan') + cls.PARENT = Config.CLIENT.key("Blog", "PizzaMan") def _get_post(self, id_or_name=None, post_content=None): post_content = post_content or { - 'title': u'How to make the perfect pizza in your grill', - 'tags': [u'pizza', u'grill'], - 'publishedAt': datetime.datetime(2001, 1, 1, tzinfo=UTC), - 'author': u'Silvano', - 'isDraft': False, - 'wordCount': 400, - 'rating': 5.0, + "title": u"How to make the perfect pizza in your grill", + "tags": [u"pizza", u"grill"], + "publishedAt": datetime.datetime(2001, 1, 1, tzinfo=UTC), + "author": u"Silvano", + "isDraft": False, + "wordCount": 400, + "rating": 5.0, } # Create an entity with the given content. # NOTE: Using a parent to ensure consistency for query # in `test_empty_kind`. - key = Config.CLIENT.key('Post', parent=self.PARENT) + key = Config.CLIENT.key("Post", parent=self.PARENT) entity = datastore.Entity(key=key) entity.update(post_content) @@ -143,7 +144,7 @@ def _generic_test_post(self, name=None, key_id=None): self.assertEqual(retrieved_entity, entity) def test_post_with_name(self): - self._generic_test_post(name='post1') + self._generic_test_post(name="post1") def test_post_with_id(self): self._generic_test_post(key_id=123456789) @@ -159,13 +160,13 @@ def test_save_multiple(self): self.case_entities_to_delete.append(entity1) second_post_content = { - 'title': u'How to make the perfect homemade pasta', - 'tags': [u'pasta', u'homemade'], - 'publishedAt': datetime.datetime(2001, 1, 1), - 'author': u'Silvano', - 'isDraft': False, - 'wordCount': 450, - 'rating': 4.5, + "title": u"How to make the perfect homemade pasta", + "tags": [u"pasta", u"homemade"], + "publishedAt": datetime.datetime(2001, 1, 1), + "author": u"Silvano", + "isDraft": False, + "wordCount": 450, + "rating": 4.5, } entity2 = self._get_post(post_content=second_post_content) xact.put(entity2) @@ -177,28 +178,28 @@ def test_save_multiple(self): self.assertEqual(len(matches), 2) def test_empty_kind(self): - query = Config.CLIENT.query(kind='Post') + query = Config.CLIENT.query(kind="Post") query.ancestor = self.PARENT posts = list(query.fetch(limit=2)) self.assertEqual(posts, []) def test_all_value_types(self): - key = Config.CLIENT.key('TestPanObject', 1234) + key = Config.CLIENT.key("TestPanObject", 1234) entity = datastore.Entity(key=key) - entity['timestamp'] = datetime.datetime(2014, 9, 9, tzinfo=UTC) - key_stored = Config.CLIENT.key('SavedKey', 'right-here') - entity['key'] = key_stored - entity['truthy'] = True - entity['float'] = 2.718281828 - entity['int'] = 3735928559 - entity['words'] = u'foo' - entity['blob'] = b'seekretz' + entity["timestamp"] = datetime.datetime(2014, 9, 9, tzinfo=UTC) + key_stored = Config.CLIENT.key("SavedKey", "right-here") + entity["key"] = key_stored + entity["truthy"] = True + entity["float"] = 2.718281828 + entity["int"] = 3735928559 + entity["words"] = u"foo" + entity["blob"] = b"seekretz" entity_stored = datastore.Entity(key=key_stored) - entity_stored['hi'] = 'bye' - entity['nested'] = entity_stored - entity['items'] = [1, 2, 3] - entity['geo'] = GeoPoint(1.0, 2.0) - entity['nothing_here'] = None + entity_stored["hi"] = "bye" + entity["nested"] = entity_stored + entity["items"] = [1, 2, 3] + entity["geo"] = GeoPoint(1.0, 2.0) + entity["nothing_here"] = None # Store the entity. self.case_entities_to_delete.append(entity) @@ -210,28 +211,26 @@ def test_all_value_types(self): class TestDatastoreSaveKeys(TestDatastore): - def test_save_key_self_reference(self): - parent_key = Config.CLIENT.key('Residence', 'NewYork') - key = Config.CLIENT.key('Person', 'name', parent=parent_key) + parent_key = Config.CLIENT.key("Residence", "NewYork") + key = Config.CLIENT.key("Person", "name", parent=parent_key) entity = datastore.Entity(key=key) - entity['fullName'] = u'Full name' - entity['linkedTo'] = key # Self reference. + entity["fullName"] = u"Full name" + entity["linkedTo"] = key # Self reference. Config.CLIENT.put(entity) self.case_entities_to_delete.append(entity) - query = Config.CLIENT.query(kind='Person') + query = Config.CLIENT.query(kind="Person") # Adding ancestor to ensure consistency. query.ancestor = parent_key - query.add_filter('linkedTo', '=', key) + query.add_filter("linkedTo", "=", key) stored_persons = list(query.fetch(limit=2)) self.assertEqual(stored_persons, [entity]) class TestDatastoreQuery(TestDatastore): - @classmethod def setUpClass(cls): cls.CLIENT = clone_client(Config.CLIENT) @@ -258,8 +257,7 @@ def tearDownClass(cls): def _base_query(self): # Use the client for this test instead of the global. - return self.CLIENT.query(kind='Character', - ancestor=self.ANCESTOR_KEY) + return self.CLIENT.query(kind="Character", ancestor=self.ANCESTOR_KEY) def test_limit_queries(self): limit = 5 @@ -282,7 +280,7 @@ def test_limit_queries(self): def test_query_simple_filter(self): query = self._base_query() - query.add_filter('appearances', '>=', 20) + query.add_filter("appearances", ">=", 20) expected_matches = 6 # We expect 6, but allow the query to get 1 extra. entities = list(query.fetch(limit=expected_matches + 1)) @@ -290,8 +288,8 @@ def test_query_simple_filter(self): def test_query_multiple_filters(self): query = self._base_query() - query.add_filter('appearances', '>=', 26) - query.add_filter('family', '=', 'Stark') + query.add_filter("appearances", ">=", 26) + query.add_filter("family", "=", "Stark") expected_matches = 4 # We expect 4, but allow the query to get 1 extra. entities = list(query.fetch(limit=expected_matches + 1)) @@ -318,20 +316,20 @@ def test_query_key_filter(self): def test_ordered_query(self): query = self._base_query() - query.order = 'appearances' + query.order = "appearances" expected_matches = 8 # We expect 8, but allow the query to get 1 extra. entities = list(query.fetch(limit=expected_matches + 1)) self.assertEqual(len(entities), expected_matches) # Actually check the ordered data returned. - self.assertEqual(entities[0]['name'], self.CHARACTERS[0]['name']) - self.assertEqual(entities[7]['name'], self.CHARACTERS[3]['name']) + self.assertEqual(entities[0]["name"], self.CHARACTERS[0]["name"]) + self.assertEqual(entities[7]["name"], self.CHARACTERS[3]["name"]) def test_projection_query(self): filtered_query = self._base_query() - filtered_query.projection = ['name', 'family'] - filtered_query.order = ['name', 'family'] + filtered_query.projection = ["name", "family"] + filtered_query.order = ["name", "family"] # NOTE: There are 9 responses because of Catelyn. She has both # Stark and Tully as her families, hence occurs twice in @@ -346,27 +344,25 @@ def test_projection_query(self): sansa_entity = entities[8] arya_dict = dict(arya_entity) - self.assertEqual(arya_dict, {'name': 'Arya', 'family': 'Stark'}) + self.assertEqual(arya_dict, {"name": "Arya", "family": "Stark"}) catelyn_stark_entity = entities[2] catelyn_stark_dict = dict(catelyn_stark_entity) - self.assertEqual(catelyn_stark_dict, - {'name': 'Catelyn', 'family': 'Stark'}) + self.assertEqual(catelyn_stark_dict, {"name": "Catelyn", "family": "Stark"}) catelyn_tully_dict = dict(catelyn_tully_entity) - self.assertEqual(catelyn_tully_dict, - {'name': 'Catelyn', 'family': 'Tully'}) + self.assertEqual(catelyn_tully_dict, {"name": "Catelyn", "family": "Tully"}) # Check both Catelyn keys are the same. self.assertEqual(catelyn_stark_entity.key, catelyn_tully_entity.key) sansa_dict = dict(sansa_entity) - self.assertEqual(sansa_dict, {'name': 'Sansa', 'family': 'Stark'}) + self.assertEqual(sansa_dict, {"name": "Sansa", "family": "Stark"}) def test_query_paginate_simple_uuid_keys(self): # See issue #4264 - page_query = self.CLIENT.query(kind='uuid_key') + page_query = self.CLIENT.query(kind="uuid_key") iterator = page_query.fetch() seen = set() @@ -383,7 +379,7 @@ def test_query_paginate_simple_uuid_keys(self): def test_query_paginate_simple_timestamp_keys(self): # See issue #4264 - page_query = self.CLIENT.query(kind='timestamp_key') + page_query = self.CLIENT.query(kind="timestamp_key") iterator = page_query.fetch() seen = set() @@ -402,7 +398,7 @@ def test_query_offset_timestamp_keys(self): max_all = 10000 offset = 1 max_offset = max_all - offset - query = self.CLIENT.query(kind='timestamp_key') + query = self.CLIENT.query(kind="timestamp_key") all_w_limit = list(query.fetch(limit=max_all)) self.assertEqual(len(all_w_limit), max_all) @@ -411,7 +407,7 @@ def test_query_offset_timestamp_keys(self): def test_query_paginate_with_offset(self): page_query = self._base_query() - page_query.order = 'appearances' + page_query.order = "appearances" offset = 2 limit = 3 iterator = page_query.fetch(limit=limit, offset=offset) @@ -421,22 +417,21 @@ def test_query_paginate_with_offset(self): entities = list(page) cursor = iterator.next_page_token self.assertEqual(len(entities), limit) - self.assertEqual(entities[0]['name'], 'Robb') - self.assertEqual(entities[1]['name'], 'Bran') - self.assertEqual(entities[2]['name'], 'Catelyn') + self.assertEqual(entities[0]["name"], "Robb") + self.assertEqual(entities[1]["name"], "Bran") + self.assertEqual(entities[2]["name"], "Catelyn") # Fetch next set of characters. - new_iterator = page_query.fetch(limit=limit, offset=0, - start_cursor=cursor) + new_iterator = page_query.fetch(limit=limit, offset=0, start_cursor=cursor) entities = list(new_iterator) self.assertEqual(len(entities), limit) - self.assertEqual(entities[0]['name'], 'Sansa') - self.assertEqual(entities[1]['name'], 'Jon Snow') - self.assertEqual(entities[2]['name'], 'Arya') + self.assertEqual(entities[0]["name"], "Sansa") + self.assertEqual(entities[1]["name"], "Jon Snow") + self.assertEqual(entities[2]["name"], "Arya") def test_query_paginate_with_start_cursor(self): page_query = self._base_query() - page_query.order = 'appearances' + page_query.order = "appearances" limit = 3 offset = 2 iterator = page_query.fetch(limit=limit, offset=offset) @@ -449,33 +444,31 @@ def test_query_paginate_with_start_cursor(self): # Use cursor to create a fresh query. fresh_query = self._base_query() - fresh_query.order = 'appearances' + fresh_query.order = "appearances" - new_entities = list(fresh_query.fetch(start_cursor=cursor, - limit=limit)) + new_entities = list(fresh_query.fetch(start_cursor=cursor, limit=limit)) characters_remaining = len(self.CHARACTERS) - limit - offset self.assertEqual(len(new_entities), characters_remaining) - self.assertEqual(new_entities[0]['name'], 'Sansa') - self.assertEqual(new_entities[2]['name'], 'Arya') + self.assertEqual(new_entities[0]["name"], "Sansa") + self.assertEqual(new_entities[2]["name"], "Arya") def test_query_distinct_on(self): query = self._base_query() - query.distinct_on = ['alive'] + query.distinct_on = ["alive"] expected_matches = 2 # We expect 2, but allow the query to get 1 extra. entities = list(query.fetch(limit=expected_matches + 1)) self.assertEqual(len(entities), expected_matches) - self.assertEqual(entities[0]['name'], 'Catelyn') - self.assertEqual(entities[1]['name'], 'Arya') + self.assertEqual(entities[0]["name"], "Catelyn") + self.assertEqual(entities[1]["name"], "Arya") class TestDatastoreTransaction(TestDatastore): - def test_transaction_via_with_statement(self): - entity = datastore.Entity(key=Config.CLIENT.key('Company', 'Google')) - entity['url'] = u'www.google.com' + entity = datastore.Entity(key=Config.CLIENT.key("Company", "Google")) + entity["url"] = u"www.google.com" with Config.CLIENT.transaction() as xact: result = Config.CLIENT.get(entity.key) @@ -497,12 +490,12 @@ def test_transaction_via_explicit_begin_get_commit(self): BEFORE_1 = 100 BEFORE_2 = 0 TRANSFER_AMOUNT = 40 - key1 = Config.CLIENT.key('account', '123') + key1 = Config.CLIENT.key("account", "123") account1 = datastore.Entity(key=key1) - account1['balance'] = BEFORE_1 - key2 = Config.CLIENT.key('account', '234') + account1["balance"] = BEFORE_1 + key2 = Config.CLIENT.key("account", "234") account2 = datastore.Entity(key=key2) - account2['balance'] = BEFORE_2 + account2["balance"] = BEFORE_2 Config.CLIENT.put_multi([account1, account2]) self.case_entities_to_delete.append(account1) self.case_entities_to_delete.append(account2) @@ -511,8 +504,8 @@ def test_transaction_via_explicit_begin_get_commit(self): xact.begin() from_account = Config.CLIENT.get(key1, transaction=xact) to_account = Config.CLIENT.get(key2, transaction=xact) - from_account['balance'] -= TRANSFER_AMOUNT - to_account['balance'] += TRANSFER_AMOUNT + from_account["balance"] -= TRANSFER_AMOUNT + to_account["balance"] += TRANSFER_AMOUNT xact.put(from_account) xact.put(to_account) @@ -520,18 +513,18 @@ def test_transaction_via_explicit_begin_get_commit(self): after1 = Config.CLIENT.get(key1) after2 = Config.CLIENT.get(key2) - self.assertEqual(after1['balance'], BEFORE_1 - TRANSFER_AMOUNT) - self.assertEqual(after2['balance'], BEFORE_2 + TRANSFER_AMOUNT) + self.assertEqual(after1["balance"], BEFORE_1 - TRANSFER_AMOUNT) + self.assertEqual(after2["balance"], BEFORE_2 + TRANSFER_AMOUNT) def test_failure_with_contention(self): - contention_prop_name = 'baz' + contention_prop_name = "baz" local_client = clone_client(Config.CLIENT) # Insert an entity which will be retrieved in a transaction # and updated outside it with a contentious value. - key = local_client.key('BreakTxn', 1234) + key = local_client.key("BreakTxn", 1234) orig_entity = datastore.Entity(key=key) - orig_entity['foo'] = u'bar' + orig_entity["foo"] = u"bar" local_client.put(orig_entity) self.case_entities_to_delete.append(orig_entity) @@ -540,22 +533,22 @@ def test_failure_with_contention(self): entity_in_txn = local_client.get(key) # Update the original entity outside the transaction. - orig_entity[contention_prop_name] = u'outside' + orig_entity[contention_prop_name] = u"outside" Config.CLIENT.put(orig_entity) # Try to update the entity which we already updated outside the # transaction. - entity_in_txn[contention_prop_name] = u'inside' + entity_in_txn[contention_prop_name] = u"inside" txn.put(entity_in_txn) def test_empty_array_put(self): local_client = clone_client(Config.CLIENT) - key = local_client.key('EmptyArray', 1234) + key = local_client.key("EmptyArray", 1234) local_client = datastore.Client() entity = datastore.Entity(key=key) - entity['children'] = [] + entity["children"] = [] local_client.put(entity) retrieved = local_client.get(entity.key) - self.assertEqual(entity['children'], retrieved['children']) + self.assertEqual(entity["children"], retrieved["children"]) diff --git a/datastore/tests/system/utils/clear_datastore.py b/datastore/tests/system/utils/clear_datastore.py index 5820fbf7d2b1..03f5ffddbe10 100644 --- a/datastore/tests/system/utils/clear_datastore.py +++ b/datastore/tests/system/utils/clear_datastore.py @@ -26,20 +26,20 @@ FETCH_MAX = 20 ALL_KINDS = ( - 'Character', - 'Company', - 'Kind', - 'Person', - 'Post', - 'uuid_key', - 'timestamp_key', + "Character", + "Company", + "Kind", + "Person", + "Post", + "uuid_key", + "timestamp_key", ) TRANSACTION_MAX_GROUPS = 5 MAX_DEL_ENTITIES = 500 def print_func(message): - if os.getenv('GOOGLE_CLOUD_NO_PRINT') != 'true': + if os.getenv("GOOGLE_CLOUD_NO_PRINT") != "true": print(message) @@ -67,7 +67,7 @@ def remove_kind(kind, client): delete_outside_transaction = False with client.transaction(): # Now that we have all results, we seek to delete. - print_func('Deleting keys:') + print_func("Deleting keys:") print_func(results) ancestors = get_ancestors(results) @@ -87,19 +87,18 @@ def main(): if len(kinds) == 0: kinds = ALL_KINDS - print_func('This command will remove all entities for ' - 'the following kinds:') - print_func('\n'.join('- ' + val for val in kinds)) - response = six.moves.input('Is this OK [y/n]? ') + print_func("This command will remove all entities for " "the following kinds:") + print_func("\n".join("- " + val for val in kinds)) + response = six.moves.input("Is this OK [y/n]? ") - if response.lower() == 'y': + if response.lower() == "y": for kind in kinds: remove_kind(kind, client) else: - print_func('Doing nothing.') + print_func("Doing nothing.") -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/datastore/tests/system/utils/populate_datastore.py b/datastore/tests/system/utils/populate_datastore.py index 9dcadd00dfb1..2c266a8ac4bc 100644 --- a/datastore/tests/system/utils/populate_datastore.py +++ b/datastore/tests/system/utils/populate_datastore.py @@ -27,66 +27,38 @@ from google.cloud import datastore -ANCESTOR = ('Book', 'GoT') -RICKARD = ANCESTOR + ('Character', 'Rickard') -EDDARD = RICKARD + ('Character', 'Eddard') +ANCESTOR = ("Book", "GoT") +RICKARD = ANCESTOR + ("Character", "Rickard") +EDDARD = RICKARD + ("Character", "Eddard") KEY_PATHS = ( RICKARD, EDDARD, - ANCESTOR + ('Character', 'Catelyn'), - EDDARD + ('Character', 'Arya'), - EDDARD + ('Character', 'Sansa'), - EDDARD + ('Character', 'Robb'), - EDDARD + ('Character', 'Bran'), - EDDARD + ('Character', 'Jon Snow'), + ANCESTOR + ("Character", "Catelyn"), + EDDARD + ("Character", "Arya"), + EDDARD + ("Character", "Sansa"), + EDDARD + ("Character", "Robb"), + EDDARD + ("Character", "Bran"), + EDDARD + ("Character", "Jon Snow"), ) CHARACTERS = ( + {"name": u"Rickard", "family": u"Stark", "appearances": 0, "alive": False}, + {"name": u"Eddard", "family": u"Stark", "appearances": 9, "alive": False}, { - 'name': u'Rickard', - 'family': u'Stark', - 'appearances': 0, - 'alive': False, - }, { - 'name': u'Eddard', - 'family': u'Stark', - 'appearances': 9, - 'alive': False, - }, { - 'name': u'Catelyn', - 'family': [u'Stark', u'Tully'], - 'appearances': 26, - 'alive': False, - }, { - 'name': u'Arya', - 'family': u'Stark', - 'appearances': 33, - 'alive': True, - }, { - 'name': u'Sansa', - 'family': u'Stark', - 'appearances': 31, - 'alive': True, - }, { - 'name': u'Robb', - 'family': u'Stark', - 'appearances': 22, - 'alive': False, - }, { - 'name': u'Bran', - 'family': u'Stark', - 'appearances': 25, - 'alive': True, - }, { - 'name': u'Jon Snow', - 'family': u'Stark', - 'appearances': 32, - 'alive': True, + "name": u"Catelyn", + "family": [u"Stark", u"Tully"], + "appearances": 26, + "alive": False, }, + {"name": u"Arya", "family": u"Stark", "appearances": 33, "alive": True}, + {"name": u"Sansa", "family": u"Stark", "appearances": 31, "alive": True}, + {"name": u"Robb", "family": u"Stark", "appearances": 22, "alive": False}, + {"name": u"Bran", "family": u"Stark", "appearances": 25, "alive": True}, + {"name": u"Jon Snow", "family": u"Stark", "appearances": 32, "alive": True}, ) def print_func(message): - if os.getenv('GOOGLE_CLOUD_NO_PRINT') != 'true': + if os.getenv("GOOGLE_CLOUD_NO_PRINT") != "true": print(message) @@ -96,14 +68,14 @@ def add_characters(client=None): client = datastore.Client() with client.transaction() as xact: for key_path, character in six.moves.zip(KEY_PATHS, CHARACTERS): - if key_path[-1] != character['name']: - raise ValueError(('Character and key don\'t agree', - key_path, character)) + if key_path[-1] != character["name"]: + raise ValueError(("Character and key don't agree", key_path, character)) entity = datastore.Entity(key=client.key(*key_path)) entity.update(character) xact.put(entity) - print_func('Adding Character %s %s' % (character['name'], - character['family'])) + print_func( + "Adding Character %s %s" % (character["name"], character["family"]) + ) def add_uid_keys(client=None): @@ -118,10 +90,10 @@ def add_uid_keys(client=None): with client.batch() as batch: for seq_no in range(batch_size): uid = str(uuid.uuid4()) - key = client.key('uuid_key', uid) + key = client.key("uuid_key", uid) entity = datastore.Entity(key=key) - entity['batch_num'] = batch_num - entity['seq_no'] = seq_no + entity["batch_num"] = batch_num + entity["seq_no"] = seq_no batch.put(entity) @@ -137,17 +109,15 @@ def add_timestamp_keys(client=None): for batch_num in range(num_batches): with client.batch() as batch: for seq_no in range(batch_size): - print( - "time_time: batch: {}, sequence: {}".format( - batch_num, seq_no)) + print("time_time: batch: {}, sequence: {}".format(batch_num, seq_no)) now_micros = int(time.time() * 1e6) while now_micros in timestamp_micros: now_micros = int(time.time() * 1e6) timestamp_micros.add(now_micros) - key = client.key('timestamp_key', now_micros) + key = client.key("timestamp_key", now_micros) entity = datastore.Entity(key=key) - entity['batch_num'] = batch_num - entity['seq_no'] = seq_no + entity["batch_num"] = batch_num + entity["seq_no"] = seq_no batch.put(entity) @@ -156,17 +126,17 @@ def main(): flags = sys.argv[1:] if len(flags) == 0: - flags = ['--characters', '--uuid', '--timestamps'] + flags = ["--characters", "--uuid", "--timestamps"] - if '--characters' in flags: + if "--characters" in flags: add_characters(client) - if '--uuid' in flags: + if "--uuid" in flags: add_uid_keys(client) - if '--timestamps' in flags: + if "--timestamps" in flags: add_timestamp_keys(client) -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/datastore/tests/unit/gapic/v1/test_datastore_client_v1.py b/datastore/tests/unit/gapic/v1/test_datastore_client_v1.py index 0ac8a955480a..7dfb27ed129e 100644 --- a/datastore/tests/unit/gapic/v1/test_datastore_client_v1.py +++ b/datastore/tests/unit/gapic/v1/test_datastore_client_v1.py @@ -49,10 +49,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -71,15 +68,14 @@ def test_lookup(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup Request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" keys = [] response = client.lookup(project_id, keys) assert expected_response == response assert len(channel.requests) == 1 - expected_request = datastore_pb2.LookupRequest( - project_id=project_id, keys=keys) + expected_request = datastore_pb2.LookupRequest(project_id=project_id, keys=keys) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -89,7 +85,7 @@ def test_lookup_exception(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" keys = [] with pytest.raises(CustomException): @@ -105,7 +101,7 @@ def test_run_query(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup Request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" partition_id = {} response = client.run_query(project_id, partition_id) @@ -113,7 +109,8 @@ def test_run_query(self): assert len(channel.requests) == 1 expected_request = datastore_pb2.RunQueryRequest( - project_id=project_id, partition_id=partition_id) + project_id=project_id, partition_id=partition_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -123,7 +120,7 @@ def test_run_query_exception(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" partition_id = {} with pytest.raises(CustomException): @@ -131,24 +128,22 @@ def test_run_query_exception(self): def test_begin_transaction(self): # Setup Expected Response - transaction = b'-34' - expected_response = {'transaction': transaction} - expected_response = datastore_pb2.BeginTransactionResponse( - **expected_response) + transaction = b"-34" + expected_response = {"transaction": transaction} + expected_response = datastore_pb2.BeginTransactionResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) client = datastore_v1.DatastoreClient(channel=channel) # Setup Request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" response = client.begin_transaction(project_id) assert expected_response == response assert len(channel.requests) == 1 - expected_request = datastore_pb2.BeginTransactionRequest( - project_id=project_id) + expected_request = datastore_pb2.BeginTransactionRequest(project_id=project_id) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -158,7 +153,7 @@ def test_begin_transaction_exception(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" with pytest.raises(CustomException): client.begin_transaction(project_id) @@ -166,7 +161,7 @@ def test_begin_transaction_exception(self): def test_commit(self): # Setup Expected Response index_updates = 1425228195 - expected_response = {'index_updates': index_updates} + expected_response = {"index_updates": index_updates} expected_response = datastore_pb2.CommitResponse(**expected_response) # Mock the API response @@ -174,7 +169,7 @@ def test_commit(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup Request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" mode = enums.CommitRequest.Mode.MODE_UNSPECIFIED mutations = [] @@ -183,7 +178,8 @@ def test_commit(self): assert len(channel.requests) == 1 expected_request = datastore_pb2.CommitRequest( - project_id=project_id, mode=mode, mutations=mutations) + project_id=project_id, mode=mode, mutations=mutations + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -193,7 +189,7 @@ def test_commit_exception(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" mode = enums.CommitRequest.Mode.MODE_UNSPECIFIED mutations = [] @@ -210,15 +206,16 @@ def test_rollback(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup Request - project_id = 'projectId-1969970175' - transaction = b'-34' + project_id = "projectId-1969970175" + transaction = b"-34" response = client.rollback(project_id, transaction) assert expected_response == response assert len(channel.requests) == 1 expected_request = datastore_pb2.RollbackRequest( - project_id=project_id, transaction=transaction) + project_id=project_id, transaction=transaction + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -228,8 +225,8 @@ def test_rollback_exception(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup request - project_id = 'projectId-1969970175' - transaction = b'-34' + project_id = "projectId-1969970175" + transaction = b"-34" with pytest.raises(CustomException): client.rollback(project_id, transaction) @@ -237,15 +234,14 @@ def test_rollback_exception(self): def test_allocate_ids(self): # Setup Expected Response expected_response = {} - expected_response = datastore_pb2.AllocateIdsResponse( - **expected_response) + expected_response = datastore_pb2.AllocateIdsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) client = datastore_v1.DatastoreClient(channel=channel) # Setup Request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" keys = [] response = client.allocate_ids(project_id, keys) @@ -253,7 +249,8 @@ def test_allocate_ids(self): assert len(channel.requests) == 1 expected_request = datastore_pb2.AllocateIdsRequest( - project_id=project_id, keys=keys) + project_id=project_id, keys=keys + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -263,7 +260,7 @@ def test_allocate_ids_exception(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" keys = [] with pytest.raises(CustomException): @@ -272,15 +269,14 @@ def test_allocate_ids_exception(self): def test_reserve_ids(self): # Setup Expected Response expected_response = {} - expected_response = datastore_pb2.ReserveIdsResponse( - **expected_response) + expected_response = datastore_pb2.ReserveIdsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) client = datastore_v1.DatastoreClient(channel=channel) # Setup Request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" keys = [] response = client.reserve_ids(project_id, keys) @@ -288,7 +284,8 @@ def test_reserve_ids(self): assert len(channel.requests) == 1 expected_request = datastore_pb2.ReserveIdsRequest( - project_id=project_id, keys=keys) + project_id=project_id, keys=keys + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -298,7 +295,7 @@ def test_reserve_ids_exception(self): client = datastore_v1.DatastoreClient(channel=channel) # Setup request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" keys = [] with pytest.raises(CustomException): diff --git a/datastore/tests/unit/test__gapic.py b/datastore/tests/unit/test__gapic.py index f971eef7c4d9..ef359d4068e5 100644 --- a/datastore/tests/unit/test__gapic.py +++ b/datastore/tests/unit/test__gapic.py @@ -19,57 +19,63 @@ from google.cloud.datastore.client import _HAVE_GRPC -@unittest.skipUnless(_HAVE_GRPC, 'No gRPC') +@unittest.skipUnless(_HAVE_GRPC, "No gRPC") class Test_make_datastore_api(unittest.TestCase): - def _call_fut(self, client): from google.cloud.datastore._gapic import make_datastore_api return make_datastore_api(client) @mock.patch( - 'google.cloud.datastore_v1.gapic.datastore_client.DatastoreClient', - return_value=mock.sentinel.ds_client) - @mock.patch('google.cloud.datastore._gapic.make_secure_channel', - return_value=mock.sentinel.channel) + "google.cloud.datastore_v1.gapic.datastore_client.DatastoreClient", + return_value=mock.sentinel.ds_client, + ) + @mock.patch( + "google.cloud.datastore._gapic.make_secure_channel", + return_value=mock.sentinel.channel, + ) def test_live_api(self, make_chan, mock_klass): from google.cloud._http import DEFAULT_USER_AGENT - base_url = 'https://datastore.googleapis.com:443' + base_url = "https://datastore.googleapis.com:443" client = mock.Mock( _base_url=base_url, _credentials=mock.sentinel.credentials, - spec=['_base_url', '_credentials']) + spec=["_base_url", "_credentials"], + ) ds_api = self._call_fut(client) self.assertIs(ds_api, mock.sentinel.ds_client) make_chan.assert_called_once_with( mock.sentinel.credentials, DEFAULT_USER_AGENT, - 'datastore.googleapis.com:443') + "datastore.googleapis.com:443", + ) mock_klass.assert_called_once_with( - channel=mock.sentinel.channel, - client_info=mock.ANY, + channel=mock.sentinel.channel, client_info=mock.ANY ) @mock.patch( - 'google.cloud.datastore_v1.gapic.datastore_client.DatastoreClient', - return_value=mock.sentinel.ds_client) - @mock.patch('google.cloud.datastore._gapic.insecure_channel', - return_value=mock.sentinel.channel) + "google.cloud.datastore_v1.gapic.datastore_client.DatastoreClient", + return_value=mock.sentinel.ds_client, + ) + @mock.patch( + "google.cloud.datastore._gapic.insecure_channel", + return_value=mock.sentinel.channel, + ) def test_emulator(self, make_chan, mock_klass): - host = 'localhost:8901' - base_url = 'http://' + host + host = "localhost:8901" + base_url = "http://" + host client = mock.Mock( _base_url=base_url, _credentials=mock.sentinel.credentials, - spec=['_base_url', '_credentials']) + spec=["_base_url", "_credentials"], + ) ds_api = self._call_fut(client) self.assertIs(ds_api, mock.sentinel.ds_client) make_chan.assert_called_once_with(host) mock_klass.assert_called_once_with( - channel=mock.sentinel.channel, - client_info=mock.ANY, + channel=mock.sentinel.channel, client_info=mock.ANY ) diff --git a/datastore/tests/unit/test__http.py b/datastore/tests/unit/test__http.py index 9610e966d419..b402eafc9532 100644 --- a/datastore/tests/unit/test__http.py +++ b/datastore/tests/unit/test__http.py @@ -21,7 +21,6 @@ class Test__request(unittest.TestCase): - @staticmethod def _call_fut(*args, **kwargs): from google.cloud.datastore._http import _request @@ -32,11 +31,11 @@ def test_success(self): from google.cloud import _http as connection_module from google.cloud.datastore._http import _CLIENT_INFO - project = 'PROJECT' - method = 'METHOD' - data = b'DATA' - base_url = 'http://api-url' - response_data = 'CONTENT' + project = "PROJECT" + method = "METHOD" + data = b"DATA" + base_url = "http://api-url" + response_data = "CONTENT" http = _make_requests_session([_make_response(content=response_data)]) @@ -47,43 +46,40 @@ def test_success(self): # Check that the mocks were called as expected. expected_url = _build_expected_url(base_url, project, method) expected_headers = { - 'Content-Type': 'application/x-protobuf', - 'User-Agent': connection_module.DEFAULT_USER_AGENT, + "Content-Type": "application/x-protobuf", + "User-Agent": connection_module.DEFAULT_USER_AGENT, connection_module.CLIENT_INFO_HEADER: _CLIENT_INFO, } http.request.assert_called_once_with( - method='POST', url=expected_url, headers=expected_headers, - data=data) + method="POST", url=expected_url, headers=expected_headers, data=data + ) def test_failure(self): from google.cloud.exceptions import BadRequest from google.rpc import code_pb2 from google.rpc import status_pb2 - project = 'PROJECT' - method = 'METHOD' - data = 'DATA' - uri = 'http://api-url' + project = "PROJECT" + method = "METHOD" + data = "DATA" + uri = "http://api-url" error = status_pb2.Status() - error.message = 'Entity value is indexed.' + error.message = "Entity value is indexed." error.code = code_pb2.FAILED_PRECONDITION - http = _make_requests_session([ - _make_response( - http_client.BAD_REQUEST, - content=error.SerializeToString()) - ]) + http = _make_requests_session( + [_make_response(http_client.BAD_REQUEST, content=error.SerializeToString())] + ) with self.assertRaises(BadRequest) as exc: self._call_fut(http, project, method, data, uri) - expected_message = '400 Entity value is indexed.' + expected_message = "400 Entity value is indexed." self.assertEqual(str(exc.exception), expected_message) class Test__rpc(unittest.TestCase): - @staticmethod def _call_fut(*args, **kwargs): from google.cloud.datastore._http import _rpc @@ -94,29 +90,33 @@ def test_it(self): from google.cloud.datastore_v1.proto import datastore_pb2 http = object() - project = 'projectOK' - method = 'beginTransaction' - base_url = 'test.invalid' - request_pb = datastore_pb2.BeginTransactionRequest( - project_id=project) - - response_pb = datastore_pb2.BeginTransactionResponse( - transaction=b'7830rmc') - patch = mock.patch('google.cloud.datastore._http._request', - return_value=response_pb.SerializeToString()) + project = "projectOK" + method = "beginTransaction" + base_url = "test.invalid" + request_pb = datastore_pb2.BeginTransactionRequest(project_id=project) + + response_pb = datastore_pb2.BeginTransactionResponse(transaction=b"7830rmc") + patch = mock.patch( + "google.cloud.datastore._http._request", + return_value=response_pb.SerializeToString(), + ) with patch as mock_request: result = self._call_fut( - http, project, method, base_url, - request_pb, datastore_pb2.BeginTransactionResponse) + http, + project, + method, + base_url, + request_pb, + datastore_pb2.BeginTransactionResponse, + ) self.assertEqual(result, response_pb) mock_request.assert_called_once_with( - http, project, method, request_pb.SerializeToString(), - base_url) + http, project, method, request_pb.SerializeToString(), base_url + ) class TestHTTPDatastoreAPI(unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.datastore._http import HTTPDatastoreAPI @@ -130,9 +130,7 @@ def _make_one(self, *args, **kwargs): def _make_query_pb(kind): from google.cloud.datastore_v1.proto import query_pb2 - return query_pb2.Query( - kind=[query_pb2.KindExpression(name=kind)], - ) + return query_pb2.Query(kind=[query_pb2.KindExpression(name=kind)]) def test_constructor(self): client = object() @@ -142,16 +140,18 @@ def test_constructor(self): def test_lookup_single_key_empty_response(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" key_pb = _make_key_pb(project) rsp_pb = datastore_pb2.LookupResponse() read_options = datastore_pb2.ReadOptions() # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) @@ -159,30 +159,32 @@ def test_lookup_single_key_empty_response(self): # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'lookup') + uri = _build_expected_url(client._base_url, project, "lookup") self.assertEqual(len(response.found), 0) self.assertEqual(len(response.missing), 0) self.assertEqual(len(response.deferred), 0) - request = _verify_protobuf_call( - http, uri, datastore_pb2.LookupRequest()) + request = _verify_protobuf_call(http, uri, datastore_pb2.LookupRequest()) self.assertEqual(list(request.keys), [key_pb]) self.assertEqual(request.read_options, read_options) def test_lookup_single_key_empty_response_w_eventual(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" key_pb = _make_key_pb(project) rsp_pb = datastore_pb2.LookupResponse() read_options = datastore_pb2.ReadOptions( - read_consistency=datastore_pb2.ReadOptions.EVENTUAL) + read_consistency=datastore_pb2.ReadOptions.EVENTUAL + ) # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) @@ -190,30 +192,31 @@ def test_lookup_single_key_empty_response_w_eventual(self): # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'lookup') + uri = _build_expected_url(client._base_url, project, "lookup") self.assertEqual(len(response.found), 0) self.assertEqual(len(response.missing), 0) self.assertEqual(len(response.deferred), 0) - request = _verify_protobuf_call( - http, uri, datastore_pb2.LookupRequest()) + request = _verify_protobuf_call(http, uri, datastore_pb2.LookupRequest()) self.assertEqual(list(request.keys), [key_pb]) self.assertEqual(request.read_options, read_options) def test_lookup_single_key_empty_response_w_transaction(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' - transaction = b'TRANSACTION' + project = "PROJECT" + transaction = b"TRANSACTION" key_pb = _make_key_pb(project) rsp_pb = datastore_pb2.LookupResponse() read_options = datastore_pb2.ReadOptions(transaction=transaction) # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) @@ -221,13 +224,12 @@ def test_lookup_single_key_empty_response_w_transaction(self): # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'lookup') + uri = _build_expected_url(client._base_url, project, "lookup") self.assertEqual(len(response.found), 0) self.assertEqual(len(response.missing), 0) self.assertEqual(len(response.deferred), 0) - request = _verify_protobuf_call( - http, uri, datastore_pb2.LookupRequest()) + request = _verify_protobuf_call(http, uri, datastore_pb2.LookupRequest()) self.assertEqual(list(request.keys), [key_pb]) self.assertEqual(request.read_options, read_options) @@ -235,7 +237,7 @@ def test_lookup_single_key_nonempty_response(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore_v1.proto import entity_pb2 - project = 'PROJECT' + project = "PROJECT" key_pb = _make_key_pb(project) rsp_pb = datastore_pb2.LookupResponse() entity = entity_pb2.Entity() @@ -245,9 +247,11 @@ def test_lookup_single_key_nonempty_response(self): # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) @@ -255,23 +259,22 @@ def test_lookup_single_key_nonempty_response(self): # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'lookup') + uri = _build_expected_url(client._base_url, project, "lookup") self.assertEqual(len(response.found), 1) self.assertEqual(len(response.missing), 0) self.assertEqual(len(response.deferred), 0) found = response.found[0].entity - self.assertEqual(found.key.path[0].kind, 'Kind') + self.assertEqual(found.key.path[0].kind, "Kind") self.assertEqual(found.key.path[0].id, 1234) - request = _verify_protobuf_call( - http, uri, datastore_pb2.LookupRequest()) + request = _verify_protobuf_call(http, uri, datastore_pb2.LookupRequest()) self.assertEqual(list(request.keys), [key_pb]) self.assertEqual(request.read_options, read_options) def test_lookup_multiple_keys_empty_response(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" key_pb1 = _make_key_pb(project) key_pb2 = _make_key_pb(project, id_=2345) rsp_pb = datastore_pb2.LookupResponse() @@ -279,31 +282,31 @@ def test_lookup_multiple_keys_empty_response(self): # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) - response = ds_api.lookup( - project, [key_pb1, key_pb2], read_options=read_options) + response = ds_api.lookup(project, [key_pb1, key_pb2], read_options=read_options) # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'lookup') + uri = _build_expected_url(client._base_url, project, "lookup") self.assertEqual(len(response.found), 0) self.assertEqual(len(response.missing), 0) self.assertEqual(len(response.deferred), 0) - request = _verify_protobuf_call( - http, uri, datastore_pb2.LookupRequest()) + request = _verify_protobuf_call(http, uri, datastore_pb2.LookupRequest()) self.assertEqual(list(request.keys), [key_pb1, key_pb2]) self.assertEqual(request.read_options, read_options) def test_lookup_multiple_keys_w_missing(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" key_pb1 = _make_key_pb(project) key_pb2 = _make_key_pb(project, id_=2345) rsp_pb = datastore_pb2.LookupResponse() @@ -315,32 +318,32 @@ def test_lookup_multiple_keys_w_missing(self): # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) - response = ds_api.lookup( - project, [key_pb1, key_pb2], read_options=read_options) + response = ds_api.lookup(project, [key_pb1, key_pb2], read_options=read_options) # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'lookup') + uri = _build_expected_url(client._base_url, project, "lookup") self.assertEqual(len(response.found), 0) self.assertEqual(len(response.deferred), 0) missing_keys = [result.entity.key for result in response.missing] self.assertEqual(missing_keys, [key_pb1, key_pb2]) - request = _verify_protobuf_call( - http, uri, datastore_pb2.LookupRequest()) + request = _verify_protobuf_call(http, uri, datastore_pb2.LookupRequest()) self.assertEqual(list(request.keys), [key_pb1, key_pb2]) self.assertEqual(request.read_options, read_options) def test_lookup_multiple_keys_w_deferred(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" key_pb1 = _make_key_pb(project) key_pb2 = _make_key_pb(project, id_=2345) rsp_pb = datastore_pb2.LookupResponse() @@ -350,24 +353,24 @@ def test_lookup_multiple_keys_w_deferred(self): # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) - response = ds_api.lookup( - project, [key_pb1, key_pb2], read_options=read_options) + response = ds_api.lookup(project, [key_pb1, key_pb2], read_options=read_options) # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'lookup') + uri = _build_expected_url(client._base_url, project, "lookup") self.assertEqual(len(response.found), 0) self.assertEqual(len(response.missing), 0) self.assertEqual(list(response.deferred), [key_pb1, key_pb2]) - request = _verify_protobuf_call( - http, uri, datastore_pb2.LookupRequest()) + request = _verify_protobuf_call(http, uri, datastore_pb2.LookupRequest()) self.assertEqual(list(request.keys), [key_pb1, key_pb2]) self.assertEqual(request.read_options, read_options) @@ -376,13 +379,14 @@ def test_run_query_w_eventual_no_transaction(self): from google.cloud.datastore_v1.proto import entity_pb2 from google.cloud.datastore_v1.proto import query_pb2 - project = 'PROJECT' - kind = 'Nonesuch' - cursor = b'\x00' + project = "PROJECT" + kind = "Nonesuch" + cursor = b"\x00" query_pb = self._make_query_pb(kind) partition_id = entity_pb2.PartitionId(project_id=project) read_options = datastore_pb2.ReadOptions( - read_consistency=datastore_pb2.ReadOptions.EVENTUAL) + read_consistency=datastore_pb2.ReadOptions.EVENTUAL + ) rsp_pb = datastore_pb2.RunQueryResponse( batch=query_pb2.QueryResultBatch( entity_result_type=query_pb2.EntityResult.FULL, @@ -393,21 +397,21 @@ def test_run_query_w_eventual_no_transaction(self): # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) - response = ds_api.run_query( - project, partition_id, read_options, query=query_pb) + response = ds_api.run_query(project, partition_id, read_options, query=query_pb) # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'runQuery') - request = _verify_protobuf_call( - http, uri, datastore_pb2.RunQueryRequest()) + uri = _build_expected_url(client._base_url, project, "runQuery") + request = _verify_protobuf_call(http, uri, datastore_pb2.RunQueryRequest()) self.assertEqual(request.partition_id, partition_id) self.assertEqual(request.query, query_pb) self.assertEqual(request.read_options, read_options) @@ -417,10 +421,10 @@ def test_run_query_wo_eventual_w_transaction(self): from google.cloud.datastore_v1.proto import entity_pb2 from google.cloud.datastore_v1.proto import query_pb2 - project = 'PROJECT' - kind = 'Nonesuch' - cursor = b'\x00' - transaction = b'TRANSACTION' + project = "PROJECT" + kind = "Nonesuch" + cursor = b"\x00" + transaction = b"TRANSACTION" query_pb = self._make_query_pb(kind) partition_id = entity_pb2.PartitionId(project_id=project) read_options = datastore_pb2.ReadOptions(transaction=transaction) @@ -434,21 +438,21 @@ def test_run_query_wo_eventual_w_transaction(self): # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) - response = ds_api.run_query( - project, partition_id, read_options, query=query_pb) + response = ds_api.run_query(project, partition_id, read_options, query=query_pb) # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'runQuery') - request = _verify_protobuf_call( - http, uri, datastore_pb2.RunQueryRequest()) + uri = _build_expected_url(client._base_url, project, "runQuery") + request = _verify_protobuf_call(http, uri, datastore_pb2.RunQueryRequest()) self.assertEqual(request.partition_id, partition_id) self.assertEqual(request.query, query_pb) self.assertEqual(request.read_options, read_options) @@ -458,9 +462,9 @@ def test_run_query_wo_namespace_empty_result(self): from google.cloud.datastore_v1.proto import entity_pb2 from google.cloud.datastore_v1.proto import query_pb2 - project = 'PROJECT' - kind = 'Nonesuch' - cursor = b'\x00' + project = "PROJECT" + kind = "Nonesuch" + cursor = b"\x00" query_pb = self._make_query_pb(kind) partition_id = entity_pb2.PartitionId(project_id=project) read_options = datastore_pb2.ReadOptions() @@ -474,21 +478,21 @@ def test_run_query_wo_namespace_empty_result(self): # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) - response = ds_api.run_query( - project, partition_id, read_options, query=query_pb) + response = ds_api.run_query(project, partition_id, read_options, query=query_pb) # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'runQuery') - request = _verify_protobuf_call( - http, uri, datastore_pb2.RunQueryRequest()) + uri = _build_expected_url(client._base_url, project, "runQuery") + request = _verify_protobuf_call(http, uri, datastore_pb2.RunQueryRequest()) self.assertEqual(request.partition_id, partition_id) self.assertEqual(request.query, query_pb) self.assertEqual(request.read_options, read_options) @@ -498,56 +502,57 @@ def test_run_query_w_namespace_nonempty_result(self): from google.cloud.datastore_v1.proto import entity_pb2 from google.cloud.datastore_v1.proto import query_pb2 - project = 'PROJECT' - kind = 'Kind' - namespace = 'NS' + project = "PROJECT" + kind = "Kind" + namespace = "NS" query_pb = self._make_query_pb(kind) partition_id = entity_pb2.PartitionId( - project_id=project, namespace_id=namespace) + project_id=project, namespace_id=namespace + ) read_options = datastore_pb2.ReadOptions() rsp_pb = datastore_pb2.RunQueryResponse( batch=query_pb2.QueryResultBatch( entity_result_type=query_pb2.EntityResult.FULL, - entity_results=[ - query_pb2.EntityResult(entity=entity_pb2.Entity()), - ], + entity_results=[query_pb2.EntityResult(entity=entity_pb2.Entity())], more_results=query_pb2.QueryResultBatch.NO_MORE_RESULTS, ) ) # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) - response = ds_api.run_query( - project, partition_id, read_options, query=query_pb) + response = ds_api.run_query(project, partition_id, read_options, query=query_pb) # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'runQuery') - request = _verify_protobuf_call( - http, uri, datastore_pb2.RunQueryRequest()) + uri = _build_expected_url(client._base_url, project, "runQuery") + request = _verify_protobuf_call(http, uri, datastore_pb2.RunQueryRequest()) self.assertEqual(request.partition_id, partition_id) self.assertEqual(request.query, query_pb) def test_begin_transaction(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' - transaction = b'TRANSACTION' + project = "PROJECT" + transaction = b"TRANSACTION" rsp_pb = datastore_pb2.BeginTransactionResponse() rsp_pb.transaction = transaction # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) @@ -556,32 +561,34 @@ def test_begin_transaction(self): # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url( - client._base_url, project, 'beginTransaction') + uri = _build_expected_url(client._base_url, project, "beginTransaction") request = _verify_protobuf_call( - http, uri, datastore_pb2.BeginTransactionRequest()) + http, uri, datastore_pb2.BeginTransactionRequest() + ) # The RPC-over-HTTP request does not set the project in the request. - self.assertEqual(request.project_id, u'') + self.assertEqual(request.project_id, u"") def test_commit_wo_transaction(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore.helpers import _new_value_pb - project = 'PROJECT' + project = "PROJECT" key_pb = _make_key_pb(project) rsp_pb = datastore_pb2.CommitResponse() req_pb = datastore_pb2.CommitRequest() mutation = req_pb.mutations.add() insert = mutation.upsert insert.key.CopyFrom(key_pb) - value_pb = _new_value_pb(insert, 'foo') - value_pb.string_value = u'Foo' + value_pb = _new_value_pb(insert, "foo") + value_pb.string_value = u"Foo" # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. rq_class = datastore_pb2.CommitRequest @@ -592,9 +599,9 @@ def test_commit_wo_transaction(self): # Check the result and verify the callers. self.assertEqual(result, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'commit') + uri = _build_expected_url(client._base_url, project, "commit") request = _verify_protobuf_call(http, uri, rq_class()) - self.assertEqual(request.transaction, b'') + self.assertEqual(request.transaction, b"") self.assertEqual(list(request.mutations), [mutation]) self.assertEqual(request.mode, rq_class.NON_TRANSACTIONAL) @@ -602,49 +609,53 @@ def test_commit_w_transaction(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore.helpers import _new_value_pb - project = 'PROJECT' + project = "PROJECT" key_pb = _make_key_pb(project) rsp_pb = datastore_pb2.CommitResponse() req_pb = datastore_pb2.CommitRequest() mutation = req_pb.mutations.add() insert = mutation.upsert insert.key.CopyFrom(key_pb) - value_pb = _new_value_pb(insert, 'foo') - value_pb.string_value = u'Foo' + value_pb = _new_value_pb(insert, "foo") + value_pb.string_value = u"Foo" # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. rq_class = datastore_pb2.CommitRequest ds_api = self._make_one(client) mode = rq_class.TRANSACTIONAL - result = ds_api.commit(project, mode, [mutation], transaction=b'xact') + result = ds_api.commit(project, mode, [mutation], transaction=b"xact") # Check the result and verify the callers. self.assertEqual(result, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'commit') + uri = _build_expected_url(client._base_url, project, "commit") request = _verify_protobuf_call(http, uri, rq_class()) - self.assertEqual(request.transaction, b'xact') + self.assertEqual(request.transaction, b"xact") self.assertEqual(list(request.mutations), [mutation]) self.assertEqual(request.mode, rq_class.TRANSACTIONAL) def test_rollback_ok(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' - transaction = b'xact' + project = "PROJECT" + transaction = b"xact" rsp_pb = datastore_pb2.RollbackResponse() # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) @@ -653,22 +664,23 @@ def test_rollback_ok(self): # Check the result and verify the callers. self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'rollback') - request = _verify_protobuf_call( - http, uri, datastore_pb2.RollbackRequest()) + uri = _build_expected_url(client._base_url, project, "rollback") + request = _verify_protobuf_call(http, uri, datastore_pb2.RollbackRequest()) self.assertEqual(request.transaction, transaction) def test_allocate_ids_empty(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" rsp_pb = datastore_pb2.AllocateIdsResponse() # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) @@ -678,32 +690,30 @@ def test_allocate_ids_empty(self): self.assertEqual(response, rsp_pb) self.assertEqual(list(response.keys), []) - uri = _build_expected_url(client._base_url, project, 'allocateIds') - request = _verify_protobuf_call( - http, uri, datastore_pb2.AllocateIdsRequest()) + uri = _build_expected_url(client._base_url, project, "allocateIds") + request = _verify_protobuf_call(http, uri, datastore_pb2.AllocateIdsRequest()) self.assertEqual(list(request.keys), []) def test_allocate_ids_non_empty(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" before_key_pbs = [ _make_key_pb(project, id_=None), _make_key_pb(project, id_=None), ] - after_key_pbs = [ - _make_key_pb(project), - _make_key_pb(project, id_=2345), - ] + after_key_pbs = [_make_key_pb(project), _make_key_pb(project, id_=2345)] rsp_pb = datastore_pb2.AllocateIdsResponse() rsp_pb.keys.add().CopyFrom(after_key_pbs[0]) rsp_pb.keys.add().CopyFrom(after_key_pbs[1]) # Create mock HTTP and client with response. http = _make_requests_session( - [_make_response(content=rsp_pb.SerializeToString())]) + [_make_response(content=rsp_pb.SerializeToString())] + ) client = mock.Mock( - _http=http, _base_url='test.invalid', spec=['_http', '_base_url']) + _http=http, _base_url="test.invalid", spec=["_http", "_base_url"] + ) # Make request. ds_api = self._make_one(client) @@ -713,15 +723,14 @@ def test_allocate_ids_non_empty(self): self.assertEqual(list(response.keys), after_key_pbs) self.assertEqual(response, rsp_pb) - uri = _build_expected_url(client._base_url, project, 'allocateIds') - request = _verify_protobuf_call( - http, uri, datastore_pb2.AllocateIdsRequest()) + uri = _build_expected_url(client._base_url, project, "allocateIds") + request = _verify_protobuf_call(http, uri, datastore_pb2.AllocateIdsRequest()) self.assertEqual(len(request.keys), len(before_key_pbs)) for key_before, key_after in zip(before_key_pbs, request.keys): self.assertEqual(key_before, key_after) -def _make_response(status=http_client.OK, content=b'', headers={}): +def _make_response(status=http_client.OK, content=b"", headers={}): response = requests.Response() response.status_code = status response._content = content @@ -739,18 +748,13 @@ def _make_requests_session(responses): def _build_expected_url(api_base_url, project, method): from google.cloud.datastore._http import API_VERSION - return '/'.join([ - api_base_url, - API_VERSION, - 'projects', - project + ':' + method, - ]) + return "/".join([api_base_url, API_VERSION, "projects", project + ":" + method]) def _make_key_pb(project, id_=1234): from google.cloud.datastore.key import Key - path_args = ('Kind',) + path_args = ("Kind",) if id_ is not None: path_args += (id_,) return Key(*path_args, project=project).to_protobuf() @@ -761,15 +765,15 @@ def _verify_protobuf_call(http, expected_url, pb): from google.cloud.datastore._http import _CLIENT_INFO expected_headers = { - 'Content-Type': 'application/x-protobuf', - 'User-Agent': connection_module.DEFAULT_USER_AGENT, + "Content-Type": "application/x-protobuf", + "User-Agent": connection_module.DEFAULT_USER_AGENT, connection_module.CLIENT_INFO_HEADER: _CLIENT_INFO, } http.request.assert_called_once_with( - method='POST', url=expected_url, headers=expected_headers, - data=mock.ANY) + method="POST", url=expected_url, headers=expected_headers, data=mock.ANY + ) - data = http.request.mock_calls[0][2]['data'] + data = http.request.mock_calls[0][2]["data"] pb.ParseFromString(data) return pb diff --git a/datastore/tests/unit/test_batch.py b/datastore/tests/unit/test_batch.py index 4b94b657e9d0..8516e78c0c7a 100644 --- a/datastore/tests/unit/test_batch.py +++ b/datastore/tests/unit/test_batch.py @@ -18,7 +18,6 @@ class TestBatch(unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.datastore.batch import Batch @@ -29,8 +28,8 @@ def _make_one(self, client): return self._get_target_class()(client) def test_ctor(self): - project = 'PROJECT' - namespace = 'NAMESPACE' + project = "PROJECT" + namespace = "NAMESPACE" client = _Client(project, namespace=namespace) batch = self._make_one(client) @@ -45,7 +44,7 @@ def test_ctor(self): def test_current(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch1 = self._make_one(client) batch2 = self._make_one(client) @@ -68,7 +67,7 @@ def test_current(self): commit_method.assert_called_with(project, mode, [], transaction=None) def test_put_entity_wo_key(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) @@ -76,28 +75,28 @@ def test_put_entity_wo_key(self): self.assertRaises(ValueError, batch.put, _Entity()) def test_put_entity_wrong_status(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) entity = _Entity() - entity.key = _Key('OTHER') + entity.key = _Key("OTHER") self.assertEqual(batch._status, batch._INITIAL) self.assertRaises(ValueError, batch.put, entity) def test_put_entity_w_key_wrong_project(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) entity = _Entity() - entity.key = _Key('OTHER') + entity.key = _Key("OTHER") batch.begin() self.assertRaises(ValueError, batch.put, entity) def test_put_entity_w_partial_key(self): - project = 'PROJECT' - properties = {'foo': 'bar'} + project = "PROJECT" + properties = {"foo": "bar"} client = _Client(project) batch = self._make_one(client) entity = _Entity(properties) @@ -107,45 +106,40 @@ def test_put_entity_w_partial_key(self): batch.begin() batch.put(entity) - mutated_entity = _mutated_pb(self, batch.mutations, 'insert') + mutated_entity = _mutated_pb(self, batch.mutations, "insert") self.assertEqual(mutated_entity.key, key._key) self.assertEqual(batch._partial_key_entities, [entity]) def test_put_entity_w_completed_key(self): from google.cloud.datastore.helpers import _property_tuples - project = 'PROJECT' - properties = { - 'foo': 'bar', - 'baz': 'qux', - 'spam': [1, 2, 3], - 'frotz': [], - } + project = "PROJECT" + properties = {"foo": "bar", "baz": "qux", "spam": [1, 2, 3], "frotz": []} client = _Client(project) batch = self._make_one(client) entity = _Entity(properties) - entity.exclude_from_indexes = ('baz', 'spam') + entity.exclude_from_indexes = ("baz", "spam") key = entity.key = _Key(project) batch.begin() batch.put(entity) - mutated_entity = _mutated_pb(self, batch.mutations, 'upsert') + mutated_entity = _mutated_pb(self, batch.mutations, "upsert") self.assertEqual(mutated_entity.key, key._key) prop_dict = dict(_property_tuples(mutated_entity)) self.assertEqual(len(prop_dict), 4) - self.assertFalse(prop_dict['foo'].exclude_from_indexes) - self.assertTrue(prop_dict['baz'].exclude_from_indexes) - self.assertFalse(prop_dict['spam'].exclude_from_indexes) - spam_values = prop_dict['spam'].array_value.values + self.assertFalse(prop_dict["foo"].exclude_from_indexes) + self.assertTrue(prop_dict["baz"].exclude_from_indexes) + self.assertFalse(prop_dict["spam"].exclude_from_indexes) + spam_values = prop_dict["spam"].array_value.values self.assertTrue(spam_values[0].exclude_from_indexes) self.assertTrue(spam_values[1].exclude_from_indexes) self.assertTrue(spam_values[2].exclude_from_indexes) - self.assertTrue('frotz' in prop_dict) + self.assertTrue("frotz" in prop_dict) def test_delete_wrong_status(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) key = _Key(project) @@ -155,7 +149,7 @@ def test_delete_wrong_status(self): self.assertRaises(ValueError, batch.delete, key) def test_delete_w_partial_key(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) key = _Key(project) @@ -165,16 +159,16 @@ def test_delete_w_partial_key(self): self.assertRaises(ValueError, batch.delete, key) def test_delete_w_key_wrong_project(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) - key = _Key('OTHER') + key = _Key("OTHER") batch.begin() self.assertRaises(ValueError, batch.delete, key) def test_delete_w_completed_key(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) key = _Key(project) @@ -182,11 +176,11 @@ def test_delete_w_completed_key(self): batch.begin() batch.delete(key) - mutated_key = _mutated_pb(self, batch.mutations, 'delete') + mutated_key = _mutated_pb(self, batch.mutations, "delete") self.assertEqual(mutated_key, key._key) def test_begin(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project, None) batch = self._make_one(client) self.assertEqual(batch._status, batch._INITIAL) @@ -194,7 +188,7 @@ def test_begin(self): self.assertEqual(batch._status, batch._IN_PROGRESS) def test_begin_fail(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project, None) batch = self._make_one(client) batch._status = batch._IN_PROGRESS @@ -202,7 +196,7 @@ def test_begin_fail(self): batch.begin() def test_rollback(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project, None) batch = self._make_one(client) batch.begin() @@ -211,7 +205,7 @@ def test_rollback(self): self.assertEqual(batch._status, batch._ABORTED) def test_rollback_wrong_status(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project, None) batch = self._make_one(client) @@ -221,7 +215,7 @@ def test_rollback_wrong_status(self): def test_commit(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) @@ -236,7 +230,7 @@ def test_commit(self): commit_method.assert_called_with(project, mode, [], transaction=None) def test_commit_wrong_status(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) batch = self._make_one(client) @@ -246,7 +240,7 @@ def test_commit_wrong_status(self): def test_commit_w_partial_key_entities(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" new_id = 1234 ds_api = _make_datastore_api(new_id) client = _Client(project, datastore_api=ds_api) @@ -263,16 +257,15 @@ def test_commit_w_partial_key_entities(self): self.assertEqual(batch._status, batch._FINISHED) mode = datastore_pb2.CommitRequest.NON_TRANSACTIONAL - ds_api.commit.assert_called_once_with( - project, mode, [], transaction=None) + ds_api.commit.assert_called_once_with(project, mode, [], transaction=None) self.assertFalse(entity.key.is_partial) self.assertEqual(entity.key._id, new_id) def test_as_context_mgr_wo_error(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' - properties = {'foo': 'bar'} + project = "PROJECT" + properties = {"foo": "bar"} entity = _Entity(properties) key = entity.key = _Key(project) @@ -285,18 +278,19 @@ def test_as_context_mgr_wo_error(self): self.assertEqual(list(client._batches), []) - mutated_entity = _mutated_pb(self, batch.mutations, 'upsert') + mutated_entity = _mutated_pb(self, batch.mutations, "upsert") self.assertEqual(mutated_entity.key, key._key) commit_method = client._datastore_api.commit mode = datastore_pb2.CommitRequest.NON_TRANSACTIONAL commit_method.assert_called_with( - project, mode, batch.mutations, transaction=None) + project, mode, batch.mutations, transaction=None + ) def test_as_context_mgr_nested(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' - properties = {'foo': 'bar'} + project = "PROJECT" + properties = {"foo": "bar"} entity1 = _Entity(properties) key1 = entity1.key = _Key(project) entity2 = _Entity(properties) @@ -316,23 +310,25 @@ def test_as_context_mgr_nested(self): self.assertEqual(list(client._batches), []) - mutated_entity1 = _mutated_pb(self, batch1.mutations, 'upsert') + mutated_entity1 = _mutated_pb(self, batch1.mutations, "upsert") self.assertEqual(mutated_entity1.key, key1._key) - mutated_entity2 = _mutated_pb(self, batch2.mutations, 'upsert') + mutated_entity2 = _mutated_pb(self, batch2.mutations, "upsert") self.assertEqual(mutated_entity2.key, key2._key) commit_method = client._datastore_api.commit self.assertEqual(commit_method.call_count, 2) mode = datastore_pb2.CommitRequest.NON_TRANSACTIONAL commit_method.assert_called_with( - project, mode, batch1.mutations, transaction=None) + project, mode, batch1.mutations, transaction=None + ) commit_method.assert_called_with( - project, mode, batch2.mutations, transaction=None) + project, mode, batch2.mutations, transaction=None + ) def test_as_context_mgr_w_error(self): - project = 'PROJECT' - properties = {'foo': 'bar'} + project = "PROJECT" + properties = {"foo": "bar"} entity = _Entity(properties) key = entity.key = _Key(project) @@ -349,14 +345,13 @@ def test_as_context_mgr_w_error(self): self.assertEqual(list(client._batches), []) - mutated_entity = _mutated_pb(self, batch.mutations, 'upsert') + mutated_entity = _mutated_pb(self, batch.mutations, "upsert") self.assertEqual(mutated_entity.key, key._key) def test_as_context_mgr_enter_fails(self): klass = self._get_target_class() class FailedBegin(klass): - def begin(self): raise RuntimeError @@ -374,7 +369,6 @@ def begin(self): class Test__parse_commit_response(unittest.TestCase): - def _call_fut(self, commit_response_pb): from google.cloud.datastore.batch import _parse_commit_response @@ -386,27 +380,11 @@ def test_it(self): index_updates = 1337 keys = [ - entity_pb2.Key( - path=[ - entity_pb2.Key.PathElement( - kind='Foo', - id=1234, - ), - ], - ), - entity_pb2.Key( - path=[ - entity_pb2.Key.PathElement( - kind='Bar', - name='baz', - ), - ], - ), + entity_pb2.Key(path=[entity_pb2.Key.PathElement(kind="Foo", id=1234)]), + entity_pb2.Key(path=[entity_pb2.Key.PathElement(kind="Bar", name="baz")]), ] response = datastore_pb2.CommitResponse( - mutation_results=[ - datastore_pb2.MutationResult(key=key) for key in keys - ], + mutation_results=[datastore_pb2.MutationResult(key=key) for key in keys], index_updates=index_updates, ) result = self._call_fut(response) @@ -420,8 +398,8 @@ class _Entity(dict): class _Key(object): - _kind = 'KIND' - _key = 'KEY' + _kind = "KIND" + _key = "KEY" _path = None _id = 1234 _stored = None @@ -455,7 +433,6 @@ def completed_key(self, new_id): class _Client(object): - def __init__(self, project, datastore_api=None, namespace=None): self.project = project if datastore_api is None: @@ -487,8 +464,7 @@ def _mutated_pb(test_case, mutation_pb_list, mutation_type): # We grab the only mutation. mutated_pb = mutation_pb_list[0] # Then check if it is the correct type. - test_case.assertEqual(mutated_pb.WhichOneof('operation'), - mutation_type) + test_case.assertEqual(mutated_pb.WhichOneof("operation"), mutation_type) return getattr(mutated_pb, mutation_type) @@ -498,9 +474,9 @@ def _make_mutation(id_): from google.cloud.datastore_v1.proto import entity_pb2 key = entity_pb2.Key() - key.partition_id.project_id = 'PROJECT' + key.partition_id.project_id = "PROJECT" elem = key.path.add() - elem.kind = 'Kind' + elem.kind = "Kind" elem.id = id_ return datastore_pb2.MutationResult(key=key) @@ -508,12 +484,10 @@ def _make_mutation(id_): def _make_commit_response(*new_key_ids): from google.cloud.datastore_v1.proto import datastore_pb2 - mutation_results = [ - _make_mutation(key_id) for key_id in new_key_ids] + mutation_results = [_make_mutation(key_id) for key_id in new_key_ids] return datastore_pb2.CommitResponse(mutation_results=mutation_results) def _make_datastore_api(*new_key_ids): - commit_method = mock.Mock( - return_value=_make_commit_response(*new_key_ids), spec=[]) - return mock.Mock(commit=commit_method, spec=['commit']) + commit_method = mock.Mock(return_value=_make_commit_response(*new_key_ids), spec=[]) + return mock.Mock(commit=commit_method, spec=["commit"]) diff --git a/datastore/tests/unit/test_client.py b/datastore/tests/unit/test_client.py index 03c527b5e2be..10294db3cf62 100644 --- a/datastore/tests/unit/test_client.py +++ b/datastore/tests/unit/test_client.py @@ -40,7 +40,6 @@ def _make_entity_pb(project, kind, integer_id, name=None, str_val=None): class Test__get_gcd_project(unittest.TestCase): - def _call_fut(self): from google.cloud.datastore.client import _get_gcd_project @@ -48,7 +47,7 @@ def _call_fut(self): def test_no_value(self): environ = {} - with mock.patch('os.getenv', new=environ.get): + with mock.patch("os.getenv", new=environ.get): project = self._call_fut() self.assertIsNone(project) @@ -57,35 +56,33 @@ def test_value_set(self): MOCK_PROJECT = object() environ = {GCD_DATASET: MOCK_PROJECT} - with mock.patch('os.getenv', new=environ.get): + with mock.patch("os.getenv", new=environ.get): project = self._call_fut() self.assertEqual(project, MOCK_PROJECT) class Test__determine_default_project(unittest.TestCase): - def _call_fut(self, project=None): - from google.cloud.datastore.client import ( - _determine_default_project) + from google.cloud.datastore.client import _determine_default_project return _determine_default_project(project=project) - def _determine_default_helper(self, gcd=None, fallback=None, - project_called=None): + def _determine_default_helper(self, gcd=None, fallback=None, project_called=None): _callers = [] def gcd_mock(): - _callers.append('gcd_mock') + _callers.append("gcd_mock") return gcd def fallback_mock(project=None): - _callers.append(('fallback_mock', project)) + _callers.append(("fallback_mock", project)) return fallback patch = mock.patch.multiple( - 'google.cloud.datastore.client', + "google.cloud.datastore.client", _get_gcd_project=gcd_mock, - _base_default_project=fallback_mock) + _base_default_project=fallback_mock, + ) with patch: returned_project = self._call_fut(project_called) @@ -94,12 +91,11 @@ def fallback_mock(project=None): def test_no_value(self): project, callers = self._determine_default_helper() self.assertIsNone(project) - self.assertEqual(callers, ['gcd_mock', ('fallback_mock', None)]) + self.assertEqual(callers, ["gcd_mock", ("fallback_mock", None)]) def test_explicit(self): PROJECT = object() - project, callers = self._determine_default_helper( - project_called=PROJECT) + project, callers = self._determine_default_helper(project_called=PROJECT) self.assertEqual(project, PROJECT) self.assertEqual(callers, []) @@ -107,18 +103,18 @@ def test_gcd(self): PROJECT = object() project, callers = self._determine_default_helper(gcd=PROJECT) self.assertEqual(project, PROJECT) - self.assertEqual(callers, ['gcd_mock']) + self.assertEqual(callers, ["gcd_mock"]) def test_fallback(self): PROJECT = object() project, callers = self._determine_default_helper(fallback=PROJECT) self.assertEqual(project, PROJECT) - self.assertEqual(callers, ['gcd_mock', ('fallback_mock', None)]) + self.assertEqual(callers, ["gcd_mock", ("fallback_mock", None)]) class TestClient(unittest.TestCase): - PROJECT = 'PROJECT' + PROJECT = "PROJECT" @staticmethod def _get_target_class(): @@ -126,35 +122,43 @@ def _get_target_class(): return Client - def _make_one(self, project=PROJECT, namespace=None, - credentials=None, _http=None, _use_grpc=None): - return self._get_target_class()(project=project, - namespace=namespace, - credentials=credentials, - _http=_http, - _use_grpc=_use_grpc) + def _make_one( + self, + project=PROJECT, + namespace=None, + credentials=None, + _http=None, + _use_grpc=None, + ): + return self._get_target_class()( + project=project, + namespace=namespace, + credentials=credentials, + _http=_http, + _use_grpc=_use_grpc, + ) def test_constructor_w_project_no_environ(self): # Some environments (e.g. AppVeyor CI) run in GCE, so # this test would fail artificially. patch = mock.patch( - 'google.cloud.datastore.client._base_default_project', - return_value=None) + "google.cloud.datastore.client._base_default_project", return_value=None + ) with patch: self.assertRaises(EnvironmentError, self._make_one, None) def test_constructor_w_implicit_inputs(self): from google.cloud.datastore.client import _DATASTORE_BASE_URL - other = 'other' + other = "other" creds = _make_credentials() klass = self._get_target_class() patch1 = mock.patch( - 'google.cloud.datastore.client._determine_default_project', - return_value=other) - patch2 = mock.patch( - 'google.auth.default', return_value=(creds, None)) + "google.cloud.datastore.client._determine_default_project", + return_value=other, + ) + patch2 = mock.patch("google.auth.default", return_value=(creds, None)) with patch1 as _determine_default_project: with patch2 as default: @@ -175,14 +179,13 @@ def test_constructor_w_implicit_inputs(self): def test_constructor_w_explicit_inputs(self): from google.cloud.datastore.client import _DATASTORE_BASE_URL - other = 'other' - namespace = 'namespace' + other = "other" + namespace = "namespace" creds = _make_credentials() http = object() - client = self._make_one(project=other, - namespace=namespace, - credentials=creds, - _http=http) + client = self._make_one( + project=other, namespace=namespace, credentials=creds, _http=http + ) self.assertEqual(client.project, other) self.assertEqual(client.namespace, namespace) self.assertIs(client._credentials, creds) @@ -194,73 +197,71 @@ def test_constructor_w_explicit_inputs(self): def test_constructor_use_grpc_default(self): import google.cloud.datastore.client as MUT - project = 'PROJECT' + project = "PROJECT" creds = _make_credentials() http = object() - with mock.patch.object(MUT, '_USE_GRPC', new=True): - client1 = self._make_one( - project=project, credentials=creds, _http=http) + with mock.patch.object(MUT, "_USE_GRPC", new=True): + client1 = self._make_one(project=project, credentials=creds, _http=http) self.assertTrue(client1._use_grpc) # Explicitly over-ride the environment. client2 = self._make_one( - project=project, credentials=creds, _http=http, - _use_grpc=False) + project=project, credentials=creds, _http=http, _use_grpc=False + ) self.assertFalse(client2._use_grpc) - with mock.patch.object(MUT, '_USE_GRPC', new=False): - client3 = self._make_one( - project=project, credentials=creds, _http=http) + with mock.patch.object(MUT, "_USE_GRPC", new=False): + client3 = self._make_one(project=project, credentials=creds, _http=http) self.assertFalse(client3._use_grpc) # Explicitly over-ride the environment. client4 = self._make_one( - project=project, credentials=creds, _http=http, - _use_grpc=True) + project=project, credentials=creds, _http=http, _use_grpc=True + ) self.assertTrue(client4._use_grpc) def test_constructor_gcd_host(self): from google.cloud.environment_vars import GCD_HOST - host = 'localhost:1234' + host = "localhost:1234" fake_environ = {GCD_HOST: host} - project = 'PROJECT' + project = "PROJECT" creds = _make_credentials() http = object() - with mock.patch('os.environ', new=fake_environ): - client = self._make_one( - project=project, credentials=creds, _http=http) - self.assertEqual(client.base_url, 'http://' + host) + with mock.patch("os.environ", new=fake_environ): + client = self._make_one(project=project, credentials=creds, _http=http) + self.assertEqual(client.base_url, "http://" + host) def test__datastore_api_property_gapic(self): client = self._make_one( - project='prahj-ekt', credentials=_make_credentials(), - _http=object(), _use_grpc=True) + project="prahj-ekt", + credentials=_make_credentials(), + _http=object(), + _use_grpc=True, + ) self.assertIsNone(client._datastore_api_internal) patch = mock.patch( - 'google.cloud.datastore.client.make_datastore_api', - return_value=mock.sentinel.ds_api) + "google.cloud.datastore.client.make_datastore_api", + return_value=mock.sentinel.ds_api, + ) with patch as make_api: ds_api = client._datastore_api self.assertIs(ds_api, mock.sentinel.ds_api) make_api.assert_called_once_with(client) - self.assertIs( - client._datastore_api_internal, mock.sentinel.ds_api) + self.assertIs(client._datastore_api_internal, mock.sentinel.ds_api) # Make sure the cached value is used. self.assertEqual(make_api.call_count, 1) - self.assertIs( - client._datastore_api, mock.sentinel.ds_api) + self.assertIs(client._datastore_api, mock.sentinel.ds_api) self.assertEqual(make_api.call_count, 1) def test_base_url_property(self): - alternate_url = 'https://alias.example.com/' - project = 'PROJECT' + alternate_url = "https://alias.example.com/" + project = "PROJECT" creds = _make_credentials() http = object() - client = self._make_one( - project=project, credentials=creds, _http=http) + client = self._make_one(project=project, credentials=creds, _http=http) client.base_url = alternate_url self.assertEqual(client.base_url, alternate_url) @@ -268,8 +269,11 @@ def test__datastore_api_property_http(self): from google.cloud.datastore._http import HTTPDatastoreAPI client = self._make_one( - project='prahj-ekt', credentials=_make_credentials(), - _http=object(), _use_grpc=False) + project="prahj-ekt", + credentials=_make_credentials(), + _http=object(), + _use_grpc=False, + ) self.assertIsNone(client._datastore_api_internal) ds_api = client._datastore_api @@ -314,13 +318,13 @@ def _get_multi(*args, **kw): self.assertIsNone(client.get(key)) self.assertEqual(_called_with[0][0], ()) - self.assertEqual(_called_with[0][1]['keys'], [key]) - self.assertIsNone(_called_with[0][1]['missing']) - self.assertIsNone(_called_with[0][1]['deferred']) - self.assertIsNone(_called_with[0][1]['transaction']) + self.assertEqual(_called_with[0][1]["keys"], [key]) + self.assertIsNone(_called_with[0][1]["missing"]) + self.assertIsNone(_called_with[0][1]["deferred"]) + self.assertIsNone(_called_with[0][1]["transaction"]) def test_get_hit(self): - TXN_ID = '123' + TXN_ID = "123" _called_with = [] _entity = object() @@ -337,10 +341,10 @@ def _get_multi(*args, **kw): self.assertIs(client.get(key, missing, deferred, TXN_ID), _entity) self.assertEqual(_called_with[0][0], ()) - self.assertEqual(_called_with[0][1]['keys'], [key]) - self.assertIs(_called_with[0][1]['missing'], missing) - self.assertIs(_called_with[0][1]['deferred'], deferred) - self.assertEqual(_called_with[0][1]['transaction'], TXN_ID) + self.assertEqual(_called_with[0][1]["keys"], [key]) + self.assertIs(_called_with[0][1]["missing"], missing) + self.assertIs(_called_with[0][1]["deferred"], deferred) + self.assertEqual(_called_with[0][1]["transaction"], TXN_ID) def test_get_multi_no_keys(self): creds = _make_credentials() @@ -357,15 +361,13 @@ def test_get_multi_miss(self): ds_api = _make_datastore_api() client._datastore_api_internal = ds_api - key = Key('Kind', 1234, project=self.PROJECT) + key = Key("Kind", 1234, project=self.PROJECT) results = client.get_multi([key]) self.assertEqual(results, []) read_options = datastore_pb2.ReadOptions() ds_api.lookup.assert_called_once_with( - self.PROJECT, - [key.to_protobuf()], - read_options=read_options, + self.PROJECT, [key.to_protobuf()], read_options=read_options ) def test_get_multi_miss_w_missing(self): @@ -373,7 +375,7 @@ def test_get_multi_miss_w_missing(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore.key import Key - KIND = 'Kind' + KIND = "Kind" ID = 1234 # Make a missing entity pb to be returned from mock backend. @@ -395,14 +397,11 @@ def test_get_multi_miss_w_missing(self): entities = client.get_multi([key], missing=missing) self.assertEqual(entities, []) key_pb = key.to_protobuf() - self.assertEqual( - [missed.key.to_protobuf() for missed in missing], [key_pb]) + self.assertEqual([missed.key.to_protobuf() for missed in missing], [key_pb]) read_options = datastore_pb2.ReadOptions() ds_api.lookup.assert_called_once_with( - self.PROJECT, - [key_pb], - read_options=read_options, + self.PROJECT, [key_pb], read_options=read_options ) def test_get_multi_w_missing_non_empty(self): @@ -410,28 +409,26 @@ def test_get_multi_w_missing_non_empty(self): creds = _make_credentials() client = self._make_one(credentials=creds) - key = Key('Kind', 1234, project=self.PROJECT) + key = Key("Kind", 1234, project=self.PROJECT) - missing = ['this', 'list', 'is', 'not', 'empty'] - self.assertRaises(ValueError, client.get_multi, - [key], missing=missing) + missing = ["this", "list", "is", "not", "empty"] + self.assertRaises(ValueError, client.get_multi, [key], missing=missing) def test_get_multi_w_deferred_non_empty(self): from google.cloud.datastore.key import Key creds = _make_credentials() client = self._make_one(credentials=creds) - key = Key('Kind', 1234, project=self.PROJECT) + key = Key("Kind", 1234, project=self.PROJECT) - deferred = ['this', 'list', 'is', 'not', 'empty'] - self.assertRaises(ValueError, client.get_multi, - [key], deferred=deferred) + deferred = ["this", "list", "is", "not", "empty"] + self.assertRaises(ValueError, client.get_multi, [key], deferred=deferred) def test_get_multi_miss_w_deferred(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore.key import Key - key = Key('Kind', 1234, project=self.PROJECT) + key = Key("Kind", 1234, project=self.PROJECT) key_pb = key.to_protobuf() # Set deferred entity on mock connection. @@ -444,14 +441,11 @@ def test_get_multi_miss_w_deferred(self): deferred = [] entities = client.get_multi([key], deferred=deferred) self.assertEqual(entities, []) - self.assertEqual( - [def_key.to_protobuf() for def_key in deferred], [key_pb]) + self.assertEqual([def_key.to_protobuf() for def_key in deferred], [key_pb]) read_options = datastore_pb2.ReadOptions() ds_api.lookup.assert_called_once_with( - self.PROJECT, - [key_pb], - read_options=read_options, + self.PROJECT, [key_pb], read_options=read_options ) def test_get_multi_w_deferred_from_backend_but_not_passed(self): @@ -460,9 +454,9 @@ def test_get_multi_w_deferred_from_backend_but_not_passed(self): from google.cloud.datastore.entity import Entity from google.cloud.datastore.key import Key - key1 = Key('Kind', project=self.PROJECT) + key1 = Key("Kind", project=self.PROJECT) key1_pb = key1.to_protobuf() - key2 = Key('Kind', 2345, project=self.PROJECT) + key2 = Key("Kind", 2345, project=self.PROJECT) key2_pb = key2.to_protobuf() entity1_pb = entity_pb2.Entity() @@ -475,11 +469,13 @@ def test_get_multi_w_deferred_from_backend_but_not_passed(self): # Mock up two separate requests. Using an iterable as side_effect # allows multiple return values. lookup_response1 = _make_lookup_response( - results=[entity1_pb], deferred=[key2_pb]) + results=[entity1_pb], deferred=[key2_pb] + ) lookup_response2 = _make_lookup_response(results=[entity2_pb]) ds_api = _make_datastore_api() ds_api.lookup = mock.Mock( - side_effect=[lookup_response1, lookup_response2], spec=[]) + side_effect=[lookup_response1, lookup_response2], spec=[] + ) client._datastore_api_internal = ds_api missing = [] @@ -499,26 +495,22 @@ def test_get_multi_w_deferred_from_backend_but_not_passed(self): self.assertEqual(ds_api.lookup.call_count, 2) read_options = datastore_pb2.ReadOptions() ds_api.lookup.assert_any_call( - self.PROJECT, - [key2_pb], - read_options=read_options, + self.PROJECT, [key2_pb], read_options=read_options ) ds_api.lookup.assert_any_call( - self.PROJECT, - [key1_pb, key2_pb], - read_options=read_options, + self.PROJECT, [key1_pb, key2_pb], read_options=read_options ) def test_get_multi_hit(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore.key import Key - kind = 'Kind' + kind = "Kind" id_ = 1234 - path = [{'kind': kind, 'id': id_}] + path = [{"kind": kind, "id": id_}] # Make a found entity pb to be returned from mock backend. - entity_pb = _make_entity_pb(self.PROJECT, kind, id_, 'foo', 'Foo') + entity_pb = _make_entity_pb(self.PROJECT, kind, id_, "foo", "Foo") # Make a connection to return the entity pb. creds = _make_credentials() @@ -535,27 +527,25 @@ def test_get_multi_hit(self): self.assertIsNot(new_key, key) self.assertEqual(new_key.project, self.PROJECT) self.assertEqual(new_key.path, path) - self.assertEqual(list(result), ['foo']) - self.assertEqual(result['foo'], 'Foo') + self.assertEqual(list(result), ["foo"]) + self.assertEqual(result["foo"], "Foo") read_options = datastore_pb2.ReadOptions() ds_api.lookup.assert_called_once_with( - self.PROJECT, - [key.to_protobuf()], - read_options=read_options, + self.PROJECT, [key.to_protobuf()], read_options=read_options ) def test_get_multi_hit_w_transaction(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore.key import Key - txn_id = b'123' - kind = 'Kind' + txn_id = b"123" + kind = "Kind" id_ = 1234 - path = [{'kind': kind, 'id': id_}] + path = [{"kind": kind, "id": id_}] # Make a found entity pb to be returned from mock backend. - entity_pb = _make_entity_pb(self.PROJECT, kind, id_, 'foo', 'Foo') + entity_pb = _make_entity_pb(self.PROJECT, kind, id_, "foo", "Foo") # Make a connection to return the entity pb. creds = _make_credentials() @@ -574,21 +564,19 @@ def test_get_multi_hit_w_transaction(self): self.assertIsNot(new_key, key) self.assertEqual(new_key.project, self.PROJECT) self.assertEqual(new_key.path, path) - self.assertEqual(list(result), ['foo']) - self.assertEqual(result['foo'], 'Foo') + self.assertEqual(list(result), ["foo"]) + self.assertEqual(result["foo"], "Foo") read_options = datastore_pb2.ReadOptions(transaction=txn_id) ds_api.lookup.assert_called_once_with( - self.PROJECT, - [key.to_protobuf()], - read_options=read_options, + self.PROJECT, [key.to_protobuf()], read_options=read_options ) def test_get_multi_hit_multiple_keys_same_project(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore.key import Key - kind = 'Kind' + kind = "Kind" id1 = 1234 id2 = 2345 @@ -599,8 +587,7 @@ def test_get_multi_hit_multiple_keys_same_project(self): # Make a connection to return the entity pbs. creds = _make_credentials() client = self._make_one(credentials=creds) - lookup_response = _make_lookup_response( - results=[entity_pb1, entity_pb2]) + lookup_response = _make_lookup_response(results=[entity_pb1, entity_pb2]) ds_api = _make_datastore_api(lookup_response=lookup_response) client._datastore_api_internal = ds_api @@ -624,14 +611,14 @@ def test_get_multi_hit_multiple_keys_same_project(self): def test_get_multi_hit_multiple_keys_different_project(self): from google.cloud.datastore.key import Key - PROJECT1 = 'PROJECT' - PROJECT2 = 'PROJECT-ALT' + PROJECT1 = "PROJECT" + PROJECT2 = "PROJECT-ALT" # Make sure our IDs are actually different. self.assertNotEqual(PROJECT1, PROJECT2) - key1 = Key('KIND', 1234, project=PROJECT1) - key2 = Key('KIND', 1234, project=PROJECT2) + key1 = Key("KIND", 1234, project=PROJECT1) + key2 = Key("KIND", 1234, project=PROJECT2) creds = _make_credentials() client = self._make_one(credentials=creds) @@ -642,11 +629,11 @@ def test_get_multi_hit_multiple_keys_different_project(self): def test_get_multi_max_loops(self): from google.cloud.datastore.key import Key - kind = 'Kind' + kind = "Kind" id_ = 1234 # Make a found entity pb to be returned from mock backend. - entity_pb = _make_entity_pb(self.PROJECT, kind, id_, 'foo', 'Foo') + entity_pb = _make_entity_pb(self.PROJECT, kind, id_, "foo", "Foo") # Make a connection to return the entity pb. creds = _make_credentials() @@ -659,11 +646,9 @@ def test_get_multi_max_loops(self): deferred = [] missing = [] - patch = mock.patch( - 'google.cloud.datastore.client._MAX_LOOPS', new=-1) + patch = mock.patch("google.cloud.datastore.client._MAX_LOOPS", new=-1) with patch: - result = client.get_multi([key], missing=missing, - deferred=deferred) + result = client.get_multi([key], missing=missing, deferred=deferred) # Make sure we have no results, even though the connection has been # set up as in `test_hit` to return a single result. @@ -686,7 +671,7 @@ def _put_multi(*args, **kw): client.put(entity) self.assertEqual(_called_with[0][0], ()) - self.assertEqual(_called_with[0][1]['entities'], [entity]) + self.assertEqual(_called_with[0][1]["entities"], [entity]) def test_put_multi_no_entities(self): creds = _make_credentials() @@ -705,7 +690,7 @@ def test_put_multi_no_batch_w_partial_key(self): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore.helpers import _property_tuples - entity = _Entity(foo=u'bar') + entity = _Entity(foo=u"bar") key = entity.key = _Key(self.PROJECT) key._id = None @@ -720,43 +705,42 @@ def test_put_multi_no_batch_w_partial_key(self): self.assertEqual(ds_api.commit.call_count, 1) _, positional, keyword = ds_api.commit.mock_calls[0] - self.assertEqual(keyword, {'transaction': None}) + self.assertEqual(keyword, {"transaction": None}) self.assertEqual(len(positional), 3) self.assertEqual(positional[0], self.PROJECT) - self.assertEqual( - positional[1], datastore_pb2.CommitRequest.NON_TRANSACTIONAL) + self.assertEqual(positional[1], datastore_pb2.CommitRequest.NON_TRANSACTIONAL) mutations = positional[2] - mutated_entity = _mutated_pb(self, mutations, 'insert') + mutated_entity = _mutated_pb(self, mutations, "insert") self.assertEqual(mutated_entity.key, key.to_protobuf()) prop_list = list(_property_tuples(mutated_entity)) self.assertTrue(len(prop_list), 1) name, value_pb = prop_list[0] - self.assertEqual(name, 'foo') - self.assertEqual(value_pb.string_value, u'bar') + self.assertEqual(name, "foo") + self.assertEqual(value_pb.string_value, u"bar") def test_put_multi_existing_batch_w_completed_key(self): from google.cloud.datastore.helpers import _property_tuples creds = _make_credentials() client = self._make_one(credentials=creds) - entity = _Entity(foo=u'bar') + entity = _Entity(foo=u"bar") key = entity.key = _Key(self.PROJECT) with _NoCommitBatch(client) as CURR_BATCH: result = client.put_multi([entity]) self.assertIsNone(result) - mutated_entity = _mutated_pb(self, CURR_BATCH.mutations, 'upsert') + mutated_entity = _mutated_pb(self, CURR_BATCH.mutations, "upsert") self.assertEqual(mutated_entity.key, key.to_protobuf()) prop_list = list(_property_tuples(mutated_entity)) self.assertTrue(len(prop_list), 1) name, value_pb = prop_list[0] - self.assertEqual(name, 'foo') - self.assertEqual(value_pb.string_value, u'bar') + self.assertEqual(name, "foo") + self.assertEqual(value_pb.string_value, u"bar") def test_delete(self): _called_with = [] @@ -772,7 +756,7 @@ def _delete_multi(*args, **kw): client.delete(key) self.assertEqual(_called_with[0][0], ()) - self.assertEqual(_called_with[0][1]['keys'], [key]) + self.assertEqual(_called_with[0][1]["keys"], [key]) def test_delete_multi_no_keys(self): creds = _make_credentials() @@ -798,15 +782,14 @@ def test_delete_multi_no_batch(self): self.assertEqual(ds_api.commit.call_count, 1) _, positional, keyword = ds_api.commit.mock_calls[0] - self.assertEqual(keyword, {'transaction': None}) + self.assertEqual(keyword, {"transaction": None}) self.assertEqual(len(positional), 3) self.assertEqual(positional[0], self.PROJECT) - self.assertEqual( - positional[1], datastore_pb2.CommitRequest.NON_TRANSACTIONAL) + self.assertEqual(positional[1], datastore_pb2.CommitRequest.NON_TRANSACTIONAL) mutations = positional[2] - mutated_key = _mutated_pb(self, mutations, 'delete') + mutated_key = _mutated_pb(self, mutations, "delete") self.assertEqual(mutated_key, key.to_protobuf()) def test_delete_multi_w_existing_batch(self): @@ -820,7 +803,7 @@ def test_delete_multi_w_existing_batch(self): result = client.delete_multi([key]) self.assertIsNone(result) - mutated_key = _mutated_pb(self, CURR_BATCH.mutations, 'delete') + mutated_key = _mutated_pb(self, CURR_BATCH.mutations, "delete") self.assertEqual(mutated_key, key._key) client._datastore_api_internal.commit.assert_not_called() @@ -835,7 +818,7 @@ def test_delete_multi_w_existing_transaction(self): result = client.delete_multi([key]) self.assertIsNone(result) - mutated_key = _mutated_pb(self, CURR_XACT.mutations, 'delete') + mutated_key = _mutated_pb(self, CURR_XACT.mutations, "delete") self.assertEqual(mutated_key, key._key) client._datastore_api_internal.commit.assert_not_called() @@ -847,10 +830,9 @@ def test_allocate_ids_w_partial_key(self): creds = _make_credentials() client = self._make_one(credentials=creds, _use_grpc=False) - allocated = mock.Mock( - keys=[_KeyPB(i) for i in range(num_ids)], spec=['keys']) + allocated = mock.Mock(keys=[_KeyPB(i) for i in range(num_ids)], spec=["keys"]) alloc_ids = mock.Mock(return_value=allocated, spec=[]) - ds_api = mock.Mock(allocate_ids=alloc_ids, spec=['allocate_ids']) + ds_api = mock.Mock(allocate_ids=alloc_ids, spec=["allocate_ids"]) client._datastore_api_internal = ds_api result = client.allocate_ids(incomplete_key, num_ids) @@ -866,48 +848,47 @@ def test_allocate_ids_with_completed_key(self): self.assertRaises(ValueError, client.allocate_ids, COMPLETE_KEY, 2) def test_key_w_project(self): - KIND = 'KIND' + KIND = "KIND" ID = 1234 creds = _make_credentials() client = self._make_one(credentials=creds) - self.assertRaises(TypeError, - client.key, KIND, ID, project=self.PROJECT) + self.assertRaises(TypeError, client.key, KIND, ID, project=self.PROJECT) def test_key_wo_project(self): - kind = 'KIND' + kind = "KIND" id_ = 1234 creds = _make_credentials() client = self._make_one(credentials=creds) - patch = mock.patch( - 'google.cloud.datastore.client.Key', spec=['__call__']) + patch = mock.patch("google.cloud.datastore.client.Key", spec=["__call__"]) with patch as mock_klass: key = client.key(kind, id_) self.assertIs(key, mock_klass.return_value) mock_klass.assert_called_once_with( - kind, id_, project=self.PROJECT, namespace=None) + kind, id_, project=self.PROJECT, namespace=None + ) def test_key_w_namespace(self): - kind = 'KIND' + kind = "KIND" id_ = 1234 namespace = object() creds = _make_credentials() client = self._make_one(namespace=namespace, credentials=creds) - patch = mock.patch( - 'google.cloud.datastore.client.Key', spec=['__call__']) + patch = mock.patch("google.cloud.datastore.client.Key", spec=["__call__"]) with patch as mock_klass: key = client.key(kind, id_) self.assertIs(key, mock_klass.return_value) mock_klass.assert_called_once_with( - kind, id_, project=self.PROJECT, namespace=namespace) + kind, id_, project=self.PROJECT, namespace=namespace + ) def test_key_w_namespace_collision(self): - kind = 'KIND' + kind = "KIND" id_ = 1234 namespace1 = object() namespace2 = object() @@ -915,20 +896,19 @@ def test_key_w_namespace_collision(self): creds = _make_credentials() client = self._make_one(namespace=namespace1, credentials=creds) - patch = mock.patch( - 'google.cloud.datastore.client.Key', spec=['__call__']) + patch = mock.patch("google.cloud.datastore.client.Key", spec=["__call__"]) with patch as mock_klass: key = client.key(kind, id_, namespace=namespace2) self.assertIs(key, mock_klass.return_value) mock_klass.assert_called_once_with( - kind, id_, project=self.PROJECT, namespace=namespace2) + kind, id_, project=self.PROJECT, namespace=namespace2 + ) def test_batch(self): creds = _make_credentials() client = self._make_one(credentials=creds) - patch = mock.patch( - 'google.cloud.datastore.client.Batch', spec=['__call__']) + patch = mock.patch("google.cloud.datastore.client.Batch", spec=["__call__"]) with patch as mock_klass: batch = client.batch() self.assertIs(batch, mock_klass.return_value) @@ -939,7 +919,8 @@ def test_transaction_defaults(self): client = self._make_one(credentials=creds) patch = mock.patch( - 'google.cloud.datastore.client.Transaction', spec=['__call__']) + "google.cloud.datastore.client.Transaction", spec=["__call__"] + ) with patch as mock_klass: xact = client.transaction() self.assertIs(xact, mock_klass.return_value) @@ -947,22 +928,19 @@ def test_transaction_defaults(self): def test_read_only_transaction_defaults(self): from google.cloud.datastore_v1.types import TransactionOptions + creds = _make_credentials() client = self._make_one(credentials=creds) xact = client.transaction(read_only=True) self.assertEqual( - xact._options, - TransactionOptions( - read_only=TransactionOptions.ReadOnly() - ) + xact._options, TransactionOptions(read_only=TransactionOptions.ReadOnly()) ) self.assertFalse(xact._options.HasField("read_write")) self.assertTrue(xact._options.HasField("read_only")) - self.assertEqual(xact._options.read_only, - TransactionOptions.ReadOnly()) + self.assertEqual(xact._options.read_only, TransactionOptions.ReadOnly()) def test_query_w_client(self): - KIND = 'KIND' + KIND = "KIND" creds = _make_credentials() client = self._make_one(credentials=creds) @@ -971,40 +949,38 @@ def test_query_w_client(self): self.assertRaises(TypeError, client.query, kind=KIND, client=other) def test_query_w_project(self): - KIND = 'KIND' + KIND = "KIND" creds = _make_credentials() client = self._make_one(credentials=creds) - self.assertRaises(TypeError, - client.query, kind=KIND, project=self.PROJECT) + self.assertRaises(TypeError, client.query, kind=KIND, project=self.PROJECT) def test_query_w_defaults(self): creds = _make_credentials() client = self._make_one(credentials=creds) - patch = mock.patch( - 'google.cloud.datastore.client.Query', spec=['__call__']) + patch = mock.patch("google.cloud.datastore.client.Query", spec=["__call__"]) with patch as mock_klass: query = client.query() self.assertIs(query, mock_klass.return_value) mock_klass.assert_called_once_with( - client, project=self.PROJECT, namespace=None) + client, project=self.PROJECT, namespace=None + ) def test_query_explicit(self): - kind = 'KIND' - namespace = 'NAMESPACE' + kind = "KIND" + namespace = "NAMESPACE" ancestor = object() - filters = [('PROPERTY', '==', 'VALUE')] - projection = ['__key__'] - order = ['PROPERTY'] - distinct_on = ['DISTINCT_ON'] + filters = [("PROPERTY", "==", "VALUE")] + projection = ["__key__"] + order = ["PROPERTY"] + distinct_on = ["DISTINCT_ON"] creds = _make_credentials() client = self._make_one(credentials=creds) - patch = mock.patch( - 'google.cloud.datastore.client.Query', spec=['__call__']) + patch = mock.patch("google.cloud.datastore.client.Query", spec=["__call__"]) with patch as mock_klass: query = client.query( kind=kind, @@ -1029,39 +1005,38 @@ def test_query_explicit(self): ) def test_query_w_namespace(self): - kind = 'KIND' + kind = "KIND" namespace = object() creds = _make_credentials() client = self._make_one(namespace=namespace, credentials=creds) - patch = mock.patch( - 'google.cloud.datastore.client.Query', spec=['__call__']) + patch = mock.patch("google.cloud.datastore.client.Query", spec=["__call__"]) with patch as mock_klass: query = client.query(kind=kind) self.assertIs(query, mock_klass.return_value) mock_klass.assert_called_once_with( - client, project=self.PROJECT, namespace=namespace, kind=kind) + client, project=self.PROJECT, namespace=namespace, kind=kind + ) def test_query_w_namespace_collision(self): - kind = 'KIND' + kind = "KIND" namespace1 = object() namespace2 = object() creds = _make_credentials() client = self._make_one(namespace=namespace1, credentials=creds) - patch = mock.patch( - 'google.cloud.datastore.client.Query', spec=['__call__']) + patch = mock.patch("google.cloud.datastore.client.Query", spec=["__call__"]) with patch as mock_klass: query = client.query(kind=kind, namespace=namespace2) self.assertIs(query, mock_klass.return_value) mock_klass.assert_called_once_with( - client, project=self.PROJECT, namespace=namespace2, kind=kind) + client, project=self.PROJECT, namespace=namespace2, kind=kind + ) class _NoCommitBatch(object): - def __init__(self, client): from google.cloud.datastore.batch import Batch @@ -1078,8 +1053,7 @@ def __exit__(self, *args): class _NoCommitTransaction(object): - - def __init__(self, client, transaction_id='TRANSACTION'): + def __init__(self, client, transaction_id="TRANSACTION"): from google.cloud.datastore.batch import Batch from google.cloud.datastore.transaction import Transaction @@ -1104,8 +1078,8 @@ class _Entity(dict): class _Key(object): _MARKER = object() - _kind = 'KIND' - _key = 'KEY' + _kind = "KIND" + _key = "KEY" _path = None _id = 1234 _stored = None @@ -1139,13 +1113,11 @@ def completed_key(self, new_id): class _PathElementPB(object): - def __init__(self, id_): self.id = id_ class _KeyPB(object): - def __init__(self, id_): self.path = [_PathElementPB(id_)] @@ -1161,8 +1133,7 @@ def _mutated_pb(test_case, mutation_pb_list, mutation_type): # We grab the only mutation. mutated_pb = mutation_pb_list[0] # Then check if it is the correct type. - test_case.assertEqual(mutated_pb.WhichOneof('operation'), - mutation_type) + test_case.assertEqual(mutated_pb.WhichOneof("operation"), mutation_type) return getattr(mutated_pb, mutation_type) @@ -1179,31 +1150,29 @@ def _make_key(id_): def _make_commit_response(*keys): from google.cloud.datastore_v1.proto import datastore_pb2 - mutation_results = [ - datastore_pb2.MutationResult(key=key) for key in keys] + mutation_results = [datastore_pb2.MutationResult(key=key) for key in keys] return datastore_pb2.CommitResponse(mutation_results=mutation_results) def _make_lookup_response(results=(), missing=(), deferred=()): entity_results_found = [ - mock.Mock(entity=result, spec=['entity']) for result in results] + mock.Mock(entity=result, spec=["entity"]) for result in results + ] entity_results_missing = [ - mock.Mock(entity=missing_entity, spec=['entity']) - for missing_entity in missing] + mock.Mock(entity=missing_entity, spec=["entity"]) for missing_entity in missing + ] return mock.Mock( found=entity_results_found, missing=entity_results_missing, deferred=deferred, - spec=['found', 'missing', 'deferred']) + spec=["found", "missing", "deferred"], + ) def _make_datastore_api(*keys, **kwargs): - commit_method = mock.Mock( - return_value=_make_commit_response(*keys), spec=[]) - lookup_response = kwargs.pop( - 'lookup_response', _make_lookup_response()) - lookup_method = mock.Mock( - return_value=lookup_response, spec=[]) + commit_method = mock.Mock(return_value=_make_commit_response(*keys), spec=[]) + lookup_response = kwargs.pop("lookup_response", _make_lookup_response()) + lookup_method = mock.Mock(return_value=lookup_response, spec=[]) return mock.Mock( - commit=commit_method, lookup=lookup_method, - spec=['commit', 'lookup']) + commit=commit_method, lookup=lookup_method, spec=["commit", "lookup"] + ) diff --git a/datastore/tests/unit/test_entity.py b/datastore/tests/unit/test_entity.py index 37faec861e02..c65541a45854 100644 --- a/datastore/tests/unit/test_entity.py +++ b/datastore/tests/unit/test_entity.py @@ -14,13 +14,12 @@ import unittest -_PROJECT = 'PROJECT' -_KIND = 'KIND' +_PROJECT = "PROJECT" +_KIND = "KIND" _ID = 1234 class TestEntity(unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.datastore.entity import Entity @@ -39,18 +38,22 @@ def test_ctor_defaults(self): self.assertEqual(sorted(entity.exclude_from_indexes), []) def test_ctor_explicit(self): - _EXCLUDE_FROM_INDEXES = ['foo', 'bar'] + _EXCLUDE_FROM_INDEXES = ["foo", "bar"] key = _Key() - entity = self._make_one( - key=key, exclude_from_indexes=_EXCLUDE_FROM_INDEXES) - self.assertEqual(sorted(entity.exclude_from_indexes), - sorted(_EXCLUDE_FROM_INDEXES)) + entity = self._make_one(key=key, exclude_from_indexes=_EXCLUDE_FROM_INDEXES) + self.assertEqual( + sorted(entity.exclude_from_indexes), sorted(_EXCLUDE_FROM_INDEXES) + ) def test_ctor_bad_exclude_from_indexes(self): BAD_EXCLUDE_FROM_INDEXES = object() key = _Key() - self.assertRaises(TypeError, self._make_one, key=key, - exclude_from_indexes=BAD_EXCLUDE_FROM_INDEXES) + self.assertRaises( + TypeError, + self._make_one, + key=key, + exclude_from_indexes=BAD_EXCLUDE_FROM_INDEXES, + ) def test___eq_____ne___w_non_entity(self): from google.cloud.datastore.key import Key @@ -75,7 +78,7 @@ def test___eq_____ne___w_different_keys(self): def test___eq_____ne___w_same_keys(self): from google.cloud.datastore.key import Key - name = 'foo' + name = "foo" value = 42 meaning = 9 @@ -97,10 +100,10 @@ def test___eq_____ne___w_same_keys_different_props(self): key1 = Key(_KIND, _ID, project=_PROJECT) entity1 = self._make_one(key=key1) - entity1['foo'] = 'Foo' + entity1["foo"] = "Foo" key2 = Key(_KIND, _ID, project=_PROJECT) entity2 = self._make_one(key=key2) - entity1['bar'] = 'Bar' + entity1["bar"] = "Bar" self.assertFalse(entity1 == entity2) self.assertTrue(entity1 != entity2) @@ -110,9 +113,9 @@ def test___eq_____ne___w_same_keys_props_w_equiv_keys_as_value(self): key1 = Key(_KIND, _ID, project=_PROJECT) key2 = Key(_KIND, _ID, project=_PROJECT) entity1 = self._make_one(key=key1) - entity1['some_key'] = key1 + entity1["some_key"] = key1 entity2 = self._make_one(key=key1) - entity2['some_key'] = key2 + entity2["some_key"] = key2 self.assertTrue(entity1 == entity2) self.assertFalse(entity1 != entity2) @@ -124,9 +127,9 @@ def test___eq_____ne___w_same_keys_props_w_diff_keys_as_value(self): key1 = Key(_KIND, _ID1, project=_PROJECT) key2 = Key(_KIND, _ID2, project=_PROJECT) entity1 = self._make_one(key=key1) - entity1['some_key'] = key1 + entity1["some_key"] = key1 entity2 = self._make_one(key=key1) - entity2['some_key'] = key2 + entity2["some_key"] = key2 self.assertFalse(entity1 == entity2) self.assertTrue(entity1 != entity2) @@ -136,12 +139,12 @@ def test___eq_____ne___w_same_keys_props_w_equiv_entities_as_value(self): key = Key(_KIND, _ID, project=_PROJECT) entity1 = self._make_one(key=key) sub1 = self._make_one() - sub1.update({'foo': 'Foo'}) - entity1['some_entity'] = sub1 + sub1.update({"foo": "Foo"}) + entity1["some_entity"] = sub1 entity2 = self._make_one(key=key) sub2 = self._make_one() - sub2.update({'foo': 'Foo'}) - entity2['some_entity'] = sub2 + sub2.update({"foo": "Foo"}) + entity2["some_entity"] = sub2 self.assertTrue(entity1 == entity2) self.assertFalse(entity1 != entity2) @@ -151,19 +154,19 @@ def test___eq_____ne___w_same_keys_props_w_diff_entities_as_value(self): key = Key(_KIND, _ID, project=_PROJECT) entity1 = self._make_one(key=key) sub1 = self._make_one() - sub1.update({'foo': 'Foo'}) - entity1['some_entity'] = sub1 + sub1.update({"foo": "Foo"}) + entity1["some_entity"] = sub1 entity2 = self._make_one(key=key) sub2 = self._make_one() - sub2.update({'foo': 'Bar'}) - entity2['some_entity'] = sub2 + sub2.update({"foo": "Bar"}) + entity2["some_entity"] = sub2 self.assertFalse(entity1 == entity2) self.assertTrue(entity1 != entity2) def test__eq__same_value_different_exclude(self): from google.cloud.datastore.key import Key - name = 'foo' + name = "foo" value = 42 key = Key(_KIND, _ID, project=_PROJECT) @@ -178,7 +181,7 @@ def test__eq__same_value_different_exclude(self): def test__eq__same_value_different_meanings(self): from google.cloud.datastore.key import Key - name = 'foo' + name = "foo" value = 42 meaning = 9 key = Key(_KIND, _ID, project=_PROJECT) @@ -197,31 +200,31 @@ def test_id(self): key = Key(_KIND, _ID, project=_PROJECT) entity = self._make_one(key=key) - self.assertEqual(entity.id, _ID) + self.assertEqual(entity.id, _ID) def test_id_none(self): entity = self._make_one(key=None) - self.assertEqual(entity.id, None) + self.assertEqual(entity.id, None) def test___repr___no_key_empty(self): entity = self._make_one() - self.assertEqual(repr(entity), '') + self.assertEqual(repr(entity), "") def test___repr___w_key_non_empty(self): key = _Key() - flat_path = ('bar', 12, 'baz', 'himom') + flat_path = ("bar", 12, "baz", "himom") key._flat_path = flat_path entity = self._make_one(key=key) - entity_vals = {'foo': 'Foo'} + entity_vals = {"foo": "Foo"} entity.update(entity_vals) - expected = '' % (flat_path, entity_vals) + expected = "" % (flat_path, entity_vals) self.assertEqual(repr(entity), expected) class _Key(object): _MARKER = object() - _key = 'KEY' + _key = "KEY" _partial = False _path = None _id = None diff --git a/datastore/tests/unit/test_helpers.py b/datastore/tests/unit/test_helpers.py index f4338812be54..995d9cfa2330 100644 --- a/datastore/tests/unit/test_helpers.py +++ b/datastore/tests/unit/test_helpers.py @@ -16,7 +16,6 @@ class Test__new_value_pb(unittest.TestCase): - def _call_fut(self, entity_pb, name): from google.cloud.datastore.helpers import _new_value_pb @@ -26,7 +25,7 @@ def test_it(self): from google.cloud.datastore_v1.proto import entity_pb2 entity_pb = entity_pb2.Entity() - name = 'foo' + name = "foo" result = self._call_fut(entity_pb, name) self.assertIsInstance(result, entity_pb2.Value) @@ -35,7 +34,6 @@ def test_it(self): class Test__property_tuples(unittest.TestCase): - def _call_fut(self, entity_pb): from google.cloud.datastore.helpers import _property_tuples @@ -47,19 +45,17 @@ def test_it(self): from google.cloud.datastore.helpers import _new_value_pb entity_pb = entity_pb2.Entity() - name1 = 'foo' - name2 = 'bar' + name1 = "foo" + name2 = "bar" val_pb1 = _new_value_pb(entity_pb, name1) val_pb2 = _new_value_pb(entity_pb, name2) result = self._call_fut(entity_pb) self.assertIsInstance(result, types.GeneratorType) - self.assertEqual(sorted(result), - sorted([(name1, val_pb1), (name2, val_pb2)])) + self.assertEqual(sorted(result), sorted([(name1, val_pb1), (name2, val_pb2)])) class Test_entity_from_protobuf(unittest.TestCase): - def _call_fut(self, val): from google.cloud.datastore.helpers import entity_from_protobuf @@ -69,28 +65,28 @@ def test_it(self): from google.cloud.datastore_v1.proto import entity_pb2 from google.cloud.datastore.helpers import _new_value_pb - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" _ID = 1234 entity_pb = entity_pb2.Entity() entity_pb.key.partition_id.project_id = _PROJECT entity_pb.key.path.add(kind=_KIND, id=_ID) - value_pb = _new_value_pb(entity_pb, 'foo') - value_pb.string_value = 'Foo' + value_pb = _new_value_pb(entity_pb, "foo") + value_pb.string_value = "Foo" - unindexed_val_pb = _new_value_pb(entity_pb, 'bar') + unindexed_val_pb = _new_value_pb(entity_pb, "bar") unindexed_val_pb.integer_value = 10 unindexed_val_pb.exclude_from_indexes = True - array_val_pb1 = _new_value_pb(entity_pb, 'baz') + array_val_pb1 = _new_value_pb(entity_pb, "baz") array_pb1 = array_val_pb1.array_value.values unindexed_array_val_pb = array_pb1.add() unindexed_array_val_pb.integer_value = 11 unindexed_array_val_pb.exclude_from_indexes = True - array_val_pb2 = _new_value_pb(entity_pb, 'qux') + array_val_pb2 = _new_value_pb(entity_pb, "qux") array_pb2 = array_val_pb2.array_value.values indexed_array_val_pb = array_pb2.add() @@ -98,11 +94,11 @@ def test_it(self): entity = self._call_fut(entity_pb) self.assertEqual(entity.kind, _KIND) - self.assertEqual(entity.exclude_from_indexes, - frozenset(['bar', 'baz'])) + self.assertEqual(entity.exclude_from_indexes, frozenset(["bar", "baz"])) entity_props = dict(entity) - self.assertEqual(entity_props, - {'foo': 'Foo', 'bar': 10, 'baz': [11], 'qux': [12]}) + self.assertEqual( + entity_props, {"foo": "Foo", "bar": 10, "baz": [11], "qux": [12]} + ) # Also check the key. key = entity.key @@ -115,14 +111,14 @@ def test_mismatched_value_indexed(self): from google.cloud.datastore_v1.proto import entity_pb2 from google.cloud.datastore.helpers import _new_value_pb - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" _ID = 1234 entity_pb = entity_pb2.Entity() entity_pb.key.partition_id.project_id = _PROJECT entity_pb.key.path.add(kind=_KIND, id=_ID) - array_val_pb = _new_value_pb(entity_pb, 'baz') + array_val_pb = _new_value_pb(entity_pb, "baz") array_pb = array_val_pb.array_value.values unindexed_value_pb1 = array_pb.add() @@ -149,10 +145,10 @@ def test_entity_with_meaning(self): from google.cloud.datastore.helpers import _new_value_pb entity_pb = entity_pb2.Entity() - name = 'hello' + name = "hello" value_pb = _new_value_pb(entity_pb, name) value_pb.meaning = meaning = 9 - value_pb.string_value = val = u'something' + value_pb.string_value = val = u"something" entity = self._call_fut(entity_pb) self.assertIsNone(entity.key) @@ -163,10 +159,10 @@ def test_nested_entity_no_key(self): from google.cloud.datastore_v1.proto import entity_pb2 from google.cloud.datastore.helpers import _new_value_pb - PROJECT = 'FOO' - KIND = 'KIND' - INSIDE_NAME = 'IFOO' - OUTSIDE_NAME = 'OBAR' + PROJECT = "FOO" + KIND = "KIND" + INSIDE_NAME = "IFOO" + OUTSIDE_NAME = "OBAR" INSIDE_VALUE = 1337 entity_inside = entity_pb2.Entity() @@ -194,28 +190,22 @@ def test_nested_entity_no_key(self): def test_index_mismatch_ignores_empty_list(self): from google.cloud.datastore_v1.proto import entity_pb2 - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" _ID = 1234 - array_val_pb = entity_pb2.Value( - array_value=entity_pb2.ArrayValue(values=[])) + array_val_pb = entity_pb2.Value(array_value=entity_pb2.ArrayValue(values=[])) - entity_pb = entity_pb2.Entity( - properties={ - 'baz': array_val_pb, - }, - ) + entity_pb = entity_pb2.Entity(properties={"baz": array_val_pb}) entity_pb.key.partition_id.project_id = _PROJECT entity_pb.key.path.add(kind=_KIND, id=_ID) entity = self._call_fut(entity_pb) entity_dict = dict(entity) - self.assertEqual(entity_dict['baz'], []) + self.assertEqual(entity_dict["baz"], []) class Test_entity_to_protobuf(unittest.TestCase): - def _call_fut(self, entity): from google.cloud.datastore.helpers import entity_to_protobuf @@ -232,10 +222,9 @@ def _compare_entity_proto(self, entity_pb1, entity_pb2): name1, val1 = pair1 name2, val2 = pair2 self.assertEqual(name1, name2) - if val1.HasField('entity_value'): # Message field (Entity) + if val1.HasField("entity_value"): # Message field (Entity) self.assertEqual(val1.meaning, val2.meaning) - self._compare_entity_proto( - val1.entity_value, val2.entity_value) + self._compare_entity_proto(val1.entity_value, val2.entity_value) else: self.assertEqual(val1, val2) @@ -252,8 +241,8 @@ def test_key_only(self): from google.cloud.datastore.entity import Entity from google.cloud.datastore.key import Key - kind, name = 'PATH', 'NAME' - project = 'PROJECT' + kind, name = "PATH", "NAME" + project = "PROJECT" key = Key(kind, name, project=project) entity = Entity(key=key) entity_pb = self._call_fut(entity) @@ -272,10 +261,10 @@ def test_simple_fields(self): from google.cloud.datastore.helpers import _new_value_pb entity = Entity() - name1 = 'foo' + name1 = "foo" entity[name1] = value1 = 42 - name2 = 'bar' - entity[name2] = value2 = u'some-string' + name2 = "bar" + entity[name2] = value2 = u"some-string" entity_pb = self._call_fut(entity) expected_pb = entity_pb2.Entity() @@ -291,11 +280,11 @@ def test_with_empty_list(self): from google.cloud.datastore.entity import Entity entity = Entity() - entity['foo'] = [] + entity["foo"] = [] entity_pb = self._call_fut(entity) expected_pb = entity_pb2.Entity() - prop = expected_pb.properties.get_or_create('foo') + prop = expected_pb.properties.get_or_create("foo") prop.array_value.CopyFrom(entity_pb2.ArrayValue(values=[])) self._compare_entity_proto(entity_pb, expected_pb) @@ -307,42 +296,42 @@ def test_inverts_to_protobuf(self): original_pb = entity_pb2.Entity() # Add a key. - original_pb.key.partition_id.project_id = project = 'PROJECT' + original_pb.key.partition_id.project_id = project = "PROJECT" elem1 = original_pb.key.path.add() - elem1.kind = 'Family' + elem1.kind = "Family" elem1.id = 1234 elem2 = original_pb.key.path.add() - elem2.kind = 'King' - elem2.name = 'Spades' + elem2.kind = "King" + elem2.name = "Spades" # Add an integer property. - val_pb1 = _new_value_pb(original_pb, 'foo') + val_pb1 = _new_value_pb(original_pb, "foo") val_pb1.integer_value = 1337 val_pb1.exclude_from_indexes = True # Add a string property. - val_pb2 = _new_value_pb(original_pb, 'bar') - val_pb2.string_value = u'hello' + val_pb2 = _new_value_pb(original_pb, "bar") + val_pb2.string_value = u"hello" # Add a nested (entity) property. - val_pb3 = _new_value_pb(original_pb, 'entity-baz') + val_pb3 = _new_value_pb(original_pb, "entity-baz") sub_pb = entity_pb2.Entity() - sub_val_pb1 = _new_value_pb(sub_pb, 'x') + sub_val_pb1 = _new_value_pb(sub_pb, "x") sub_val_pb1.double_value = 3.14 - sub_val_pb2 = _new_value_pb(sub_pb, 'y') + sub_val_pb2 = _new_value_pb(sub_pb, "y") sub_val_pb2.double_value = 2.718281828 val_pb3.meaning = 9 val_pb3.entity_value.CopyFrom(sub_pb) # Add a list property. - val_pb4 = _new_value_pb(original_pb, 'list-quux') + val_pb4 = _new_value_pb(original_pb, "list-quux") array_val1 = val_pb4.array_value.values.add() array_val1.exclude_from_indexes = False array_val1.meaning = meaning = 22 - array_val1.blob_value = b'\xe2\x98\x83' + array_val1.blob_value = b"\xe2\x98\x83" array_val2 = val_pb4.array_value.values.add() array_val2.exclude_from_indexes = False array_val2.meaning = meaning - array_val2.blob_value = b'\xe2\x98\x85' + array_val2.blob_value = b"\xe2\x98\x85" # Convert to the user-space Entity. entity = entity_from_protobuf(original_pb) @@ -359,7 +348,7 @@ def test_meaning_with_change(self): from google.cloud.datastore.helpers import _new_value_pb entity = Entity() - name = 'foo' + name = "foo" entity[name] = value = 42 entity._meanings[name] = (9, 1337) entity_pb = self._call_fut(entity) @@ -377,7 +366,7 @@ def test_variable_meanings(self): from google.cloud.datastore.helpers import _new_value_pb entity = Entity() - name = 'quux' + name = "quux" entity[name] = values = [1, 20, 300] meaning = 9 entity._meanings[name] = ([None, meaning, None], values) @@ -402,21 +391,17 @@ def test_dict_to_entity(self): from google.cloud.datastore.entity import Entity entity = Entity() - entity['a'] = {'b': u'c'} + entity["a"] = {"b": u"c"} entity_pb = self._call_fut(entity) expected_pb = entity_pb2.Entity( properties={ - 'a': entity_pb2.Value( + "a": entity_pb2.Value( entity_value=entity_pb2.Entity( - properties={ - 'b': entity_pb2.Value( - string_value='c', - ), - }, - ), - ), - }, + properties={"b": entity_pb2.Value(string_value="c")} + ) + ) + } ) self.assertEqual(entity_pb, expected_pb) @@ -425,52 +410,35 @@ def test_dict_to_entity_recursive(self): from google.cloud.datastore.entity import Entity entity = Entity() - entity['a'] = { - 'b': { - 'c': { - 'd': 1.25, - }, - 'e': True, - }, - 'f': 10, - } + entity["a"] = {"b": {"c": {"d": 1.25}, "e": True}, "f": 10} entity_pb = self._call_fut(entity) b_entity_pb = entity_pb2.Entity( properties={ - 'c': entity_pb2.Value( + "c": entity_pb2.Value( entity_value=entity_pb2.Entity( - properties={ - 'd': entity_pb2.Value( - double_value=1.25, - ), - }, - ), + properties={"d": entity_pb2.Value(double_value=1.25)} + ) ), - 'e': entity_pb2.Value(boolean_value=True), + "e": entity_pb2.Value(boolean_value=True), } ) expected_pb = entity_pb2.Entity( properties={ - 'a': entity_pb2.Value( + "a": entity_pb2.Value( entity_value=entity_pb2.Entity( properties={ - 'b': entity_pb2.Value( - entity_value=b_entity_pb, - ), - 'f': entity_pb2.Value( - integer_value=10, - ), - }, - ), - ), - }, + "b": entity_pb2.Value(entity_value=b_entity_pb), + "f": entity_pb2.Value(integer_value=10), + } + ) + ) + } ) self.assertEqual(entity_pb, expected_pb) class Test_key_from_protobuf(unittest.TestCase): - def _call_fut(self, val): from google.cloud.datastore.helpers import key_from_protobuf @@ -486,36 +454,37 @@ def _makePB(self, project=None, namespace=None, path=()): pb.partition_id.namespace_id = namespace for elem in path: added = pb.path.add() - added.kind = elem['kind'] - if 'id' in elem: - added.id = elem['id'] - if 'name' in elem: - added.name = elem['name'] + added.kind = elem["kind"] + if "id" in elem: + added.id = elem["id"] + if "name" in elem: + added.name = elem["name"] return pb def test_wo_namespace_in_pb(self): - _PROJECT = 'PROJECT' - pb = self._makePB(path=[{'kind': 'KIND'}], project=_PROJECT) + _PROJECT = "PROJECT" + pb = self._makePB(path=[{"kind": "KIND"}], project=_PROJECT) key = self._call_fut(pb) self.assertEqual(key.project, _PROJECT) self.assertIsNone(key.namespace) def test_w_namespace_in_pb(self): - _PROJECT = 'PROJECT' - _NAMESPACE = 'NAMESPACE' - pb = self._makePB(path=[{'kind': 'KIND'}], namespace=_NAMESPACE, - project=_PROJECT) + _PROJECT = "PROJECT" + _NAMESPACE = "NAMESPACE" + pb = self._makePB( + path=[{"kind": "KIND"}], namespace=_NAMESPACE, project=_PROJECT + ) key = self._call_fut(pb) self.assertEqual(key.project, _PROJECT) self.assertEqual(key.namespace, _NAMESPACE) def test_w_nested_path_in_pb(self): _PATH = [ - {'kind': 'PARENT', 'name': 'NAME'}, - {'kind': 'CHILD', 'id': 1234}, - {'kind': 'GRANDCHILD', 'id': 5678}, + {"kind": "PARENT", "name": "NAME"}, + {"kind": "CHILD", "id": 1234}, + {"kind": "GRANDCHILD", "id": 5678}, ] - pb = self._makePB(path=_PATH, project='PROJECT') + pb = self._makePB(path=_PATH, project="PROJECT") key = self._call_fut(pb) self.assertEqual(key.path, _PATH) @@ -525,7 +494,6 @@ def test_w_nothing_in_pb(self): class Test__get_read_options(unittest.TestCase): - def _call_fut(self, eventual, transaction_id): from google.cloud.datastore.helpers import get_read_options @@ -533,20 +501,21 @@ def _call_fut(self, eventual, transaction_id): def test_eventual_w_transaction(self): with self.assertRaises(ValueError): - self._call_fut(True, b'123') + self._call_fut(True, b"123") def test_eventual_wo_transaction(self): from google.cloud.datastore_v1.proto import datastore_pb2 read_options = self._call_fut(True, None) expected = datastore_pb2.ReadOptions( - read_consistency=datastore_pb2.ReadOptions.EVENTUAL) + read_consistency=datastore_pb2.ReadOptions.EVENTUAL + ) self.assertEqual(read_options, expected) def test_default_w_transaction(self): from google.cloud.datastore_v1.proto import datastore_pb2 - txn_id = b'123abc-easy-as' + txn_id = b"123abc-easy-as" read_options = self._call_fut(False, txn_id) expected = datastore_pb2.ReadOptions(transaction=txn_id) self.assertEqual(read_options, expected) @@ -560,7 +529,6 @@ def test_default_wo_transaction(self): class Test__pb_attr_value(unittest.TestCase): - def _call_fut(self, val): from google.cloud.datastore.helpers import _pb_attr_value @@ -575,7 +543,7 @@ def test_datetime_naive(self): naive = datetime.datetime(2014, 9, 16, 10, 19, 32, micros) # No zone. utc = datetime.datetime(2014, 9, 16, 10, 19, 32, micros, UTC) name, value = self._call_fut(naive) - self.assertEqual(name, 'timestamp_value') + self.assertEqual(name, "timestamp_value") self.assertEqual(value.seconds, calendar.timegm(utc.timetuple())) self.assertEqual(value.nanos, 1000 * micros) @@ -587,73 +555,73 @@ def test_datetime_w_zone(self): micros = 4375 utc = datetime.datetime(2014, 9, 16, 10, 19, 32, micros, UTC) name, value = self._call_fut(utc) - self.assertEqual(name, 'timestamp_value') + self.assertEqual(name, "timestamp_value") self.assertEqual(value.seconds, calendar.timegm(utc.timetuple())) self.assertEqual(value.nanos, 1000 * micros) def test_key(self): from google.cloud.datastore.key import Key - key = Key('PATH', 1234, project='PROJECT') + key = Key("PATH", 1234, project="PROJECT") name, value = self._call_fut(key) - self.assertEqual(name, 'key_value') + self.assertEqual(name, "key_value") self.assertEqual(value, key.to_protobuf()) def test_bool(self): name, value = self._call_fut(False) - self.assertEqual(name, 'boolean_value') + self.assertEqual(name, "boolean_value") self.assertEqual(value, False) def test_float(self): name, value = self._call_fut(3.1415926) - self.assertEqual(name, 'double_value') + self.assertEqual(name, "double_value") self.assertEqual(value, 3.1415926) def test_int(self): name, value = self._call_fut(42) - self.assertEqual(name, 'integer_value') + self.assertEqual(name, "integer_value") self.assertEqual(value, 42) def test_long(self): must_be_long = (1 << 63) - 1 name, value = self._call_fut(must_be_long) - self.assertEqual(name, 'integer_value') + self.assertEqual(name, "integer_value") self.assertEqual(value, must_be_long) def test_native_str(self): import six - name, value = self._call_fut('str') + name, value = self._call_fut("str") if six.PY2: - self.assertEqual(name, 'blob_value') + self.assertEqual(name, "blob_value") else: # pragma: NO COVER Python 3 - self.assertEqual(name, 'string_value') - self.assertEqual(value, 'str') + self.assertEqual(name, "string_value") + self.assertEqual(value, "str") def test_bytes(self): - name, value = self._call_fut(b'bytes') - self.assertEqual(name, 'blob_value') - self.assertEqual(value, b'bytes') + name, value = self._call_fut(b"bytes") + self.assertEqual(name, "blob_value") + self.assertEqual(value, b"bytes") def test_unicode(self): - name, value = self._call_fut(u'str') - self.assertEqual(name, 'string_value') - self.assertEqual(value, u'str') + name, value = self._call_fut(u"str") + self.assertEqual(name, "string_value") + self.assertEqual(value, u"str") def test_entity(self): from google.cloud.datastore.entity import Entity entity = Entity() name, value = self._call_fut(entity) - self.assertEqual(name, 'entity_value') + self.assertEqual(name, "entity_value") self.assertIs(value, entity) def test_dict(self): from google.cloud.datastore.entity import Entity - orig_value = {'richard': b'feynman'} + orig_value = {"richard": b"feynman"} name, value = self._call_fut(orig_value) - self.assertEqual(name, 'entity_value') + self.assertEqual(name, "entity_value") self.assertIsInstance(value, Entity) self.assertIsNone(value.key) self.assertEqual(value._meanings, {}) @@ -661,9 +629,9 @@ def test_dict(self): self.assertEqual(dict(value), orig_value) def test_array(self): - values = ['a', 0, 3.14] + values = ["a", 0, 3.14] name, value = self._call_fut(values) - self.assertEqual(name, 'array_value') + self.assertEqual(name, "array_value") self.assertIs(value, values) def test_geo_point(self): @@ -675,14 +643,14 @@ def test_geo_point(self): geo_pt = GeoPoint(latitude=lat, longitude=lng) geo_pt_pb = latlng_pb2.LatLng(latitude=lat, longitude=lng) name, value = self._call_fut(geo_pt) - self.assertEqual(name, 'geo_point_value') + self.assertEqual(name, "geo_point_value") self.assertEqual(value, geo_pt_pb) def test_null(self): from google.protobuf import struct_pb2 name, value = self._call_fut(None) - self.assertEqual(name, 'null_value') + self.assertEqual(name, "null_value") self.assertEqual(value, struct_pb2.NULL_VALUE) def test_object(self): @@ -690,7 +658,6 @@ def test_object(self): class Test__get_value_from_value_pb(unittest.TestCase): - def _call_fut(self, pb): from google.cloud.datastore.helpers import _get_value_from_value_pb @@ -721,30 +688,30 @@ def test_key(self): from google.cloud.datastore.key import Key pb = entity_pb2.Value() - expected = Key('KIND', 1234, project='PROJECT').to_protobuf() + expected = Key("KIND", 1234, project="PROJECT").to_protobuf() pb.key_value.CopyFrom(expected) found = self._call_fut(pb) self.assertEqual(found.to_protobuf(), expected) def test_bool(self): - pb = self._makePB('boolean_value', False) + pb = self._makePB("boolean_value", False) self.assertEqual(self._call_fut(pb), False) def test_float(self): - pb = self._makePB('double_value', 3.1415926) + pb = self._makePB("double_value", 3.1415926) self.assertEqual(self._call_fut(pb), 3.1415926) def test_int(self): - pb = self._makePB('integer_value', 42) + pb = self._makePB("integer_value", 42) self.assertEqual(self._call_fut(pb), 42) def test_bytes(self): - pb = self._makePB('blob_value', b'str') - self.assertEqual(self._call_fut(pb), b'str') + pb = self._makePB("blob_value", b"str") + self.assertEqual(self._call_fut(pb), b"str") def test_unicode(self): - pb = self._makePB('string_value', u'str') - self.assertEqual(self._call_fut(pb), u'str') + pb = self._makePB("string_value", u"str") + self.assertEqual(self._call_fut(pb), u"str") def test_entity(self): from google.cloud.datastore_v1.proto import entity_pb2 @@ -753,14 +720,14 @@ def test_entity(self): pb = entity_pb2.Value() entity_pb = pb.entity_value - entity_pb.key.path.add(kind='KIND') - entity_pb.key.partition_id.project_id = 'PROJECT' + entity_pb.key.path.add(kind="KIND") + entity_pb.key.partition_id.project_id = "PROJECT" - value_pb = _new_value_pb(entity_pb, 'foo') - value_pb.string_value = 'Foo' + value_pb = _new_value_pb(entity_pb, "foo") + value_pb.string_value = "Foo" entity = self._call_fut(pb) self.assertIsInstance(entity, Entity) - self.assertEqual(entity['foo'], 'Foo') + self.assertEqual(entity["foo"], "Foo") def test_array(self): from google.cloud.datastore_v1.proto import entity_pb2 @@ -768,11 +735,11 @@ def test_array(self): pb = entity_pb2.Value() array_pb = pb.array_value.values item_pb = array_pb.add() - item_pb.string_value = 'Foo' + item_pb.string_value = "Foo" item_pb = array_pb.add() - item_pb.string_value = 'Bar' + item_pb.string_value = "Bar" items = self._call_fut(pb) - self.assertEqual(items, ['Foo', 'Bar']) + self.assertEqual(items, ["Foo", "Bar"]) def test_geo_point(self): from google.type import latlng_pb2 @@ -805,7 +772,6 @@ def test_unknown(self): class Test_set_protobuf_value(unittest.TestCase): - def _call_fut(self, value_pb, val): from google.cloud.datastore.helpers import _set_protobuf_value @@ -813,6 +779,7 @@ def _call_fut(self, value_pb, val): def _makePB(self): from google.cloud.datastore_v1.proto import entity_pb2 + return entity_pb2.Value() def test_datetime(self): @@ -832,7 +799,7 @@ def test_key(self): from google.cloud.datastore.key import Key pb = self._makePB() - key = Key('KIND', 1234, project='PROJECT') + key = Key("KIND", 1234, project="PROJECT") self._call_fut(pb, key) value = pb.key_value self.assertEqual(value, key.to_protobuf()) @@ -840,7 +807,7 @@ def test_key(self): def test_none(self): pb = self._makePB() self._call_fut(pb, None) - self.assertEqual(pb.WhichOneof('value_type'), 'null_value') + self.assertEqual(pb.WhichOneof("value_type"), "null_value") def test_bool(self): pb = self._makePB() @@ -871,24 +838,24 @@ def test_native_str(self): import six pb = self._makePB() - self._call_fut(pb, 'str') + self._call_fut(pb, "str") if six.PY2: value = pb.blob_value else: # pragma: NO COVER Python 3 value = pb.string_value - self.assertEqual(value, 'str') + self.assertEqual(value, "str") def test_bytes(self): pb = self._makePB() - self._call_fut(pb, b'str') + self._call_fut(pb, b"str") value = pb.blob_value - self.assertEqual(value, b'str') + self.assertEqual(value, b"str") def test_unicode(self): pb = self._makePB() - self._call_fut(pb, u'str') + self._call_fut(pb, u"str") value = pb.string_value - self.assertEqual(value, u'str') + self.assertEqual(value, u"str") def test_entity_empty_wo_key(self): from google.cloud.datastore.entity import Entity @@ -898,7 +865,7 @@ def test_entity_empty_wo_key(self): entity = Entity() self._call_fut(pb, entity) value = pb.entity_value - self.assertEqual(value.key.SerializeToString(), b'') + self.assertEqual(value.key.SerializeToString(), b"") self.assertEqual(len(list(_property_tuples(value))), 0) def test_entity_w_key(self): @@ -906,10 +873,10 @@ def test_entity_w_key(self): from google.cloud.datastore.helpers import _property_tuples from google.cloud.datastore.key import Key - name = 'foo' - value = u'Foo' + name = "foo" + value = u"Foo" pb = self._makePB() - key = Key('KIND', 123, project='PROJECT') + key = Key("KIND", 123, project="PROJECT") entity = Entity(key=key) entity[name] = value self._call_fut(pb, entity) @@ -923,7 +890,7 @@ def test_entity_w_key(self): def test_array(self): pb = self._makePB() - values = [u'a', 0, 3.14] + values = [u"a", 0, 3.14] self._call_fut(pb, values) marshalled = pb.array_value.values self.assertEqual(len(marshalled), len(values)) @@ -945,7 +912,6 @@ def test_geo_point(self): class Test__get_meaning(unittest.TestCase): - def _call_fut(self, *args, **kwargs): from google.cloud.datastore.helpers import _get_meaning @@ -963,7 +929,7 @@ def test_single(self): value_pb = entity_pb2.Value() value_pb.meaning = meaning = 22 - value_pb.string_value = u'hi' + value_pb.string_value = u"hi" result = self._call_fut(value_pb) self.assertEqual(meaning, result) @@ -986,8 +952,8 @@ def test_array_value(self): sub_value_pb2 = value_pb.array_value.values.add() sub_value_pb1.meaning = sub_value_pb2.meaning = meaning - sub_value_pb1.string_value = u'hi' - sub_value_pb2.string_value = u'bye' + sub_value_pb1.string_value = u"hi" + sub_value_pb2.string_value = u"bye" result = self._call_fut(value_pb, is_list=True) self.assertEqual(meaning, result) @@ -1003,8 +969,8 @@ def test_array_value_multiple_meanings(self): sub_value_pb1.meaning = meaning1 sub_value_pb2.meaning = meaning2 - sub_value_pb1.string_value = u'hi' - sub_value_pb2.string_value = u'bye' + sub_value_pb1.string_value = u"hi" + sub_value_pb2.string_value = u"bye" result = self._call_fut(value_pb, is_list=True) self.assertEqual(result, [meaning1, meaning2]) @@ -1018,15 +984,14 @@ def test_array_value_meaning_partially_unset(self): sub_value_pb2 = value_pb.array_value.values.add() sub_value_pb1.meaning = meaning1 - sub_value_pb1.string_value = u'hi' - sub_value_pb2.string_value = u'bye' + sub_value_pb1.string_value = u"hi" + sub_value_pb2.string_value = u"bye" result = self._call_fut(value_pb, is_list=True) self.assertEqual(result, [meaning1, None]) class TestGeoPoint(unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.datastore.helpers import GeoPoint @@ -1072,7 +1037,7 @@ def test___ne__same_value(self): lng = 20.03 geo_pt1 = self._make_one(lat, lng) geo_pt2 = self._make_one(lat, lng) - comparison_val = (geo_pt1 != geo_pt2) + comparison_val = geo_pt1 != geo_pt2 self.assertFalse(comparison_val) def test___ne__(self): diff --git a/datastore/tests/unit/test_key.py b/datastore/tests/unit/test_key.py index db66be08e065..a157d50b576a 100644 --- a/datastore/tests/unit/test_key.py +++ b/datastore/tests/unit/test_key.py @@ -17,7 +17,7 @@ class TestKey(unittest.TestCase): - _DEFAULT_PROJECT = 'PROJECT' + _DEFAULT_PROJECT = "PROJECT" # NOTE: This comes directly from a running (in the dev appserver) # App Engine app. Created via: # @@ -27,17 +27,17 @@ class TestKey(unittest.TestCase): # namespace='space', app='s~sample-app') # urlsafe = key.urlsafe() _URLSAFE_EXAMPLE1 = ( - b'agxzfnNhbXBsZS1hcHByHgsSBlBhcmVudBg7DAsSBUNoaWxkIgdGZ' - b'WF0aGVyDKIBBXNwYWNl') - _URLSAFE_APP1 = 's~sample-app' - _URLSAFE_NAMESPACE1 = 'space' - _URLSAFE_FLAT_PATH1 = ('Parent', 59, 'Child', 'Feather') - _URLSAFE_EXAMPLE2 = b'agZzfmZpcmVyDwsSBEtpbmQiBVRoaW5nDA' - _URLSAFE_APP2 = 's~fire' - _URLSAFE_FLAT_PATH2 = ('Kind', 'Thing') - _URLSAFE_EXAMPLE3 = b'ahhzfnNhbXBsZS1hcHAtbm8tbG9jYXRpb25yCgsSBFpvcnAYWAw' - _URLSAFE_APP3 = 'sample-app-no-location' - _URLSAFE_FLAT_PATH3 = ('Zorp', 88) + b"agxzfnNhbXBsZS1hcHByHgsSBlBhcmVudBg7DAsSBUNoaWxkIgdGZ" b"WF0aGVyDKIBBXNwYWNl" + ) + _URLSAFE_APP1 = "s~sample-app" + _URLSAFE_NAMESPACE1 = "space" + _URLSAFE_FLAT_PATH1 = ("Parent", 59, "Child", "Feather") + _URLSAFE_EXAMPLE2 = b"agZzfmZpcmVyDwsSBEtpbmQiBVRoaW5nDA" + _URLSAFE_APP2 = "s~fire" + _URLSAFE_FLAT_PATH2 = ("Kind", "Thing") + _URLSAFE_EXAMPLE3 = b"ahhzfnNhbXBsZS1hcHAtbm8tbG9jYXRpb25yCgsSBFpvcnAYWAw" + _URLSAFE_APP3 = "sample-app-no-location" + _URLSAFE_FLAT_PATH3 = ("Zorp", 88) @staticmethod def _get_target_class(): @@ -53,26 +53,29 @@ def test_ctor_empty(self): def test_ctor_no_project(self): klass = self._get_target_class() - self.assertRaises(ValueError, klass, 'KIND') + self.assertRaises(ValueError, klass, "KIND") def test_ctor_w_explicit_project_empty_path(self): - _PROJECT = 'PROJECT' + _PROJECT = "PROJECT" self.assertRaises(ValueError, self._make_one, project=_PROJECT) def test_ctor_parent(self): - _PARENT_KIND = 'KIND1' + _PARENT_KIND = "KIND1" _PARENT_ID = 1234 - _PARENT_PROJECT = 'PROJECT-ALT' - _PARENT_NAMESPACE = 'NAMESPACE' - _CHILD_KIND = 'KIND2' + _PARENT_PROJECT = "PROJECT-ALT" + _PARENT_NAMESPACE = "NAMESPACE" + _CHILD_KIND = "KIND2" _CHILD_ID = 2345 _PATH = [ - {'kind': _PARENT_KIND, 'id': _PARENT_ID}, - {'kind': _CHILD_KIND, 'id': _CHILD_ID}, + {"kind": _PARENT_KIND, "id": _PARENT_ID}, + {"kind": _CHILD_KIND, "id": _CHILD_ID}, ] - parent_key = self._make_one(_PARENT_KIND, _PARENT_ID, - project=_PARENT_PROJECT, - namespace=_PARENT_NAMESPACE) + parent_key = self._make_one( + _PARENT_KIND, + _PARENT_ID, + project=_PARENT_PROJECT, + namespace=_PARENT_NAMESPACE, + ) key = self._make_one(_CHILD_KIND, _CHILD_ID, parent=parent_key) self.assertEqual(key.project, parent_key.project) self.assertEqual(key.namespace, parent_key.namespace) @@ -81,67 +84,80 @@ def test_ctor_parent(self): self.assertIs(key.parent, parent_key) def test_ctor_partial_parent(self): - parent_key = self._make_one('KIND', project=self._DEFAULT_PROJECT) + parent_key = self._make_one("KIND", project=self._DEFAULT_PROJECT) with self.assertRaises(ValueError): - self._make_one('KIND2', 1234, parent=parent_key) + self._make_one("KIND2", 1234, parent=parent_key) def test_ctor_parent_bad_type(self): with self.assertRaises(AttributeError): - self._make_one('KIND2', 1234, parent=('KIND1', 1234), - project=self._DEFAULT_PROJECT) + self._make_one( + "KIND2", 1234, parent=("KIND1", 1234), project=self._DEFAULT_PROJECT + ) def test_ctor_parent_bad_namespace(self): - parent_key = self._make_one('KIND', 1234, namespace='FOO', - project=self._DEFAULT_PROJECT) + parent_key = self._make_one( + "KIND", 1234, namespace="FOO", project=self._DEFAULT_PROJECT + ) with self.assertRaises(ValueError): - self._make_one('KIND2', 1234, namespace='BAR', parent=parent_key, - PROJECT=self._DEFAULT_PROJECT) + self._make_one( + "KIND2", + 1234, + namespace="BAR", + parent=parent_key, + PROJECT=self._DEFAULT_PROJECT, + ) def test_ctor_parent_bad_project(self): - parent_key = self._make_one('KIND', 1234, project='FOO') + parent_key = self._make_one("KIND", 1234, project="FOO") with self.assertRaises(ValueError): - self._make_one('KIND2', 1234, parent=parent_key, - project='BAR') + self._make_one("KIND2", 1234, parent=parent_key, project="BAR") def test_ctor_parent_empty_path(self): - parent_key = self._make_one('KIND', 1234, - project=self._DEFAULT_PROJECT) + parent_key = self._make_one("KIND", 1234, project=self._DEFAULT_PROJECT) with self.assertRaises(ValueError): self._make_one(parent=parent_key) def test_ctor_explicit(self): - _PROJECT = 'PROJECT-ALT' - _NAMESPACE = 'NAMESPACE' - _KIND = 'KIND' + _PROJECT = "PROJECT-ALT" + _NAMESPACE = "NAMESPACE" + _KIND = "KIND" _ID = 1234 - _PATH = [{'kind': _KIND, 'id': _ID}] - key = self._make_one(_KIND, _ID, namespace=_NAMESPACE, - project=_PROJECT) + _PATH = [{"kind": _KIND, "id": _ID}] + key = self._make_one(_KIND, _ID, namespace=_NAMESPACE, project=_PROJECT) self.assertEqual(key.project, _PROJECT) self.assertEqual(key.namespace, _NAMESPACE) self.assertEqual(key.kind, _KIND) self.assertEqual(key.path, _PATH) def test_ctor_bad_kind(self): - self.assertRaises(ValueError, self._make_one, object(), - project=self._DEFAULT_PROJECT) + self.assertRaises( + ValueError, self._make_one, object(), project=self._DEFAULT_PROJECT + ) def test_ctor_bad_id_or_name(self): - self.assertRaises(ValueError, self._make_one, 'KIND', object(), - project=self._DEFAULT_PROJECT) - self.assertRaises(ValueError, self._make_one, 'KIND', None, - project=self._DEFAULT_PROJECT) - self.assertRaises(ValueError, self._make_one, 'KIND', 10, 'KIND2', - None, project=self._DEFAULT_PROJECT) + self.assertRaises( + ValueError, self._make_one, "KIND", object(), project=self._DEFAULT_PROJECT + ) + self.assertRaises( + ValueError, self._make_one, "KIND", None, project=self._DEFAULT_PROJECT + ) + self.assertRaises( + ValueError, + self._make_one, + "KIND", + 10, + "KIND2", + None, + project=self._DEFAULT_PROJECT, + ) def test__clone(self): - _PROJECT = 'PROJECT-ALT' - _NAMESPACE = 'NAMESPACE' - _KIND = 'KIND' + _PROJECT = "PROJECT-ALT" + _NAMESPACE = "NAMESPACE" + _KIND = "KIND" _ID = 1234 - _PATH = [{'kind': _KIND, 'id': _ID}] - key = self._make_one(_KIND, _ID, namespace=_NAMESPACE, - project=_PROJECT) + _PATH = [{"kind": _KIND, "id": _ID}] + key = self._make_one(_KIND, _ID, namespace=_NAMESPACE, project=_PROJECT) clone = key._clone() self.assertEqual(clone.project, _PROJECT) self.assertEqual(clone.namespace, _NAMESPACE) @@ -149,16 +165,15 @@ def test__clone(self): self.assertEqual(clone.path, _PATH) def test__clone_with_parent(self): - _PROJECT = 'PROJECT-ALT' - _NAMESPACE = 'NAMESPACE' - _KIND1 = 'PARENT' - _KIND2 = 'KIND' + _PROJECT = "PROJECT-ALT" + _NAMESPACE = "NAMESPACE" + _KIND1 = "PARENT" + _KIND2 = "KIND" _ID1 = 1234 _ID2 = 2345 - _PATH = [{'kind': _KIND1, 'id': _ID1}, {'kind': _KIND2, 'id': _ID2}] + _PATH = [{"kind": _KIND1, "id": _ID1}, {"kind": _KIND2, "id": _ID2}] - parent = self._make_one(_KIND1, _ID1, namespace=_NAMESPACE, - project=_PROJECT) + parent = self._make_one(_KIND1, _ID1, namespace=_NAMESPACE, project=_PROJECT) key = self._make_one(_KIND2, _ID2, parent=parent) self.assertIs(key.parent, parent) clone = key._clone() @@ -168,24 +183,24 @@ def test__clone_with_parent(self): self.assertEqual(clone.path, _PATH) def test___eq_____ne___w_non_key(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' - _NAME = 'one' + _PROJECT = "PROJECT" + _KIND = "KIND" + _NAME = "one" key = self._make_one(_KIND, _NAME, project=_PROJECT) self.assertFalse(key == object()) self.assertTrue(key != object()) def test___eq_____ne___two_incomplete_keys_same_kind(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" key1 = self._make_one(_KIND, project=_PROJECT) key2 = self._make_one(_KIND, project=_PROJECT) self.assertFalse(key1 == key2) self.assertTrue(key1 != key2) def test___eq_____ne___incomplete_key_w_complete_key_same_kind(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" _ID = 1234 key1 = self._make_one(_KIND, project=_PROJECT) key2 = self._make_one(_KIND, _ID, project=_PROJECT) @@ -193,8 +208,8 @@ def test___eq_____ne___incomplete_key_w_complete_key_same_kind(self): self.assertTrue(key1 != key2) def test___eq_____ne___complete_key_w_incomplete_key_same_kind(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" _ID = 1234 key1 = self._make_one(_KIND, _ID, project=_PROJECT) key2 = self._make_one(_KIND, project=_PROJECT) @@ -202,8 +217,8 @@ def test___eq_____ne___complete_key_w_incomplete_key_same_kind(self): self.assertTrue(key1 != key2) def test___eq_____ne___same_kind_different_ids(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" _ID1 = 1234 _ID2 = 2345 key1 = self._make_one(_KIND, _ID1, project=_PROJECT) @@ -212,8 +227,8 @@ def test___eq_____ne___same_kind_different_ids(self): self.assertTrue(key1 != key2) def test___eq_____ne___same_kind_and_id(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" _ID = 1234 key1 = self._make_one(_KIND, _ID, project=_PROJECT) key2 = self._make_one(_KIND, _ID, project=_PROJECT) @@ -221,9 +236,9 @@ def test___eq_____ne___same_kind_and_id(self): self.assertFalse(key1 != key2) def test___eq_____ne___same_kind_and_id_different_project(self): - _PROJECT1 = 'PROJECT1' - _PROJECT2 = 'PROJECT2' - _KIND = 'KIND' + _PROJECT1 = "PROJECT1" + _PROJECT2 = "PROJECT2" + _KIND = "KIND" _ID = 1234 key1 = self._make_one(_KIND, _ID, project=_PROJECT1) key2 = self._make_one(_KIND, _ID, project=_PROJECT2) @@ -231,87 +246,82 @@ def test___eq_____ne___same_kind_and_id_different_project(self): self.assertTrue(key1 != key2) def test___eq_____ne___same_kind_and_id_different_namespace(self): - _PROJECT = 'PROJECT' - _NAMESPACE1 = 'NAMESPACE1' - _NAMESPACE2 = 'NAMESPACE2' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _NAMESPACE1 = "NAMESPACE1" + _NAMESPACE2 = "NAMESPACE2" + _KIND = "KIND" _ID = 1234 - key1 = self._make_one(_KIND, _ID, project=_PROJECT, - namespace=_NAMESPACE1) - key2 = self._make_one(_KIND, _ID, project=_PROJECT, - namespace=_NAMESPACE2) + key1 = self._make_one(_KIND, _ID, project=_PROJECT, namespace=_NAMESPACE1) + key2 = self._make_one(_KIND, _ID, project=_PROJECT, namespace=_NAMESPACE2) self.assertFalse(key1 == key2) self.assertTrue(key1 != key2) def test___eq_____ne___same_kind_different_names(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' - _NAME1 = 'one' - _NAME2 = 'two' + _PROJECT = "PROJECT" + _KIND = "KIND" + _NAME1 = "one" + _NAME2 = "two" key1 = self._make_one(_KIND, _NAME1, project=_PROJECT) key2 = self._make_one(_KIND, _NAME2, project=_PROJECT) self.assertFalse(key1 == key2) self.assertTrue(key1 != key2) def test___eq_____ne___same_kind_and_name(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' - _NAME = 'one' + _PROJECT = "PROJECT" + _KIND = "KIND" + _NAME = "one" key1 = self._make_one(_KIND, _NAME, project=_PROJECT) key2 = self._make_one(_KIND, _NAME, project=_PROJECT) self.assertTrue(key1 == key2) self.assertFalse(key1 != key2) def test___eq_____ne___same_kind_and_name_different_project(self): - _PROJECT1 = 'PROJECT1' - _PROJECT2 = 'PROJECT2' - _KIND = 'KIND' - _NAME = 'one' + _PROJECT1 = "PROJECT1" + _PROJECT2 = "PROJECT2" + _KIND = "KIND" + _NAME = "one" key1 = self._make_one(_KIND, _NAME, project=_PROJECT1) key2 = self._make_one(_KIND, _NAME, project=_PROJECT2) self.assertFalse(key1 == key2) self.assertTrue(key1 != key2) def test___eq_____ne___same_kind_and_name_different_namespace(self): - _PROJECT = 'PROJECT' - _NAMESPACE1 = 'NAMESPACE1' - _NAMESPACE2 = 'NAMESPACE2' - _KIND = 'KIND' - _NAME = 'one' - key1 = self._make_one(_KIND, _NAME, project=_PROJECT, - namespace=_NAMESPACE1) - key2 = self._make_one(_KIND, _NAME, project=_PROJECT, - namespace=_NAMESPACE2) + _PROJECT = "PROJECT" + _NAMESPACE1 = "NAMESPACE1" + _NAMESPACE2 = "NAMESPACE2" + _KIND = "KIND" + _NAME = "one" + key1 = self._make_one(_KIND, _NAME, project=_PROJECT, namespace=_NAMESPACE1) + key2 = self._make_one(_KIND, _NAME, project=_PROJECT, namespace=_NAMESPACE2) self.assertFalse(key1 == key2) self.assertTrue(key1 != key2) def test___hash___incomplete(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" key = self._make_one(_KIND, project=_PROJECT) - self.assertNotEqual(hash(key), - hash(_KIND) + hash(_PROJECT) + hash(None)) + self.assertNotEqual(hash(key), hash(_KIND) + hash(_PROJECT) + hash(None)) def test___hash___completed_w_id(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' + _PROJECT = "PROJECT" + _KIND = "KIND" _ID = 1234 key = self._make_one(_KIND, _ID, project=_PROJECT) - self.assertNotEqual(hash(key), - hash(_KIND) + hash(_ID) + - hash(_PROJECT) + hash(None)) + self.assertNotEqual( + hash(key), hash(_KIND) + hash(_ID) + hash(_PROJECT) + hash(None) + ) def test___hash___completed_w_name(self): - _PROJECT = 'PROJECT' - _KIND = 'KIND' - _NAME = 'NAME' + _PROJECT = "PROJECT" + _KIND = "KIND" + _NAME = "NAME" key = self._make_one(_KIND, _NAME, project=_PROJECT) - self.assertNotEqual(hash(key), - hash(_KIND) + hash(_NAME) + - hash(_PROJECT) + hash(None)) + self.assertNotEqual( + hash(key), hash(_KIND) + hash(_NAME) + hash(_PROJECT) + hash(None) + ) def test_completed_key_on_partial_w_id(self): - key = self._make_one('KIND', project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", project=self._DEFAULT_PROJECT) _ID = 1234 new_key = key.completed_key(_ID) self.assertIsNot(key, new_key) @@ -319,25 +329,25 @@ def test_completed_key_on_partial_w_id(self): self.assertIsNone(new_key.name) def test_completed_key_on_partial_w_name(self): - key = self._make_one('KIND', project=self._DEFAULT_PROJECT) - _NAME = 'NAME' + key = self._make_one("KIND", project=self._DEFAULT_PROJECT) + _NAME = "NAME" new_key = key.completed_key(_NAME) self.assertIsNot(key, new_key) self.assertIsNone(new_key.id) self.assertEqual(new_key.name, _NAME) def test_completed_key_on_partial_w_invalid(self): - key = self._make_one('KIND', project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", project=self._DEFAULT_PROJECT) self.assertRaises(ValueError, key.completed_key, object()) def test_completed_key_on_complete(self): - key = self._make_one('KIND', 1234, project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", 1234, project=self._DEFAULT_PROJECT) self.assertRaises(ValueError, key.completed_key, 5678) def test_to_protobuf_defaults(self): from google.cloud.datastore_v1.proto import entity_pb2 - _KIND = 'KIND' + _KIND = "KIND" key = self._make_one(_KIND, project=self._DEFAULT_PROJECT) pb = key.to_protobuf() self.assertIsInstance(pb, entity_pb2.Key) @@ -345,36 +355,36 @@ def test_to_protobuf_defaults(self): # Check partition ID. self.assertEqual(pb.partition_id.project_id, self._DEFAULT_PROJECT) # Unset values are False-y. - self.assertEqual(pb.partition_id.namespace_id, '') + self.assertEqual(pb.partition_id.namespace_id, "") # Check the element PB matches the partial key and kind. elem, = list(pb.path) self.assertEqual(elem.kind, _KIND) # Unset values are False-y. - self.assertEqual(elem.name, '') + self.assertEqual(elem.name, "") # Unset values are False-y. self.assertEqual(elem.id, 0) def test_to_protobuf_w_explicit_project(self): - _PROJECT = 'PROJECT-ALT' - key = self._make_one('KIND', project=_PROJECT) + _PROJECT = "PROJECT-ALT" + key = self._make_one("KIND", project=_PROJECT) pb = key.to_protobuf() self.assertEqual(pb.partition_id.project_id, _PROJECT) def test_to_protobuf_w_explicit_namespace(self): - _NAMESPACE = 'NAMESPACE' - key = self._make_one('KIND', namespace=_NAMESPACE, - project=self._DEFAULT_PROJECT) + _NAMESPACE = "NAMESPACE" + key = self._make_one( + "KIND", namespace=_NAMESPACE, project=self._DEFAULT_PROJECT + ) pb = key.to_protobuf() self.assertEqual(pb.partition_id.namespace_id, _NAMESPACE) def test_to_protobuf_w_explicit_path(self): - _PARENT = 'PARENT' - _CHILD = 'CHILD' + _PARENT = "PARENT" + _CHILD = "CHILD" _ID = 1234 - _NAME = 'NAME' - key = self._make_one(_PARENT, _NAME, _CHILD, _ID, - project=self._DEFAULT_PROJECT) + _NAME = "NAME" + key = self._make_one(_PARENT, _NAME, _CHILD, _ID, project=self._DEFAULT_PROJECT) pb = key.to_protobuf() elems = list(pb.path) self.assertEqual(len(elems), 2) @@ -384,27 +394,26 @@ def test_to_protobuf_w_explicit_path(self): self.assertEqual(elems[1].id, _ID) def test_to_protobuf_w_no_kind(self): - key = self._make_one('KIND', project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", project=self._DEFAULT_PROJECT) # Force the 'kind' to be unset. Maybe `to_protobuf` should fail # on this? The backend certainly will. - key._path[-1].pop('kind') + key._path[-1].pop("kind") pb = key.to_protobuf() # Unset values are False-y. - self.assertEqual(pb.path[0].kind, '') + self.assertEqual(pb.path[0].kind, "") def test_to_legacy_urlsafe(self): key = self._make_one( *self._URLSAFE_FLAT_PATH1, project=self._URLSAFE_APP1, - namespace=self._URLSAFE_NAMESPACE1) + namespace=self._URLSAFE_NAMESPACE1 + ) # NOTE: ``key.project`` is somewhat "invalid" but that is OK. urlsafe = key.to_legacy_urlsafe() self.assertEqual(urlsafe, self._URLSAFE_EXAMPLE1) def test_to_legacy_urlsafe_strip_padding(self): - key = self._make_one( - *self._URLSAFE_FLAT_PATH2, - project=self._URLSAFE_APP2) + key = self._make_one(*self._URLSAFE_FLAT_PATH2, project=self._URLSAFE_APP2) # NOTE: ``key.project`` is somewhat "invalid" but that is OK. urlsafe = key.to_legacy_urlsafe() self.assertEqual(urlsafe, self._URLSAFE_EXAMPLE2) @@ -412,17 +421,15 @@ def test_to_legacy_urlsafe_strip_padding(self): self.assertNotEqual(len(self._URLSAFE_EXAMPLE2) % 4, 0) def test_to_legacy_urlsafe_with_location_prefix(self): - key = self._make_one( - *self._URLSAFE_FLAT_PATH3, - project=self._URLSAFE_APP3) - urlsafe = key.to_legacy_urlsafe(location_prefix='s~') + key = self._make_one(*self._URLSAFE_FLAT_PATH3, project=self._URLSAFE_APP3) + urlsafe = key.to_legacy_urlsafe(location_prefix="s~") self.assertEqual(urlsafe, self._URLSAFE_EXAMPLE3) def test_from_legacy_urlsafe(self): klass = self._get_target_class() key = klass.from_legacy_urlsafe(self._URLSAFE_EXAMPLE1) - self.assertEqual('s~' + key.project, self._URLSAFE_APP1) + self.assertEqual("s~" + key.project, self._URLSAFE_APP1) self.assertEqual(key.namespace, self._URLSAFE_NAMESPACE1) self.assertEqual(key.flat_path, self._URLSAFE_FLAT_PATH1) # Also make sure we didn't accidentally set the parent. @@ -436,7 +443,7 @@ def test_from_legacy_urlsafe_needs_padding(self): self.assertNotEqual(len(self._URLSAFE_EXAMPLE2) % 4, 0) key = klass.from_legacy_urlsafe(self._URLSAFE_EXAMPLE2) - self.assertEqual('s~' + key.project, self._URLSAFE_APP2) + self.assertEqual("s~" + key.project, self._URLSAFE_APP2) self.assertIsNone(key.namespace) self.assertEqual(key.flat_path, self._URLSAFE_FLAT_PATH2) @@ -450,60 +457,61 @@ def test_from_legacy_urlsafe_with_location_prefix(self): self.assertEqual(key.flat_path, self._URLSAFE_FLAT_PATH3) def test_is_partial_no_name_or_id(self): - key = self._make_one('KIND', project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", project=self._DEFAULT_PROJECT) self.assertTrue(key.is_partial) def test_is_partial_w_id(self): _ID = 1234 - key = self._make_one('KIND', _ID, project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", _ID, project=self._DEFAULT_PROJECT) self.assertFalse(key.is_partial) def test_is_partial_w_name(self): - _NAME = 'NAME' - key = self._make_one('KIND', _NAME, project=self._DEFAULT_PROJECT) + _NAME = "NAME" + key = self._make_one("KIND", _NAME, project=self._DEFAULT_PROJECT) self.assertFalse(key.is_partial) def test_id_or_name_no_name_or_id(self): - key = self._make_one('KIND', project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", project=self._DEFAULT_PROJECT) self.assertIsNone(key.id_or_name) def test_id_or_name_no_name_or_id_child(self): - key = self._make_one('KIND1', 1234, 'KIND2', - project=self._DEFAULT_PROJECT) + key = self._make_one("KIND1", 1234, "KIND2", project=self._DEFAULT_PROJECT) self.assertIsNone(key.id_or_name) def test_id_or_name_w_id_only(self): _ID = 1234 - key = self._make_one('KIND', _ID, project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", _ID, project=self._DEFAULT_PROJECT) self.assertEqual(key.id_or_name, _ID) def test_id_or_name_w_name_only(self): - _NAME = 'NAME' - key = self._make_one('KIND', _NAME, project=self._DEFAULT_PROJECT) + _NAME = "NAME" + key = self._make_one("KIND", _NAME, project=self._DEFAULT_PROJECT) self.assertEqual(key.id_or_name, _NAME) def test_parent_default(self): - key = self._make_one('KIND', project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", project=self._DEFAULT_PROJECT) self.assertIsNone(key.parent) def test_parent_explicit_top_level(self): - key = self._make_one('KIND', 1234, project=self._DEFAULT_PROJECT) + key = self._make_one("KIND", 1234, project=self._DEFAULT_PROJECT) self.assertIsNone(key.parent) def test_parent_explicit_nested(self): - _PARENT_KIND = 'KIND1' + _PARENT_KIND = "KIND1" _PARENT_ID = 1234 - _PARENT_PATH = [{'kind': _PARENT_KIND, 'id': _PARENT_ID}] - key = self._make_one(_PARENT_KIND, _PARENT_ID, 'KIND2', - project=self._DEFAULT_PROJECT) + _PARENT_PATH = [{"kind": _PARENT_KIND, "id": _PARENT_ID}] + key = self._make_one( + _PARENT_KIND, _PARENT_ID, "KIND2", project=self._DEFAULT_PROJECT + ) self.assertEqual(key.parent.path, _PARENT_PATH) def test_parent_multiple_calls(self): - _PARENT_KIND = 'KIND1' + _PARENT_KIND = "KIND1" _PARENT_ID = 1234 - _PARENT_PATH = [{'kind': _PARENT_KIND, 'id': _PARENT_ID}] - key = self._make_one(_PARENT_KIND, _PARENT_ID, 'KIND2', - project=self._DEFAULT_PROJECT) + _PARENT_PATH = [{"kind": _PARENT_KIND, "id": _PARENT_ID}] + key = self._make_one( + _PARENT_KIND, _PARENT_ID, "KIND2", project=self._DEFAULT_PROJECT + ) parent = key.parent self.assertEqual(parent.path, _PARENT_PATH) new_parent = key.parent @@ -512,7 +520,7 @@ def test_parent_multiple_calls(self): class Test__clean_app(unittest.TestCase): - PROJECT = 'my-prahjekt' + PROJECT = "my-prahjekt" @staticmethod def _call_fut(app_str): @@ -525,20 +533,19 @@ def test_already_clean(self): self.assertEqual(self._call_fut(app_str), self.PROJECT) def test_standard(self): - app_str = 's~' + self.PROJECT + app_str = "s~" + self.PROJECT self.assertEqual(self._call_fut(app_str), self.PROJECT) def test_european(self): - app_str = 'e~' + self.PROJECT + app_str = "e~" + self.PROJECT self.assertEqual(self._call_fut(app_str), self.PROJECT) def test_dev_server(self): - app_str = 'dev~' + self.PROJECT + app_str = "dev~" + self.PROJECT self.assertEqual(self._call_fut(app_str), self.PROJECT) class Test__get_empty(unittest.TestCase): - @staticmethod def _call_fut(value, empty_value): from google.cloud.datastore.key import _get_empty @@ -546,24 +553,18 @@ def _call_fut(value, empty_value): return _get_empty(value, empty_value) def test_unset(self): - for empty_value in (u'', 0, 0.0, []): + for empty_value in (u"", 0, 0.0, []): ret_val = self._call_fut(empty_value, empty_value) self.assertIsNone(ret_val) def test_actually_set(self): - value_pairs = ( - (u'hello', u''), - (10, 0), - (3.14, 0.0), - (['stuff', 'here'], []), - ) + value_pairs = ((u"hello", u""), (10, 0), (3.14, 0.0), (["stuff", "here"], [])) for value, empty_value in value_pairs: ret_val = self._call_fut(value, empty_value) self.assertIs(ret_val, value) class Test__check_database_id(unittest.TestCase): - @staticmethod def _call_fut(database_id): from google.cloud.datastore.key import _check_database_id @@ -571,17 +572,16 @@ def _call_fut(database_id): return _check_database_id(database_id) def test_empty_value(self): - ret_val = self._call_fut(u'') + ret_val = self._call_fut(u"") # Really we are just happy there was no exception. self.assertIsNone(ret_val) def test_failure(self): with self.assertRaises(ValueError): - self._call_fut(u'some-database-id') + self._call_fut(u"some-database-id") class Test__add_id_or_name(unittest.TestCase): - @staticmethod def _call_fut(flat_path, element_pb, empty_allowed): from google.cloud.datastore.key import _add_id_or_name @@ -602,7 +602,7 @@ def test_add_id(self): def test_add_name(self): flat_path = [] - name = 'moon-shadow' + name = "moon-shadow" element_pb = _make_element_pb(name=name) ret_val = self._call_fut(flat_path, element_pb, False) @@ -613,7 +613,7 @@ def test_add_name(self): self.assertEqual(flat_path, [name, name]) def test_both_present(self): - element_pb = _make_element_pb(id=17, name='seventeen') + element_pb = _make_element_pb(id=17, name="seventeen") flat_path = [] with self.assertRaises(ValueError): self._call_fut(flat_path, element_pb, False) @@ -639,7 +639,6 @@ def test_both_empty_allowed(self): class Test__get_flat_path(unittest.TestCase): - @staticmethod def _call_fut(path_pb): from google.cloud.datastore.key import _get_flat_path @@ -647,20 +646,20 @@ def _call_fut(path_pb): return _get_flat_path(path_pb) def test_one_pair(self): - kind = 'Widget' - name = 'Scooter' + kind = "Widget" + name = "Scooter" element_pb = _make_element_pb(type=kind, name=name) path_pb = _make_path_pb(element_pb) flat_path = self._call_fut(path_pb) self.assertEqual(flat_path, (kind, name)) def test_two_pairs(self): - kind1 = 'parent' + kind1 = "parent" id1 = 59 element_pb1 = _make_element_pb(type=kind1, id=id1) - kind2 = 'child' - name2 = 'naem' + kind2 = "child" + name2 = "naem" element_pb2 = _make_element_pb(type=kind2, name=name2) path_pb = _make_path_pb(element_pb1, element_pb2) @@ -668,15 +667,15 @@ def test_two_pairs(self): self.assertEqual(flat_path, (kind1, id1, kind2, name2)) def test_partial_key(self): - kind1 = 'grandparent' - name1 = 'cats' + kind1 = "grandparent" + name1 = "cats" element_pb1 = _make_element_pb(type=kind1, name=name1) - kind2 = 'parent' + kind2 = "parent" id2 = 1337 element_pb2 = _make_element_pb(type=kind2, id=id2) - kind3 = 'child' + kind3 = "child" element_pb3 = _make_element_pb(type=kind3) path_pb = _make_path_pb(element_pb1, element_pb2, element_pb3) @@ -685,7 +684,6 @@ def test_partial_key(self): class Test__to_legacy_path(unittest.TestCase): - @staticmethod def _call_fut(dict_path): from google.cloud.datastore.key import _to_legacy_path @@ -693,9 +691,9 @@ def _call_fut(dict_path): return _to_legacy_path(dict_path) def test_one_pair(self): - kind = 'Widget' - name = 'Scooter' - dict_path = [{'kind': kind, 'name': name}] + kind = "Widget" + name = "Scooter" + dict_path = [{"kind": kind, "name": name}] path_pb = self._call_fut(dict_path) element_pb = _make_element_pb(type=kind, name=name) @@ -703,14 +701,13 @@ def test_one_pair(self): self.assertEqual(path_pb, expected_pb) def test_two_pairs(self): - kind1 = 'parent' + kind1 = "parent" id1 = 59 - kind2 = 'child' - name2 = 'naem' + kind2 = "child" + name2 = "naem" - dict_path = [ - {'kind': kind1, 'id': id1}, {'kind': kind2, 'name': name2}] + dict_path = [{"kind": kind1, "id": id1}, {"kind": kind2, "name": name2}] path_pb = self._call_fut(dict_path) element_pb1 = _make_element_pb(type=kind1, id=id1) @@ -719,18 +716,18 @@ def test_two_pairs(self): self.assertEqual(path_pb, expected_pb) def test_partial_key(self): - kind1 = 'grandparent' - name1 = 'cats' + kind1 = "grandparent" + name1 = "cats" - kind2 = 'parent' + kind2 = "parent" id2 = 1337 - kind3 = 'child' + kind3 = "child" dict_path = [ - {'kind': kind1, 'name': name1}, - {'kind': kind2, 'id': id2}, - {'kind': kind3}, + {"kind": kind1, "name": name1}, + {"kind": kind2, "id": id2}, + {"kind": kind3}, ] path_pb = self._call_fut(dict_path) diff --git a/datastore/tests/unit/test_query.py b/datastore/tests/unit/test_query.py index 8689bbb1e745..01a005f4eb78 100644 --- a/datastore/tests/unit/test_query.py +++ b/datastore/tests/unit/test_query.py @@ -19,7 +19,7 @@ class TestQuery(unittest.TestCase): - _PROJECT = 'PROJECT' + _PROJECT = "PROJECT" @staticmethod def _get_target_class(): @@ -49,15 +49,15 @@ def test_ctor_defaults(self): def test_ctor_explicit(self): from google.cloud.datastore.key import Key - _PROJECT = 'OTHER_PROJECT' - _KIND = 'KIND' - _NAMESPACE = 'OTHER_NAMESPACE' + _PROJECT = "OTHER_PROJECT" + _KIND = "KIND" + _NAMESPACE = "OTHER_NAMESPACE" client = self._make_client() - ancestor = Key('ANCESTOR', 123, project=_PROJECT) - FILTERS = [('foo', '=', 'Qux'), ('bar', '<', 17)] - PROJECTION = ['foo', 'bar', 'baz'] - ORDER = ['foo', 'bar'] - DISTINCT_ON = ['foo'] + ancestor = Key("ANCESTOR", 123, project=_PROJECT) + FILTERS = [("foo", "=", "Qux"), ("bar", "<", 17)] + PROJECTION = ["foo", "bar", "baz"] + ORDER = ["foo", "bar"] + DISTINCT_ON = ["foo"] query = self._make_one( client, kind=_KIND, @@ -81,23 +81,27 @@ def test_ctor_explicit(self): def test_ctor_bad_projection(self): BAD_PROJECTION = object() - self.assertRaises(TypeError, self._make_one, self._make_client(), - projection=BAD_PROJECTION) + self.assertRaises( + TypeError, self._make_one, self._make_client(), projection=BAD_PROJECTION + ) def test_ctor_bad_order(self): BAD_ORDER = object() - self.assertRaises(TypeError, self._make_one, self._make_client(), - order=BAD_ORDER) + self.assertRaises( + TypeError, self._make_one, self._make_client(), order=BAD_ORDER + ) def test_ctor_bad_distinct_on(self): BAD_DISTINCT_ON = object() - self.assertRaises(TypeError, self._make_one, self._make_client(), - distinct_on=BAD_DISTINCT_ON) + self.assertRaises( + TypeError, self._make_one, self._make_client(), distinct_on=BAD_DISTINCT_ON + ) def test_ctor_bad_filters(self): - FILTERS_CANT_UNPACK = [('one', 'two')] - self.assertRaises(ValueError, self._make_one, self._make_client(), - filters=FILTERS_CANT_UNPACK) + FILTERS_CANT_UNPACK = [("one", "two")] + self.assertRaises( + ValueError, self._make_one, self._make_client(), filters=FILTERS_CANT_UNPACK + ) def test_namespace_setter_w_non_string(self): query = self._make_one(self._make_client()) @@ -108,7 +112,7 @@ def _assign(val): self.assertRaises(ValueError, _assign, object()) def test_namespace_setter(self): - _NAMESPACE = 'OTHER_NAMESPACE' + _NAMESPACE = "OTHER_NAMESPACE" query = self._make_one(self._make_client()) query.namespace = _NAMESPACE self.assertEqual(query.namespace, _NAMESPACE) @@ -122,14 +126,14 @@ def _assign(val): self.assertRaises(TypeError, _assign, object()) def test_kind_setter_wo_existing(self): - _KIND = 'KIND' + _KIND = "KIND" query = self._make_one(self._make_client()) query.kind = _KIND self.assertEqual(query.kind, _KIND) def test_kind_setter_w_existing(self): - _KIND_BEFORE = 'KIND_BEFORE' - _KIND_AFTER = 'KIND_AFTER' + _KIND_BEFORE = "KIND_BEFORE" + _KIND_AFTER = "KIND_AFTER" query = self._make_one(self._make_client(), kind=_KIND_BEFORE) self.assertEqual(query.kind, _KIND_BEFORE) query.kind = _KIND_AFTER @@ -143,85 +147,84 @@ def _assign(val): query.ancestor = val self.assertRaises(TypeError, _assign, object()) - self.assertRaises(TypeError, _assign, ['KIND', 'NAME']) + self.assertRaises(TypeError, _assign, ["KIND", "NAME"]) def test_ancestor_setter_w_key(self): from google.cloud.datastore.key import Key - _NAME = u'NAME' - key = Key('KIND', 123, project=self._PROJECT) + _NAME = u"NAME" + key = Key("KIND", 123, project=self._PROJECT) query = self._make_one(self._make_client()) - query.add_filter('name', '=', _NAME) + query.add_filter("name", "=", _NAME) query.ancestor = key self.assertEqual(query.ancestor.path, key.path) def test_ancestor_deleter_w_key(self): from google.cloud.datastore.key import Key - key = Key('KIND', 123, project=self._PROJECT) + key = Key("KIND", 123, project=self._PROJECT) query = self._make_one(client=self._make_client(), ancestor=key) del query.ancestor self.assertIsNone(query.ancestor) def test_add_filter_setter_w_unknown_operator(self): query = self._make_one(self._make_client()) - self.assertRaises(ValueError, query.add_filter, - 'firstname', '~~', 'John') + self.assertRaises(ValueError, query.add_filter, "firstname", "~~", "John") def test_add_filter_w_known_operator(self): query = self._make_one(self._make_client()) - query.add_filter('firstname', '=', u'John') - self.assertEqual(query.filters, [('firstname', '=', u'John')]) + query.add_filter("firstname", "=", u"John") + self.assertEqual(query.filters, [("firstname", "=", u"John")]) def test_add_filter_w_all_operators(self): query = self._make_one(self._make_client()) - query.add_filter('leq_prop', '<=', u'val1') - query.add_filter('geq_prop', '>=', u'val2') - query.add_filter('lt_prop', '<', u'val3') - query.add_filter('gt_prop', '>', u'val4') - query.add_filter('eq_prop', '=', u'val5') + query.add_filter("leq_prop", "<=", u"val1") + query.add_filter("geq_prop", ">=", u"val2") + query.add_filter("lt_prop", "<", u"val3") + query.add_filter("gt_prop", ">", u"val4") + query.add_filter("eq_prop", "=", u"val5") self.assertEqual(len(query.filters), 5) - self.assertEqual(query.filters[0], ('leq_prop', '<=', u'val1')) - self.assertEqual(query.filters[1], ('geq_prop', '>=', u'val2')) - self.assertEqual(query.filters[2], ('lt_prop', '<', u'val3')) - self.assertEqual(query.filters[3], ('gt_prop', '>', u'val4')) - self.assertEqual(query.filters[4], ('eq_prop', '=', u'val5')) + self.assertEqual(query.filters[0], ("leq_prop", "<=", u"val1")) + self.assertEqual(query.filters[1], ("geq_prop", ">=", u"val2")) + self.assertEqual(query.filters[2], ("lt_prop", "<", u"val3")) + self.assertEqual(query.filters[3], ("gt_prop", ">", u"val4")) + self.assertEqual(query.filters[4], ("eq_prop", "=", u"val5")) def test_add_filter_w_known_operator_and_entity(self): from google.cloud.datastore.entity import Entity query = self._make_one(self._make_client()) other = Entity() - other['firstname'] = u'John' - other['lastname'] = u'Smith' - query.add_filter('other', '=', other) - self.assertEqual(query.filters, [('other', '=', other)]) + other["firstname"] = u"John" + other["lastname"] = u"Smith" + query.add_filter("other", "=", other) + self.assertEqual(query.filters, [("other", "=", other)]) def test_add_filter_w_whitespace_property_name(self): query = self._make_one(self._make_client()) - PROPERTY_NAME = ' property with lots of space ' - query.add_filter(PROPERTY_NAME, '=', u'John') - self.assertEqual(query.filters, [(PROPERTY_NAME, '=', u'John')]) + PROPERTY_NAME = " property with lots of space " + query.add_filter(PROPERTY_NAME, "=", u"John") + self.assertEqual(query.filters, [(PROPERTY_NAME, "=", u"John")]) def test_add_filter___key__valid_key(self): from google.cloud.datastore.key import Key query = self._make_one(self._make_client()) - key = Key('Foo', project=self._PROJECT) - query.add_filter('__key__', '=', key) - self.assertEqual(query.filters, [('__key__', '=', key)]) + key = Key("Foo", project=self._PROJECT) + query.add_filter("__key__", "=", key) + self.assertEqual(query.filters, [("__key__", "=", key)]) def test_filter___key__not_equal_operator(self): from google.cloud.datastore.key import Key - key = Key('Foo', project=self._PROJECT) + key = Key("Foo", project=self._PROJECT) query = self._make_one(self._make_client()) - query.add_filter('__key__', '<', key) - self.assertEqual(query.filters, [('__key__', '<', key)]) + query.add_filter("__key__", "<", key) + self.assertEqual(query.filters, [("__key__", "<", key)]) def test_filter___key__invalid_value(self): query = self._make_one(self._make_client()) - self.assertRaises(ValueError, query.add_filter, '__key__', '=', None) + self.assertRaises(ValueError, query.add_filter, "__key__", "=", None) def test_projection_setter_empty(self): query = self._make_one(self._make_client()) @@ -230,17 +233,17 @@ def test_projection_setter_empty(self): def test_projection_setter_string(self): query = self._make_one(self._make_client()) - query.projection = 'field1' - self.assertEqual(query.projection, ['field1']) + query.projection = "field1" + self.assertEqual(query.projection, ["field1"]) def test_projection_setter_non_empty(self): query = self._make_one(self._make_client()) - query.projection = ['field1', 'field2'] - self.assertEqual(query.projection, ['field1', 'field2']) + query.projection = ["field1", "field2"] + self.assertEqual(query.projection, ["field1", "field2"]) def test_projection_setter_multiple_calls(self): - _PROJECTION1 = ['field1', 'field2'] - _PROJECTION2 = ['field3'] + _PROJECTION1 = ["field1", "field2"] + _PROJECTION2 = ["field3"] query = self._make_one(self._make_client()) query.projection = _PROJECTION1 self.assertEqual(query.projection, _PROJECTION1) @@ -250,7 +253,7 @@ def test_projection_setter_multiple_calls(self): def test_keys_only(self): query = self._make_one(self._make_client()) query.keys_only() - self.assertEqual(query.projection, ['__key__']) + self.assertEqual(query.projection, ["__key__"]) def test_key_filter_defaults(self): from google.cloud.datastore.key import Key @@ -258,9 +261,9 @@ def test_key_filter_defaults(self): client = self._make_client() query = self._make_one(client) self.assertEqual(query.filters, []) - key = Key('Kind', 1234, project='project') + key = Key("Kind", 1234, project="project") query.key_filter(key) - self.assertEqual(query.filters, [('__key__', '=', key)]) + self.assertEqual(query.filters, [("__key__", "=", key)]) def test_key_filter_explicit(self): from google.cloud.datastore.key import Key @@ -268,48 +271,48 @@ def test_key_filter_explicit(self): client = self._make_client() query = self._make_one(client) self.assertEqual(query.filters, []) - key = Key('Kind', 1234, project='project') - query.key_filter(key, operator='>') - self.assertEqual(query.filters, [('__key__', '>', key)]) + key = Key("Kind", 1234, project="project") + query.key_filter(key, operator=">") + self.assertEqual(query.filters, [("__key__", ">", key)]) def test_order_setter_empty(self): - query = self._make_one(self._make_client(), order=['foo', '-bar']) + query = self._make_one(self._make_client(), order=["foo", "-bar"]) query.order = [] self.assertEqual(query.order, []) def test_order_setter_string(self): query = self._make_one(self._make_client()) - query.order = 'field' - self.assertEqual(query.order, ['field']) + query.order = "field" + self.assertEqual(query.order, ["field"]) def test_order_setter_single_item_list_desc(self): query = self._make_one(self._make_client()) - query.order = ['-field'] - self.assertEqual(query.order, ['-field']) + query.order = ["-field"] + self.assertEqual(query.order, ["-field"]) def test_order_setter_multiple(self): query = self._make_one(self._make_client()) - query.order = ['foo', '-bar'] - self.assertEqual(query.order, ['foo', '-bar']) + query.order = ["foo", "-bar"] + self.assertEqual(query.order, ["foo", "-bar"]) def test_distinct_on_setter_empty(self): - query = self._make_one(self._make_client(), distinct_on=['foo', 'bar']) + query = self._make_one(self._make_client(), distinct_on=["foo", "bar"]) query.distinct_on = [] self.assertEqual(query.distinct_on, []) def test_distinct_on_setter_string(self): query = self._make_one(self._make_client()) - query.distinct_on = 'field1' - self.assertEqual(query.distinct_on, ['field1']) + query.distinct_on = "field1" + self.assertEqual(query.distinct_on, ["field1"]) def test_distinct_on_setter_non_empty(self): query = self._make_one(self._make_client()) - query.distinct_on = ['field1', 'field2'] - self.assertEqual(query.distinct_on, ['field1', 'field2']) + query.distinct_on = ["field1", "field2"] + self.assertEqual(query.distinct_on, ["field1", "field2"]) def test_distinct_on_multiple_calls(self): - _DISTINCT_ON1 = ['field1', 'field2'] - _DISTINCT_ON2 = ['field3'] + _DISTINCT_ON1 = ["field1", "field2"] + _DISTINCT_ON2 = ["field3"] query = self._make_one(self._make_client()) query.distinct_on = _DISTINCT_ON1 self.assertEqual(query.distinct_on, _DISTINCT_ON1) @@ -344,7 +347,6 @@ def test_fetch_w_explicit_client(self): class TestIterator(unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.datastore.query import Iterator @@ -363,7 +365,7 @@ def test_constructor_defaults(self): self.assertIs(iterator.client, client) self.assertIsNone(iterator.max_results) self.assertEqual(iterator.page_number, 0) - self.assertIsNone(iterator.next_page_token,) + self.assertIsNone(iterator.next_page_token) self.assertEqual(iterator.num_results, 0) self.assertIs(iterator._query, query) self.assertIsNone(iterator._offset) @@ -375,11 +377,16 @@ def test_constructor_explicit(self): client = object() limit = 43 offset = 9 - start_cursor = b'8290\xff' - end_cursor = b'so20rc\ta' + start_cursor = b"8290\xff" + end_cursor = b"so20rc\ta" iterator = self._make_one( - query, client, limit=limit, offset=offset, - start_cursor=start_cursor, end_cursor=end_cursor) + query, + client, + limit=limit, + offset=offset, + start_cursor=start_cursor, + end_cursor=end_cursor, + ) self.assertFalse(iterator._started) self.assertIs(iterator.client, client) @@ -414,26 +421,19 @@ def test__build_protobuf_all_values_except_offset(self): client = _Client(None) query = Query(client) limit = 15 - start_bytes = b'i\xb7\x1d' - start_cursor = 'abcd' - end_bytes = b'\xc3\x1c\xb3' - end_cursor = 'wxyz' + start_bytes = b"i\xb7\x1d" + start_cursor = "abcd" + end_bytes = b"\xc3\x1c\xb3" + end_cursor = "wxyz" iterator = self._make_one( - query, - client, - limit=limit, - start_cursor=start_cursor, - end_cursor=end_cursor + query, client, limit=limit, start_cursor=start_cursor, end_cursor=end_cursor ) self.assertEqual(iterator.max_results, limit) iterator.num_results = 4 iterator._skipped_results = 1 pb = iterator._build_protobuf() - expected_pb = query_pb2.Query( - start_cursor=start_bytes, - end_cursor=end_bytes, - ) + expected_pb = query_pb2.Query(start_cursor=start_bytes, end_cursor=end_bytes) expected_pb.limit.value = limit - iterator.num_results self.assertEqual(pb, expected_pb) @@ -448,38 +448,29 @@ def test__build_protobuf_all_values_except_start_and_end_cursor(self): query = Query(client) limit = 15 offset = 9 - iterator = self._make_one( - query, - client, - limit=limit, - offset=offset, - ) + iterator = self._make_one(query, client, limit=limit, offset=offset) self.assertEqual(iterator.max_results, limit) iterator.num_results = 4 pb = iterator._build_protobuf() - expected_pb = query_pb2.Query( - offset=offset - iterator._skipped_results, - ) + expected_pb = query_pb2.Query(offset=offset - iterator._skipped_results) expected_pb.limit.value = limit - iterator.num_results self.assertEqual(pb, expected_pb) def test__process_query_results(self): from google.cloud.datastore_v1.proto import query_pb2 - iterator = self._make_one(None, None, - end_cursor='abcd') + iterator = self._make_one(None, None, end_cursor="abcd") self.assertIsNotNone(iterator._end_cursor) - entity_pbs = [ - _make_entity('Hello', 9998, 'PRAHJEKT'), - ] - cursor_as_bytes = b'\x9ai\xe7' - cursor = b'mmnn' + entity_pbs = [_make_entity("Hello", 9998, "PRAHJEKT")] + cursor_as_bytes = b"\x9ai\xe7" + cursor = b"mmnn" skipped_results = 4 more_results_enum = query_pb2.QueryResultBatch.NOT_FINISHED response_pb = _make_query_response( - entity_pbs, cursor_as_bytes, more_results_enum, skipped_results) + entity_pbs, cursor_as_bytes, more_results_enum, skipped_results + ) result = iterator._process_query_results(response_pb) self.assertEqual(result, entity_pbs) @@ -490,18 +481,16 @@ def test__process_query_results(self): def test__process_query_results_done(self): from google.cloud.datastore_v1.proto import query_pb2 - iterator = self._make_one(None, None, - end_cursor='abcd') + iterator = self._make_one(None, None, end_cursor="abcd") self.assertIsNotNone(iterator._end_cursor) - entity_pbs = [ - _make_entity('World', 1234, 'PROJECT'), - ] - cursor_as_bytes = b'\x9ai\xe7' + entity_pbs = [_make_entity("World", 1234, "PROJECT")] + cursor_as_bytes = b"\x9ai\xe7" skipped_results = 44 more_results_enum = query_pb2.QueryResultBatch.NO_MORE_RESULTS response_pb = _make_query_response( - entity_pbs, cursor_as_bytes, more_results_enum, skipped_results) + entity_pbs, cursor_as_bytes, more_results_enum, skipped_results + ) result = iterator._process_query_results(response_pb) self.assertEqual(result, entity_pbs) @@ -512,8 +501,7 @@ def test__process_query_results_done(self): def test__process_query_results_bad_enum(self): iterator = self._make_one(None, None) more_results_enum = 999 - response_pb = _make_query_response( - [], b'', more_results_enum, 0) + response_pb = _make_query_response([], b"", more_results_enum, 0) with self.assertRaises(ValueError): iterator._process_query_results(response_pb) @@ -525,15 +513,14 @@ def _next_page_helper(self, txn_id=None): from google.cloud.datastore.query import Query more_enum = query_pb2.QueryResultBatch.NOT_FINISHED - result = _make_query_response([], b'', more_enum, 0) - project = 'prujekt' + result = _make_query_response([], b"", more_enum, 0) + project = "prujekt" ds_api = _make_datastore_api(result) if txn_id is None: client = _Client(project, datastore_api=ds_api) else: - transaction = mock.Mock(id=txn_id, spec=['id']) - client = _Client( - project, datastore_api=ds_api, transaction=transaction) + transaction = mock.Mock(id=txn_id, spec=["id"]) + client = _Client(project, datastore_api=ds_api, transaction=transaction) query = Query(client) iterator = self._make_one(query, client) @@ -549,13 +536,14 @@ def _next_page_helper(self, txn_id=None): read_options = datastore_pb2.ReadOptions(transaction=txn_id) empty_query = query_pb2.Query() ds_api.run_query.assert_called_once_with( - project, partition_id, read_options, query=empty_query) + project, partition_id, read_options, query=empty_query + ) def test__next_page(self): self._next_page_helper() def test__next_page_in_transaction(self): - txn_id = b'1xo1md\xe2\x98\x83' + txn_id = b"1xo1md\xe2\x98\x83" self._next_page_helper(txn_id) def test__next_page_no_more(self): @@ -573,7 +561,6 @@ def test__next_page_no_more(self): class Test__item_to_entity(unittest.TestCase): - def _call_fut(self, iterator, entity_pb): from google.cloud.datastore.query import _item_to_entity @@ -581,8 +568,7 @@ def _call_fut(self, iterator, entity_pb): def test_it(self): entity_pb = mock.sentinel.entity_pb - patch = mock.patch( - 'google.cloud.datastore.helpers.entity_from_protobuf') + patch = mock.patch("google.cloud.datastore.helpers.entity_from_protobuf") with patch as entity_from_protobuf: result = self._call_fut(None, entity_pb) self.assertIs(result, entity_from_protobuf.return_value) @@ -591,7 +577,6 @@ def test_it(self): class Test__pb_from_query(unittest.TestCase): - def _call_fut(self, query): from google.cloud.datastore.query import _pb_from_query @@ -605,101 +590,100 @@ def test_empty(self): self.assertEqual(list(pb.kind), []) self.assertEqual(list(pb.order), []) self.assertEqual(list(pb.distinct_on), []) - self.assertEqual(pb.filter.property_filter.property.name, '') + self.assertEqual(pb.filter.property_filter.property.name, "") cfilter = pb.filter.composite_filter - self.assertEqual(cfilter.op, - query_pb2.CompositeFilter.OPERATOR_UNSPECIFIED) + self.assertEqual(cfilter.op, query_pb2.CompositeFilter.OPERATOR_UNSPECIFIED) self.assertEqual(list(cfilter.filters), []) - self.assertEqual(pb.start_cursor, b'') - self.assertEqual(pb.end_cursor, b'') + self.assertEqual(pb.start_cursor, b"") + self.assertEqual(pb.end_cursor, b"") self.assertEqual(pb.limit.value, 0) self.assertEqual(pb.offset, 0) def test_projection(self): - pb = self._call_fut(_Query(projection=['a', 'b', 'c'])) - self.assertEqual([item.property.name for item in pb.projection], - ['a', 'b', 'c']) + pb = self._call_fut(_Query(projection=["a", "b", "c"])) + self.assertEqual( + [item.property.name for item in pb.projection], ["a", "b", "c"] + ) def test_kind(self): - pb = self._call_fut(_Query(kind='KIND')) - self.assertEqual([item.name for item in pb.kind], ['KIND']) + pb = self._call_fut(_Query(kind="KIND")) + self.assertEqual([item.name for item in pb.kind], ["KIND"]) def test_ancestor(self): from google.cloud.datastore.key import Key from google.cloud.datastore_v1.proto import query_pb2 - ancestor = Key('Ancestor', 123, project='PROJECT') + ancestor = Key("Ancestor", 123, project="PROJECT") pb = self._call_fut(_Query(ancestor=ancestor)) cfilter = pb.filter.composite_filter self.assertEqual(cfilter.op, query_pb2.CompositeFilter.AND) self.assertEqual(len(cfilter.filters), 1) pfilter = cfilter.filters[0].property_filter - self.assertEqual(pfilter.property.name, '__key__') + self.assertEqual(pfilter.property.name, "__key__") ancestor_pb = ancestor.to_protobuf() self.assertEqual(pfilter.value.key_value, ancestor_pb) def test_filter(self): from google.cloud.datastore_v1.proto import query_pb2 - query = _Query(filters=[('name', '=', u'John')]) - query.OPERATORS = { - '=': query_pb2.PropertyFilter.EQUAL, - } + query = _Query(filters=[("name", "=", u"John")]) + query.OPERATORS = {"=": query_pb2.PropertyFilter.EQUAL} pb = self._call_fut(query) cfilter = pb.filter.composite_filter self.assertEqual(cfilter.op, query_pb2.CompositeFilter.AND) self.assertEqual(len(cfilter.filters), 1) pfilter = cfilter.filters[0].property_filter - self.assertEqual(pfilter.property.name, 'name') - self.assertEqual(pfilter.value.string_value, u'John') + self.assertEqual(pfilter.property.name, "name") + self.assertEqual(pfilter.value.string_value, u"John") def test_filter_key(self): from google.cloud.datastore.key import Key from google.cloud.datastore_v1.proto import query_pb2 - key = Key('Kind', 123, project='PROJECT') - query = _Query(filters=[('__key__', '=', key)]) - query.OPERATORS = { - '=': query_pb2.PropertyFilter.EQUAL, - } + key = Key("Kind", 123, project="PROJECT") + query = _Query(filters=[("__key__", "=", key)]) + query.OPERATORS = {"=": query_pb2.PropertyFilter.EQUAL} pb = self._call_fut(query) cfilter = pb.filter.composite_filter self.assertEqual(cfilter.op, query_pb2.CompositeFilter.AND) self.assertEqual(len(cfilter.filters), 1) pfilter = cfilter.filters[0].property_filter - self.assertEqual(pfilter.property.name, '__key__') + self.assertEqual(pfilter.property.name, "__key__") key_pb = key.to_protobuf() self.assertEqual(pfilter.value.key_value, key_pb) def test_order(self): from google.cloud.datastore_v1.proto import query_pb2 - pb = self._call_fut(_Query(order=['a', '-b', 'c'])) - self.assertEqual([item.property.name for item in pb.order], - ['a', 'b', 'c']) - self.assertEqual([item.direction for item in pb.order], - [query_pb2.PropertyOrder.ASCENDING, - query_pb2.PropertyOrder.DESCENDING, - query_pb2.PropertyOrder.ASCENDING]) + pb = self._call_fut(_Query(order=["a", "-b", "c"])) + self.assertEqual([item.property.name for item in pb.order], ["a", "b", "c"]) + self.assertEqual( + [item.direction for item in pb.order], + [ + query_pb2.PropertyOrder.ASCENDING, + query_pb2.PropertyOrder.DESCENDING, + query_pb2.PropertyOrder.ASCENDING, + ], + ) def test_distinct_on(self): - pb = self._call_fut(_Query(distinct_on=['a', 'b', 'c'])) - self.assertEqual([item.name for item in pb.distinct_on], - ['a', 'b', 'c']) + pb = self._call_fut(_Query(distinct_on=["a", "b", "c"])) + self.assertEqual([item.name for item in pb.distinct_on], ["a", "b", "c"]) class _Query(object): - - def __init__(self, - client=object(), - kind=None, - project=None, - namespace=None, - ancestor=None, - filters=(), - projection=(), - order=(), - distinct_on=()): + def __init__( + self, + client=object(), + kind=None, + project=None, + namespace=None, + ancestor=None, + filters=(), + projection=(), + order=(), + distinct_on=(), + ): self._client = client self.kind = kind self.project = project @@ -712,9 +696,7 @@ def __init__(self, class _Client(object): - - def __init__(self, project, datastore_api=None, namespace=None, - transaction=None): + def __init__(self, project, datastore_api=None, namespace=None, transaction=None): self.project = project self._datastore_api = datastore_api self.namespace = namespace @@ -737,7 +719,8 @@ def _make_entity(kind, id_, project): def _make_query_response( - entity_pbs, cursor_as_bytes, more_results_enum, skipped_results): + entity_pbs, cursor_as_bytes, more_results_enum, skipped_results +): from google.cloud.datastore_v1.proto import datastore_pb2 from google.cloud.datastore_v1.proto import query_pb2 @@ -747,13 +730,12 @@ def _make_query_response( end_cursor=cursor_as_bytes, more_results=more_results_enum, entity_results=[ - query_pb2.EntityResult(entity=entity) - for entity in entity_pbs + query_pb2.EntityResult(entity=entity) for entity in entity_pbs ], - ), + ) ) def _make_datastore_api(result=None): run_query = mock.Mock(return_value=result, spec=[]) - return mock.Mock(run_query=run_query, spec=['run_query']) + return mock.Mock(run_query=run_query, spec=["run_query"]) diff --git a/datastore/tests/unit/test_transaction.py b/datastore/tests/unit/test_transaction.py index cef178a00243..a1e23610368a 100644 --- a/datastore/tests/unit/test_transaction.py +++ b/datastore/tests/unit/test_transaction.py @@ -18,14 +18,15 @@ class TestTransaction(unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.datastore.transaction import Transaction + return Transaction def _get_options_class(self, **kw): from google.cloud.datastore_v1.types import TransactionOptions + return TransactionOptions def _make_one(self, client, **kw): @@ -35,7 +36,7 @@ def _make_options(self, **kw): return self._get_options_class()(**kw) def test_ctor_defaults(self): - project = 'PROJECT' + project = "PROJECT" client = _Client(project) xact = self._make_one(client) self.assertEqual(xact.project, project) @@ -48,7 +49,7 @@ def test_ctor_defaults(self): def test_current(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" id_ = 678 ds_api = _make_datastore_api(xact_id=id_) client = _Client(project, datastore_api=ds_api) @@ -84,7 +85,7 @@ def test_current(self): begin_txn.assert_called_with(project) def test_begin(self): - project = 'PROJECT' + project = "PROJECT" id_ = 889 ds_api = _make_datastore_api(xact_id=id_) client = _Client(project, datastore_api=ds_api) @@ -94,7 +95,7 @@ def test_begin(self): ds_api.begin_transaction.assert_called_once_with(project) def test_begin_tombstoned(self): - project = 'PROJECT' + project = "PROJECT" id_ = 1094 ds_api = _make_datastore_api(xact_id=id_) client = _Client(project, datastore_api=ds_api) @@ -110,7 +111,7 @@ def test_begin_tombstoned(self): self.assertRaises(ValueError, xact.begin) def test_begin_w_begin_transaction_failure(self): - project = 'PROJECT' + project = "PROJECT" id_ = 712 ds_api = _make_datastore_api(xact_id=id_) ds_api.begin_transaction = mock.Mock(side_effect=RuntimeError, spec=[]) @@ -124,7 +125,7 @@ def test_begin_w_begin_transaction_failure(self): ds_api.begin_transaction.assert_called_once_with(project) def test_rollback(self): - project = 'PROJECT' + project = "PROJECT" id_ = 239 ds_api = _make_datastore_api(xact_id=id_) client = _Client(project, datastore_api=ds_api) @@ -138,7 +139,7 @@ def test_rollback(self): def test_commit_no_partial_keys(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" id_ = 1002930 ds_api = _make_datastore_api(xact_id=id_) client = _Client(project, datastore_api=ds_api) @@ -148,15 +149,16 @@ def test_commit_no_partial_keys(self): mode = datastore_pb2.CommitRequest.TRANSACTIONAL client._datastore_api.commit.assert_called_once_with( - project, mode, [], transaction=id_) + project, mode, [], transaction=id_ + ) self.assertIsNone(xact.id) ds_api.begin_transaction.assert_called_once_with(project) def test_commit_w_partial_keys(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' - kind = 'KIND' + project = "PROJECT" + kind = "KIND" id1 = 123 key = _make_key(kind, id1, project) id2 = 234 @@ -170,15 +172,16 @@ def test_commit_w_partial_keys(self): mode = datastore_pb2.CommitRequest.TRANSACTIONAL ds_api.commit.assert_called_once_with( - project, mode, xact.mutations, transaction=id2) + project, mode, xact.mutations, transaction=id2 + ) self.assertIsNone(xact.id) - self.assertEqual(entity.key.path, [{'kind': kind, 'id': id1}]) + self.assertEqual(entity.key.path, [{"kind": kind, "id": id1}]) ds_api.begin_transaction.assert_called_once_with(project) def test_context_manager_no_raise(self): from google.cloud.datastore_v1.proto import datastore_pb2 - project = 'PROJECT' + project = "PROJECT" id_ = 912830 ds_api = _make_datastore_api(xact_id=id_) client = _Client(project, datastore_api=ds_api) @@ -189,16 +192,16 @@ def test_context_manager_no_raise(self): mode = datastore_pb2.CommitRequest.TRANSACTIONAL client._datastore_api.commit.assert_called_once_with( - project, mode, [], transaction=id_) + project, mode, [], transaction=id_ + ) self.assertIsNone(xact.id) self.assertEqual(ds_api.begin_transaction.call_count, 1) def test_context_manager_w_raise(self): - class Foo(Exception): pass - project = 'PROJECT' + project = "PROJECT" id_ = 614416 ds_api = _make_datastore_api(xact_id=id_) client = _Client(project, datastore_api=ds_api) @@ -211,15 +214,14 @@ class Foo(Exception): raise Foo() except Foo: self.assertIsNone(xact.id) - client._datastore_api.rollback.assert_called_once_with( - project, id_) + client._datastore_api.rollback.assert_called_once_with(project, id_) client._datastore_api.commit.assert_not_called() self.assertIsNone(xact.id) self.assertEqual(ds_api.begin_transaction.call_count, 1) def test_constructor_read_only(self): - project = 'PROJECT' + project = "PROJECT" id_ = 850302 ds_api = _make_datastore_api(xact=id_) client = _Client(project, datastore_api=ds_api) @@ -229,7 +231,7 @@ def test_constructor_read_only(self): self.assertEqual(xact._options, options) def test_put_read_only(self): - project = 'PROJECT' + project = "PROJECT" id_ = 943243 ds_api = _make_datastore_api(xact_id=id_) client = _Client(project, datastore_api=ds_api) @@ -252,16 +254,14 @@ def _make_key(kind, id_, project): class _Entity(dict): - def __init__(self): super(_Entity, self).__init__() from google.cloud.datastore.key import Key - self.key = Key('KIND', project='PROJECT') + self.key = Key("KIND", project="PROJECT") class _Client(object): - def __init__(self, project, datastore_api=None, namespace=None): self.project = project if datastore_api is None: @@ -282,7 +282,6 @@ def current_batch(self): class _NoCommitBatch(object): - def __init__(self, client): from google.cloud.datastore.batch import Batch @@ -300,20 +299,19 @@ def __exit__(self, *args): def _make_commit_response(*keys): from google.cloud.datastore_v1.proto import datastore_pb2 - mutation_results = [ - datastore_pb2.MutationResult(key=key) for key in keys] + mutation_results = [datastore_pb2.MutationResult(key=key) for key in keys] return datastore_pb2.CommitResponse(mutation_results=mutation_results) def _make_datastore_api(*keys, **kwargs): - commit_method = mock.Mock( - return_value=_make_commit_response(*keys), spec=[]) + commit_method = mock.Mock(return_value=_make_commit_response(*keys), spec=[]) - xact_id = kwargs.pop('xact_id', 123) - txn_pb = mock.Mock( - transaction=xact_id, spec=['transaction']) + xact_id = kwargs.pop("xact_id", 123) + txn_pb = mock.Mock(transaction=xact_id, spec=["transaction"]) begin_txn = mock.Mock(return_value=txn_pb, spec=[]) return mock.Mock( - commit=commit_method, begin_transaction=begin_txn, - spec=['begin_transaction', 'commit', 'rollback']) + commit=commit_method, + begin_transaction=begin_txn, + spec=["begin_transaction", "commit", "rollback"], + ) diff --git a/dlp/docs/conf.py b/dlp/docs/conf.py index d70c62e6d096..529f9c3a692a 100644 --- a/dlp/docs/conf.py +++ b/dlp/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-dlp' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-dlp" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-dlp-doc' +htmlhelp_basename = "google-cloud-dlp-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,45 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-dlp.tex', u'google-cloud-dlp Documentation', - author, 'manual'), + ( + master_doc, + "google-cloud-dlp.tex", + u"google-cloud-dlp Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-dlp', - u'google-cloud-dlp Documentation', [author], 1)] +man_pages = [ + (master_doc, "google-cloud-dlp", u"google-cloud-dlp Documentation", [author], 1) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +277,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-dlp', u'google-cloud-dlp Documentation', author, - 'google-cloud-dlp', - 'GAPIC library for the {metadata.shortName} v2 service', 'APIs'), + ( + master_doc, + "google-cloud-dlp", + u"google-cloud-dlp Documentation", + author, + "google-cloud-dlp", + "GAPIC library for the {metadata.shortName} v2 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/dlp/google/__init__.py b/dlp/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/dlp/google/__init__.py +++ b/dlp/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/dlp/google/cloud/__init__.py b/dlp/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/dlp/google/cloud/__init__.py +++ b/dlp/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/dlp/google/cloud/dlp.py b/dlp/google/cloud/dlp.py index 2cf22d7aac70..86ebd22db060 100644 --- a/dlp/google/cloud/dlp.py +++ b/dlp/google/cloud/dlp.py @@ -20,8 +20,4 @@ from google.cloud.dlp_v2 import enums from google.cloud.dlp_v2 import types -__all__ = ( - 'enums', - 'types', - 'DlpServiceClient', -) +__all__ = ("enums", "types", "DlpServiceClient") diff --git a/dlp/google/cloud/dlp_v2/__init__.py b/dlp/google/cloud/dlp_v2/__init__.py index 282cc22e0360..7dd9ce182c3b 100644 --- a/dlp/google/cloud/dlp_v2/__init__.py +++ b/dlp/google/cloud/dlp_v2/__init__.py @@ -26,8 +26,4 @@ class DlpServiceClient(dlp_service_client.DlpServiceClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'DlpServiceClient', -) +__all__ = ("enums", "types", "DlpServiceClient") diff --git a/dlp/google/cloud/dlp_v2/gapic/dlp_service_client.py b/dlp/google/cloud/dlp_v2/gapic/dlp_service_client.py index a881164641a8..36c2f96e9667 100644 --- a/dlp/google/cloud/dlp_v2/gapic/dlp_service_client.py +++ b/dlp/google/cloud/dlp_v2/gapic/dlp_service_client.py @@ -37,8 +37,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-dlp', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-dlp").version class DlpServiceClient(object): @@ -54,12 +53,12 @@ class DlpServiceClient(object): https://cloud.google.com/dlp/docs/. """ - SERVICE_ADDRESS = 'dlp.googleapis.com:443' + SERVICE_ADDRESS = "dlp.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.privacy.dlp.v2.DlpService' + _INTERFACE_NAME = "google.privacy.dlp.v2.DlpService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -75,9 +74,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: DlpServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -86,16 +84,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def organization_path(cls, organization): """Return a fully-qualified organization string.""" return google.api_core.path_template.expand( - 'organizations/{organization}', - organization=organization, + "organizations/{organization}", organization=organization ) @classmethod - def organization_deidentify_template_path(cls, organization, - deidentify_template): + def organization_deidentify_template_path(cls, organization, deidentify_template): """Return a fully-qualified organization_deidentify_template string.""" return google.api_core.path_template.expand( - 'organizations/{organization}/deidentifyTemplates/{deidentify_template}', + "organizations/{organization}/deidentifyTemplates/{deidentify_template}", organization=organization, deidentify_template=deidentify_template, ) @@ -104,17 +100,16 @@ def organization_deidentify_template_path(cls, organization, def project_deidentify_template_path(cls, project, deidentify_template): """Return a fully-qualified project_deidentify_template string.""" return google.api_core.path_template.expand( - 'projects/{project}/deidentifyTemplates/{deidentify_template}', + "projects/{project}/deidentifyTemplates/{deidentify_template}", project=project, deidentify_template=deidentify_template, ) @classmethod - def organization_inspect_template_path(cls, organization, - inspect_template): + def organization_inspect_template_path(cls, organization, inspect_template): """Return a fully-qualified organization_inspect_template string.""" return google.api_core.path_template.expand( - 'organizations/{organization}/inspectTemplates/{inspect_template}', + "organizations/{organization}/inspectTemplates/{inspect_template}", organization=organization, inspect_template=inspect_template, ) @@ -123,7 +118,7 @@ def organization_inspect_template_path(cls, organization, def project_inspect_template_path(cls, project, inspect_template): """Return a fully-qualified project_inspect_template string.""" return google.api_core.path_template.expand( - 'projects/{project}/inspectTemplates/{inspect_template}', + "projects/{project}/inspectTemplates/{inspect_template}", project=project, inspect_template=inspect_template, ) @@ -132,7 +127,7 @@ def project_inspect_template_path(cls, project, inspect_template): def project_job_trigger_path(cls, project, job_trigger): """Return a fully-qualified project_job_trigger string.""" return google.api_core.path_template.expand( - 'projects/{project}/jobTriggers/{job_trigger}', + "projects/{project}/jobTriggers/{job_trigger}", project=project, job_trigger=job_trigger, ) @@ -141,25 +136,21 @@ def project_job_trigger_path(cls, project, job_trigger): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def dlp_job_path(cls, project, dlp_job): """Return a fully-qualified dlp_job string.""" return google.api_core.path_template.expand( - 'projects/{project}/dlpJobs/{dlp_job}', - project=project, - dlp_job=dlp_job, + "projects/{project}/dlpJobs/{dlp_job}", project=project, dlp_job=dlp_job ) @classmethod - def organization_stored_info_type_path(cls, organization, - stored_info_type): + def organization_stored_info_type_path(cls, organization, stored_info_type): """Return a fully-qualified organization_stored_info_type string.""" return google.api_core.path_template.expand( - 'organizations/{organization}/storedInfoTypes/{stored_info_type}', + "organizations/{organization}/storedInfoTypes/{stored_info_type}", organization=organization, stored_info_type=stored_info_type, ) @@ -168,17 +159,19 @@ def organization_stored_info_type_path(cls, organization, def project_stored_info_type_path(cls, project, stored_info_type): """Return a fully-qualified project_stored_info_type string.""" return google.api_core.path_template.expand( - 'projects/{project}/storedInfoTypes/{stored_info_type}', + "projects/{project}/storedInfoTypes/{stored_info_type}", project=project, stored_info_type=stored_info_type, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -212,18 +205,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = dlp_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -232,25 +226,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=dlp_service_grpc_transport. - DlpServiceGrpcTransport, + default_class=dlp_service_grpc_transport.DlpServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = dlp_service_grpc_transport.DlpServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -260,7 +253,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -269,14 +263,16 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def inspect_content(self, - parent, - inspect_config=None, - item=None, - inspect_template_name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def inspect_content( + self, + parent, + inspect_config=None, + item=None, + inspect_template_name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Finds potentially sensitive info in content. This method has limits on input size, processing time, and output size. @@ -333,15 +329,15 @@ def inspect_content(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'inspect_content' not in self._inner_api_calls: + if "inspect_content" not in self._inner_api_calls: self._inner_api_calls[ - 'inspect_content'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.inspect_content, - default_retry=self._method_configs['InspectContent'].retry, - default_timeout=self._method_configs['InspectContent']. - timeout, - client_info=self._client_info, - ) + "inspect_content" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.inspect_content, + default_retry=self._method_configs["InspectContent"].retry, + default_timeout=self._method_configs["InspectContent"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.InspectContentRequest( parent=parent, @@ -349,18 +345,21 @@ def inspect_content(self, item=item, inspect_template_name=inspect_template_name, ) - return self._inner_api_calls['inspect_content']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def redact_image(self, - parent, - inspect_config=None, - image_redaction_configs=None, - include_findings=None, - byte_item=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["inspect_content"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def redact_image( + self, + parent, + inspect_config=None, + image_redaction_configs=None, + include_findings=None, + byte_item=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Redacts potentially sensitive info from an image. This method has limits on input size, processing time, and output size. @@ -416,15 +415,15 @@ def redact_image(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'redact_image' not in self._inner_api_calls: + if "redact_image" not in self._inner_api_calls: self._inner_api_calls[ - 'redact_image'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.redact_image, - default_retry=self._method_configs['RedactImage'].retry, - default_timeout=self._method_configs['RedactImage']. - timeout, - client_info=self._client_info, - ) + "redact_image" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.redact_image, + default_retry=self._method_configs["RedactImage"].retry, + default_timeout=self._method_configs["RedactImage"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.RedactImageRequest( parent=parent, @@ -433,19 +432,22 @@ def redact_image(self, include_findings=include_findings, byte_item=byte_item, ) - return self._inner_api_calls['redact_image']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def deidentify_content(self, - parent, - deidentify_config=None, - inspect_config=None, - item=None, - inspect_template_name=None, - deidentify_template_name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["redact_image"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def deidentify_content( + self, + parent, + deidentify_config=None, + inspect_config=None, + item=None, + inspect_template_name=None, + deidentify_template_name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ De-identifies potentially sensitive info from a ContentItem. This method has limits on input size and output size. @@ -512,16 +514,15 @@ def deidentify_content(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'deidentify_content' not in self._inner_api_calls: + if "deidentify_content" not in self._inner_api_calls: self._inner_api_calls[ - 'deidentify_content'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.deidentify_content, - default_retry=self._method_configs['DeidentifyContent']. - retry, - default_timeout=self._method_configs['DeidentifyContent']. - timeout, - client_info=self._client_info, - ) + "deidentify_content" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.deidentify_content, + default_retry=self._method_configs["DeidentifyContent"].retry, + default_timeout=self._method_configs["DeidentifyContent"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.DeidentifyContentRequest( parent=parent, @@ -531,19 +532,22 @@ def deidentify_content(self, inspect_template_name=inspect_template_name, deidentify_template_name=deidentify_template_name, ) - return self._inner_api_calls['deidentify_content']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def reidentify_content(self, - parent, - reidentify_config=None, - inspect_config=None, - item=None, - inspect_template_name=None, - reidentify_template_name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["deidentify_content"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def reidentify_content( + self, + parent, + reidentify_config=None, + inspect_config=None, + item=None, + inspect_template_name=None, + reidentify_template_name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Re-identifies content that has been de-identified. See https://cloud.google.com/dlp/docs/pseudonymization#re-identification\_in\_free\_text\_code\_example @@ -611,16 +615,15 @@ def reidentify_content(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'reidentify_content' not in self._inner_api_calls: + if "reidentify_content" not in self._inner_api_calls: self._inner_api_calls[ - 'reidentify_content'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.reidentify_content, - default_retry=self._method_configs['ReidentifyContent']. - retry, - default_timeout=self._method_configs['ReidentifyContent']. - timeout, - client_info=self._client_info, - ) + "reidentify_content" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.reidentify_content, + default_retry=self._method_configs["ReidentifyContent"].retry, + default_timeout=self._method_configs["ReidentifyContent"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.ReidentifyContentRequest( parent=parent, @@ -630,15 +633,18 @@ def reidentify_content(self, inspect_template_name=inspect_template_name, reidentify_template_name=reidentify_template_name, ) - return self._inner_api_calls['reidentify_content']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_info_types(self, - language_code=None, - filter_=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["reidentify_content"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_info_types( + self, + language_code=None, + filter_=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns a list of the sensitive information types that the DLP API supports. See https://cloud.google.com/dlp/docs/infotypes-reference to @@ -677,31 +683,32 @@ def list_info_types(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_info_types' not in self._inner_api_calls: + if "list_info_types" not in self._inner_api_calls: self._inner_api_calls[ - 'list_info_types'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_info_types, - default_retry=self._method_configs['ListInfoTypes'].retry, - default_timeout=self._method_configs['ListInfoTypes']. - timeout, - client_info=self._client_info, - ) + "list_info_types" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_info_types, + default_retry=self._method_configs["ListInfoTypes"].retry, + default_timeout=self._method_configs["ListInfoTypes"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.ListInfoTypesRequest( - language_code=language_code, - filter=filter_, + language_code=language_code, filter=filter_ + ) + return self._inner_api_calls["list_info_types"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['list_info_types']( - request, retry=retry, timeout=timeout, metadata=metadata) def create_inspect_template( - self, - parent, - inspect_template=None, - template_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + inspect_template=None, + template_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates an InspectTemplate for re-using frequently used configuration for inspecting content, images, and storage. @@ -747,33 +754,32 @@ def create_inspect_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_inspect_template' not in self._inner_api_calls: + if "create_inspect_template" not in self._inner_api_calls: self._inner_api_calls[ - 'create_inspect_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_inspect_template, - default_retry=self. - _method_configs['CreateInspectTemplate'].retry, - default_timeout=self. - _method_configs['CreateInspectTemplate'].timeout, - client_info=self._client_info, - ) + "create_inspect_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_inspect_template, + default_retry=self._method_configs["CreateInspectTemplate"].retry, + default_timeout=self._method_configs["CreateInspectTemplate"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.CreateInspectTemplateRequest( - parent=parent, - inspect_template=inspect_template, - template_id=template_id, + parent=parent, inspect_template=inspect_template, template_id=template_id + ) + return self._inner_api_calls["create_inspect_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_inspect_template']( - request, retry=retry, timeout=timeout, metadata=metadata) def update_inspect_template( - self, - name, - inspect_template=None, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + inspect_template=None, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more. @@ -819,30 +825,30 @@ def update_inspect_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_inspect_template' not in self._inner_api_calls: + if "update_inspect_template" not in self._inner_api_calls: self._inner_api_calls[ - 'update_inspect_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_inspect_template, - default_retry=self. - _method_configs['UpdateInspectTemplate'].retry, - default_timeout=self. - _method_configs['UpdateInspectTemplate'].timeout, - client_info=self._client_info, - ) + "update_inspect_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_inspect_template, + default_retry=self._method_configs["UpdateInspectTemplate"].retry, + default_timeout=self._method_configs["UpdateInspectTemplate"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.UpdateInspectTemplateRequest( - name=name, - inspect_template=inspect_template, - update_mask=update_mask, + name=name, inspect_template=inspect_template, update_mask=update_mask ) - return self._inner_api_calls['update_inspect_template']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_inspect_template(self, - name=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_inspect_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def get_inspect_template( + self, + name=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more. @@ -878,28 +884,30 @@ def get_inspect_template(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_inspect_template' not in self._inner_api_calls: + if "get_inspect_template" not in self._inner_api_calls: self._inner_api_calls[ - 'get_inspect_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_inspect_template, - default_retry=self._method_configs['GetInspectTemplate']. - retry, - default_timeout=self._method_configs['GetInspectTemplate']. - timeout, - client_info=self._client_info, - ) + "get_inspect_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_inspect_template, + default_retry=self._method_configs["GetInspectTemplate"].retry, + default_timeout=self._method_configs["GetInspectTemplate"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.GetInspectTemplateRequest(name=name, ) - return self._inner_api_calls['get_inspect_template']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_inspect_templates(self, - parent, - page_size=None, - order_by=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = dlp_pb2.GetInspectTemplateRequest(name=name) + return self._inner_api_calls["get_inspect_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_inspect_templates( + self, + parent, + page_size=None, + order_by=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists InspectTemplates. See https://cloud.google.com/dlp/docs/creating-templates to learn more. @@ -968,42 +976,41 @@ def list_inspect_templates(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_inspect_templates' not in self._inner_api_calls: + if "list_inspect_templates" not in self._inner_api_calls: self._inner_api_calls[ - 'list_inspect_templates'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_inspect_templates, - default_retry=self._method_configs['ListInspectTemplates']. - retry, - default_timeout=self. - _method_configs['ListInspectTemplates'].timeout, - client_info=self._client_info, - ) + "list_inspect_templates" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_inspect_templates, + default_retry=self._method_configs["ListInspectTemplates"].retry, + default_timeout=self._method_configs["ListInspectTemplates"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.ListInspectTemplatesRequest( - parent=parent, - page_size=page_size, - order_by=order_by, + parent=parent, page_size=page_size, order_by=order_by ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_inspect_templates'], + self._inner_api_calls["list_inspect_templates"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='inspect_templates', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="inspect_templates", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def delete_inspect_template( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes an InspectTemplate. See https://cloud.google.com/dlp/docs/creating-templates to learn more. @@ -1038,29 +1045,30 @@ def delete_inspect_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_inspect_template' not in self._inner_api_calls: + if "delete_inspect_template" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_inspect_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_inspect_template, - default_retry=self. - _method_configs['DeleteInspectTemplate'].retry, - default_timeout=self. - _method_configs['DeleteInspectTemplate'].timeout, - client_info=self._client_info, - ) + "delete_inspect_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_inspect_template, + default_retry=self._method_configs["DeleteInspectTemplate"].retry, + default_timeout=self._method_configs["DeleteInspectTemplate"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.DeleteInspectTemplateRequest(name=name, ) - self._inner_api_calls['delete_inspect_template']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = dlp_pb2.DeleteInspectTemplateRequest(name=name) + self._inner_api_calls["delete_inspect_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def create_deidentify_template( - self, - parent, - deidentify_template=None, - template_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + deidentify_template=None, + template_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a DeidentifyTemplate for re-using frequently used configuration for de-identifying content, images, and storage. @@ -1107,33 +1115,36 @@ def create_deidentify_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_deidentify_template' not in self._inner_api_calls: + if "create_deidentify_template" not in self._inner_api_calls: self._inner_api_calls[ - 'create_deidentify_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_deidentify_template, - default_retry=self. - _method_configs['CreateDeidentifyTemplate'].retry, - default_timeout=self. - _method_configs['CreateDeidentifyTemplate'].timeout, - client_info=self._client_info, - ) + "create_deidentify_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_deidentify_template, + default_retry=self._method_configs["CreateDeidentifyTemplate"].retry, + default_timeout=self._method_configs[ + "CreateDeidentifyTemplate" + ].timeout, + client_info=self._client_info, + ) request = dlp_pb2.CreateDeidentifyTemplateRequest( parent=parent, deidentify_template=deidentify_template, template_id=template_id, ) - return self._inner_api_calls['create_deidentify_template']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_deidentify_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def update_deidentify_template( - self, - name, - deidentify_template=None, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + deidentify_template=None, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn @@ -1180,31 +1191,32 @@ def update_deidentify_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_deidentify_template' not in self._inner_api_calls: + if "update_deidentify_template" not in self._inner_api_calls: self._inner_api_calls[ - 'update_deidentify_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_deidentify_template, - default_retry=self. - _method_configs['UpdateDeidentifyTemplate'].retry, - default_timeout=self. - _method_configs['UpdateDeidentifyTemplate'].timeout, - client_info=self._client_info, - ) + "update_deidentify_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_deidentify_template, + default_retry=self._method_configs["UpdateDeidentifyTemplate"].retry, + default_timeout=self._method_configs[ + "UpdateDeidentifyTemplate" + ].timeout, + client_info=self._client_info, + ) request = dlp_pb2.UpdateDeidentifyTemplateRequest( - name=name, - deidentify_template=deidentify_template, - update_mask=update_mask, + name=name, deidentify_template=deidentify_template, update_mask=update_mask + ) + return self._inner_api_calls["update_deidentify_template"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_deidentify_template']( - request, retry=retry, timeout=timeout, metadata=metadata) def get_deidentify_template( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn @@ -1243,29 +1255,30 @@ def get_deidentify_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_deidentify_template' not in self._inner_api_calls: + if "get_deidentify_template" not in self._inner_api_calls: self._inner_api_calls[ - 'get_deidentify_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_deidentify_template, - default_retry=self. - _method_configs['GetDeidentifyTemplate'].retry, - default_timeout=self. - _method_configs['GetDeidentifyTemplate'].timeout, - client_info=self._client_info, - ) + "get_deidentify_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_deidentify_template, + default_retry=self._method_configs["GetDeidentifyTemplate"].retry, + default_timeout=self._method_configs["GetDeidentifyTemplate"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.GetDeidentifyTemplateRequest(name=name, ) - return self._inner_api_calls['get_deidentify_template']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = dlp_pb2.GetDeidentifyTemplateRequest(name=name) + return self._inner_api_calls["get_deidentify_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def list_deidentify_templates( - self, - parent, - page_size=None, - order_by=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + page_size=None, + order_by=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists DeidentifyTemplates. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn @@ -1335,42 +1348,41 @@ def list_deidentify_templates( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_deidentify_templates' not in self._inner_api_calls: + if "list_deidentify_templates" not in self._inner_api_calls: self._inner_api_calls[ - 'list_deidentify_templates'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_deidentify_templates, - default_retry=self. - _method_configs['ListDeidentifyTemplates'].retry, - default_timeout=self. - _method_configs['ListDeidentifyTemplates'].timeout, - client_info=self._client_info, - ) + "list_deidentify_templates" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_deidentify_templates, + default_retry=self._method_configs["ListDeidentifyTemplates"].retry, + default_timeout=self._method_configs["ListDeidentifyTemplates"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.ListDeidentifyTemplatesRequest( - parent=parent, - page_size=page_size, - order_by=order_by, + parent=parent, page_size=page_size, order_by=order_by ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_deidentify_templates'], + self._inner_api_calls["list_deidentify_templates"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='deidentify_templates', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="deidentify_templates", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def delete_deidentify_template( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a DeidentifyTemplate. See https://cloud.google.com/dlp/docs/creating-templates-deid to learn @@ -1406,29 +1418,33 @@ def delete_deidentify_template( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_deidentify_template' not in self._inner_api_calls: + if "delete_deidentify_template" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_deidentify_template'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_deidentify_template, - default_retry=self. - _method_configs['DeleteDeidentifyTemplate'].retry, - default_timeout=self. - _method_configs['DeleteDeidentifyTemplate'].timeout, - client_info=self._client_info, - ) + "delete_deidentify_template" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_deidentify_template, + default_retry=self._method_configs["DeleteDeidentifyTemplate"].retry, + default_timeout=self._method_configs[ + "DeleteDeidentifyTemplate" + ].timeout, + client_info=self._client_info, + ) + + request = dlp_pb2.DeleteDeidentifyTemplateRequest(name=name) + self._inner_api_calls["delete_deidentify_template"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = dlp_pb2.DeleteDeidentifyTemplateRequest(name=name, ) - self._inner_api_calls['delete_deidentify_template']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_dlp_job(self, - parent, - inspect_job=None, - risk_job=None, - job_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_dlp_job( + self, + parent, + inspect_job=None, + risk_job=None, + job_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new job to inspect storage or calculate risk metrics. See https://cloud.google.com/dlp/docs/inspecting-storage and @@ -1479,41 +1495,40 @@ def create_dlp_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_dlp_job' not in self._inner_api_calls: + if "create_dlp_job" not in self._inner_api_calls: self._inner_api_calls[ - 'create_dlp_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_dlp_job, - default_retry=self._method_configs['CreateDlpJob'].retry, - default_timeout=self._method_configs['CreateDlpJob']. - timeout, - client_info=self._client_info, - ) + "create_dlp_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_dlp_job, + default_retry=self._method_configs["CreateDlpJob"].retry, + default_timeout=self._method_configs["CreateDlpJob"].timeout, + client_info=self._client_info, + ) # Sanity check: We have some fields which are mutually exclusive; # raise ValueError if more than one is sent. google.api_core.protobuf_helpers.check_oneof( - inspect_job=inspect_job, - risk_job=risk_job, + inspect_job=inspect_job, risk_job=risk_job ) request = dlp_pb2.CreateDlpJobRequest( - parent=parent, - inspect_job=inspect_job, - risk_job=risk_job, - job_id=job_id, + parent=parent, inspect_job=inspect_job, risk_job=risk_job, job_id=job_id ) - return self._inner_api_calls['create_dlp_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_dlp_jobs(self, - parent, - filter_=None, - page_size=None, - type_=None, - order_by=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["create_dlp_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_dlp_jobs( + self, + parent, + filter_=None, + page_size=None, + type_=None, + order_by=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists DlpJobs that match the specified filter in the request. See https://cloud.google.com/dlp/docs/inspecting-storage and @@ -1612,15 +1627,15 @@ def list_dlp_jobs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_dlp_jobs' not in self._inner_api_calls: + if "list_dlp_jobs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_dlp_jobs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_dlp_jobs, - default_retry=self._method_configs['ListDlpJobs'].retry, - default_timeout=self._method_configs['ListDlpJobs']. - timeout, - client_info=self._client_info, - ) + "list_dlp_jobs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_dlp_jobs, + default_retry=self._method_configs["ListDlpJobs"].retry, + default_timeout=self._method_configs["ListDlpJobs"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.ListDlpJobsRequest( parent=parent, @@ -1632,22 +1647,25 @@ def list_dlp_jobs(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_dlp_jobs'], + self._inner_api_calls["list_dlp_jobs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='jobs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="jobs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_dlp_job(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_dlp_job( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the latest state of a long-running DlpJob. See https://cloud.google.com/dlp/docs/inspecting-storage and @@ -1684,24 +1702,28 @@ def get_dlp_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_dlp_job' not in self._inner_api_calls: + if "get_dlp_job" not in self._inner_api_calls: self._inner_api_calls[ - 'get_dlp_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_dlp_job, - default_retry=self._method_configs['GetDlpJob'].retry, - default_timeout=self._method_configs['GetDlpJob'].timeout, - client_info=self._client_info, - ) + "get_dlp_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_dlp_job, + default_retry=self._method_configs["GetDlpJob"].retry, + default_timeout=self._method_configs["GetDlpJob"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.GetDlpJobRequest(name=name, ) - return self._inner_api_calls['get_dlp_job']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = dlp_pb2.GetDlpJobRequest(name=name) + return self._inner_api_calls["get_dlp_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_dlp_job(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_dlp_job( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a long-running DlpJob. This method indicates that the client is no longer interested in the DlpJob result. The job will be cancelled if @@ -1737,25 +1759,28 @@ def delete_dlp_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_dlp_job' not in self._inner_api_calls: + if "delete_dlp_job" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_dlp_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_dlp_job, - default_retry=self._method_configs['DeleteDlpJob'].retry, - default_timeout=self._method_configs['DeleteDlpJob']. - timeout, - client_info=self._client_info, - ) + "delete_dlp_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_dlp_job, + default_retry=self._method_configs["DeleteDlpJob"].retry, + default_timeout=self._method_configs["DeleteDlpJob"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.DeleteDlpJobRequest(name=name, ) - self._inner_api_calls['delete_dlp_job']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = dlp_pb2.DeleteDlpJobRequest(name=name) + self._inner_api_calls["delete_dlp_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def cancel_dlp_job(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def cancel_dlp_job( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Starts asynchronous cancellation on a long-running DlpJob. The server makes a best effort to cancel the DlpJob, but success is not @@ -1791,27 +1816,30 @@ def cancel_dlp_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'cancel_dlp_job' not in self._inner_api_calls: + if "cancel_dlp_job" not in self._inner_api_calls: self._inner_api_calls[ - 'cancel_dlp_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.cancel_dlp_job, - default_retry=self._method_configs['CancelDlpJob'].retry, - default_timeout=self._method_configs['CancelDlpJob']. - timeout, - client_info=self._client_info, - ) + "cancel_dlp_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.cancel_dlp_job, + default_retry=self._method_configs["CancelDlpJob"].retry, + default_timeout=self._method_configs["CancelDlpJob"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.CancelDlpJobRequest(name=name, ) - self._inner_api_calls['cancel_dlp_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_job_triggers(self, - parent, - page_size=None, - order_by=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = dlp_pb2.CancelDlpJobRequest(name=name) + self._inner_api_calls["cancel_dlp_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_job_triggers( + self, + parent, + page_size=None, + order_by=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists job triggers. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. @@ -1881,41 +1909,41 @@ def list_job_triggers(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_job_triggers' not in self._inner_api_calls: + if "list_job_triggers" not in self._inner_api_calls: self._inner_api_calls[ - 'list_job_triggers'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_job_triggers, - default_retry=self._method_configs['ListJobTriggers']. - retry, - default_timeout=self._method_configs['ListJobTriggers']. - timeout, - client_info=self._client_info, - ) + "list_job_triggers" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_job_triggers, + default_retry=self._method_configs["ListJobTriggers"].retry, + default_timeout=self._method_configs["ListJobTriggers"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.ListJobTriggersRequest( - parent=parent, - page_size=page_size, - order_by=order_by, + parent=parent, page_size=page_size, order_by=order_by ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_job_triggers'], + self._inner_api_calls["list_job_triggers"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='job_triggers', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="job_triggers", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_job_trigger(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_job_trigger( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. @@ -1952,25 +1980,28 @@ def get_job_trigger(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_job_trigger' not in self._inner_api_calls: + if "get_job_trigger" not in self._inner_api_calls: self._inner_api_calls[ - 'get_job_trigger'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_job_trigger, - default_retry=self._method_configs['GetJobTrigger'].retry, - default_timeout=self._method_configs['GetJobTrigger']. - timeout, - client_info=self._client_info, - ) + "get_job_trigger" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_job_trigger, + default_retry=self._method_configs["GetJobTrigger"].retry, + default_timeout=self._method_configs["GetJobTrigger"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.GetJobTriggerRequest(name=name, ) - return self._inner_api_calls['get_job_trigger']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = dlp_pb2.GetJobTriggerRequest(name=name) + return self._inner_api_calls["get_job_trigger"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_job_trigger(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_job_trigger( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. @@ -2005,28 +2036,30 @@ def delete_job_trigger(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_job_trigger' not in self._inner_api_calls: + if "delete_job_trigger" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_job_trigger'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_job_trigger, - default_retry=self._method_configs['DeleteJobTrigger']. - retry, - default_timeout=self._method_configs['DeleteJobTrigger']. - timeout, - client_info=self._client_info, - ) + "delete_job_trigger" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_job_trigger, + default_retry=self._method_configs["DeleteJobTrigger"].retry, + default_timeout=self._method_configs["DeleteJobTrigger"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.DeleteJobTriggerRequest(name=name, ) - self._inner_api_calls['delete_job_trigger']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_job_trigger(self, - name, - job_trigger=None, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = dlp_pb2.DeleteJobTriggerRequest(name=name) + self._inner_api_calls["delete_job_trigger"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def update_job_trigger( + self, + name, + job_trigger=None, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a job trigger. See https://cloud.google.com/dlp/docs/creating-job-triggers to learn more. @@ -2071,32 +2104,32 @@ def update_job_trigger(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_job_trigger' not in self._inner_api_calls: + if "update_job_trigger" not in self._inner_api_calls: self._inner_api_calls[ - 'update_job_trigger'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_job_trigger, - default_retry=self._method_configs['UpdateJobTrigger']. - retry, - default_timeout=self._method_configs['UpdateJobTrigger']. - timeout, - client_info=self._client_info, - ) + "update_job_trigger" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_job_trigger, + default_retry=self._method_configs["UpdateJobTrigger"].retry, + default_timeout=self._method_configs["UpdateJobTrigger"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.UpdateJobTriggerRequest( - name=name, - job_trigger=job_trigger, - update_mask=update_mask, + name=name, job_trigger=job_trigger, update_mask=update_mask + ) + return self._inner_api_calls["update_job_trigger"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_job_trigger']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_job_trigger(self, - parent, - job_trigger=None, - trigger_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def create_job_trigger( + self, + parent, + job_trigger=None, + trigger_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a job trigger to run DLP actions such as scanning storage for sensitive information on a set schedule. @@ -2141,33 +2174,32 @@ def create_job_trigger(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_job_trigger' not in self._inner_api_calls: + if "create_job_trigger" not in self._inner_api_calls: self._inner_api_calls[ - 'create_job_trigger'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_job_trigger, - default_retry=self._method_configs['CreateJobTrigger']. - retry, - default_timeout=self._method_configs['CreateJobTrigger']. - timeout, - client_info=self._client_info, - ) + "create_job_trigger" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_job_trigger, + default_retry=self._method_configs["CreateJobTrigger"].retry, + default_timeout=self._method_configs["CreateJobTrigger"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.CreateJobTriggerRequest( - parent=parent, - job_trigger=job_trigger, - trigger_id=trigger_id, + parent=parent, job_trigger=job_trigger, trigger_id=trigger_id + ) + return self._inner_api_calls["create_job_trigger"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_job_trigger']( - request, retry=retry, timeout=timeout, metadata=metadata) def create_stored_info_type( - self, - parent, - config=None, - stored_info_type_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + config=None, + stored_info_type_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a pre-built stored infoType to be used for inspection. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to @@ -2213,33 +2245,32 @@ def create_stored_info_type( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_stored_info_type' not in self._inner_api_calls: + if "create_stored_info_type" not in self._inner_api_calls: self._inner_api_calls[ - 'create_stored_info_type'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_stored_info_type, - default_retry=self._method_configs['CreateStoredInfoType']. - retry, - default_timeout=self. - _method_configs['CreateStoredInfoType'].timeout, - client_info=self._client_info, - ) + "create_stored_info_type" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_stored_info_type, + default_retry=self._method_configs["CreateStoredInfoType"].retry, + default_timeout=self._method_configs["CreateStoredInfoType"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.CreateStoredInfoTypeRequest( - parent=parent, - config=config, - stored_info_type_id=stored_info_type_id, + parent=parent, config=config, stored_info_type_id=stored_info_type_id + ) + return self._inner_api_calls["create_stored_info_type"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_stored_info_type']( - request, retry=retry, timeout=timeout, metadata=metadata) def update_stored_info_type( - self, - name, - config=None, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + config=None, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the stored infoType by creating a new version. The existing version will continue to be used until the new version is ready. @@ -2289,30 +2320,30 @@ def update_stored_info_type( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_stored_info_type' not in self._inner_api_calls: + if "update_stored_info_type" not in self._inner_api_calls: self._inner_api_calls[ - 'update_stored_info_type'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_stored_info_type, - default_retry=self._method_configs['UpdateStoredInfoType']. - retry, - default_timeout=self. - _method_configs['UpdateStoredInfoType'].timeout, - client_info=self._client_info, - ) + "update_stored_info_type" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_stored_info_type, + default_retry=self._method_configs["UpdateStoredInfoType"].retry, + default_timeout=self._method_configs["UpdateStoredInfoType"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.UpdateStoredInfoTypeRequest( - name=name, - config=config, - update_mask=update_mask, + name=name, config=config, update_mask=update_mask ) - return self._inner_api_calls['update_stored_info_type']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_stored_info_type(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_stored_info_type"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def get_stored_info_type( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to @@ -2351,28 +2382,30 @@ def get_stored_info_type(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_stored_info_type' not in self._inner_api_calls: + if "get_stored_info_type" not in self._inner_api_calls: self._inner_api_calls[ - 'get_stored_info_type'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_stored_info_type, - default_retry=self._method_configs['GetStoredInfoType']. - retry, - default_timeout=self._method_configs['GetStoredInfoType']. - timeout, - client_info=self._client_info, - ) + "get_stored_info_type" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_stored_info_type, + default_retry=self._method_configs["GetStoredInfoType"].retry, + default_timeout=self._method_configs["GetStoredInfoType"].timeout, + client_info=self._client_info, + ) + + request = dlp_pb2.GetStoredInfoTypeRequest(name=name) + return self._inner_api_calls["get_stored_info_type"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = dlp_pb2.GetStoredInfoTypeRequest(name=name, ) - return self._inner_api_calls['get_stored_info_type']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_stored_info_types(self, - parent, - page_size=None, - order_by=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_stored_info_types( + self, + parent, + page_size=None, + order_by=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists stored infoTypes. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to @@ -2443,42 +2476,41 @@ def list_stored_info_types(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_stored_info_types' not in self._inner_api_calls: + if "list_stored_info_types" not in self._inner_api_calls: self._inner_api_calls[ - 'list_stored_info_types'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_stored_info_types, - default_retry=self._method_configs['ListStoredInfoTypes']. - retry, - default_timeout=self. - _method_configs['ListStoredInfoTypes'].timeout, - client_info=self._client_info, - ) + "list_stored_info_types" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_stored_info_types, + default_retry=self._method_configs["ListStoredInfoTypes"].retry, + default_timeout=self._method_configs["ListStoredInfoTypes"].timeout, + client_info=self._client_info, + ) request = dlp_pb2.ListStoredInfoTypesRequest( - parent=parent, - page_size=page_size, - order_by=order_by, + parent=parent, page_size=page_size, order_by=order_by ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_stored_info_types'], + self._inner_api_calls["list_stored_info_types"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='stored_info_types', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="stored_info_types", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def delete_stored_info_type( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a stored infoType. See https://cloud.google.com/dlp/docs/creating-stored-infotypes to @@ -2514,17 +2546,17 @@ def delete_stored_info_type( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_stored_info_type' not in self._inner_api_calls: + if "delete_stored_info_type" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_stored_info_type'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_stored_info_type, - default_retry=self._method_configs['DeleteStoredInfoType']. - retry, - default_timeout=self. - _method_configs['DeleteStoredInfoType'].timeout, - client_info=self._client_info, - ) + "delete_stored_info_type" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_stored_info_type, + default_retry=self._method_configs["DeleteStoredInfoType"].retry, + default_timeout=self._method_configs["DeleteStoredInfoType"].timeout, + client_info=self._client_info, + ) - request = dlp_pb2.DeleteStoredInfoTypeRequest(name=name, ) - self._inner_api_calls['delete_stored_info_type']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = dlp_pb2.DeleteStoredInfoTypeRequest(name=name) + self._inner_api_calls["delete_stored_info_type"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/dlp/google/cloud/dlp_v2/gapic/dlp_service_client_config.py b/dlp/google/cloud/dlp_v2/gapic/dlp_service_client_config.py index b9af6974ad17..c0034706ad9d 100644 --- a/dlp/google/cloud/dlp_v2/gapic/dlp_service_client_config.py +++ b/dlp/google/cloud/dlp_v2/gapic/dlp_service_client_config.py @@ -3,7 +3,7 @@ "google.privacy.dlp.v2.DlpService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,161 +13,161 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "InspectContent": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RedactImage": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeidentifyContent": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ReidentifyContent": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListInfoTypes": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateInspectTemplate": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateInspectTemplate": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetInspectTemplate": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListInspectTemplates": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteInspectTemplate": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateDeidentifyTemplate": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateDeidentifyTemplate": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetDeidentifyTemplate": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListDeidentifyTemplates": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteDeidentifyTemplate": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateDlpJob": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListDlpJobs": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetDlpJob": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteDlpJob": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CancelDlpJob": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListJobTriggers": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetJobTrigger": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteJobTrigger": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateJobTrigger": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateJobTrigger": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateStoredInfoType": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateStoredInfoType": { "timeout_millis": 300000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetStoredInfoType": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListStoredInfoTypes": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteStoredInfoType": { "timeout_millis": 300000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/dlp/google/cloud/dlp_v2/gapic/enums.py b/dlp/google/cloud/dlp_v2/gapic/enums.py index ce2bc4d91ee3..f75310af6742 100644 --- a/dlp/google/cloud/dlp_v2/gapic/enums.py +++ b/dlp/google/cloud/dlp_v2/gapic/enums.py @@ -31,6 +31,7 @@ class Likelihood(enum.IntEnum): LIKELY (int) VERY_LIKELY (int): Many matching elements. """ + LIKELIHOOD_UNSPECIFIED = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 @@ -53,6 +54,7 @@ class FileType(enum.IntEnum): rb, rbw, rs, rc, scala, sh, sql, tex, txt, text, tsv, vcard, vcs, wml, xml, xsl, xsd, yml, yaml. """ + FILE_TYPE_UNSPECIFIED = 0 BINARY_FILE = 1 TEXT_FILE = 2 @@ -72,6 +74,7 @@ class DayOfWeek(enum.IntEnum): SATURDAY (int): The day-of-week of Saturday. SUNDAY (int): The day-of-week of Sunday. """ + DAY_OF_WEEK_UNSPECIFIED = 0 MONDAY = 1 TUESDAY = 2 @@ -91,6 +94,7 @@ class ContentOption(enum.IntEnum): CONTENT_TEXT (int): Text content within the data, excluding any metadata. CONTENT_IMAGE (int): Images found in the data. """ + CONTENT_UNSPECIFIED = 0 CONTENT_TEXT = 1 CONTENT_IMAGE = 2 @@ -120,6 +124,7 @@ class MatchingType(enum.IntEnum): - Regex: finding doesn't match the regex - Exclude info type: no intersection with affecting info types findings """ + MATCHING_TYPE_UNSPECIFIED = 0 MATCHING_TYPE_FULL_MATCH = 1 MATCHING_TYPE_PARTIAL_MATCH = 2 @@ -135,6 +140,7 @@ class InfoTypeSupportedBy(enum.IntEnum): INSPECT (int): Supported by the inspect operations. RISK_ANALYSIS (int): Supported by the risk analysis operations. """ + ENUM_TYPE_UNSPECIFIED = 0 INSPECT = 1 RISK_ANALYSIS = 2 @@ -154,6 +160,7 @@ class RelationalOperator(enum.IntEnum): LESS_THAN_OR_EQUALS (int): Less than or equals. EXISTS (int): Exists """ + RELATIONAL_OPERATOR_UNSPECIFIED = 0 EQUAL_TO = 1 NOT_EQUAL_TO = 2 @@ -173,6 +180,7 @@ class DlpJobType(enum.IntEnum): INSPECT_JOB (int): The job inspected Google Cloud for sensitive data. RISK_ANALYSIS_JOB (int): The job executed a Risk Analysis computation. """ + DLP_JOB_TYPE_UNSPECIFIED = 0 INSPECT_JOB = 1 RISK_ANALYSIS_JOB = 2 @@ -192,6 +200,7 @@ class StoredInfoTypeState(enum.IntEnum): user-controlled storage were modified. To fix an invalid StoredInfoType, use the ``UpdateStoredInfoType`` method to create a new version. """ + STORED_INFO_TYPE_STATE_UNSPECIFIED = 0 PENDING = 1 READY = 2 @@ -207,6 +216,7 @@ class ExclusionType(enum.IntEnum): EXCLUSION_TYPE_EXCLUDE (int): A finding of this custom info type will be excluded from final results, but can still affect rule execution. """ + EXCLUSION_TYPE_UNSPECIFIED = 0 EXCLUSION_TYPE_EXCLUDE = 1 @@ -224,6 +234,7 @@ class SampleMethod(enum.IntEnum): RANDOM_START (int): For each file larger than bytes\_limit\_per\_file, randomly pick the offset to start scanning. The scanned bytes are contiguous. """ + SAMPLE_METHOD_UNSPECIFIED = 0 TOP = 1 RANDOM_START = 2 @@ -241,6 +252,7 @@ class SampleMethod(enum.IntEnum): TOP (int): Scan from the top (default). RANDOM_START (int): Randomly pick the row to start scanning. The scanned rows are contiguous. """ + SAMPLE_METHOD_UNSPECIFIED = 0 TOP = 1 RANDOM_START = 2 @@ -258,6 +270,7 @@ class BytesType(enum.IntEnum): IMAGE_SVG (int) TEXT_UTF8 (int) """ + BYTES_TYPE_UNSPECIFIED = 0 IMAGE = 6 IMAGE_JPEG = 1 @@ -281,6 +294,7 @@ class OutputSchema(enum.IntEnum): BIG_QUERY_COLUMNS (int): Schema tailored to findings from scanning Google BigQuery. ALL_COLUMNS (int): Schema containing all columns. """ + OUTPUT_SCHEMA_UNSPECIFIED = 0 BASIC_COLUMNS = 1 GCS_COLUMNS = 2 @@ -301,6 +315,7 @@ class TimePart(enum.IntEnum): WEEK_OF_YEAR (int): [1-52] HOUR_OF_DAY (int): [0-23] """ + TIME_PART_UNSPECIFIED = 0 YEAR = 1 MONTH = 2 @@ -321,6 +336,7 @@ class CommonCharsToIgnore(enum.IntEnum): PUNCTUATION (int): US Punctuation, one of !"#$%&'()\*+,-./:;<=>?@[]^\_\`{\|}~ WHITESPACE (int): Whitespace character """ + COMMON_CHARS_TO_IGNORE_UNSPECIFIED = 0 NUMERIC = 1 ALPHA_UPPER_CASE = 2 @@ -343,6 +359,7 @@ class FfxCommonNativeAlphabet(enum.IntEnum): UPPER_CASE_ALPHA_NUMERIC (int): [0-9A-Z] (radix of 36) ALPHA_NUMERIC (int): [0-9A-Za-z] (radix of 62) """ + FFX_COMMON_NATIVE_ALPHABET_UNSPECIFIED = 0 NUMERIC = 1 HEXADECIMAL = 2 @@ -358,6 +375,7 @@ class LogicalOperator(enum.IntEnum): LOGICAL_OPERATOR_UNSPECIFIED (int) AND (int) """ + LOGICAL_OPERATOR_UNSPECIFIED = 0 AND = 1 @@ -372,6 +390,7 @@ class TransformationResultCode(enum.IntEnum): SUCCESS (int) ERROR (int) """ + TRANSFORMATION_RESULT_CODE_UNSPECIFIED = 0 SUCCESS = 1 ERROR = 2 @@ -391,6 +410,7 @@ class Status(enum.IntEnum): PAUSED (int): Trigger is temporarily paused. CANCELLED (int): Trigger is cancelled and can not be resumed. """ + STATUS_UNSPECIFIED = 0 HEALTHY = 1 PAUSED = 2 @@ -408,6 +428,7 @@ class JobState(enum.IntEnum): CANCELED (int): The job was canceled before it could complete. FAILED (int): The job had an error and did not complete. """ + JOB_STATE_UNSPECIFIED = 0 PENDING = 1 RUNNING = 2 diff --git a/dlp/google/cloud/dlp_v2/gapic/transports/dlp_service_grpc_transport.py b/dlp/google/cloud/dlp_v2/gapic/transports/dlp_service_grpc_transport.py index cdad264a11a4..bee6774d952b 100644 --- a/dlp/google/cloud/dlp_v2/gapic/transports/dlp_service_grpc_transport.py +++ b/dlp/google/cloud/dlp_v2/gapic/transports/dlp_service_grpc_transport.py @@ -27,14 +27,14 @@ class DlpServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='dlp.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="dlp.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,27 +52,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'dlp_service_stub': dlp_pb2_grpc.DlpServiceStub(channel), - } + self._stubs = {"dlp_service_stub": dlp_pb2_grpc.DlpServiceStub(channel)} @classmethod - def create_channel(cls, address='dlp.googleapis.com:443', - credentials=None): + def create_channel(cls, address="dlp.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -87,9 +81,7 @@ def create_channel(cls, address='dlp.googleapis.com:443', grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -120,7 +112,7 @@ def inspect_content(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].InspectContent + return self._stubs["dlp_service_stub"].InspectContent @property def redact_image(self): @@ -140,7 +132,7 @@ def redact_image(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].RedactImage + return self._stubs["dlp_service_stub"].RedactImage @property def deidentify_content(self): @@ -160,7 +152,7 @@ def deidentify_content(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].DeidentifyContent + return self._stubs["dlp_service_stub"].DeidentifyContent @property def reidentify_content(self): @@ -175,7 +167,7 @@ def reidentify_content(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].ReidentifyContent + return self._stubs["dlp_service_stub"].ReidentifyContent @property def list_info_types(self): @@ -190,7 +182,7 @@ def list_info_types(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].ListInfoTypes + return self._stubs["dlp_service_stub"].ListInfoTypes @property def create_inspect_template(self): @@ -205,7 +197,7 @@ def create_inspect_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].CreateInspectTemplate + return self._stubs["dlp_service_stub"].CreateInspectTemplate @property def update_inspect_template(self): @@ -219,7 +211,7 @@ def update_inspect_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].UpdateInspectTemplate + return self._stubs["dlp_service_stub"].UpdateInspectTemplate @property def get_inspect_template(self): @@ -233,7 +225,7 @@ def get_inspect_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].GetInspectTemplate + return self._stubs["dlp_service_stub"].GetInspectTemplate @property def list_inspect_templates(self): @@ -247,7 +239,7 @@ def list_inspect_templates(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].ListInspectTemplates + return self._stubs["dlp_service_stub"].ListInspectTemplates @property def delete_inspect_template(self): @@ -261,7 +253,7 @@ def delete_inspect_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].DeleteInspectTemplate + return self._stubs["dlp_service_stub"].DeleteInspectTemplate @property def create_deidentify_template(self): @@ -277,7 +269,7 @@ def create_deidentify_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].CreateDeidentifyTemplate + return self._stubs["dlp_service_stub"].CreateDeidentifyTemplate @property def update_deidentify_template(self): @@ -292,7 +284,7 @@ def update_deidentify_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].UpdateDeidentifyTemplate + return self._stubs["dlp_service_stub"].UpdateDeidentifyTemplate @property def get_deidentify_template(self): @@ -307,7 +299,7 @@ def get_deidentify_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].GetDeidentifyTemplate + return self._stubs["dlp_service_stub"].GetDeidentifyTemplate @property def list_deidentify_templates(self): @@ -322,7 +314,7 @@ def list_deidentify_templates(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].ListDeidentifyTemplates + return self._stubs["dlp_service_stub"].ListDeidentifyTemplates @property def delete_deidentify_template(self): @@ -337,7 +329,7 @@ def delete_deidentify_template(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].DeleteDeidentifyTemplate + return self._stubs["dlp_service_stub"].DeleteDeidentifyTemplate @property def create_dlp_job(self): @@ -356,7 +348,7 @@ def create_dlp_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].CreateDlpJob + return self._stubs["dlp_service_stub"].CreateDlpJob @property def list_dlp_jobs(self): @@ -371,7 +363,7 @@ def list_dlp_jobs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].ListDlpJobs + return self._stubs["dlp_service_stub"].ListDlpJobs @property def get_dlp_job(self): @@ -386,7 +378,7 @@ def get_dlp_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].GetDlpJob + return self._stubs["dlp_service_stub"].GetDlpJob @property def delete_dlp_job(self): @@ -403,7 +395,7 @@ def delete_dlp_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].DeleteDlpJob + return self._stubs["dlp_service_stub"].DeleteDlpJob @property def cancel_dlp_job(self): @@ -420,7 +412,7 @@ def cancel_dlp_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].CancelDlpJob + return self._stubs["dlp_service_stub"].CancelDlpJob @property def list_job_triggers(self): @@ -434,7 +426,7 @@ def list_job_triggers(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].ListJobTriggers + return self._stubs["dlp_service_stub"].ListJobTriggers @property def get_job_trigger(self): @@ -448,7 +440,7 @@ def get_job_trigger(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].GetJobTrigger + return self._stubs["dlp_service_stub"].GetJobTrigger @property def delete_job_trigger(self): @@ -462,7 +454,7 @@ def delete_job_trigger(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].DeleteJobTrigger + return self._stubs["dlp_service_stub"].DeleteJobTrigger @property def update_job_trigger(self): @@ -476,7 +468,7 @@ def update_job_trigger(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].UpdateJobTrigger + return self._stubs["dlp_service_stub"].UpdateJobTrigger @property def create_job_trigger(self): @@ -491,7 +483,7 @@ def create_job_trigger(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].CreateJobTrigger + return self._stubs["dlp_service_stub"].CreateJobTrigger @property def create_stored_info_type(self): @@ -506,7 +498,7 @@ def create_stored_info_type(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].CreateStoredInfoType + return self._stubs["dlp_service_stub"].CreateStoredInfoType @property def update_stored_info_type(self): @@ -522,7 +514,7 @@ def update_stored_info_type(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].UpdateStoredInfoType + return self._stubs["dlp_service_stub"].UpdateStoredInfoType @property def get_stored_info_type(self): @@ -537,7 +529,7 @@ def get_stored_info_type(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].GetStoredInfoType + return self._stubs["dlp_service_stub"].GetStoredInfoType @property def list_stored_info_types(self): @@ -552,7 +544,7 @@ def list_stored_info_types(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].ListStoredInfoTypes + return self._stubs["dlp_service_stub"].ListStoredInfoTypes @property def delete_stored_info_type(self): @@ -567,4 +559,4 @@ def delete_stored_info_type(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['dlp_service_stub'].DeleteStoredInfoType + return self._stubs["dlp_service_stub"].DeleteStoredInfoType diff --git a/dlp/google/cloud/dlp_v2/types.py b/dlp/google/cloud/dlp_v2/types.py index cdcace49c2d5..35bc96ab5c93 100644 --- a/dlp/google/cloud/dlp_v2/types.py +++ b/dlp/google/cloud/dlp_v2/types.py @@ -45,10 +45,7 @@ timeofday_pb2, ] -_local_modules = [ - dlp_pb2, - storage_pb2, -] +_local_modules = [dlp_pb2, storage_pb2] names = [] @@ -58,7 +55,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.dlp_v2.types' + message.__module__ = "google.cloud.dlp_v2.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/dlp/tests/system/gapic/v2/test_system_dlp_service_v2.py b/dlp/tests/system/gapic/v2/test_system_dlp_service_v2.py index ffc78e5dc4cb..e24f6a22bf1b 100644 --- a/dlp/tests/system/gapic/v2/test_system_dlp_service_v2.py +++ b/dlp/tests/system/gapic/v2/test_system_dlp_service_v2.py @@ -21,13 +21,12 @@ class TestSystemDlpService(object): - def _get_project_id(self): - env_var_name = 'GOOGLE_APPLICATION_CREDENTIALS' + env_var_name = "GOOGLE_APPLICATION_CREDENTIALS" path = os.environ[env_var_name] - json_data=open(path).read() + json_data = open(path).read() data = json.loads(json_data) - return data['project_id'] + return data["project_id"] def test_inspect_content(self): # get project id from json file @@ -35,12 +34,8 @@ def test_inspect_content(self): client = dlp_v2.DlpServiceClient() min_likelihood = enums.Likelihood.POSSIBLE - info_types = [{'name': 'FIRST_NAME'}, {'name': 'LAST_NAME'}] - inspect_config = { - 'info_types': info_types, - 'min_likelihood': min_likelihood, - } - item = {'value': 'Robert Frost'} + info_types = [{"name": "FIRST_NAME"}, {"name": "LAST_NAME"}] + inspect_config = {"info_types": info_types, "min_likelihood": min_likelihood} + item = {"value": "Robert Frost"} parent = client.project_path(project_id) response = client.inspect_content(parent, inspect_config, item) - diff --git a/dlp/tests/unit/gapic/v2/test_dlp_service_client_v2.py b/dlp/tests/unit/gapic/v2/test_dlp_service_client_v2.py index b59d84823257..0482d6fabb9b 100644 --- a/dlp/tests/unit/gapic/v2/test_dlp_service_client_v2.py +++ b/dlp/tests/unit/gapic/v2/test_dlp_service_client_v2.py @@ -51,10 +51,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,13 +67,13 @@ def test_inspect_content(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") response = client.inspect_content(parent) assert expected_response == response @@ -89,36 +86,36 @@ def test_inspect_content(self): def test_inspect_content_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") with pytest.raises(CustomException): client.inspect_content(parent) def test_redact_image(self): # Setup Expected Response - redacted_image = b'28' - extracted_text = 'extractedText998260012' + redacted_image = b"28" + extracted_text = "extractedText998260012" expected_response = { - 'redacted_image': redacted_image, - 'extracted_text': extracted_text + "redacted_image": redacted_image, + "extracted_text": extracted_text, } expected_response = dlp_pb2.RedactImageResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") response = client.redact_image(parent) assert expected_response == response @@ -131,13 +128,13 @@ def test_redact_image(self): def test_redact_image_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") with pytest.raises(CustomException): client.redact_image(parent) @@ -145,18 +142,17 @@ def test_redact_image_exception(self): def test_deidentify_content(self): # Setup Expected Response expected_response = {} - expected_response = dlp_pb2.DeidentifyContentResponse( - **expected_response) + expected_response = dlp_pb2.DeidentifyContentResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") response = client.deidentify_content(parent) assert expected_response == response @@ -169,13 +165,13 @@ def test_deidentify_content(self): def test_deidentify_content_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") with pytest.raises(CustomException): client.deidentify_content(parent) @@ -183,18 +179,17 @@ def test_deidentify_content_exception(self): def test_reidentify_content(self): # Setup Expected Response expected_response = {} - expected_response = dlp_pb2.ReidentifyContentResponse( - **expected_response) + expected_response = dlp_pb2.ReidentifyContentResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") response = client.reidentify_content(parent) assert expected_response == response @@ -207,13 +202,13 @@ def test_reidentify_content(self): def test_reidentify_content_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") with pytest.raises(CustomException): client.reidentify_content(parent) @@ -225,7 +220,7 @@ def test_list_info_types(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() @@ -241,7 +236,7 @@ def test_list_info_types(self): def test_list_info_types_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() @@ -251,25 +246,25 @@ def test_list_info_types_exception(self): def test_create_inspect_template(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description + "name": name, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.InspectTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") response = client.create_inspect_template(parent) assert expected_response == response @@ -282,39 +277,40 @@ def test_create_inspect_template(self): def test_create_inspect_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") with pytest.raises(CustomException): client.create_inspect_template(parent) def test_update_inspect_template(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'description': description + "name": name_2, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.InspectTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request name = client.organization_inspect_template_path( - '[ORGANIZATION]', '[INSPECT_TEMPLATE]') + "[ORGANIZATION]", "[INSPECT_TEMPLATE]" + ) response = client.update_inspect_template(name) assert expected_response == response @@ -327,33 +323,34 @@ def test_update_inspect_template(self): def test_update_inspect_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request name = client.organization_inspect_template_path( - '[ORGANIZATION]', '[INSPECT_TEMPLATE]') + "[ORGANIZATION]", "[INSPECT_TEMPLATE]" + ) with pytest.raises(CustomException): client.update_inspect_template(name) def test_get_inspect_template(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description + "name": name, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.InspectTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() @@ -369,7 +366,7 @@ def test_get_inspect_template(self): def test_get_inspect_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() @@ -379,25 +376,24 @@ def test_get_inspect_template_exception(self): def test_list_inspect_templates(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" inspect_templates_element = {} inspect_templates = [inspect_templates_element] expected_response = { - 'next_page_token': next_page_token, - 'inspect_templates': inspect_templates + "next_page_token": next_page_token, + "inspect_templates": inspect_templates, } - expected_response = dlp_pb2.ListInspectTemplatesResponse( - **expected_response) + expected_response = dlp_pb2.ListInspectTemplatesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_inspect_templates(parent) resources = list(paged_list_response) @@ -412,13 +408,13 @@ def test_list_inspect_templates(self): def test_list_inspect_templates_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_inspect_templates(parent) with pytest.raises(CustomException): @@ -426,14 +422,15 @@ def test_list_inspect_templates_exception(self): def test_delete_inspect_template(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request name = client.organization_inspect_template_path( - '[ORGANIZATION]', '[INSPECT_TEMPLATE]') + "[ORGANIZATION]", "[INSPECT_TEMPLATE]" + ) client.delete_inspect_template(name) @@ -445,85 +442,86 @@ def test_delete_inspect_template(self): def test_delete_inspect_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request name = client.organization_inspect_template_path( - '[ORGANIZATION]', '[INSPECT_TEMPLATE]') + "[ORGANIZATION]", "[INSPECT_TEMPLATE]" + ) with pytest.raises(CustomException): client.delete_inspect_template(name) def test_create_deidentify_template(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description + "name": name, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.DeidentifyTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") response = client.create_deidentify_template(parent) assert expected_response == response assert len(channel.requests) == 1 - expected_request = dlp_pb2.CreateDeidentifyTemplateRequest( - parent=parent) + expected_request = dlp_pb2.CreateDeidentifyTemplateRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_deidentify_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") with pytest.raises(CustomException): client.create_deidentify_template(parent) def test_update_deidentify_template(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'description': description + "name": name_2, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.DeidentifyTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request name = client.organization_deidentify_template_path( - '[ORGANIZATION]', '[DEIDENTIFY_TEMPLATE]') + "[ORGANIZATION]", "[DEIDENTIFY_TEMPLATE]" + ) response = client.update_deidentify_template(name) assert expected_response == response @@ -536,40 +534,42 @@ def test_update_deidentify_template(self): def test_update_deidentify_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request name = client.organization_deidentify_template_path( - '[ORGANIZATION]', '[DEIDENTIFY_TEMPLATE]') + "[ORGANIZATION]", "[DEIDENTIFY_TEMPLATE]" + ) with pytest.raises(CustomException): client.update_deidentify_template(name) def test_get_deidentify_template(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'description': description + "name": name_2, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.DeidentifyTemplate(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request name = client.organization_deidentify_template_path( - '[ORGANIZATION]', '[DEIDENTIFY_TEMPLATE]') + "[ORGANIZATION]", "[DEIDENTIFY_TEMPLATE]" + ) response = client.get_deidentify_template(name) assert expected_response == response @@ -582,39 +582,39 @@ def test_get_deidentify_template(self): def test_get_deidentify_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request name = client.organization_deidentify_template_path( - '[ORGANIZATION]', '[DEIDENTIFY_TEMPLATE]') + "[ORGANIZATION]", "[DEIDENTIFY_TEMPLATE]" + ) with pytest.raises(CustomException): client.get_deidentify_template(name) def test_list_deidentify_templates(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" deidentify_templates_element = {} deidentify_templates = [deidentify_templates_element] expected_response = { - 'next_page_token': next_page_token, - 'deidentify_templates': deidentify_templates + "next_page_token": next_page_token, + "deidentify_templates": deidentify_templates, } - expected_response = dlp_pb2.ListDeidentifyTemplatesResponse( - **expected_response) + expected_response = dlp_pb2.ListDeidentifyTemplatesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_deidentify_templates(parent) resources = list(paged_list_response) @@ -623,20 +623,19 @@ def test_list_deidentify_templates(self): assert expected_response.deidentify_templates[0] == resources[0] assert len(channel.requests) == 1 - expected_request = dlp_pb2.ListDeidentifyTemplatesRequest( - parent=parent) + expected_request = dlp_pb2.ListDeidentifyTemplatesRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_deidentify_templates_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_deidentify_templates(parent) with pytest.raises(CustomException): @@ -644,14 +643,15 @@ def test_list_deidentify_templates_exception(self): def test_delete_deidentify_template(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request name = client.organization_deidentify_template_path( - '[ORGANIZATION]', '[DEIDENTIFY_TEMPLATE]') + "[ORGANIZATION]", "[DEIDENTIFY_TEMPLATE]" + ) client.delete_deidentify_template(name) @@ -663,37 +663,35 @@ def test_delete_deidentify_template(self): def test_delete_deidentify_template_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request name = client.organization_deidentify_template_path( - '[ORGANIZATION]', '[DEIDENTIFY_TEMPLATE]') + "[ORGANIZATION]", "[DEIDENTIFY_TEMPLATE]" + ) with pytest.raises(CustomException): client.delete_deidentify_template(name) def test_create_dlp_job(self): # Setup Expected Response - name = 'name3373707' - job_trigger_name = 'jobTriggerName1819490804' - expected_response = { - 'name': name, - 'job_trigger_name': job_trigger_name - } + name = "name3373707" + job_trigger_name = "jobTriggerName1819490804" + expected_response = {"name": name, "job_trigger_name": job_trigger_name} expected_response = dlp_pb2.DlpJob(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") response = client.create_dlp_job(parent) assert expected_response == response @@ -706,34 +704,34 @@ def test_create_dlp_job(self): def test_create_dlp_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") with pytest.raises(CustomException): client.create_dlp_job(parent) def test_list_dlp_jobs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" jobs_element = {} jobs = [jobs_element] - expected_response = {'next_page_token': next_page_token, 'jobs': jobs} + expected_response = {"next_page_token": next_page_token, "jobs": jobs} expected_response = dlp_pb2.ListDlpJobsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_dlp_jobs(parent) resources = list(paged_list_response) @@ -748,13 +746,13 @@ def test_list_dlp_jobs(self): def test_list_dlp_jobs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_dlp_jobs(parent) with pytest.raises(CustomException): @@ -762,23 +760,20 @@ def test_list_dlp_jobs_exception(self): def test_get_dlp_job(self): # Setup Expected Response - name_2 = 'name2-1052831874' - job_trigger_name = 'jobTriggerName1819490804' - expected_response = { - 'name': name_2, - 'job_trigger_name': job_trigger_name - } + name_2 = "name2-1052831874" + job_trigger_name = "jobTriggerName1819490804" + expected_response = {"name": name_2, "job_trigger_name": job_trigger_name} expected_response = dlp_pb2.DlpJob(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - name = client.dlp_job_path('[PROJECT]', '[DLP_JOB]') + name = client.dlp_job_path("[PROJECT]", "[DLP_JOB]") response = client.get_dlp_job(name) assert expected_response == response @@ -791,26 +786,26 @@ def test_get_dlp_job(self): def test_get_dlp_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - name = client.dlp_job_path('[PROJECT]', '[DLP_JOB]') + name = client.dlp_job_path("[PROJECT]", "[DLP_JOB]") with pytest.raises(CustomException): client.get_dlp_job(name) def test_delete_dlp_job(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - name = client.dlp_job_path('[PROJECT]', '[DLP_JOB]') + name = client.dlp_job_path("[PROJECT]", "[DLP_JOB]") client.delete_dlp_job(name) @@ -822,26 +817,26 @@ def test_delete_dlp_job(self): def test_delete_dlp_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - name = client.dlp_job_path('[PROJECT]', '[DLP_JOB]') + name = client.dlp_job_path("[PROJECT]", "[DLP_JOB]") with pytest.raises(CustomException): client.delete_dlp_job(name) def test_cancel_dlp_job(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - name = client.dlp_job_path('[PROJECT]', '[DLP_JOB]') + name = client.dlp_job_path("[PROJECT]", "[DLP_JOB]") client.cancel_dlp_job(name) @@ -853,38 +848,37 @@ def test_cancel_dlp_job(self): def test_cancel_dlp_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - name = client.dlp_job_path('[PROJECT]', '[DLP_JOB]') + name = client.dlp_job_path("[PROJECT]", "[DLP_JOB]") with pytest.raises(CustomException): client.cancel_dlp_job(name) def test_list_job_triggers(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" job_triggers_element = {} job_triggers = [job_triggers_element] expected_response = { - 'next_page_token': next_page_token, - 'job_triggers': job_triggers + "next_page_token": next_page_token, + "job_triggers": job_triggers, } - expected_response = dlp_pb2.ListJobTriggersResponse( - **expected_response) + expected_response = dlp_pb2.ListJobTriggersResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_job_triggers(parent) resources = list(paged_list_response) @@ -899,13 +893,13 @@ def test_list_job_triggers(self): def test_list_job_triggers_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_job_triggers(parent) with pytest.raises(CustomException): @@ -913,25 +907,25 @@ def test_list_job_triggers_exception(self): def test_get_job_trigger(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'description': description + "name": name_2, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.JobTrigger(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - name = client.project_job_trigger_path('[PROJECT]', '[JOB_TRIGGER]') + name = client.project_job_trigger_path("[PROJECT]", "[JOB_TRIGGER]") response = client.get_job_trigger(name) assert expected_response == response @@ -944,26 +938,26 @@ def test_get_job_trigger(self): def test_get_job_trigger_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - name = client.project_job_trigger_path('[PROJECT]', '[JOB_TRIGGER]') + name = client.project_job_trigger_path("[PROJECT]", "[JOB_TRIGGER]") with pytest.raises(CustomException): client.get_job_trigger(name) def test_delete_job_trigger(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - name = 'name3373707' + name = "name3373707" client.delete_job_trigger(name) @@ -975,38 +969,38 @@ def test_delete_job_trigger(self): def test_delete_job_trigger_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - name = 'name3373707' + name = "name3373707" with pytest.raises(CustomException): client.delete_job_trigger(name) def test_update_job_trigger(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'description': description + "name": name_2, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.JobTrigger(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - name = client.project_job_trigger_path('[PROJECT]', '[JOB_TRIGGER]') + name = client.project_job_trigger_path("[PROJECT]", "[JOB_TRIGGER]") response = client.update_job_trigger(name) assert expected_response == response @@ -1019,38 +1013,38 @@ def test_update_job_trigger(self): def test_update_job_trigger_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - name = client.project_job_trigger_path('[PROJECT]', '[JOB_TRIGGER]') + name = client.project_job_trigger_path("[PROJECT]", "[JOB_TRIGGER]") with pytest.raises(CustomException): client.update_job_trigger(name) def test_create_job_trigger(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description + "name": name, + "display_name": display_name, + "description": description, } expected_response = dlp_pb2.JobTrigger(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") response = client.create_job_trigger(parent) assert expected_response == response @@ -1063,32 +1057,32 @@ def test_create_job_trigger(self): def test_create_job_trigger_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") with pytest.raises(CustomException): client.create_job_trigger(parent) def test_create_stored_info_type(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = dlp_pb2.StoredInfoType(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") response = client.create_stored_info_type(parent) assert expected_response == response @@ -1101,33 +1095,34 @@ def test_create_stored_info_type(self): def test_create_stored_info_type_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") with pytest.raises(CustomException): client.create_stored_info_type(parent) def test_update_stored_info_type(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = dlp_pb2.StoredInfoType(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request name = client.organization_stored_info_type_path( - '[ORGANIZATION]', '[STORED_INFO_TYPE]') + "[ORGANIZATION]", "[STORED_INFO_TYPE]" + ) response = client.update_stored_info_type(name) assert expected_response == response @@ -1140,34 +1135,36 @@ def test_update_stored_info_type(self): def test_update_stored_info_type_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request name = client.organization_stored_info_type_path( - '[ORGANIZATION]', '[STORED_INFO_TYPE]') + "[ORGANIZATION]", "[STORED_INFO_TYPE]" + ) with pytest.raises(CustomException): client.update_stored_info_type(name) def test_get_stored_info_type(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = dlp_pb2.StoredInfoType(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request name = client.organization_stored_info_type_path( - '[ORGANIZATION]', '[STORED_INFO_TYPE]') + "[ORGANIZATION]", "[STORED_INFO_TYPE]" + ) response = client.get_stored_info_type(name) assert expected_response == response @@ -1180,39 +1177,39 @@ def test_get_stored_info_type(self): def test_get_stored_info_type_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request name = client.organization_stored_info_type_path( - '[ORGANIZATION]', '[STORED_INFO_TYPE]') + "[ORGANIZATION]", "[STORED_INFO_TYPE]" + ) with pytest.raises(CustomException): client.get_stored_info_type(name) def test_list_stored_info_types(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" stored_info_types_element = {} stored_info_types = [stored_info_types_element] expected_response = { - 'next_page_token': next_page_token, - 'stored_info_types': stored_info_types + "next_page_token": next_page_token, + "stored_info_types": stored_info_types, } - expected_response = dlp_pb2.ListStoredInfoTypesResponse( - **expected_response) + expected_response = dlp_pb2.ListStoredInfoTypesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_stored_info_types(parent) resources = list(paged_list_response) @@ -1227,13 +1224,13 @@ def test_list_stored_info_types(self): def test_list_stored_info_types_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_stored_info_types(parent) with pytest.raises(CustomException): @@ -1241,14 +1238,15 @@ def test_list_stored_info_types_exception(self): def test_delete_stored_info_type(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup Request name = client.organization_stored_info_type_path( - '[ORGANIZATION]', '[STORED_INFO_TYPE]') + "[ORGANIZATION]", "[STORED_INFO_TYPE]" + ) client.delete_stored_info_type(name) @@ -1260,14 +1258,15 @@ def test_delete_stored_info_type(self): def test_delete_stored_info_type_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = dlp_v2.DlpServiceClient() # Setup request name = client.organization_stored_info_type_path( - '[ORGANIZATION]', '[STORED_INFO_TYPE]') + "[ORGANIZATION]", "[STORED_INFO_TYPE]" + ) with pytest.raises(CustomException): client.delete_stored_info_type(name) diff --git a/error_reporting/docs/conf.py b/error_reporting/docs/conf.py index 5c67ea1badda..bad104f28b17 100644 --- a/error_reporting/docs/conf.py +++ b/error_reporting/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-error-reporting' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-error-reporting" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-error-reporting-doc' +htmlhelp_basename = "google-cloud-error-reporting-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-error-reporting.tex', - u'google-cloud-error-reporting Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-error-reporting.tex", + u"google-cloud-error-reporting Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-error-reporting', - u'google-cloud-error-reporting Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-error-reporting", + u"google-cloud-error-reporting Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-error-reporting', - u'google-cloud-error-reporting Documentation', author, - 'google-cloud-error-reporting', - 'GAPIC library for the {metadata.shortName} v1beta1 service', 'APIs'), + ( + master_doc, + "google-cloud-error-reporting", + u"google-cloud-error-reporting Documentation", + author, + "google-cloud-error-reporting", + "GAPIC library for the {metadata.shortName} v1beta1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/error_reporting/google/__init__.py b/error_reporting/google/__init__.py index 9ee9bf4342ab..0e1bc5131ba6 100644 --- a/error_reporting/google/__init__.py +++ b/error_reporting/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/error_reporting/google/cloud/__init__.py b/error_reporting/google/cloud/__init__.py index 9ee9bf4342ab..0e1bc5131ba6 100644 --- a/error_reporting/google/cloud/__init__.py +++ b/error_reporting/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/error_reporting/google/cloud/error_reporting/__init__.py b/error_reporting/google/cloud/error_reporting/__init__.py index e1890b39b3c2..9443b99e3d24 100644 --- a/error_reporting/google/cloud/error_reporting/__init__.py +++ b/error_reporting/google/cloud/error_reporting/__init__.py @@ -16,10 +16,11 @@ from pkg_resources import get_distribution -__version__ = get_distribution('google-cloud-error-reporting').version + +__version__ = get_distribution("google-cloud-error-reporting").version from google.cloud.error_reporting.client import Client from google.cloud.error_reporting.client import HTTPContext from google.cloud.error_reporting.util import build_flask_context -__all__ = ['__version__', 'Client', 'HTTPContext', 'build_flask_context'] +__all__ = ["__version__", "Client", "HTTPContext", "build_flask_context"] diff --git a/error_reporting/google/cloud/error_reporting/_gapic.py b/error_reporting/google/cloud/error_reporting/_gapic.py index 6ce0bb967a65..227092f9bfb0 100644 --- a/error_reporting/google/cloud/error_reporting/_gapic.py +++ b/error_reporting/google/cloud/error_reporting/_gapic.py @@ -17,14 +17,11 @@ from google.api_core.gapic_v1 import client_info from google.cloud.error_reporting import __version__ -from google.cloud.errorreporting_v1beta1.gapic import ( - report_errors_service_client) -from google.cloud.errorreporting_v1beta1.proto import ( - report_errors_service_pb2) +from google.cloud.errorreporting_v1beta1.gapic import report_errors_service_client +from google.cloud.errorreporting_v1beta1.proto import report_errors_service_pb2 from google.protobuf.json_format import ParseDict -_CLIENT_INFO = client_info.ClientInfo( - client_library_version=__version__) +_CLIENT_INFO = client_info.ClientInfo(client_library_version=__version__) def make_report_error_api(client): @@ -37,7 +34,8 @@ def make_report_error_api(client): :returns: An Error Reporting API instance. """ gax_client = report_errors_service_client.ReportErrorsServiceClient( - credentials=client._credentials, client_info=_CLIENT_INFO) + credentials=client._credentials, client_info=_CLIENT_INFO + ) return _ErrorReportingGapicApi(gax_client, client.project) diff --git a/error_reporting/google/cloud/error_reporting/_logging.py b/error_reporting/google/cloud/error_reporting/_logging.py index f0e5a0f274ec..b09488914ce9 100644 --- a/error_reporting/google/cloud/error_reporting/_logging.py +++ b/error_reporting/google/cloud/error_reporting/_logging.py @@ -46,9 +46,11 @@ class _ErrorReportingLoggingAPI(object): This parameter should be considered private, and could change in the future. """ + def __init__(self, project, credentials=None, _http=None): self.logging_client = google.cloud.logging.client.Client( - project, credentials, _http=_http) + project, credentials, _http=_http + ) def report_error_event(self, error_report): """Report error payload. @@ -60,5 +62,5 @@ def report_error_event(self, error_report): This object should be built using :meth:~`google.cloud.error_reporting.client._build_error_report` """ - logger = self.logging_client.logger('errors') + logger = self.logging_client.logger("errors") logger.log_struct(error_report) diff --git a/error_reporting/google/cloud/error_reporting/client.py b/error_reporting/google/cloud/error_reporting/client.py index c331bd298b06..699fbdb7d97f 100644 --- a/error_reporting/google/cloud/error_reporting/client.py +++ b/error_reporting/google/cloud/error_reporting/client.py @@ -19,6 +19,7 @@ try: from google.cloud.error_reporting._gapic import make_report_error_api + _HAVE_GRPC = True except ImportError: # pragma: NO COVER _HAVE_GRPC = False @@ -61,9 +62,15 @@ class HTTPContext(object): provided in the error report. """ - def __init__(self, method=None, url=None, - user_agent=None, referrer=None, - response_status_code=None, remote_ip=None): + def __init__( + self, + method=None, + url=None, + user_agent=None, + referrer=None, + response_status_code=None, + remote_ip=None, + ): self.method = method self.url = url # intentionally camel case for mapping to JSON API expects @@ -125,17 +132,21 @@ class Client(ClientWithProject): set in the environment. """ - SCOPE = ('https://www.googleapis.com/auth/cloud-platform',) + SCOPE = ("https://www.googleapis.com/auth/cloud-platform",) """The scopes required for authenticating as an API consumer.""" - def __init__(self, project=None, - credentials=None, - _http=None, - service=None, - version=None, - _use_grpc=None): - super(Client, self).__init__(project=project, credentials=credentials, - _http=_http) + def __init__( + self, + project=None, + credentials=None, + _http=None, + service=None, + version=None, + _use_grpc=None, + ): + super(Client, self).__init__( + project=project, credentials=credentials, _http=_http + ) self._report_errors_api = None self.service = service if service else self.DEFAULT_SERVICE @@ -145,7 +156,7 @@ def __init__(self, project=None, else: self._use_grpc = _use_grpc - DEFAULT_SERVICE = 'python' + DEFAULT_SERVICE = "python" @property def report_errors_api(self): @@ -166,14 +177,13 @@ def report_errors_api(self): self._report_errors_api = make_report_error_api(self) else: self._report_errors_api = _ErrorReportingLoggingAPI( - self.project, self._credentials, self._http) + self.project, self._credentials, self._http + ) return self._report_errors_api - def _build_error_report(self, - message, - report_location=None, - http_context=None, - user=None): + def _build_error_report( + self, message, report_location=None, http_context=None, user=None + ): """Builds the Error Reporting object to report. This builds the object according to @@ -211,37 +221,34 @@ def _build_error_report(self, the API. """ payload = { - 'serviceContext': { - 'service': self.service, - }, - 'message': '{0}'.format(message) + "serviceContext": {"service": self.service}, + "message": "{0}".format(message), } if self.version: - payload['serviceContext']['version'] = self.version + payload["serviceContext"]["version"] = self.version if report_location or http_context or user: - payload['context'] = {} + payload["context"] = {} if report_location: - payload['context']['reportLocation'] = report_location + payload["context"]["reportLocation"] = report_location if http_context: http_context_dict = http_context.__dict__ # strip out None values - payload['context']['httpRequest'] = { - key: value for key, value in six.iteritems(http_context_dict) + payload["context"]["httpRequest"] = { + key: value + for key, value in six.iteritems(http_context_dict) if value is not None } if user: - payload['context']['user'] = user + payload["context"]["user"] = user return payload - def _send_error_report(self, - message, - report_location=None, - http_context=None, - user=None): + def _send_error_report( + self, message, report_location=None, http_context=None, user=None + ): """Makes the call to the Error Reporting API. This is the lower-level interface to build and send the payload, @@ -275,8 +282,9 @@ def _send_error_report(self, use other data, such as remote IP address, to distinguish affected users. """ - error_report = self._build_error_report(message, report_location, - http_context, user) + error_report = self._build_error_report( + message, report_location, http_context, user + ) self.report_errors_api.report_error_event(error_report) def report(self, message, http_context=None, user=None): @@ -312,15 +320,17 @@ def report(self, message, http_context=None, user=None): line_number = last_call[1] function_name = last_call[2] report_location = { - 'filePath': file_path, - 'lineNumber': line_number, - 'functionName': function_name + "filePath": file_path, + "lineNumber": line_number, + "functionName": function_name, } - self._send_error_report(message, - http_context=http_context, - user=user, - report_location=report_location) + self._send_error_report( + message, + http_context=http_context, + user=user, + report_location=report_location, + ) def report_exception(self, http_context=None, user=None): """ Reports the details of the latest exceptions to Stackdriver Error @@ -346,6 +356,6 @@ def report_exception(self, http_context=None, user=None): >>> except Exception: >>> client.report_exception() """ - self._send_error_report(traceback.format_exc(), - http_context=http_context, - user=user) + self._send_error_report( + traceback.format_exc(), http_context=http_context, user=user + ) diff --git a/error_reporting/google/cloud/error_reporting/util.py b/error_reporting/google/cloud/error_reporting/util.py index 8cbe4bdea471..151540cdb855 100644 --- a/error_reporting/google/cloud/error_reporting/util.py +++ b/error_reporting/google/cloud/error_reporting/util.py @@ -38,7 +38,10 @@ def build_flask_context(request): :returns: An HTTPContext object ready to be sent to the Stackdriver Error Reporting API. """ - return HTTPContext(url=request.url, method=request.method, - user_agent=request.user_agent.string, - referrer=request.referrer, - remote_ip=request.remote_addr) + return HTTPContext( + url=request.url, + method=request.method, + user_agent=request.user_agent.string, + referrer=request.referrer, + remote_ip=request.remote_addr, + ) diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/__init__.py b/error_reporting/google/cloud/errorreporting_v1beta1/__init__.py index 89c9fe7c639b..9553e4a4738c 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/__init__.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/__init__.py @@ -16,36 +16,30 @@ from google.cloud.errorreporting_v1beta1 import types from google.cloud.errorreporting_v1beta1.gapic import enums -from google.cloud.errorreporting_v1beta1.gapic import ( - error_group_service_client) -from google.cloud.errorreporting_v1beta1.gapic import ( - error_stats_service_client) -from google.cloud.errorreporting_v1beta1.gapic import ( - report_errors_service_client) +from google.cloud.errorreporting_v1beta1.gapic import error_group_service_client +from google.cloud.errorreporting_v1beta1.gapic import error_stats_service_client +from google.cloud.errorreporting_v1beta1.gapic import report_errors_service_client -class ErrorGroupServiceClient( - error_group_service_client.ErrorGroupServiceClient): +class ErrorGroupServiceClient(error_group_service_client.ErrorGroupServiceClient): __doc__ = error_group_service_client.ErrorGroupServiceClient.__doc__ enums = enums -class ErrorStatsServiceClient( - error_stats_service_client.ErrorStatsServiceClient): +class ErrorStatsServiceClient(error_stats_service_client.ErrorStatsServiceClient): __doc__ = error_stats_service_client.ErrorStatsServiceClient.__doc__ enums = enums -class ReportErrorsServiceClient( - report_errors_service_client.ReportErrorsServiceClient): +class ReportErrorsServiceClient(report_errors_service_client.ReportErrorsServiceClient): __doc__ = report_errors_service_client.ReportErrorsServiceClient.__doc__ enums = enums __all__ = ( - 'enums', - 'types', - 'ErrorGroupServiceClient', - 'ErrorStatsServiceClient', - 'ReportErrorsServiceClient', + "enums", + "types", + "ErrorGroupServiceClient", + "ErrorStatsServiceClient", + "ReportErrorsServiceClient", ) diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/enums.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/enums.py index 0d176b182c42..056758bbfe7e 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/enums.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/enums.py @@ -35,6 +35,7 @@ class TimedCountAlignment(enum.IntEnum): period. This can result in a different size of the first time period. """ + ERROR_COUNT_ALIGNMENT_UNSPECIFIED = 0 ALIGNMENT_EQUAL_ROUNDED = 1 ALIGNMENT_EQUAL_AT_END = 2 @@ -52,6 +53,7 @@ class ErrorGroupOrder(enum.IntEnum): CREATED_DESC (int): Timestamp when the group was created in descending order. AFFECTED_USERS_DESC (int): Number of affected users in the given time window in descending order. """ + GROUP_ORDER_UNSPECIFIED = 0 COUNT_DESC = 1 LAST_SEEN_DESC = 2 @@ -77,6 +79,7 @@ class Period(enum.IntEnum): PERIOD_30_DAYS (int): Retrieve data for the last 30 days. Recommended minimum timed count duration: 1 day. """ + PERIOD_UNSPECIFIED = 0 PERIOD_1_HOUR = 1 PERIOD_6_HOURS = 2 diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_group_service_client.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_group_service_client.py index 760e86572a31..08d90ac63832 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_group_service_client.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_group_service_client.py @@ -28,24 +28,27 @@ from google.cloud.errorreporting_v1beta1.gapic import enums from google.cloud.errorreporting_v1beta1.gapic import error_group_service_client_config -from google.cloud.errorreporting_v1beta1.gapic.transports import error_group_service_grpc_transport +from google.cloud.errorreporting_v1beta1.gapic.transports import ( + error_group_service_grpc_transport, +) from google.cloud.errorreporting_v1beta1.proto import common_pb2 from google.cloud.errorreporting_v1beta1.proto import error_group_service_pb2 from google.cloud.errorreporting_v1beta1.proto import error_group_service_pb2_grpc _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-error-reporting', ).version + "google-cloud-error-reporting" +).version class ErrorGroupServiceClient(object): """Service for retrieving and updating individual error groups.""" - SERVICE_ADDRESS = 'clouderrorreporting.googleapis.com:443' + SERVICE_ADDRESS = "clouderrorreporting.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.devtools.clouderrorreporting.v1beta1.ErrorGroupService' + _INTERFACE_NAME = "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -61,9 +64,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ErrorGroupServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -72,17 +74,17 @@ def from_service_account_file(cls, filename, *args, **kwargs): def group_path(cls, project, group): """Return a fully-qualified group string.""" return google.api_core.path_template.expand( - 'projects/{project}/groups/{group}', - project=project, - group=group, + "projects/{project}/groups/{group}", project=project, group=group ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -116,18 +118,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = error_group_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -136,25 +139,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=error_group_service_grpc_transport. - ErrorGroupServiceGrpcTransport, + default_class=error_group_service_grpc_transport.ErrorGroupServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = error_group_service_grpc_transport.ErrorGroupServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -164,7 +166,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -173,11 +176,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def get_group(self, - group_name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_group( + self, + group_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Get the specified group. @@ -216,25 +221,28 @@ def get_group(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_group' not in self._inner_api_calls: + if "get_group" not in self._inner_api_calls: self._inner_api_calls[ - 'get_group'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_group, - default_retry=self._method_configs['GetGroup'].retry, - default_timeout=self._method_configs['GetGroup'].timeout, - client_info=self._client_info, - ) + "get_group" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_group, + default_retry=self._method_configs["GetGroup"].retry, + default_timeout=self._method_configs["GetGroup"].timeout, + client_info=self._client_info, + ) - request = error_group_service_pb2.GetGroupRequest( - group_name=group_name, ) - return self._inner_api_calls['get_group']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = error_group_service_pb2.GetGroupRequest(group_name=group_name) + return self._inner_api_calls["get_group"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_group(self, - group, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_group( + self, + group, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Replace the data for the specified group. Fails if the group does not exist. @@ -274,16 +282,17 @@ def update_group(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_group' not in self._inner_api_calls: + if "update_group" not in self._inner_api_calls: self._inner_api_calls[ - 'update_group'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_group, - default_retry=self._method_configs['UpdateGroup'].retry, - default_timeout=self._method_configs['UpdateGroup']. - timeout, - client_info=self._client_info, - ) + "update_group" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_group, + default_retry=self._method_configs["UpdateGroup"].retry, + default_timeout=self._method_configs["UpdateGroup"].timeout, + client_info=self._client_info, + ) - request = error_group_service_pb2.UpdateGroupRequest(group=group, ) - return self._inner_api_calls['update_group']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = error_group_service_pb2.UpdateGroupRequest(group=group) + return self._inner_api_calls["update_group"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_group_service_client_config.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_group_service_client_config.py index cff4fca5a4c5..e70ec324be62 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_group_service_client_config.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_group_service_client_config.py @@ -3,7 +3,7 @@ "google.devtools.clouderrorreporting.v1beta1.ErrorGroupService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,21 +13,21 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "GetGroup": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateGroup": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_stats_service_client.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_stats_service_client.py index 12e0c9f4261b..286a6ca66e46 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_stats_service_client.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_stats_service_client.py @@ -30,7 +30,9 @@ from google.cloud.errorreporting_v1beta1.gapic import enums from google.cloud.errorreporting_v1beta1.gapic import error_stats_service_client_config -from google.cloud.errorreporting_v1beta1.gapic.transports import error_stats_service_grpc_transport +from google.cloud.errorreporting_v1beta1.gapic.transports import ( + error_stats_service_grpc_transport, +) from google.cloud.errorreporting_v1beta1.proto import common_pb2 from google.cloud.errorreporting_v1beta1.proto import error_group_service_pb2 from google.cloud.errorreporting_v1beta1.proto import error_group_service_pb2_grpc @@ -40,7 +42,8 @@ from google.protobuf import timestamp_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-error-reporting', ).version + "google-cloud-error-reporting" +).version class ErrorStatsServiceClient(object): @@ -49,12 +52,12 @@ class ErrorStatsServiceClient(object): individual events. """ - SERVICE_ADDRESS = 'clouderrorreporting.googleapis.com:443' + SERVICE_ADDRESS = "clouderrorreporting.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.devtools.clouderrorreporting.v1beta1.ErrorStatsService' + _INTERFACE_NAME = "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -70,9 +73,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ErrorStatsServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -81,16 +83,17 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -124,18 +127,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = error_stats_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -144,25 +148,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=error_stats_service_grpc_transport. - ErrorStatsServiceGrpcTransport, + default_class=error_stats_service_grpc_transport.ErrorStatsServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = error_stats_service_grpc_transport.ErrorStatsServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -172,7 +175,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -181,19 +185,21 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_group_stats(self, - project_name, - time_range, - group_id=None, - service_filter=None, - timed_count_duration=None, - alignment=None, - alignment_time=None, - order=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_group_stats( + self, + project_name, + time_range, + group_id=None, + service_filter=None, + timed_count_duration=None, + alignment=None, + alignment_time=None, + order=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the specified groups. @@ -284,15 +290,15 @@ def list_group_stats(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_group_stats' not in self._inner_api_calls: + if "list_group_stats" not in self._inner_api_calls: self._inner_api_calls[ - 'list_group_stats'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_group_stats, - default_retry=self._method_configs['ListGroupStats'].retry, - default_timeout=self._method_configs['ListGroupStats']. - timeout, - client_info=self._client_info, - ) + "list_group_stats" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_group_stats, + default_retry=self._method_configs["ListGroupStats"].retry, + default_timeout=self._method_configs["ListGroupStats"].timeout, + client_info=self._client_info, + ) request = error_stats_service_pb2.ListGroupStatsRequest( project_name=project_name, @@ -308,26 +314,29 @@ def list_group_stats(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_group_stats'], + self._inner_api_calls["list_group_stats"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='error_group_stats', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="error_group_stats", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def list_events(self, - project_name, - group_id, - service_filter=None, - time_range=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_events( + self, + project_name, + group_id, + service_filter=None, + time_range=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the specified events. @@ -401,14 +410,15 @@ def list_events(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_events' not in self._inner_api_calls: + if "list_events" not in self._inner_api_calls: self._inner_api_calls[ - 'list_events'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_events, - default_retry=self._method_configs['ListEvents'].retry, - default_timeout=self._method_configs['ListEvents'].timeout, - client_info=self._client_info, - ) + "list_events" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_events, + default_retry=self._method_configs["ListEvents"].retry, + default_timeout=self._method_configs["ListEvents"].timeout, + client_info=self._client_info, + ) request = error_stats_service_pb2.ListEventsRequest( project_name=project_name, @@ -420,22 +430,25 @@ def list_events(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_events'], + self._inner_api_calls["list_events"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='error_events', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="error_events", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def delete_events(self, - project_name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_events( + self, + project_name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes all error events of a given project. @@ -473,17 +486,17 @@ def delete_events(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_events' not in self._inner_api_calls: + if "delete_events" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_events'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_events, - default_retry=self._method_configs['DeleteEvents'].retry, - default_timeout=self._method_configs['DeleteEvents']. - timeout, - client_info=self._client_info, - ) + "delete_events" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_events, + default_retry=self._method_configs["DeleteEvents"].retry, + default_timeout=self._method_configs["DeleteEvents"].timeout, + client_info=self._client_info, + ) - request = error_stats_service_pb2.DeleteEventsRequest( - project_name=project_name, ) - return self._inner_api_calls['delete_events']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = error_stats_service_pb2.DeleteEventsRequest(project_name=project_name) + return self._inner_api_calls["delete_events"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_stats_service_client_config.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_stats_service_client_config.py index 72c655421477..fead94c5b733 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_stats_service_client_config.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/error_stats_service_client_config.py @@ -3,7 +3,7 @@ "google.devtools.clouderrorreporting.v1beta1.ErrorStatsService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,26 +13,26 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListGroupStats": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListEvents": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteEvents": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/report_errors_service_client.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/report_errors_service_client.py index fc0c5fa31cf0..77d5c6fc9d1a 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/report_errors_service_client.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/report_errors_service_client.py @@ -27,8 +27,12 @@ import grpc from google.cloud.errorreporting_v1beta1.gapic import enums -from google.cloud.errorreporting_v1beta1.gapic import report_errors_service_client_config -from google.cloud.errorreporting_v1beta1.gapic.transports import report_errors_service_grpc_transport +from google.cloud.errorreporting_v1beta1.gapic import ( + report_errors_service_client_config, +) +from google.cloud.errorreporting_v1beta1.gapic.transports import ( + report_errors_service_grpc_transport, +) from google.cloud.errorreporting_v1beta1.proto import common_pb2 from google.cloud.errorreporting_v1beta1.proto import error_group_service_pb2 from google.cloud.errorreporting_v1beta1.proto import error_group_service_pb2_grpc @@ -40,18 +44,19 @@ from google.protobuf import timestamp_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-error-reporting', ).version + "google-cloud-error-reporting" +).version class ReportErrorsServiceClient(object): """An API for reporting error events.""" - SERVICE_ADDRESS = 'clouderrorreporting.googleapis.com:443' + SERVICE_ADDRESS = "clouderrorreporting.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.devtools.clouderrorreporting.v1beta1.ReportErrorsService' + _INTERFACE_NAME = "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -67,9 +72,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ReportErrorsServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -78,16 +82,17 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -121,18 +126,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = report_errors_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -141,25 +147,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=report_errors_service_grpc_transport. - ReportErrorsServiceGrpcTransport, + default_class=report_errors_service_grpc_transport.ReportErrorsServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = report_errors_service_grpc_transport.ReportErrorsServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -169,7 +174,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -178,12 +184,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def report_error_event(self, - project_name, - event, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def report_error_event( + self, + project_name, + event, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Report an individual error event. @@ -228,20 +236,19 @@ def report_error_event(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'report_error_event' not in self._inner_api_calls: + if "report_error_event" not in self._inner_api_calls: self._inner_api_calls[ - 'report_error_event'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.report_error_event, - default_retry=self._method_configs['ReportErrorEvent']. - retry, - default_timeout=self._method_configs['ReportErrorEvent']. - timeout, - client_info=self._client_info, - ) + "report_error_event" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.report_error_event, + default_retry=self._method_configs["ReportErrorEvent"].retry, + default_timeout=self._method_configs["ReportErrorEvent"].timeout, + client_info=self._client_info, + ) request = report_errors_service_pb2.ReportErrorEventRequest( - project_name=project_name, - event=event, + project_name=project_name, event=event + ) + return self._inner_api_calls["report_error_event"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['report_error_event']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/report_errors_service_client_config.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/report_errors_service_client_config.py index a84dde22b57c..cfefc7eb95f2 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/report_errors_service_client_config.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/report_errors_service_client_config.py @@ -3,7 +3,7 @@ "google.devtools.clouderrorreporting.v1beta1.ReportErrorsService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,16 +13,16 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ReportErrorEvent": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", } - } + }, } } } diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/error_group_service_grpc_transport.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/error_group_service_grpc_transport.py index d7d5f051d4b3..4bd458c97388 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/error_group_service_grpc_transport.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/error_group_service_grpc_transport.py @@ -27,14 +27,17 @@ class ErrorGroupServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='clouderrorreporting.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="clouderrorreporting.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -52,29 +55,27 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'error_group_service_stub': - error_group_service_pb2_grpc.ErrorGroupServiceStub(channel), + "error_group_service_stub": error_group_service_pb2_grpc.ErrorGroupServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='clouderrorreporting.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="clouderrorreporting.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -89,9 +90,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,7 +113,7 @@ def get_group(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['error_group_service_stub'].GetGroup + return self._stubs["error_group_service_stub"].GetGroup @property def update_group(self): @@ -128,4 +127,4 @@ def update_group(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['error_group_service_stub'].UpdateGroup + return self._stubs["error_group_service_stub"].UpdateGroup diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/error_stats_service_grpc_transport.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/error_stats_service_grpc_transport.py index 5958feea3f5e..4cfba78f744b 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/error_stats_service_grpc_transport.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/error_stats_service_grpc_transport.py @@ -27,14 +27,17 @@ class ErrorStatsServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='clouderrorreporting.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="clouderrorreporting.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -52,29 +55,27 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'error_stats_service_stub': - error_stats_service_pb2_grpc.ErrorStatsServiceStub(channel), + "error_stats_service_stub": error_stats_service_pb2_grpc.ErrorStatsServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='clouderrorreporting.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="clouderrorreporting.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -89,9 +90,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,7 +113,7 @@ def list_group_stats(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['error_stats_service_stub'].ListGroupStats + return self._stubs["error_stats_service_stub"].ListGroupStats @property def list_events(self): @@ -127,7 +126,7 @@ def list_events(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['error_stats_service_stub'].ListEvents + return self._stubs["error_stats_service_stub"].ListEvents @property def delete_events(self): @@ -140,4 +139,4 @@ def delete_events(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['error_stats_service_stub'].DeleteEvents + return self._stubs["error_stats_service_stub"].DeleteEvents diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/report_errors_service_grpc_transport.py b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/report_errors_service_grpc_transport.py index 3fbaa975f966..aa7893dca6f1 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/report_errors_service_grpc_transport.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/gapic/transports/report_errors_service_grpc_transport.py @@ -27,14 +27,17 @@ class ReportErrorsServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='clouderrorreporting.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="clouderrorreporting.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -52,29 +55,27 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'report_errors_service_stub': - report_errors_service_pb2_grpc.ReportErrorsServiceStub(channel), + "report_errors_service_stub": report_errors_service_pb2_grpc.ReportErrorsServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='clouderrorreporting.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="clouderrorreporting.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -89,9 +90,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,4 +113,4 @@ def report_error_event(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['report_errors_service_stub'].ReportErrorEvent + return self._stubs["report_errors_service_stub"].ReportErrorEvent diff --git a/error_reporting/google/cloud/errorreporting_v1beta1/types.py b/error_reporting/google/cloud/errorreporting_v1beta1/types.py index 0c54b22b5856..388e69bbad78 100644 --- a/error_reporting/google/cloud/errorreporting_v1beta1/types.py +++ b/error_reporting/google/cloud/errorreporting_v1beta1/types.py @@ -39,11 +39,7 @@ timestamp_pb2, ] -_local_modules = [ - common_pb2, - error_group_service_pb2, - error_stats_service_pb2, -] +_local_modules = [common_pb2, error_group_service_pb2, error_stats_service_pb2] names = [] @@ -54,7 +50,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.errorreporting_v1beta1.types' + message.__module__ = "google.cloud.errorreporting_v1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/error_reporting/tests/system/gapic/v1beta1/test_system_report_errors_service_v1beta1.py b/error_reporting/tests/system/gapic/v1beta1/test_system_report_errors_service_v1beta1.py index 642306e624b3..a2d1fe117624 100644 --- a/error_reporting/tests/system/gapic/v1beta1/test_system_report_errors_service_v1beta1.py +++ b/error_reporting/tests/system/gapic/v1beta1/test_system_report_errors_service_v1beta1.py @@ -24,25 +24,25 @@ class TestSystemReportErrorsService(object): def test_report_error_event(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = errorreporting_v1beta1.ReportErrorsServiceClient() project_name = client.project_path(project_id) - message = '[MESSAGE]' - service = '[SERVICE]' - service_context = {'service': service} - file_path = 'path/to/file.lang' + message = "[MESSAGE]" + service = "[SERVICE]" + service_context = {"service": service} + file_path = "path/to/file.lang" line_number = 42 - function_name = 'meaningOfLife' + function_name = "meaningOfLife" report_location = { - 'file_path': file_path, - 'line_number': line_number, - 'function_name': function_name + "file_path": file_path, + "line_number": line_number, + "function_name": function_name, } - context = {'report_location': report_location} + context = {"report_location": report_location} event = { - 'message': message, - 'service_context': service_context, - 'context': context + "message": message, + "service_context": service_context, + "context": context, } response = client.report_error_event(project_name, event) diff --git a/error_reporting/tests/system/test_system.py b/error_reporting/tests/system/test_system.py index 598576cacb47..b72223e2ae0a 100644 --- a/error_reporting/tests/system/test_system.py +++ b/error_reporting/tests/system/test_system.py @@ -17,17 +17,15 @@ import unittest from google.cloud import error_reporting -from google.cloud.errorreporting_v1beta1.gapic import ( - error_stats_service_client) -from google.cloud.errorreporting_v1beta1.proto import ( - error_stats_service_pb2) +from google.cloud.errorreporting_v1beta1.gapic import error_stats_service_client +from google.cloud.errorreporting_v1beta1.proto import error_stats_service_pb2 from google.protobuf.duration_pb2 import Duration from test_utils.retry import RetryResult from test_utils.system import unique_resource_id -ERROR_MSG = 'Stackdriver Error Reporting System Test' +ERROR_MSG = "Stackdriver Error Reporting System Test" def setUpModule(): @@ -40,6 +38,7 @@ class Config(object): This is a mutable stand-in to allow test set-up to modify global state. """ + CLIENT = None @@ -57,7 +56,8 @@ def _list_groups(client): :returns: Iterable of :class:`~.error_stats_service_pb2.ErrorGroupStats`. """ gax_api = error_stats_service_client.ErrorStatsServiceClient( - credentials=client._credentials) + credentials=client._credentials + ) project_name = gax_api.project_path(client.project) time_range = error_stats_service_pb2.QueryTimeRange() @@ -66,7 +66,8 @@ def _list_groups(client): duration = Duration(seconds=60 * 60) return gax_api.list_group_stats( - project_name, time_range, timed_count_duration=duration) + project_name, time_range, timed_count_duration=duration + ) def _simulate_exception(class_name, client): @@ -106,17 +107,16 @@ def _get_error_count(class_name, client): class TestErrorReporting(unittest.TestCase): - def test_report_exception(self): # Get a class name unique to this test case. - class_name = 'RuntimeError' + unique_resource_id('_') + class_name = "RuntimeError" + unique_resource_id("_") # Simulate an error: group won't exist until we report # first exception. _simulate_exception(class_name, Config.CLIENT) is_one = functools.partial(operator.eq, 1) - is_one.__name__ = 'is_one' # partial() has no name. + is_one.__name__ = "is_one" # partial() has no name. retry = RetryResult(is_one, max_tries=6) wrapped_get_count = retry(_get_error_count) diff --git a/error_reporting/tests/unit/gapic/v1beta1/test_error_group_service_client_v1beta1.py b/error_reporting/tests/unit/gapic/v1beta1/test_error_group_service_client_v1beta1.py index 7d632a2d69d1..518152c407ed 100644 --- a/error_reporting/tests/unit/gapic/v1beta1/test_error_group_service_client_v1beta1.py +++ b/error_reporting/tests/unit/gapic/v1beta1/test_error_group_service_client_v1beta1.py @@ -51,10 +51,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -65,54 +62,55 @@ class CustomException(Exception): class TestErrorGroupServiceClient(object): def test_get_group(self): # Setup Expected Response - name = 'name3373707' - group_id = 'groupId506361563' - expected_response = {'name': name, 'group_id': group_id} + name = "name3373707" + group_id = "groupId506361563" + expected_response = {"name": name, "group_id": group_id} expected_response = common_pb2.ErrorGroup(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorGroupServiceClient() # Setup Request - group_name = client.group_path('[PROJECT]', '[GROUP]') + group_name = client.group_path("[PROJECT]", "[GROUP]") response = client.get_group(group_name) assert expected_response == response assert len(channel.requests) == 1 expected_request = error_group_service_pb2.GetGroupRequest( - group_name=group_name) + group_name=group_name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorGroupServiceClient() # Setup request - group_name = client.group_path('[PROJECT]', '[GROUP]') + group_name = client.group_path("[PROJECT]", "[GROUP]") with pytest.raises(CustomException): client.get_group(group_name) def test_update_group(self): # Setup Expected Response - name = 'name3373707' - group_id = 'groupId506361563' - expected_response = {'name': name, 'group_id': group_id} + name = "name3373707" + group_id = "groupId506361563" + expected_response = {"name": name, "group_id": group_id} expected_response = common_pb2.ErrorGroup(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorGroupServiceClient() @@ -124,15 +122,14 @@ def test_update_group(self): assert expected_response == response assert len(channel.requests) == 1 - expected_request = error_group_service_pb2.UpdateGroupRequest( - group=group) + expected_request = error_group_service_pb2.UpdateGroupRequest(group=group) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorGroupServiceClient() diff --git a/error_reporting/tests/unit/gapic/v1beta1/test_error_stats_service_client_v1beta1.py b/error_reporting/tests/unit/gapic/v1beta1/test_error_stats_service_client_v1beta1.py index 0d362cc0db60..8dae0b22589c 100644 --- a/error_reporting/tests/unit/gapic/v1beta1/test_error_stats_service_client_v1beta1.py +++ b/error_reporting/tests/unit/gapic/v1beta1/test_error_stats_service_client_v1beta1.py @@ -51,10 +51,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -65,25 +62,26 @@ class CustomException(Exception): class TestErrorStatsServiceClient(object): def test_list_group_stats(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" error_group_stats_element = {} error_group_stats = [error_group_stats_element] expected_response = { - 'next_page_token': next_page_token, - 'error_group_stats': error_group_stats + "next_page_token": next_page_token, + "error_group_stats": error_group_stats, } expected_response = error_stats_service_pb2.ListGroupStatsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorStatsServiceClient() # Setup Request - project_name = client.project_path('[PROJECT]') + project_name = client.project_path("[PROJECT]") time_range = {} paged_list_response = client.list_group_stats(project_name, time_range) @@ -94,19 +92,20 @@ def test_list_group_stats(self): assert len(channel.requests) == 1 expected_request = error_stats_service_pb2.ListGroupStatsRequest( - project_name=project_name, time_range=time_range) + project_name=project_name, time_range=time_range + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_group_stats_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorStatsServiceClient() # Setup request - project_name = client.project_path('[PROJECT]') + project_name = client.project_path("[PROJECT]") time_range = {} paged_list_response = client.list_group_stats(project_name, time_range) @@ -115,26 +114,27 @@ def test_list_group_stats_exception(self): def test_list_events(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" error_events_element = {} error_events = [error_events_element] expected_response = { - 'next_page_token': next_page_token, - 'error_events': error_events + "next_page_token": next_page_token, + "error_events": error_events, } expected_response = error_stats_service_pb2.ListEventsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorStatsServiceClient() # Setup Request - project_name = client.project_path('[PROJECT]') - group_id = 'groupId506361563' + project_name = client.project_path("[PROJECT]") + group_id = "groupId506361563" paged_list_response = client.list_events(project_name, group_id) resources = list(paged_list_response) @@ -144,20 +144,21 @@ def test_list_events(self): assert len(channel.requests) == 1 expected_request = error_stats_service_pb2.ListEventsRequest( - project_name=project_name, group_id=group_id) + project_name=project_name, group_id=group_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_events_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorStatsServiceClient() # Setup request - project_name = client.project_path('[PROJECT]') - group_id = 'groupId506361563' + project_name = client.project_path("[PROJECT]") + group_id = "groupId506361563" paged_list_response = client.list_events(project_name, group_id) with pytest.raises(CustomException): @@ -167,37 +168,39 @@ def test_delete_events(self): # Setup Expected Response expected_response = {} expected_response = error_stats_service_pb2.DeleteEventsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorStatsServiceClient() # Setup Request - project_name = client.project_path('[PROJECT]') + project_name = client.project_path("[PROJECT]") response = client.delete_events(project_name) assert expected_response == response assert len(channel.requests) == 1 expected_request = error_stats_service_pb2.DeleteEventsRequest( - project_name=project_name) + project_name=project_name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_events_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ErrorStatsServiceClient() # Setup request - project_name = client.project_path('[PROJECT]') + project_name = client.project_path("[PROJECT]") with pytest.raises(CustomException): client.delete_events(project_name) diff --git a/error_reporting/tests/unit/gapic/v1beta1/test_report_errors_service_client_v1beta1.py b/error_reporting/tests/unit/gapic/v1beta1/test_report_errors_service_client_v1beta1.py index 458eb094ab06..6f715244c700 100644 --- a/error_reporting/tests/unit/gapic/v1beta1/test_report_errors_service_client_v1beta1.py +++ b/error_reporting/tests/unit/gapic/v1beta1/test_report_errors_service_client_v1beta1.py @@ -50,10 +50,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,17 +63,18 @@ def test_report_error_event(self): # Setup Expected Response expected_response = {} expected_response = report_errors_service_pb2.ReportErrorEventResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ReportErrorsServiceClient() # Setup Request - project_name = client.project_path('[PROJECT]') + project_name = client.project_path("[PROJECT]") event = {} response = client.report_error_event(project_name, event) @@ -84,20 +82,21 @@ def test_report_error_event(self): assert len(channel.requests) == 1 expected_request = report_errors_service_pb2.ReportErrorEventRequest( - project_name=project_name, event=event) + project_name=project_name, event=event + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_report_error_event_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = errorreporting_v1beta1.ReportErrorsServiceClient() # Setup request - project_name = client.project_path('[PROJECT]') + project_name = client.project_path("[PROJECT]") event = {} with pytest.raises(CustomException): diff --git a/error_reporting/tests/unit/test__gapic.py b/error_reporting/tests/unit/test__gapic.py index 2f41553dfb72..2b6dbbb37be2 100644 --- a/error_reporting/tests/unit/test__gapic.py +++ b/error_reporting/tests/unit/test__gapic.py @@ -18,22 +18,22 @@ class Test_make_report_error_api(unittest.TestCase): - def test_make_report_error_api(self): from google.cloud.errorreporting_v1beta1.gapic import ( - report_errors_service_client) + report_errors_service_client, + ) from google.cloud.error_reporting._gapic import make_report_error_api client = mock.Mock( _credentials=mock.sentinel.credentials, - project='prahj-ekt', - spec=['project', '_credentials'], + project="prahj-ekt", + spec=["project", "_credentials"], ) # Mock out the constructor for the GAPIC client. ServiceClient = report_errors_service_client.ReportErrorsServiceClient - with mock.patch.object(ServiceClient, '__init__') as resc: + with mock.patch.object(ServiceClient, "__init__") as resc: resc.return_value = None # Call the function being tested. @@ -43,8 +43,8 @@ def test_make_report_error_api(self): # to be correct. resc.assert_called_once() _, _, kwargs = resc.mock_calls[0] - self.assertEqual(kwargs['credentials'], mock.sentinel.credentials) - self.assertIsNotNone(kwargs['client_info']) + self.assertEqual(kwargs["credentials"], mock.sentinel.credentials) + self.assertIsNotNone(kwargs["client_info"]) # Assert that the final error client has the project in # the expected location. @@ -53,7 +53,7 @@ def test_make_report_error_api(self): class Test_ErrorReportingGapicApi(unittest.TestCase): - PROJECT = 'PROJECT' + PROJECT = "PROJECT" def _make_one(self, gapic_api, project): from google.cloud.error_reporting._gapic import _ErrorReportingGapicApi @@ -68,21 +68,17 @@ def test_constructor(self): self.assertEqual(gapic_client_wrapper._gapic_api, gapic_api) def test_report_error_event(self): - from google.cloud.errorreporting_v1beta1.proto import ( - report_errors_service_pb2) + from google.cloud.errorreporting_v1beta1.proto import report_errors_service_pb2 - gapic_api = mock.Mock(spec=['project_path', 'report_error_event']) + gapic_api = mock.Mock(spec=["project_path", "report_error_event"]) gapic_client_wrapper = self._make_one(gapic_api, self.PROJECT) - error_report = { - 'message': 'The cabs are here.', - } + error_report = {"message": "The cabs are here."} gapic_client_wrapper.report_error_event(error_report) gapic_api.project_path.assert_called_once_with(self.PROJECT) project_name = gapic_api.project_path.return_value error_pb = report_errors_service_pb2.ReportedErrorEvent( - message=error_report['message'], + message=error_report["message"] ) - gapic_api.report_error_event.assert_called_once_with( - project_name, error_pb) + gapic_api.report_error_event.assert_called_once_with(project_name, error_pb) diff --git a/error_reporting/tests/unit/test__logging.py b/error_reporting/tests/unit/test__logging.py index 924bedb27f6b..674a3a9ee726 100644 --- a/error_reporting/tests/unit/test__logging.py +++ b/error_reporting/tests/unit/test__logging.py @@ -25,11 +25,10 @@ def _make_credentials(): class Test_ErrorReportingLoggingAPI(unittest.TestCase): - PROJECT = 'PROJECT' + PROJECT = "PROJECT" def _make_one(self, project, credentials): - from google.cloud.error_reporting._logging import ( - _ErrorReportingLoggingAPI) + from google.cloud.error_reporting._logging import _ErrorReportingLoggingAPI return _ErrorReportingLoggingAPI(project, credentials) @@ -37,25 +36,23 @@ def test_constructor(self): credentials = _make_credentials() logging_api = self._make_one(self.PROJECT, credentials) - self.assertEqual(logging_api.logging_client._connection.credentials, - credentials) + self.assertEqual( + logging_api.logging_client._connection.credentials, credentials + ) self.assertEqual(logging_api.logging_client.project, self.PROJECT) - @mock.patch('google.cloud.logging.client.Client') + @mock.patch("google.cloud.logging.client.Client") def test_report_error_event(self, mocked_cls): credentials = _make_credentials() logging_api = self._make_one(self.PROJECT, credentials) - mocked_cls.assert_called_once_with( - self.PROJECT, credentials, _http=None) + mocked_cls.assert_called_once_with(self.PROJECT, credentials, _http=None) self.assertIs(logging_api.logging_client, mocked_cls.return_value) - logger = mock.Mock(spec=['log_struct']) + logger = mock.Mock(spec=["log_struct"]) logging_api.logging_client.logger.return_value = logger # Actually make the API call. - error_report = { - 'message': 'The cabs are here.', - } + error_report = {"message": "The cabs are here."} logging_api.report_error_event(error_report) # Check the mocks. diff --git a/error_reporting/tests/unit/test_client.py b/error_reporting/tests/unit/test_client.py index 9a7bdf47feb0..458db5136e11 100644 --- a/error_reporting/tests/unit/test_client.py +++ b/error_reporting/tests/unit/test_client.py @@ -26,9 +26,9 @@ def _make_credentials(): class TestClient(unittest.TestCase): - PROJECT = 'PROJECT' - SERVICE = 'SERVICE' - VERSION = 'myversion' + PROJECT = "PROJECT" + SERVICE = "SERVICE" + VERSION = "myversion" @staticmethod def _get_target_class(): @@ -52,10 +52,10 @@ def _get_report_payload(self, error_api): self.assertEqual(len(positional), 1) return positional[0] - @mock.patch('google.cloud.client._determine_default_project') + @mock.patch("google.cloud.client._determine_default_project") def test_ctor_default(self, default_mock): credentials = _make_credentials() - default_mock.return_value = 'foo' + default_mock.return_value = "foo" client = self._make_one(credentials=credentials) self.assertEqual(client.service, client.DEFAULT_SERVICE) self.assertEqual(client.version, None) @@ -63,20 +63,20 @@ def test_ctor_default(self, default_mock): def test_ctor_params(self): credentials = _make_credentials() - client = self._make_one(project=self.PROJECT, - credentials=credentials, - service=self.SERVICE, - version=self.VERSION) + client = self._make_one( + project=self.PROJECT, + credentials=credentials, + service=self.SERVICE, + version=self.VERSION, + ) self.assertEqual(client.service, self.SERVICE) self.assertEqual(client.version, self.VERSION) def test_report_exception_with_gax(self): credentials = _make_credentials() - client = self._make_one(project=self.PROJECT, - credentials=credentials) + client = self._make_one(project=self.PROJECT, credentials=credentials) - patch = mock.patch( - 'google.cloud.error_reporting.client.make_report_error_api') + patch = mock.patch("google.cloud.error_reporting.client.make_report_error_api") with patch as make_api: try: raise NameError @@ -85,19 +85,17 @@ def test_report_exception_with_gax(self): payload = make_api.return_value.report_error_event.call_args[0][0] make_api.assert_called_once_with(client) - self.assertEqual(payload['serviceContext'], { - 'service': client.DEFAULT_SERVICE, - }) - self.assertIn('test_report', payload['message']) - self.assertIn('test_client.py', payload['message']) + self.assertEqual(payload["serviceContext"], {"service": client.DEFAULT_SERVICE}) + self.assertIn("test_report", payload["message"]) + self.assertIn("test_client.py", payload["message"]) def test_report_exception_wo_gax(self): credentials = _make_credentials() - client = self._make_one(project=self.PROJECT, - credentials=credentials, - _use_grpc=False) + client = self._make_one( + project=self.PROJECT, credentials=credentials, _use_grpc=False + ) patch = mock.patch( - 'google.cloud.error_reporting.client._ErrorReportingLoggingAPI' + "google.cloud.error_reporting.client._ErrorReportingLoggingAPI" ) with patch as _error_api: try: @@ -107,29 +105,27 @@ def test_report_exception_wo_gax(self): mock_report = _error_api.return_value.report_error_event payload = mock_report.call_args[0][0] - self.assertEqual(payload['serviceContext'], { - 'service': client.DEFAULT_SERVICE, - }) - self.assertIn('test_report', payload['message']) - self.assertIn('test_client.py', payload['message']) + self.assertEqual(payload["serviceContext"], {"service": client.DEFAULT_SERVICE}) + self.assertIn("test_report", payload["message"]) + self.assertIn("test_client.py", payload["message"]) self.assertIsNotNone(client.report_errors_api) - @mock.patch('google.cloud.error_reporting.client.make_report_error_api') - def test_report_exception_with_service_version_in_constructor( - self, make_api): + @mock.patch("google.cloud.error_reporting.client.make_report_error_api") + def test_report_exception_with_service_version_in_constructor(self, make_api): credentials = _make_credentials() - service = 'notdefault' - version = 'notdefaultversion' - client = self._make_one(project=self.PROJECT, - credentials=credentials, - service=service, - version=version) - - http_context = self._make_http( - method='GET', response_status_code=500) - user = 'user@gmail.com' - - error_api = mock.Mock(spec=['report_error_event']) + service = "notdefault" + version = "notdefaultversion" + client = self._make_one( + project=self.PROJECT, + credentials=credentials, + service=service, + version=version, + ) + + http_context = self._make_http(method="GET", response_status_code=500) + user = "user@gmail.com" + + error_api = mock.Mock(spec=["report_error_event"]) make_api.return_value = error_api try: @@ -140,37 +136,34 @@ def test_report_exception_with_service_version_in_constructor( make_api.assert_called_once_with(client) payload = self._get_report_payload(error_api) - self.assertEqual(payload['serviceContext'], { - 'service': service, - 'version': version - }) - self.assertIn( - 'test_report_exception_with_service_version_in_constructor', - payload['message']) - self.assertIn('test_client.py', payload['message']) - self.assertEqual( - payload['context']['httpRequest']['responseStatusCode'], 500) self.assertEqual( - payload['context']['httpRequest']['method'], 'GET') - self.assertEqual(payload['context']['user'], user) + payload["serviceContext"], {"service": service, "version": version} + ) + self.assertIn( + "test_report_exception_with_service_version_in_constructor", + payload["message"], + ) + self.assertIn("test_client.py", payload["message"]) + self.assertEqual(payload["context"]["httpRequest"]["responseStatusCode"], 500) + self.assertEqual(payload["context"]["httpRequest"]["method"], "GET") + self.assertEqual(payload["context"]["user"], user) - @mock.patch('google.cloud.error_reporting.client.make_report_error_api') + @mock.patch("google.cloud.error_reporting.client.make_report_error_api") def test_report(self, make_api): credentials = _make_credentials() - client = self._make_one(project=self.PROJECT, - credentials=credentials) + client = self._make_one(project=self.PROJECT, credentials=credentials) - error_api = mock.Mock(spec=['report_error_event']) + error_api = mock.Mock(spec=["report_error_event"]) make_api.return_value = error_api - message = 'this is an error' + message = "this is an error" client.report(message) payload = self._get_report_payload(error_api) - self.assertEqual(payload['message'], message) - report_location = payload['context']['reportLocation'] - self.assertIn('test_client.py', report_location['filePath']) - self.assertEqual(report_location['functionName'], 'test_report') - self.assertGreater(report_location['lineNumber'], 100) - self.assertLess(report_location['lineNumber'], 250) + self.assertEqual(payload["message"], message) + report_location = payload["context"]["reportLocation"] + self.assertIn("test_client.py", report_location["filePath"]) + self.assertEqual(report_location["functionName"], "test_report") + self.assertGreater(report_location["lineNumber"], 100) + self.assertLess(report_location["lineNumber"], 250) diff --git a/error_reporting/tests/unit/test_util.py b/error_reporting/tests/unit/test_util.py index bdd86bd6cb93..cd48f3f8d3ad 100644 --- a/error_reporting/tests/unit/test_util.py +++ b/error_reporting/tests/unit/test_util.py @@ -16,7 +16,6 @@ class Test_build_flask_context(unittest.TestCase): - def _call_fut(self, request): from google.cloud.error_reporting.util import build_flask_context @@ -25,11 +24,10 @@ def _call_fut(self, request): def test_flask_helper(self): import mock - user_agent = mock.Mock(string='Google Cloud Unit Tests Agent') - request = _Request('http://google.com', 'GET', - user_agent, - 'http://gmail.com', - '127.0.0.1') + user_agent = mock.Mock(string="Google Cloud Unit Tests Agent") + request = _Request( + "http://google.com", "GET", user_agent, "http://gmail.com", "127.0.0.1" + ) context = self._call_fut(request) self.assertEqual(request.url, context.url) @@ -40,7 +38,6 @@ def test_flask_helper(self): class _Request(object): - def __init__(self, url, method, user_agent, referrer, remote_addr): self.url = url self.method = method diff --git a/iot/docs/conf.py b/iot/docs/conf.py index 66735065c495..63169cc3e7b7 100644 --- a/iot/docs/conf.py +++ b/iot/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-iot' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-iot" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-iot-doc' +htmlhelp_basename = "google-cloud-iot-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,45 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-iot.tex', u'google-cloud-iot Documentation', - author, 'manual'), + ( + master_doc, + "google-cloud-iot.tex", + u"google-cloud-iot Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-iot', - u'google-cloud-iot Documentation', [author], 1)] +man_pages = [ + (master_doc, "google-cloud-iot", u"google-cloud-iot Documentation", [author], 1) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +277,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-iot', u'google-cloud-iot Documentation', author, - 'google-cloud-iot', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-iot", + u"google-cloud-iot Documentation", + author, + "google-cloud-iot", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/iot/google/__init__.py b/iot/google/__init__.py index 855a707300e1..dd3a9f485275 100644 --- a/iot/google/__init__.py +++ b/iot/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) \ No newline at end of file + + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/iot/google/cloud/__init__.py b/iot/google/cloud/__init__.py index 855a707300e1..dd3a9f485275 100644 --- a/iot/google/cloud/__init__.py +++ b/iot/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) \ No newline at end of file + + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/iot/google/cloud/iot.py b/iot/google/cloud/iot.py index 0c77f4c7bf08..66493952dfea 100644 --- a/iot/google/cloud/iot.py +++ b/iot/google/cloud/iot.py @@ -18,8 +18,4 @@ from google.cloud.iot_v1 import enums from google.cloud.iot_v1 import types -__all__ = ( - 'enums', - 'types', - 'DeviceManagerClient', -) +__all__ = ("enums", "types", "DeviceManagerClient") diff --git a/iot/google/cloud/iot_v1/__init__.py b/iot/google/cloud/iot_v1/__init__.py index e753828ce4d4..ba4784a84eb1 100644 --- a/iot/google/cloud/iot_v1/__init__.py +++ b/iot/google/cloud/iot_v1/__init__.py @@ -26,8 +26,4 @@ class DeviceManagerClient(device_manager_client.DeviceManagerClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'DeviceManagerClient', -) +__all__ = ("enums", "types", "DeviceManagerClient") diff --git a/iot/google/cloud/iot_v1/gapic/device_manager_client.py b/iot/google/cloud/iot_v1/gapic/device_manager_client.py index e5a6bbefd125..511c4b28ed43 100644 --- a/iot/google/cloud/iot_v1/gapic/device_manager_client.py +++ b/iot/google/cloud/iot_v1/gapic/device_manager_client.py @@ -40,19 +40,18 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-iot', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-iot").version class DeviceManagerClient(object): """Internet of Things (IoT) service. Securely connect and manage IoT devices.""" - SERVICE_ADDRESS = 'cloudiot.googleapis.com:443' + SERVICE_ADDRESS = "cloudiot.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.iot.v1.DeviceManager' + _INTERFACE_NAME = "google.cloud.iot.v1.DeviceManager" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -68,9 +67,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: DeviceManagerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -79,7 +77,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -88,7 +86,7 @@ def location_path(cls, project, location): def registry_path(cls, project, location, registry): """Return a fully-qualified registry string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/registries/{registry}', + "projects/{project}/locations/{location}/registries/{registry}", project=project, location=location, registry=registry, @@ -98,19 +96,21 @@ def registry_path(cls, project, location, registry): def device_path(cls, project, location, registry, device): """Return a fully-qualified device string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/registries/{registry}/devices/{device}', + "projects/{project}/locations/{location}/registries/{registry}/devices/{device}", project=project, location=location, registry=registry, device=device, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -144,18 +144,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = device_manager_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -164,25 +165,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=device_manager_grpc_transport. - DeviceManagerGrpcTransport, + default_class=device_manager_grpc_transport.DeviceManagerGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = device_manager_grpc_transport.DeviceManagerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -192,7 +192,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -201,12 +202,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_device_registry(self, - parent, - device_registry, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_device_registry( + self, + parent, + device_registry, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a device registry that contains devices. @@ -251,41 +254,43 @@ def create_device_registry(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_device_registry' not in self._inner_api_calls: + if "create_device_registry" not in self._inner_api_calls: self._inner_api_calls[ - 'create_device_registry'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_device_registry, - default_retry=self._method_configs['CreateDeviceRegistry']. - retry, - default_timeout=self. - _method_configs['CreateDeviceRegistry'].timeout, - client_info=self._client_info, - ) + "create_device_registry" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_device_registry, + default_retry=self._method_configs["CreateDeviceRegistry"].retry, + default_timeout=self._method_configs["CreateDeviceRegistry"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.CreateDeviceRegistryRequest( - parent=parent, - device_registry=device_registry, + parent=parent, device_registry=device_registry ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_device_registry']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_device_registry"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_device_registry(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_device_registry( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a device registry configuration. @@ -321,39 +326,42 @@ def get_device_registry(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_device_registry' not in self._inner_api_calls: + if "get_device_registry" not in self._inner_api_calls: self._inner_api_calls[ - 'get_device_registry'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_device_registry, - default_retry=self._method_configs['GetDeviceRegistry']. - retry, - default_timeout=self._method_configs['GetDeviceRegistry']. - timeout, - client_info=self._client_info, - ) + "get_device_registry" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_device_registry, + default_retry=self._method_configs["GetDeviceRegistry"].retry, + default_timeout=self._method_configs["GetDeviceRegistry"].timeout, + client_info=self._client_info, + ) - request = device_manager_pb2.GetDeviceRegistryRequest(name=name, ) + request = device_manager_pb2.GetDeviceRegistryRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_device_registry']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_device_registry"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_device_registry(self, - device_registry, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_device_registry( + self, + device_registry, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a device registry configuration. @@ -406,41 +414,43 @@ def update_device_registry(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_device_registry' not in self._inner_api_calls: + if "update_device_registry" not in self._inner_api_calls: self._inner_api_calls[ - 'update_device_registry'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_device_registry, - default_retry=self._method_configs['UpdateDeviceRegistry']. - retry, - default_timeout=self. - _method_configs['UpdateDeviceRegistry'].timeout, - client_info=self._client_info, - ) + "update_device_registry" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_device_registry, + default_retry=self._method_configs["UpdateDeviceRegistry"].retry, + default_timeout=self._method_configs["UpdateDeviceRegistry"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.UpdateDeviceRegistryRequest( - device_registry=device_registry, - update_mask=update_mask, + device_registry=device_registry, update_mask=update_mask ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('device_registry.name', device_registry.name)] + routing_header = [("device_registry.name", device_registry.name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['update_device_registry']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_device_registry"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_device_registry(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_device_registry( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a device registry configuration. @@ -473,39 +483,42 @@ def delete_device_registry(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_device_registry' not in self._inner_api_calls: + if "delete_device_registry" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_device_registry'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_device_registry, - default_retry=self._method_configs['DeleteDeviceRegistry']. - retry, - default_timeout=self. - _method_configs['DeleteDeviceRegistry'].timeout, - client_info=self._client_info, - ) + "delete_device_registry" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_device_registry, + default_retry=self._method_configs["DeleteDeviceRegistry"].retry, + default_timeout=self._method_configs["DeleteDeviceRegistry"].timeout, + client_info=self._client_info, + ) - request = device_manager_pb2.DeleteDeviceRegistryRequest(name=name, ) + request = device_manager_pb2.DeleteDeviceRegistryRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['delete_device_registry']( - request, retry=retry, timeout=timeout, metadata=metadata) + self._inner_api_calls["delete_device_registry"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_device_registries(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_device_registries( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists device registries. @@ -561,53 +574,55 @@ def list_device_registries(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_device_registries' not in self._inner_api_calls: + if "list_device_registries" not in self._inner_api_calls: self._inner_api_calls[ - 'list_device_registries'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_device_registries, - default_retry=self._method_configs['ListDeviceRegistries']. - retry, - default_timeout=self. - _method_configs['ListDeviceRegistries'].timeout, - client_info=self._client_info, - ) + "list_device_registries" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_device_registries, + default_retry=self._method_configs["ListDeviceRegistries"].retry, + default_timeout=self._method_configs["ListDeviceRegistries"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.ListDeviceRegistriesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_device_registries'], + self._inner_api_calls["list_device_registries"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='device_registries', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="device_registries", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def create_device(self, - parent, - device, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_device( + self, + parent, + device, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a device in a device registry. @@ -653,41 +668,42 @@ def create_device(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_device' not in self._inner_api_calls: + if "create_device" not in self._inner_api_calls: self._inner_api_calls[ - 'create_device'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_device, - default_retry=self._method_configs['CreateDevice'].retry, - default_timeout=self._method_configs['CreateDevice']. - timeout, - client_info=self._client_info, - ) + "create_device" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_device, + default_retry=self._method_configs["CreateDevice"].retry, + default_timeout=self._method_configs["CreateDevice"].timeout, + client_info=self._client_info, + ) - request = device_manager_pb2.CreateDeviceRequest( - parent=parent, - device=device, - ) + request = device_manager_pb2.CreateDeviceRequest(parent=parent, device=device) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_device']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_device"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_device(self, - name, - field_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_device( + self, + name, + field_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets details about a device. @@ -730,40 +746,42 @@ def get_device(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_device' not in self._inner_api_calls: + if "get_device" not in self._inner_api_calls: self._inner_api_calls[ - 'get_device'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_device, - default_retry=self._method_configs['GetDevice'].retry, - default_timeout=self._method_configs['GetDevice'].timeout, - client_info=self._client_info, - ) + "get_device" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_device, + default_retry=self._method_configs["GetDevice"].retry, + default_timeout=self._method_configs["GetDevice"].timeout, + client_info=self._client_info, + ) - request = device_manager_pb2.GetDeviceRequest( - name=name, - field_mask=field_mask, - ) + request = device_manager_pb2.GetDeviceRequest(name=name, field_mask=field_mask) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_device']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_device"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_device(self, - device, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_device( + self, + device, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a device. @@ -815,40 +833,43 @@ def update_device(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_device' not in self._inner_api_calls: + if "update_device" not in self._inner_api_calls: self._inner_api_calls[ - 'update_device'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_device, - default_retry=self._method_configs['UpdateDevice'].retry, - default_timeout=self._method_configs['UpdateDevice']. - timeout, - client_info=self._client_info, - ) + "update_device" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_device, + default_retry=self._method_configs["UpdateDevice"].retry, + default_timeout=self._method_configs["UpdateDevice"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.UpdateDeviceRequest( - device=device, - update_mask=update_mask, + device=device, update_mask=update_mask ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('device.name', device.name)] + routing_header = [("device.name", device.name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['update_device']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_device"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_device(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_device( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a device. @@ -883,42 +904,46 @@ def delete_device(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_device' not in self._inner_api_calls: + if "delete_device" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_device'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_device, - default_retry=self._method_configs['DeleteDevice'].retry, - default_timeout=self._method_configs['DeleteDevice']. - timeout, - client_info=self._client_info, - ) + "delete_device" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_device, + default_retry=self._method_configs["DeleteDevice"].retry, + default_timeout=self._method_configs["DeleteDevice"].timeout, + client_info=self._client_info, + ) - request = device_manager_pb2.DeleteDeviceRequest(name=name, ) + request = device_manager_pb2.DeleteDeviceRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['delete_device']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_devices(self, - parent, - device_num_ids=None, - device_ids=None, - field_mask=None, - gateway_list_options=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self._inner_api_calls["delete_device"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_devices( + self, + parent, + device_num_ids=None, + device_ids=None, + field_mask=None, + gateway_list_options=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ List devices in a device registry. @@ -988,15 +1013,15 @@ def list_devices(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_devices' not in self._inner_api_calls: + if "list_devices" not in self._inner_api_calls: self._inner_api_calls[ - 'list_devices'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_devices, - default_retry=self._method_configs['ListDevices'].retry, - default_timeout=self._method_configs['ListDevices']. - timeout, - client_info=self._client_info, - ) + "list_devices" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_devices, + default_retry=self._method_configs["ListDevices"].retry, + default_timeout=self._method_configs["ListDevices"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.ListDevicesRequest( parent=parent, @@ -1010,36 +1035,39 @@ def list_devices(self, metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_devices'], + self._inner_api_calls["list_devices"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='devices', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="devices", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def modify_cloud_to_device_config( - self, - name, - binary_data, - version_to_update=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + binary_data, + version_to_update=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Modifies the configuration for the device, which is eventually sent from the Cloud IoT Core servers. Returns the modified configuration version and @@ -1088,44 +1116,46 @@ def modify_cloud_to_device_config( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'modify_cloud_to_device_config' not in self._inner_api_calls: + if "modify_cloud_to_device_config" not in self._inner_api_calls: self._inner_api_calls[ - 'modify_cloud_to_device_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.modify_cloud_to_device_config, - default_retry=self. - _method_configs['ModifyCloudToDeviceConfig'].retry, - default_timeout=self. - _method_configs['ModifyCloudToDeviceConfig'].timeout, - client_info=self._client_info, - ) + "modify_cloud_to_device_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.modify_cloud_to_device_config, + default_retry=self._method_configs["ModifyCloudToDeviceConfig"].retry, + default_timeout=self._method_configs[ + "ModifyCloudToDeviceConfig" + ].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.ModifyCloudToDeviceConfigRequest( - name=name, - binary_data=binary_data, - version_to_update=version_to_update, + name=name, binary_data=binary_data, version_to_update=version_to_update ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['modify_cloud_to_device_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["modify_cloud_to_device_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def list_device_config_versions( - self, - name, - num_versions=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + num_versions=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the last few versions of the device configuration in descending order (i.e.: newest first). @@ -1167,42 +1197,46 @@ def list_device_config_versions( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_device_config_versions' not in self._inner_api_calls: + if "list_device_config_versions" not in self._inner_api_calls: self._inner_api_calls[ - 'list_device_config_versions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_device_config_versions, - default_retry=self. - _method_configs['ListDeviceConfigVersions'].retry, - default_timeout=self. - _method_configs['ListDeviceConfigVersions'].timeout, - client_info=self._client_info, - ) + "list_device_config_versions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_device_config_versions, + default_retry=self._method_configs["ListDeviceConfigVersions"].retry, + default_timeout=self._method_configs[ + "ListDeviceConfigVersions" + ].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.ListDeviceConfigVersionsRequest( - name=name, - num_versions=num_versions, + name=name, num_versions=num_versions ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['list_device_config_versions']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["list_device_config_versions"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_device_states(self, - name, - num_states=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_device_states( + self, + name, + num_states=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the last few versions of the device state in descending order (i.e.: newest first). @@ -1244,42 +1278,44 @@ def list_device_states(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_device_states' not in self._inner_api_calls: + if "list_device_states" not in self._inner_api_calls: self._inner_api_calls[ - 'list_device_states'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_device_states, - default_retry=self._method_configs['ListDeviceStates']. - retry, - default_timeout=self._method_configs['ListDeviceStates']. - timeout, - client_info=self._client_info, - ) + "list_device_states" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_device_states, + default_retry=self._method_configs["ListDeviceStates"].retry, + default_timeout=self._method_configs["ListDeviceStates"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.ListDeviceStatesRequest( - name=name, - num_states=num_states, + name=name, num_states=num_states ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['list_device_states']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["list_device_states"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy on the specified resource. Replaces any existing policy. @@ -1327,40 +1363,41 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, - ) + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy @@ -1399,38 +1436,42 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, @@ -1476,43 +1517,45 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def send_command_to_device(self, - name, - binary_data, - subfolder=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def send_command_to_device( + self, + name, + binary_data, + subfolder=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1) be connected to Cloud IoT Core @@ -1571,44 +1614,45 @@ def send_command_to_device(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'send_command_to_device' not in self._inner_api_calls: + if "send_command_to_device" not in self._inner_api_calls: self._inner_api_calls[ - 'send_command_to_device'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.send_command_to_device, - default_retry=self._method_configs['SendCommandToDevice']. - retry, - default_timeout=self. - _method_configs['SendCommandToDevice'].timeout, - client_info=self._client_info, - ) + "send_command_to_device" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.send_command_to_device, + default_retry=self._method_configs["SendCommandToDevice"].retry, + default_timeout=self._method_configs["SendCommandToDevice"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.SendCommandToDeviceRequest( - name=name, - binary_data=binary_data, - subfolder=subfolder, + name=name, binary_data=binary_data, subfolder=subfolder ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['send_command_to_device']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["send_command_to_device"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def bind_device_to_gateway(self, - parent, - gateway_id, - device_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def bind_device_to_gateway( + self, + parent, + gateway_id, + device_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Associates the device with the gateway. @@ -1655,45 +1699,45 @@ def bind_device_to_gateway(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'bind_device_to_gateway' not in self._inner_api_calls: + if "bind_device_to_gateway" not in self._inner_api_calls: self._inner_api_calls[ - 'bind_device_to_gateway'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.bind_device_to_gateway, - default_retry=self._method_configs['BindDeviceToGateway']. - retry, - default_timeout=self. - _method_configs['BindDeviceToGateway'].timeout, - client_info=self._client_info, - ) + "bind_device_to_gateway" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.bind_device_to_gateway, + default_retry=self._method_configs["BindDeviceToGateway"].retry, + default_timeout=self._method_configs["BindDeviceToGateway"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.BindDeviceToGatewayRequest( - parent=parent, - gateway_id=gateway_id, - device_id=device_id, + parent=parent, gateway_id=gateway_id, device_id=device_id ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['bind_device_to_gateway']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["bind_device_to_gateway"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def unbind_device_from_gateway( - self, - parent, - gateway_id, - device_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + gateway_id, + device_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes the association between the device and the gateway. @@ -1740,33 +1784,32 @@ def unbind_device_from_gateway( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'unbind_device_from_gateway' not in self._inner_api_calls: + if "unbind_device_from_gateway" not in self._inner_api_calls: self._inner_api_calls[ - 'unbind_device_from_gateway'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.unbind_device_from_gateway, - default_retry=self. - _method_configs['UnbindDeviceFromGateway'].retry, - default_timeout=self. - _method_configs['UnbindDeviceFromGateway'].timeout, - client_info=self._client_info, - ) + "unbind_device_from_gateway" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.unbind_device_from_gateway, + default_retry=self._method_configs["UnbindDeviceFromGateway"].retry, + default_timeout=self._method_configs["UnbindDeviceFromGateway"].timeout, + client_info=self._client_info, + ) request = device_manager_pb2.UnbindDeviceFromGatewayRequest( - parent=parent, - gateway_id=gateway_id, - device_id=device_id, + parent=parent, gateway_id=gateway_id, device_id=device_id ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['unbind_device_from_gateway']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["unbind_device_from_gateway"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/iot/google/cloud/iot_v1/gapic/device_manager_client_config.py b/iot/google/cloud/iot_v1/gapic/device_manager_client_config.py index f58e680ad8e0..67a037f82b81 100644 --- a/iot/google/cloud/iot_v1/gapic/device_manager_client_config.py +++ b/iot/google/cloud/iot_v1/gapic/device_manager_client_config.py @@ -4,8 +4,11 @@ "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], "non_idempotent": [], - "rate_limited_aware": - ["DEADLINE_EXCEEDED", "RESOURCE_EXHAUSTED", "UNAVAILABLE"] + "rate_limited_aware": [ + "DEADLINE_EXCEEDED", + "RESOURCE_EXHAUSTED", + "UNAVAILABLE", + ], }, "retry_params": { "default": { @@ -15,7 +18,7 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 120000 + "total_timeout_millis": 120000, }, "rate_limited_aware": { "initial_retry_delay_millis": 1000, @@ -24,106 +27,106 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 120000 - } + "total_timeout_millis": 120000, + }, }, "methods": { "CreateDeviceRegistry": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetDeviceRegistry": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateDeviceRegistry": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteDeviceRegistry": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListDeviceRegistries": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateDevice": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetDevice": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateDevice": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteDevice": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListDevices": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ModifyCloudToDeviceConfig": { "timeout_millis": 60000, "retry_codes_name": "rate_limited_aware", - "retry_params_name": "rate_limited_aware" + "retry_params_name": "rate_limited_aware", }, "ListDeviceConfigVersions": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListDeviceStates": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SendCommandToDevice": { "timeout_millis": 60000, "retry_codes_name": "rate_limited_aware", - "retry_params_name": "rate_limited_aware" + "retry_params_name": "rate_limited_aware", }, "BindDeviceToGateway": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UnbindDeviceFromGateway": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/iot/google/cloud/iot_v1/gapic/enums.py b/iot/google/cloud/iot_v1/gapic/enums.py index 53d02ddac04c..db27d46e8a23 100644 --- a/iot/google/cloud/iot_v1/gapic/enums.py +++ b/iot/google/cloud/iot_v1/gapic/enums.py @@ -28,6 +28,7 @@ class MqttState(enum.IntEnum): MQTT_ENABLED (int): Enables a MQTT connection. MQTT_DISABLED (int): Disables a MQTT connection. """ + MQTT_STATE_UNSPECIFIED = 0 MQTT_ENABLED = 1 MQTT_DISABLED = 2 @@ -44,6 +45,7 @@ class HttpState(enum.IntEnum): HTTP_ENABLED (int): Enables DeviceService (HTTP) service for the registry. HTTP_DISABLED (int): Disables DeviceService (HTTP) service for the registry. """ + HTTP_STATE_UNSPECIFIED = 0 HTTP_ENABLED = 1 HTTP_DISABLED = 2 @@ -66,6 +68,7 @@ class LogLevel(enum.IntEnum): disconnections. DEBUG (int): All events will be logged. """ + LOG_LEVEL_UNSPECIFIED = 0 NONE = 10 ERROR = 20 @@ -82,6 +85,7 @@ class GatewayType(enum.IntEnum): GATEWAY (int): The device is a gateway. NON_GATEWAY (int): The device is not a gateway. """ + GATEWAY_TYPE_UNSPECIFIED = 0 GATEWAY = 1 NON_GATEWAY = 2 @@ -103,6 +107,7 @@ class GatewayAuthMethod(enum.IntEnum): association. The device must be bound to the gateway and must provide its own credentials. """ + GATEWAY_AUTH_METHOD_UNSPECIFIED = 0 ASSOCIATION_ONLY = 1 DEVICE_AUTH_TOKEN_ONLY = 2 @@ -121,6 +126,7 @@ class PublicKeyCertificateFormat(enum.IntEnum): and wrapped by ``-----BEGIN CERTIFICATE-----`` and ``-----END CERTIFICATE-----``. """ + UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT = 0 X509_CERTIFICATE_PEM = 1 @@ -152,6 +158,7 @@ class PublicKeyFormat(enum.IntEnum): and wrapped by ``-----BEGIN CERTIFICATE-----`` and ``-----END CERTIFICATE-----``. """ + UNSPECIFIED_PUBLIC_KEY_FORMAT = 0 RSA_PEM = 3 RSA_X509_PEM = 1 diff --git a/iot/google/cloud/iot_v1/gapic/transports/device_manager_grpc_transport.py b/iot/google/cloud/iot_v1/gapic/transports/device_manager_grpc_transport.py index ca7f85f8fdbb..fd4d593c9727 100644 --- a/iot/google/cloud/iot_v1/gapic/transports/device_manager_grpc_transport.py +++ b/iot/google/cloud/iot_v1/gapic/transports/device_manager_grpc_transport.py @@ -27,17 +27,17 @@ class DeviceManagerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloudiot', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloudiot", ) - def __init__(self, - channel=None, - credentials=None, - address='cloudiot.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="cloudiot.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -55,29 +55,23 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'device_manager_stub': - device_manager_pb2_grpc.DeviceManagerStub(channel), + "device_manager_stub": device_manager_pb2_grpc.DeviceManagerStub(channel) } @classmethod - def create_channel(cls, - address='cloudiot.googleapis.com:443', - credentials=None): + def create_channel(cls, address="cloudiot.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -92,9 +86,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -117,7 +109,7 @@ def create_device_registry(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].CreateDeviceRegistry + return self._stubs["device_manager_stub"].CreateDeviceRegistry @property def get_device_registry(self): @@ -130,7 +122,7 @@ def get_device_registry(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].GetDeviceRegistry + return self._stubs["device_manager_stub"].GetDeviceRegistry @property def update_device_registry(self): @@ -143,7 +135,7 @@ def update_device_registry(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].UpdateDeviceRegistry + return self._stubs["device_manager_stub"].UpdateDeviceRegistry @property def delete_device_registry(self): @@ -156,7 +148,7 @@ def delete_device_registry(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].DeleteDeviceRegistry + return self._stubs["device_manager_stub"].DeleteDeviceRegistry @property def list_device_registries(self): @@ -169,7 +161,7 @@ def list_device_registries(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].ListDeviceRegistries + return self._stubs["device_manager_stub"].ListDeviceRegistries @property def create_device(self): @@ -182,7 +174,7 @@ def create_device(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].CreateDevice + return self._stubs["device_manager_stub"].CreateDevice @property def get_device(self): @@ -195,7 +187,7 @@ def get_device(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].GetDevice + return self._stubs["device_manager_stub"].GetDevice @property def update_device(self): @@ -208,7 +200,7 @@ def update_device(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].UpdateDevice + return self._stubs["device_manager_stub"].UpdateDevice @property def delete_device(self): @@ -221,7 +213,7 @@ def delete_device(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].DeleteDevice + return self._stubs["device_manager_stub"].DeleteDevice @property def list_devices(self): @@ -234,7 +226,7 @@ def list_devices(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].ListDevices + return self._stubs["device_manager_stub"].ListDevices @property def modify_cloud_to_device_config(self): @@ -249,7 +241,7 @@ def modify_cloud_to_device_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].ModifyCloudToDeviceConfig + return self._stubs["device_manager_stub"].ModifyCloudToDeviceConfig @property def list_device_config_versions(self): @@ -263,7 +255,7 @@ def list_device_config_versions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].ListDeviceConfigVersions + return self._stubs["device_manager_stub"].ListDeviceConfigVersions @property def list_device_states(self): @@ -277,7 +269,7 @@ def list_device_states(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].ListDeviceStates + return self._stubs["device_manager_stub"].ListDeviceStates @property def set_iam_policy(self): @@ -291,7 +283,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].SetIamPolicy + return self._stubs["device_manager_stub"].SetIamPolicy @property def get_iam_policy(self): @@ -306,7 +298,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].GetIamPolicy + return self._stubs["device_manager_stub"].GetIamPolicy @property def test_iam_permissions(self): @@ -321,7 +313,7 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].TestIamPermissions + return self._stubs["device_manager_stub"].TestIamPermissions @property def send_command_to_device(self): @@ -346,7 +338,7 @@ def send_command_to_device(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].SendCommandToDevice + return self._stubs["device_manager_stub"].SendCommandToDevice @property def bind_device_to_gateway(self): @@ -359,7 +351,7 @@ def bind_device_to_gateway(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].BindDeviceToGateway + return self._stubs["device_manager_stub"].BindDeviceToGateway @property def unbind_device_from_gateway(self): @@ -372,4 +364,4 @@ def unbind_device_from_gateway(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['device_manager_stub'].UnbindDeviceFromGateway + return self._stubs["device_manager_stub"].UnbindDeviceFromGateway diff --git a/iot/google/cloud/iot_v1/types.py b/iot/google/cloud/iot_v1/types.py index 062b0499fa1a..a95a6dd533ae 100644 --- a/iot/google/cloud/iot_v1/types.py +++ b/iot/google/cloud/iot_v1/types.py @@ -47,10 +47,7 @@ status_pb2, ] -_local_modules = [ - device_manager_pb2, - resources_pb2, -] +_local_modules = [device_manager_pb2, resources_pb2] names = [] @@ -60,7 +57,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.iot_v1.types' + message.__module__ = "google.cloud.iot_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/iot/tests/system/gapic/v1/test_system_device_manager_v1.py b/iot/tests/system/gapic/v1/test_system_device_manager_v1.py index 911426bf4079..1ec2ba5cfa02 100644 --- a/iot/tests/system/gapic/v1/test_system_device_manager_v1.py +++ b/iot/tests/system/gapic/v1/test_system_device_manager_v1.py @@ -23,7 +23,7 @@ class TestSystemDeviceManager(object): def test_list_device_registries(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = iot_v1.DeviceManagerClient() parent = client.location_path(project_id, "us-central1") diff --git a/iot/tests/unit/gapic/v1/test_device_manager_client_v1.py b/iot/tests/unit/gapic/v1/test_device_manager_client_v1.py index 0a716578723e..133e061eec9e 100644 --- a/iot/tests/unit/gapic/v1/test_device_manager_client_v1.py +++ b/iot/tests/unit/gapic/v1/test_device_manager_client_v1.py @@ -55,10 +55,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -69,20 +66,20 @@ class CustomException(Exception): class TestDeviceManagerClient(object): def test_create_device_registry(self): # Setup Expected Response - id_ = 'id3355' - name = 'name3373707' - expected_response = {'id': id_, 'name': name} + id_ = "id3355" + name = "name3373707" + expected_response = {"id": id_, "name": name} expected_response = resources_pb2.DeviceRegistry(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") device_registry = {} response = client.create_device_registry(parent, device_registry) @@ -90,20 +87,21 @@ def test_create_device_registry(self): assert len(channel.requests) == 1 expected_request = device_manager_pb2.CreateDeviceRegistryRequest( - parent=parent, device_registry=device_registry) + parent=parent, device_registry=device_registry + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_device_registry_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") device_registry = {} with pytest.raises(CustomException): @@ -111,54 +109,53 @@ def test_create_device_registry_exception(self): def test_get_device_registry(self): # Setup Expected Response - id_ = 'id3355' - name_2 = 'name2-1052831874' - expected_response = {'id': id_, 'name': name_2} + id_ = "id3355" + name_2 = "name2-1052831874" + expected_response = {"id": id_, "name": name_2} expected_response = resources_pb2.DeviceRegistry(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - name = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') + name = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") response = client.get_device_registry(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = device_manager_pb2.GetDeviceRegistryRequest( - name=name) + expected_request = device_manager_pb2.GetDeviceRegistryRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_device_registry_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - name = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') + name = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") with pytest.raises(CustomException): client.get_device_registry(name) def test_update_device_registry(self): # Setup Expected Response - id_ = 'id3355' - name = 'name3373707' - expected_response = {'id': id_, 'name': name} + id_ = "id3355" + name = "name3373707" + expected_response = {"id": id_, "name": name} expected_response = resources_pb2.DeviceRegistry(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() @@ -172,14 +169,15 @@ def test_update_device_registry(self): assert len(channel.requests) == 1 expected_request = device_manager_pb2.UpdateDeviceRegistryRequest( - device_registry=device_registry, update_mask=update_mask) + device_registry=device_registry, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_device_registry_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() @@ -193,57 +191,57 @@ def test_update_device_registry_exception(self): def test_delete_device_registry(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - name = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') + name = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") client.delete_device_registry(name) assert len(channel.requests) == 1 - expected_request = device_manager_pb2.DeleteDeviceRegistryRequest( - name=name) + expected_request = device_manager_pb2.DeleteDeviceRegistryRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_device_registry_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - name = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') + name = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") with pytest.raises(CustomException): client.delete_device_registry(name) def test_list_device_registries(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" device_registries_element = {} device_registries = [device_registries_element] expected_response = { - 'next_page_token': next_page_token, - 'device_registries': device_registries + "next_page_token": next_page_token, + "device_registries": device_registries, } expected_response = device_manager_pb2.ListDeviceRegistriesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_device_registries(parent) resources = list(paged_list_response) @@ -252,20 +250,19 @@ def test_list_device_registries(self): assert expected_response.device_registries[0] == resources[0] assert len(channel.requests) == 1 - expected_request = device_manager_pb2.ListDeviceRegistriesRequest( - parent=parent) + expected_request = device_manager_pb2.ListDeviceRegistriesRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_device_registries_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_device_registries(parent) with pytest.raises(CustomException): @@ -273,27 +270,27 @@ def test_list_device_registries_exception(self): def test_create_device(self): # Setup Expected Response - id_ = 'id3355' - name = 'name3373707' + id_ = "id3355" + name = "name3373707" num_id = 1034366860 blocked = True expected_response = { - 'id': id_, - 'name': name, - 'num_id': num_id, - 'blocked': blocked + "id": id_, + "name": name, + "num_id": num_id, + "blocked": blocked, } expected_response = resources_pb2.Device(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - parent = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') + parent = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") device = {} response = client.create_device(parent, device) @@ -301,20 +298,21 @@ def test_create_device(self): assert len(channel.requests) == 1 expected_request = device_manager_pb2.CreateDeviceRequest( - parent=parent, device=device) + parent=parent, device=device + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_device_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - parent = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') + parent = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") device = {} with pytest.raises(CustomException): @@ -322,28 +320,27 @@ def test_create_device_exception(self): def test_get_device(self): # Setup Expected Response - id_ = 'id3355' - name_2 = 'name2-1052831874' + id_ = "id3355" + name_2 = "name2-1052831874" num_id = 1034366860 blocked = True expected_response = { - 'id': id_, - 'name': name_2, - 'num_id': num_id, - 'blocked': blocked + "id": id_, + "name": name_2, + "num_id": num_id, + "blocked": blocked, } expected_response = resources_pb2.Device(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") response = client.get_device(name) assert expected_response == response @@ -356,35 +353,34 @@ def test_get_device(self): def test_get_device_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") with pytest.raises(CustomException): client.get_device(name) def test_update_device(self): # Setup Expected Response - id_ = 'id3355' - name = 'name3373707' + id_ = "id3355" + name = "name3373707" num_id = 1034366860 blocked = True expected_response = { - 'id': id_, - 'name': name, - 'num_id': num_id, - 'blocked': blocked + "id": id_, + "name": name, + "num_id": num_id, + "blocked": blocked, } expected_response = resources_pb2.Device(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() @@ -398,14 +394,15 @@ def test_update_device(self): assert len(channel.requests) == 1 expected_request = device_manager_pb2.UpdateDeviceRequest( - device=device, update_mask=update_mask) + device=device, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_device_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() @@ -419,14 +416,13 @@ def test_update_device_exception(self): def test_delete_device(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") client.delete_device(name) @@ -438,39 +434,34 @@ def test_delete_device(self): def test_delete_device_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") with pytest.raises(CustomException): client.delete_device(name) def test_list_devices(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" devices_element = {} devices = [devices_element] - expected_response = { - 'next_page_token': next_page_token, - 'devices': devices - } - expected_response = device_manager_pb2.ListDevicesResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "devices": devices} + expected_response = device_manager_pb2.ListDevicesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - parent = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') + parent = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") paged_list_response = client.list_devices(parent) resources = list(paged_list_response) @@ -485,13 +476,13 @@ def test_list_devices(self): def test_list_devices_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - parent = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') + parent = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") paged_list_response = client.list_devices(parent) with pytest.raises(CustomException): @@ -500,43 +491,42 @@ def test_list_devices_exception(self): def test_modify_cloud_to_device_config(self): # Setup Expected Response version = 351608024 - binary_data_2 = b'-37' - expected_response = {'version': version, 'binary_data': binary_data_2} + binary_data_2 = b"-37" + expected_response = {"version": version, "binary_data": binary_data_2} expected_response = resources_pb2.DeviceConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') - binary_data = b'40' + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") + binary_data = b"40" response = client.modify_cloud_to_device_config(name, binary_data) assert expected_response == response assert len(channel.requests) == 1 expected_request = device_manager_pb2.ModifyCloudToDeviceConfigRequest( - name=name, binary_data=binary_data) + name=name, binary_data=binary_data + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_modify_cloud_to_device_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') - binary_data = b'40' + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") + binary_data = b"40" with pytest.raises(CustomException): client.modify_cloud_to_device_config(name, binary_data) @@ -545,39 +535,37 @@ def test_list_device_config_versions(self): # Setup Expected Response expected_response = {} expected_response = device_manager_pb2.ListDeviceConfigVersionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") response = client.list_device_config_versions(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = device_manager_pb2.ListDeviceConfigVersionsRequest( - name=name) + expected_request = device_manager_pb2.ListDeviceConfigVersionsRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_device_config_versions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") with pytest.raises(CustomException): client.list_device_config_versions(name) @@ -586,39 +574,37 @@ def test_list_device_states(self): # Setup Expected Response expected_response = {} expected_response = device_manager_pb2.ListDeviceStatesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") response = client.list_device_states(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = device_manager_pb2.ListDeviceStatesRequest( - name=name) + expected_request = device_manager_pb2.ListDeviceStatesRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_device_states_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") with pytest.raises(CustomException): client.list_device_states(name) @@ -626,20 +612,19 @@ def test_list_device_states_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - resource = client.registry_path('[PROJECT]', '[LOCATION]', - '[REGISTRY]') + resource = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") policy = {} response = client.set_iam_policy(resource, policy) @@ -647,21 +632,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - resource = client.registry_path('[PROJECT]', '[LOCATION]', - '[REGISTRY]') + resource = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") policy = {} with pytest.raises(CustomException): @@ -670,41 +655,38 @@ def test_set_iam_policy_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - resource = client.registry_path('[PROJECT]', '[LOCATION]', - '[REGISTRY]') + resource = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - resource = client.registry_path('[PROJECT]', '[LOCATION]', - '[REGISTRY]') + resource = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") with pytest.raises(CustomException): client.get_iam_policy(resource) @@ -713,18 +695,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - resource = client.registry_path('[PROJECT]', '[LOCATION]', - '[REGISTRY]') + resource = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -732,21 +714,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - resource = client.registry_path('[PROJECT]', '[LOCATION]', - '[REGISTRY]') + resource = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") permissions = [] with pytest.raises(CustomException): @@ -756,41 +738,41 @@ def test_send_command_to_device(self): # Setup Expected Response expected_response = {} expected_response = device_manager_pb2.SendCommandToDeviceResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') - binary_data = b'40' + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") + binary_data = b"40" response = client.send_command_to_device(name, binary_data) assert expected_response == response assert len(channel.requests) == 1 expected_request = device_manager_pb2.SendCommandToDeviceRequest( - name=name, binary_data=binary_data) + name=name, binary_data=binary_data + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_send_command_to_device_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - name = client.device_path('[PROJECT]', '[LOCATION]', '[REGISTRY]', - '[DEVICE]') - binary_data = b'40' + name = client.device_path("[PROJECT]", "[LOCATION]", "[REGISTRY]", "[DEVICE]") + binary_data = b"40" with pytest.raises(CustomException): client.send_command_to_device(name, binary_data) @@ -799,41 +781,43 @@ def test_bind_device_to_gateway(self): # Setup Expected Response expected_response = {} expected_response = device_manager_pb2.BindDeviceToGatewayResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - parent = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') - gateway_id = 'gatewayId955798774' - device_id = 'deviceId25209764' + parent = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") + gateway_id = "gatewayId955798774" + device_id = "deviceId25209764" response = client.bind_device_to_gateway(parent, gateway_id, device_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = device_manager_pb2.BindDeviceToGatewayRequest( - parent=parent, gateway_id=gateway_id, device_id=device_id) + parent=parent, gateway_id=gateway_id, device_id=device_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_bind_device_to_gateway_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - parent = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') - gateway_id = 'gatewayId955798774' - device_id = 'deviceId25209764' + parent = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") + gateway_id = "gatewayId955798774" + device_id = "deviceId25209764" with pytest.raises(CustomException): client.bind_device_to_gateway(parent, gateway_id, device_id) @@ -842,42 +826,43 @@ def test_unbind_device_from_gateway(self): # Setup Expected Response expected_response = {} expected_response = device_manager_pb2.UnbindDeviceFromGatewayResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup Request - parent = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') - gateway_id = 'gatewayId955798774' - device_id = 'deviceId25209764' + parent = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") + gateway_id = "gatewayId955798774" + device_id = "deviceId25209764" - response = client.unbind_device_from_gateway(parent, gateway_id, - device_id) + response = client.unbind_device_from_gateway(parent, gateway_id, device_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = device_manager_pb2.UnbindDeviceFromGatewayRequest( - parent=parent, gateway_id=gateway_id, device_id=device_id) + parent=parent, gateway_id=gateway_id, device_id=device_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_unbind_device_from_gateway_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = iot_v1.DeviceManagerClient() # Setup request - parent = client.registry_path('[PROJECT]', '[LOCATION]', '[REGISTRY]') - gateway_id = 'gatewayId955798774' - device_id = 'deviceId25209764' + parent = client.registry_path("[PROJECT]", "[LOCATION]", "[REGISTRY]") + gateway_id = "gatewayId955798774" + device_id = "deviceId25209764" with pytest.raises(CustomException): client.unbind_device_from_gateway(parent, gateway_id, device_id) diff --git a/kms/docs/conf.py b/kms/docs/conf.py index d9d87483838c..8092ed683f14 100644 --- a/kms/docs/conf.py +++ b/kms/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-kms' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-kms" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-kms-doc' +htmlhelp_basename = "google-cloud-kms-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,45 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-kms.tex', u'google-cloud-kms Documentation', - author, 'manual'), + ( + master_doc, + "google-cloud-kms.tex", + u"google-cloud-kms Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-kms', - u'google-cloud-kms Documentation', [author], 1)] +man_pages = [ + (master_doc, "google-cloud-kms", u"google-cloud-kms Documentation", [author], 1) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +277,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-kms', u'google-cloud-kms Documentation', author, - 'google-cloud-kms', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-kms", + u"google-cloud-kms Documentation", + author, + "google-cloud-kms", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/kms/google/__init__.py b/kms/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/kms/google/__init__.py +++ b/kms/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/kms/google/cloud/__init__.py b/kms/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/kms/google/cloud/__init__.py +++ b/kms/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/kms/google/cloud/kms.py b/kms/google/cloud/kms.py index e6db893c2b24..187253ea29f1 100644 --- a/kms/google/cloud/kms.py +++ b/kms/google/cloud/kms.py @@ -20,8 +20,4 @@ from google.cloud.kms_v1 import enums from google.cloud.kms_v1 import types -__all__ = ( - 'enums', - 'types', - 'KeyManagementServiceClient', -) +__all__ = ("enums", "types", "KeyManagementServiceClient") diff --git a/kms/google/cloud/kms_v1/__init__.py b/kms/google/cloud/kms_v1/__init__.py index c5175896abf4..20fabac3f427 100644 --- a/kms/google/cloud/kms_v1/__init__.py +++ b/kms/google/cloud/kms_v1/__init__.py @@ -22,13 +22,10 @@ class KeyManagementServiceClient( - key_management_service_client.KeyManagementServiceClient): + key_management_service_client.KeyManagementServiceClient +): __doc__ = key_management_service_client.KeyManagementServiceClient.__doc__ enums = enums -__all__ = ( - 'enums', - 'types', - 'KeyManagementServiceClient', -) +__all__ = ("enums", "types", "KeyManagementServiceClient") diff --git a/kms/google/cloud/kms_v1/gapic/enums.py b/kms/google/cloud/kms_v1/gapic/enums.py index 0edc531438a0..2d5fa947fd93 100644 --- a/kms/google/cloud/kms_v1/gapic/enums.py +++ b/kms/google/cloud/kms_v1/gapic/enums.py @@ -28,6 +28,7 @@ class ProtectionLevel(enum.IntEnum): SOFTWARE (int): Crypto operations are performed in software. HSM (int): Crypto operations are performed in a Hardware Security Module. """ + PROTECTION_LEVEL_UNSPECIFIED = 0 SOFTWARE = 1 HSM = 2 @@ -49,6 +50,7 @@ class CryptoKeyPurpose(enum.IntEnum): ASYMMETRIC_DECRYPT (int): ``CryptoKeys`` with this purpose may be used with ``AsymmetricDecrypt`` and ``GetPublicKey``. """ + CRYPTO_KEY_PURPOSE_UNSPECIFIED = 0 ENCRYPT_DECRYPT = 1 ASYMMETRIC_SIGN = 5 @@ -65,6 +67,7 @@ class AttestationFormat(enum.IntEnum): CAVIUM_V1_COMPRESSED (int): Cavium HSM attestation compressed with gzip. Note that this format is defined by Cavium and subject to change at any time. """ + ATTESTATION_FORMAT_UNSPECIFIED = 0 CAVIUM_V1_COMPRESSED = 3 @@ -116,6 +119,7 @@ class CryptoKeyVersionAlgorithm(enum.IntEnum): EC_SIGN_P256_SHA256 (int): ECDSA on the NIST P-256 curve with a SHA256 digest. EC_SIGN_P384_SHA384 (int): ECDSA on the NIST P-384 curve with a SHA384 digest. """ + CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED = 0 GOOGLE_SYMMETRIC_ENCRYPTION = 1 RSA_SIGN_PSS_2048_SHA256 = 2 @@ -148,6 +152,7 @@ class CryptoKeyVersionState(enum.IntEnum): Call ``RestoreCryptoKeyVersion`` to put it back into the ``DISABLED`` state. """ + CRYPTO_KEY_VERSION_STATE_UNSPECIFIED = 0 PENDING_GENERATION = 5 ENABLED = 1 @@ -168,5 +173,6 @@ class CryptoKeyVersionView(enum.IntEnum): FULL (int): Provides all fields in each ``CryptoKeyVersion``, including the ``attestation``. """ + CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED = 0 FULL = 1 diff --git a/kms/google/cloud/kms_v1/gapic/key_management_service_client.py b/kms/google/cloud/kms_v1/gapic/key_management_service_client.py index 461866571810..b0b3534b86d1 100644 --- a/kms/google/cloud/kms_v1/gapic/key_management_service_client.py +++ b/kms/google/cloud/kms_v1/gapic/key_management_service_client.py @@ -39,8 +39,7 @@ from google.iam.v1 import policy_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-kms', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-kms").version class KeyManagementServiceClient(object): @@ -58,12 +57,12 @@ class KeyManagementServiceClient(object): KMS `__. """ - SERVICE_ADDRESS = 'cloudkms.googleapis.com:443' + SERVICE_ADDRESS = "cloudkms.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.kms.v1.KeyManagementService' + _INTERFACE_NAME = "google.cloud.kms.v1.KeyManagementService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -79,9 +78,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: KeyManagementServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -90,18 +88,17 @@ def from_service_account_file(cls, filename, *args, **kwargs): def key_ring_path(cls, project, location, key_ring): """Return a fully-qualified key_ring string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/keyRings/{key_ring}', + "projects/{project}/locations/{location}/keyRings/{key_ring}", project=project, location=location, key_ring=key_ring, ) @classmethod - def crypto_key_path_path(cls, project, location, key_ring, - crypto_key_path): + def crypto_key_path_path(cls, project, location, key_ring, crypto_key_path): """Return a fully-qualified crypto_key_path string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key_path=**}', + "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key_path=**}", project=project, location=location, key_ring=key_ring, @@ -112,7 +109,7 @@ def crypto_key_path_path(cls, project, location, key_ring, def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -121,7 +118,7 @@ def location_path(cls, project, location): def crypto_key_path(cls, project, location, key_ring, crypto_key): """Return a fully-qualified crypto_key string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}', + "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}", project=project, location=location, key_ring=key_ring, @@ -129,11 +126,12 @@ def crypto_key_path(cls, project, location, key_ring, crypto_key): ) @classmethod - def crypto_key_version_path(cls, project, location, key_ring, crypto_key, - crypto_key_version): + def crypto_key_version_path( + cls, project, location, key_ring, crypto_key, crypto_key_version + ): """Return a fully-qualified crypto_key_version string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}', + "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}", project=project, location=location, key_ring=key_ring, @@ -141,12 +139,14 @@ def crypto_key_version_path(cls, project, location, key_ring, crypto_key, crypto_key_version=crypto_key_version, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -180,18 +180,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = key_management_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -200,25 +201,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=key_management_service_grpc_transport. - KeyManagementServiceGrpcTransport, + default_class=key_management_service_grpc_transport.KeyManagementServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = key_management_service_grpc_transport.KeyManagementServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -228,7 +228,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -237,12 +238,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_key_rings(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_key_rings( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists ``KeyRings``. @@ -298,53 +301,54 @@ def list_key_rings(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_key_rings' not in self._inner_api_calls: + if "list_key_rings" not in self._inner_api_calls: self._inner_api_calls[ - 'list_key_rings'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_key_rings, - default_retry=self._method_configs['ListKeyRings'].retry, - default_timeout=self._method_configs['ListKeyRings']. - timeout, - client_info=self._client_info, - ) + "list_key_rings" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_key_rings, + default_retry=self._method_configs["ListKeyRings"].retry, + default_timeout=self._method_configs["ListKeyRings"].timeout, + client_info=self._client_info, + ) - request = service_pb2.ListKeyRingsRequest( - parent=parent, - page_size=page_size, - ) + request = service_pb2.ListKeyRingsRequest(parent=parent, page_size=page_size) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_key_rings'], + self._inner_api_calls["list_key_rings"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='key_rings', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="key_rings", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def list_crypto_keys(self, - parent, - page_size=None, - version_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_crypto_keys( + self, + parent, + page_size=None, + version_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists ``CryptoKeys``. @@ -401,55 +405,56 @@ def list_crypto_keys(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_crypto_keys' not in self._inner_api_calls: + if "list_crypto_keys" not in self._inner_api_calls: self._inner_api_calls[ - 'list_crypto_keys'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_crypto_keys, - default_retry=self._method_configs['ListCryptoKeys'].retry, - default_timeout=self._method_configs['ListCryptoKeys']. - timeout, - client_info=self._client_info, - ) + "list_crypto_keys" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_crypto_keys, + default_retry=self._method_configs["ListCryptoKeys"].retry, + default_timeout=self._method_configs["ListCryptoKeys"].timeout, + client_info=self._client_info, + ) request = service_pb2.ListCryptoKeysRequest( - parent=parent, - page_size=page_size, - version_view=version_view, + parent=parent, page_size=page_size, version_view=version_view ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_crypto_keys'], + self._inner_api_calls["list_crypto_keys"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='crypto_keys', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="crypto_keys", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def list_crypto_key_versions( - self, - parent, - page_size=None, - view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + page_size=None, + view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists ``CryptoKeyVersions``. @@ -506,53 +511,54 @@ def list_crypto_key_versions( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_crypto_key_versions' not in self._inner_api_calls: + if "list_crypto_key_versions" not in self._inner_api_calls: self._inner_api_calls[ - 'list_crypto_key_versions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_crypto_key_versions, - default_retry=self. - _method_configs['ListCryptoKeyVersions'].retry, - default_timeout=self. - _method_configs['ListCryptoKeyVersions'].timeout, - client_info=self._client_info, - ) + "list_crypto_key_versions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_crypto_key_versions, + default_retry=self._method_configs["ListCryptoKeyVersions"].retry, + default_timeout=self._method_configs["ListCryptoKeyVersions"].timeout, + client_info=self._client_info, + ) request = service_pb2.ListCryptoKeyVersionsRequest( - parent=parent, - page_size=page_size, - view=view, + parent=parent, page_size=page_size, view=view ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_crypto_key_versions'], + self._inner_api_calls["list_crypto_key_versions"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='crypto_key_versions', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="crypto_key_versions", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_key_ring(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_key_ring( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns metadata for a given ``KeyRing``. @@ -587,36 +593,41 @@ def get_key_ring(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_key_ring' not in self._inner_api_calls: + if "get_key_ring" not in self._inner_api_calls: self._inner_api_calls[ - 'get_key_ring'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_key_ring, - default_retry=self._method_configs['GetKeyRing'].retry, - default_timeout=self._method_configs['GetKeyRing'].timeout, - client_info=self._client_info, - ) + "get_key_ring" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_key_ring, + default_retry=self._method_configs["GetKeyRing"].retry, + default_timeout=self._method_configs["GetKeyRing"].timeout, + client_info=self._client_info, + ) - request = service_pb2.GetKeyRingRequest(name=name, ) + request = service_pb2.GetKeyRingRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_key_ring']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_key_ring"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_crypto_key(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_crypto_key( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns metadata for a given ``CryptoKey``, as well as its ``primary`` ``CryptoKeyVersion``. @@ -652,37 +663,41 @@ def get_crypto_key(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_crypto_key' not in self._inner_api_calls: + if "get_crypto_key" not in self._inner_api_calls: self._inner_api_calls[ - 'get_crypto_key'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_crypto_key, - default_retry=self._method_configs['GetCryptoKey'].retry, - default_timeout=self._method_configs['GetCryptoKey']. - timeout, - client_info=self._client_info, - ) + "get_crypto_key" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_crypto_key, + default_retry=self._method_configs["GetCryptoKey"].retry, + default_timeout=self._method_configs["GetCryptoKey"].timeout, + client_info=self._client_info, + ) - request = service_pb2.GetCryptoKeyRequest(name=name, ) + request = service_pb2.GetCryptoKeyRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_crypto_key']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_crypto_key"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_crypto_key_version(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_crypto_key_version( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns metadata for a given ``CryptoKeyVersion``. @@ -717,40 +732,43 @@ def get_crypto_key_version(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_crypto_key_version' not in self._inner_api_calls: + if "get_crypto_key_version" not in self._inner_api_calls: self._inner_api_calls[ - 'get_crypto_key_version'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_crypto_key_version, - default_retry=self._method_configs['GetCryptoKeyVersion']. - retry, - default_timeout=self. - _method_configs['GetCryptoKeyVersion'].timeout, - client_info=self._client_info, - ) + "get_crypto_key_version" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_crypto_key_version, + default_retry=self._method_configs["GetCryptoKeyVersion"].retry, + default_timeout=self._method_configs["GetCryptoKeyVersion"].timeout, + client_info=self._client_info, + ) - request = service_pb2.GetCryptoKeyVersionRequest(name=name, ) + request = service_pb2.GetCryptoKeyVersionRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_crypto_key_version']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_crypto_key_version"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def create_key_ring(self, - parent, - key_ring_id, - key_ring, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_key_ring( + self, + parent, + key_ring_id, + key_ring, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Create a new ``KeyRing`` in a given Project and Location. @@ -798,43 +816,45 @@ def create_key_ring(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_key_ring' not in self._inner_api_calls: + if "create_key_ring" not in self._inner_api_calls: self._inner_api_calls[ - 'create_key_ring'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_key_ring, - default_retry=self._method_configs['CreateKeyRing'].retry, - default_timeout=self._method_configs['CreateKeyRing']. - timeout, - client_info=self._client_info, - ) + "create_key_ring" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_key_ring, + default_retry=self._method_configs["CreateKeyRing"].retry, + default_timeout=self._method_configs["CreateKeyRing"].timeout, + client_info=self._client_info, + ) request = service_pb2.CreateKeyRingRequest( - parent=parent, - key_ring_id=key_ring_id, - key_ring=key_ring, + parent=parent, key_ring_id=key_ring_id, key_ring=key_ring ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_key_ring']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_key_ring"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def create_crypto_key(self, - parent, - crypto_key_id, - crypto_key, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_crypto_key( + self, + parent, + crypto_key_id, + crypto_key, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Create a new ``CryptoKey`` within a ``KeyRing``. @@ -887,44 +907,44 @@ def create_crypto_key(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_crypto_key' not in self._inner_api_calls: + if "create_crypto_key" not in self._inner_api_calls: self._inner_api_calls[ - 'create_crypto_key'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_crypto_key, - default_retry=self._method_configs['CreateCryptoKey']. - retry, - default_timeout=self._method_configs['CreateCryptoKey']. - timeout, - client_info=self._client_info, - ) + "create_crypto_key" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_crypto_key, + default_retry=self._method_configs["CreateCryptoKey"].retry, + default_timeout=self._method_configs["CreateCryptoKey"].timeout, + client_info=self._client_info, + ) request = service_pb2.CreateCryptoKeyRequest( - parent=parent, - crypto_key_id=crypto_key_id, - crypto_key=crypto_key, + parent=parent, crypto_key_id=crypto_key_id, crypto_key=crypto_key ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_crypto_key']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_crypto_key"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def create_crypto_key_version( - self, - parent, - crypto_key_version, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + crypto_key_version, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Create a new ``CryptoKeyVersion`` in a ``CryptoKey``. @@ -970,42 +990,44 @@ def create_crypto_key_version( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_crypto_key_version' not in self._inner_api_calls: + if "create_crypto_key_version" not in self._inner_api_calls: self._inner_api_calls[ - 'create_crypto_key_version'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_crypto_key_version, - default_retry=self. - _method_configs['CreateCryptoKeyVersion'].retry, - default_timeout=self. - _method_configs['CreateCryptoKeyVersion'].timeout, - client_info=self._client_info, - ) + "create_crypto_key_version" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_crypto_key_version, + default_retry=self._method_configs["CreateCryptoKeyVersion"].retry, + default_timeout=self._method_configs["CreateCryptoKeyVersion"].timeout, + client_info=self._client_info, + ) request = service_pb2.CreateCryptoKeyVersionRequest( - parent=parent, - crypto_key_version=crypto_key_version, + parent=parent, crypto_key_version=crypto_key_version ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_crypto_key_version']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_crypto_key_version"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_crypto_key(self, - crypto_key, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_crypto_key( + self, + crypto_key, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Update a ``CryptoKey``. @@ -1051,43 +1073,44 @@ def update_crypto_key(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_crypto_key' not in self._inner_api_calls: + if "update_crypto_key" not in self._inner_api_calls: self._inner_api_calls[ - 'update_crypto_key'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_crypto_key, - default_retry=self._method_configs['UpdateCryptoKey']. - retry, - default_timeout=self._method_configs['UpdateCryptoKey']. - timeout, - client_info=self._client_info, - ) + "update_crypto_key" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_crypto_key, + default_retry=self._method_configs["UpdateCryptoKey"].retry, + default_timeout=self._method_configs["UpdateCryptoKey"].timeout, + client_info=self._client_info, + ) request = service_pb2.UpdateCryptoKeyRequest( - crypto_key=crypto_key, - update_mask=update_mask, + crypto_key=crypto_key, update_mask=update_mask ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('crypto_key.name', crypto_key.name)] + routing_header = [("crypto_key.name", crypto_key.name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['update_crypto_key']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_crypto_key"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def update_crypto_key_version( - self, - crypto_key_version, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + crypto_key_version, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Update a ``CryptoKeyVersion``'s metadata. @@ -1137,44 +1160,45 @@ def update_crypto_key_version( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_crypto_key_version' not in self._inner_api_calls: + if "update_crypto_key_version" not in self._inner_api_calls: self._inner_api_calls[ - 'update_crypto_key_version'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_crypto_key_version, - default_retry=self. - _method_configs['UpdateCryptoKeyVersion'].retry, - default_timeout=self. - _method_configs['UpdateCryptoKeyVersion'].timeout, - client_info=self._client_info, - ) + "update_crypto_key_version" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_crypto_key_version, + default_retry=self._method_configs["UpdateCryptoKeyVersion"].retry, + default_timeout=self._method_configs["UpdateCryptoKeyVersion"].timeout, + client_info=self._client_info, + ) request = service_pb2.UpdateCryptoKeyVersionRequest( - crypto_key_version=crypto_key_version, - update_mask=update_mask, + crypto_key_version=crypto_key_version, update_mask=update_mask ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('crypto_key_version.name', - crypto_key_version.name)] + routing_header = [("crypto_key_version.name", crypto_key_version.name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['update_crypto_key_version']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_crypto_key_version"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def encrypt(self, - name, - plaintext, - additional_authenticated_data=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def encrypt( + self, + name, + plaintext, + additional_authenticated_data=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Encrypts data, so that it can only be recovered by a call to ``Decrypt``. The ``CryptoKey.purpose`` must be ``ENCRYPT_DECRYPT``. @@ -1230,14 +1254,15 @@ def encrypt(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'encrypt' not in self._inner_api_calls: + if "encrypt" not in self._inner_api_calls: self._inner_api_calls[ - 'encrypt'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.encrypt, - default_retry=self._method_configs['Encrypt'].retry, - default_timeout=self._method_configs['Encrypt'].timeout, - client_info=self._client_info, - ) + "encrypt" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.encrypt, + default_retry=self._method_configs["Encrypt"].retry, + default_timeout=self._method_configs["Encrypt"].timeout, + client_info=self._client_info, + ) request = service_pb2.EncryptRequest( name=name, @@ -1248,24 +1273,28 @@ def encrypt(self, metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['encrypt']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["encrypt"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def decrypt(self, - name, - ciphertext, - additional_authenticated_data=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def decrypt( + self, + name, + ciphertext, + additional_authenticated_data=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Decrypts data that was protected by ``Encrypt``. The ``CryptoKey.purpose`` must be ``ENCRYPT_DECRYPT``. @@ -1309,14 +1338,15 @@ def decrypt(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'decrypt' not in self._inner_api_calls: + if "decrypt" not in self._inner_api_calls: self._inner_api_calls[ - 'decrypt'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.decrypt, - default_retry=self._method_configs['Decrypt'].retry, - default_timeout=self._method_configs['Decrypt'].timeout, - client_info=self._client_info, - ) + "decrypt" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.decrypt, + default_retry=self._method_configs["Decrypt"].retry, + default_timeout=self._method_configs["Decrypt"].timeout, + client_info=self._client_info, + ) request = service_pb2.DecryptRequest( name=name, @@ -1327,24 +1357,27 @@ def decrypt(self, metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['decrypt']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["decrypt"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def update_crypto_key_primary_version( - self, - name, - crypto_key_version_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + crypto_key_version_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Update the version of a ``CryptoKey`` that will be used in ``Encrypt``. @@ -1385,42 +1418,47 @@ def update_crypto_key_primary_version( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_crypto_key_primary_version' not in self._inner_api_calls: + if "update_crypto_key_primary_version" not in self._inner_api_calls: self._inner_api_calls[ - 'update_crypto_key_primary_version'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_crypto_key_primary_version, - default_retry=self. - _method_configs['UpdateCryptoKeyPrimaryVersion'].retry, - default_timeout=self. - _method_configs['UpdateCryptoKeyPrimaryVersion'].timeout, - client_info=self._client_info, - ) + "update_crypto_key_primary_version" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_crypto_key_primary_version, + default_retry=self._method_configs[ + "UpdateCryptoKeyPrimaryVersion" + ].retry, + default_timeout=self._method_configs[ + "UpdateCryptoKeyPrimaryVersion" + ].timeout, + client_info=self._client_info, + ) request = service_pb2.UpdateCryptoKeyPrimaryVersionRequest( - name=name, - crypto_key_version_id=crypto_key_version_id, + name=name, crypto_key_version_id=crypto_key_version_id ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['update_crypto_key_primary_version']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_crypto_key_primary_version"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def destroy_crypto_key_version( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Schedule a ``CryptoKeyVersion`` for destruction. @@ -1463,39 +1501,41 @@ def destroy_crypto_key_version( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'destroy_crypto_key_version' not in self._inner_api_calls: + if "destroy_crypto_key_version" not in self._inner_api_calls: self._inner_api_calls[ - 'destroy_crypto_key_version'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.destroy_crypto_key_version, - default_retry=self. - _method_configs['DestroyCryptoKeyVersion'].retry, - default_timeout=self. - _method_configs['DestroyCryptoKeyVersion'].timeout, - client_info=self._client_info, - ) + "destroy_crypto_key_version" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.destroy_crypto_key_version, + default_retry=self._method_configs["DestroyCryptoKeyVersion"].retry, + default_timeout=self._method_configs["DestroyCryptoKeyVersion"].timeout, + client_info=self._client_info, + ) - request = service_pb2.DestroyCryptoKeyVersionRequest(name=name, ) + request = service_pb2.DestroyCryptoKeyVersionRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['destroy_crypto_key_version']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["destroy_crypto_key_version"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def restore_crypto_key_version( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Restore a ``CryptoKeyVersion`` in the ``DESTROY_SCHEDULED`` state. @@ -1533,38 +1573,41 @@ def restore_crypto_key_version( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'restore_crypto_key_version' not in self._inner_api_calls: + if "restore_crypto_key_version" not in self._inner_api_calls: self._inner_api_calls[ - 'restore_crypto_key_version'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.restore_crypto_key_version, - default_retry=self. - _method_configs['RestoreCryptoKeyVersion'].retry, - default_timeout=self. - _method_configs['RestoreCryptoKeyVersion'].timeout, - client_info=self._client_info, - ) + "restore_crypto_key_version" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.restore_crypto_key_version, + default_retry=self._method_configs["RestoreCryptoKeyVersion"].retry, + default_timeout=self._method_configs["RestoreCryptoKeyVersion"].timeout, + client_info=self._client_info, + ) - request = service_pb2.RestoreCryptoKeyVersionRequest(name=name, ) + request = service_pb2.RestoreCryptoKeyVersionRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['restore_crypto_key_version']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["restore_crypto_key_version"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_public_key(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_public_key( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns the public key for the given ``CryptoKeyVersion``. The ``CryptoKey.purpose`` must be ``ASYMMETRIC_SIGN`` or @@ -1601,38 +1644,42 @@ def get_public_key(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_public_key' not in self._inner_api_calls: + if "get_public_key" not in self._inner_api_calls: self._inner_api_calls[ - 'get_public_key'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_public_key, - default_retry=self._method_configs['GetPublicKey'].retry, - default_timeout=self._method_configs['GetPublicKey']. - timeout, - client_info=self._client_info, - ) + "get_public_key" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_public_key, + default_retry=self._method_configs["GetPublicKey"].retry, + default_timeout=self._method_configs["GetPublicKey"].timeout, + client_info=self._client_info, + ) - request = service_pb2.GetPublicKeyRequest(name=name, ) + request = service_pb2.GetPublicKeyRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_public_key']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_public_key"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def asymmetric_decrypt(self, - name, - ciphertext, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def asymmetric_decrypt( + self, + name, + ciphertext, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Decrypts data that was encrypted with a public key retrieved from ``GetPublicKey`` corresponding to a ``CryptoKeyVersion`` with @@ -1675,42 +1722,42 @@ def asymmetric_decrypt(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'asymmetric_decrypt' not in self._inner_api_calls: + if "asymmetric_decrypt" not in self._inner_api_calls: self._inner_api_calls[ - 'asymmetric_decrypt'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.asymmetric_decrypt, - default_retry=self._method_configs['AsymmetricDecrypt']. - retry, - default_timeout=self._method_configs['AsymmetricDecrypt']. - timeout, - client_info=self._client_info, - ) + "asymmetric_decrypt" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.asymmetric_decrypt, + default_retry=self._method_configs["AsymmetricDecrypt"].retry, + default_timeout=self._method_configs["AsymmetricDecrypt"].timeout, + client_info=self._client_info, + ) - request = service_pb2.AsymmetricDecryptRequest( - name=name, - ciphertext=ciphertext, - ) + request = service_pb2.AsymmetricDecryptRequest(name=name, ciphertext=ciphertext) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['asymmetric_decrypt']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["asymmetric_decrypt"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def asymmetric_sign(self, - name, - digest, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def asymmetric_sign( + self, + name, + digest, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Signs data using a ``CryptoKeyVersion`` with ``CryptoKey.purpose`` ASYMMETRIC\_SIGN, producing a signature that can be verified with the @@ -1757,41 +1804,42 @@ def asymmetric_sign(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'asymmetric_sign' not in self._inner_api_calls: + if "asymmetric_sign" not in self._inner_api_calls: self._inner_api_calls[ - 'asymmetric_sign'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.asymmetric_sign, - default_retry=self._method_configs['AsymmetricSign'].retry, - default_timeout=self._method_configs['AsymmetricSign']. - timeout, - client_info=self._client_info, - ) + "asymmetric_sign" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.asymmetric_sign, + default_retry=self._method_configs["AsymmetricSign"].retry, + default_timeout=self._method_configs["AsymmetricSign"].timeout, + client_info=self._client_info, + ) - request = service_pb2.AsymmetricSignRequest( - name=name, - digest=digest, - ) + request = service_pb2.AsymmetricSignRequest(name=name, digest=digest) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['asymmetric_sign']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["asymmetric_sign"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy on the specified resource. Replaces any existing policy. @@ -1839,40 +1887,41 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, - ) + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy @@ -1911,38 +1960,42 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, @@ -1988,32 +2041,32 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/kms/google/cloud/kms_v1/gapic/key_management_service_client_config.py b/kms/google/cloud/kms_v1/gapic/key_management_service_client_config.py index 6f0213c2ef49..5924cbac39b1 100644 --- a/kms/google/cloud/kms_v1/gapic/key_management_service_client_config.py +++ b/kms/google/cloud/kms_v1/gapic/key_management_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.kms.v1.KeyManagementService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,121 +13,121 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListKeyRings": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListCryptoKeys": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListCryptoKeyVersions": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetKeyRing": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetCryptoKey": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetCryptoKeyVersion": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateKeyRing": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateCryptoKey": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateCryptoKeyVersion": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateCryptoKey": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateCryptoKeyVersion": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "Encrypt": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "Decrypt": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateCryptoKeyPrimaryVersion": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DestroyCryptoKeyVersion": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RestoreCryptoKeyVersion": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetPublicKey": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AsymmetricDecrypt": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AsymmetricSign": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/kms/google/cloud/kms_v1/gapic/transports/key_management_service_grpc_transport.py b/kms/google/cloud/kms_v1/gapic/transports/key_management_service_grpc_transport.py index a03fca5f637a..c4ea64152529 100644 --- a/kms/google/cloud/kms_v1/gapic/transports/key_management_service_grpc_transport.py +++ b/kms/google/cloud/kms_v1/gapic/transports/key_management_service_grpc_transport.py @@ -28,14 +28,14 @@ class KeyManagementServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='cloudkms.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="cloudkms.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,31 +53,26 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'key_management_service_stub': - service_pb2_grpc.KeyManagementServiceStub(channel), - 'iam_policy_stub': - iam_policy_pb2.IAMPolicyStub(channel), + "key_management_service_stub": service_pb2_grpc.KeyManagementServiceStub( + channel + ), + "iam_policy_stub": iam_policy_pb2.IAMPolicyStub(channel), } @classmethod - def create_channel(cls, - address='cloudkms.googleapis.com:443', - credentials=None): + def create_channel(cls, address="cloudkms.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -92,9 +87,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -117,7 +110,7 @@ def list_key_rings(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].ListKeyRings + return self._stubs["key_management_service_stub"].ListKeyRings @property def list_crypto_keys(self): @@ -130,7 +123,7 @@ def list_crypto_keys(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].ListCryptoKeys + return self._stubs["key_management_service_stub"].ListCryptoKeys @property def list_crypto_key_versions(self): @@ -143,7 +136,7 @@ def list_crypto_key_versions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].ListCryptoKeyVersions + return self._stubs["key_management_service_stub"].ListCryptoKeyVersions @property def get_key_ring(self): @@ -156,7 +149,7 @@ def get_key_ring(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].GetKeyRing + return self._stubs["key_management_service_stub"].GetKeyRing @property def get_crypto_key(self): @@ -170,7 +163,7 @@ def get_crypto_key(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].GetCryptoKey + return self._stubs["key_management_service_stub"].GetCryptoKey @property def get_crypto_key_version(self): @@ -183,7 +176,7 @@ def get_crypto_key_version(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].GetCryptoKeyVersion + return self._stubs["key_management_service_stub"].GetCryptoKeyVersion @property def create_key_ring(self): @@ -196,7 +189,7 @@ def create_key_ring(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].CreateKeyRing + return self._stubs["key_management_service_stub"].CreateKeyRing @property def create_crypto_key(self): @@ -212,7 +205,7 @@ def create_crypto_key(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].CreateCryptoKey + return self._stubs["key_management_service_stub"].CreateCryptoKey @property def create_crypto_key_version(self): @@ -228,8 +221,7 @@ def create_crypto_key_version(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'key_management_service_stub'].CreateCryptoKeyVersion + return self._stubs["key_management_service_stub"].CreateCryptoKeyVersion @property def update_crypto_key(self): @@ -242,7 +234,7 @@ def update_crypto_key(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].UpdateCryptoKey + return self._stubs["key_management_service_stub"].UpdateCryptoKey @property def update_crypto_key_version(self): @@ -259,8 +251,7 @@ def update_crypto_key_version(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'key_management_service_stub'].UpdateCryptoKeyVersion + return self._stubs["key_management_service_stub"].UpdateCryptoKeyVersion @property def encrypt(self): @@ -274,7 +265,7 @@ def encrypt(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].Encrypt + return self._stubs["key_management_service_stub"].Encrypt @property def decrypt(self): @@ -288,7 +279,7 @@ def decrypt(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].Decrypt + return self._stubs["key_management_service_stub"].Decrypt @property def update_crypto_key_primary_version(self): @@ -303,8 +294,7 @@ def update_crypto_key_primary_version(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'key_management_service_stub'].UpdateCryptoKeyPrimaryVersion + return self._stubs["key_management_service_stub"].UpdateCryptoKeyPrimaryVersion @property def destroy_crypto_key_version(self): @@ -325,8 +315,7 @@ def destroy_crypto_key_version(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'key_management_service_stub'].DestroyCryptoKeyVersion + return self._stubs["key_management_service_stub"].DestroyCryptoKeyVersion @property def restore_crypto_key_version(self): @@ -342,8 +331,7 @@ def restore_crypto_key_version(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'key_management_service_stub'].RestoreCryptoKeyVersion + return self._stubs["key_management_service_stub"].RestoreCryptoKeyVersion @property def get_public_key(self): @@ -358,7 +346,7 @@ def get_public_key(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].GetPublicKey + return self._stubs["key_management_service_stub"].GetPublicKey @property def asymmetric_decrypt(self): @@ -373,7 +361,7 @@ def asymmetric_decrypt(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].AsymmetricDecrypt + return self._stubs["key_management_service_stub"].AsymmetricDecrypt @property def asymmetric_sign(self): @@ -388,7 +376,7 @@ def asymmetric_sign(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['key_management_service_stub'].AsymmetricSign + return self._stubs["key_management_service_stub"].AsymmetricSign @property def set_iam_policy(self): @@ -402,7 +390,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].SetIamPolicy + return self._stubs["iam_policy_stub"].SetIamPolicy @property def get_iam_policy(self): @@ -417,7 +405,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].GetIamPolicy + return self._stubs["iam_policy_stub"].GetIamPolicy @property def test_iam_permissions(self): @@ -432,4 +420,4 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].TestIamPermissions + return self._stubs["iam_policy_stub"].TestIamPermissions diff --git a/kms/google/cloud/kms_v1/types.py b/kms/google/cloud/kms_v1/types.py index 166403085365..ac8f2c5d9be5 100644 --- a/kms/google/cloud/kms_v1/types.py +++ b/kms/google/cloud/kms_v1/types.py @@ -45,10 +45,7 @@ wrappers_pb2, ] -_local_modules = [ - resources_pb2, - service_pb2, -] +_local_modules = [resources_pb2, service_pb2] names = [] @@ -58,7 +55,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.kms_v1.types' + message.__module__ = "google.cloud.kms_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/kms/tests/unit/gapic/v1/test_key_management_service_client_v1.py b/kms/tests/unit/gapic/v1/test_key_management_service_client_v1.py index 78a618c8c783..f800169fc09a 100644 --- a/kms/tests/unit/gapic/v1/test_key_management_service_client_v1.py +++ b/kms/tests/unit/gapic/v1/test_key_management_service_client_v1.py @@ -57,10 +57,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -71,27 +68,26 @@ class CustomException(Exception): class TestKeyManagementServiceClient(object): def test_list_key_rings(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" total_size = 705419236 key_rings_element = {} key_rings = [key_rings_element] expected_response = { - 'next_page_token': next_page_token, - 'total_size': total_size, - 'key_rings': key_rings + "next_page_token": next_page_token, + "total_size": total_size, + "key_rings": key_rings, } - expected_response = service_pb2.ListKeyRingsResponse( - **expected_response) + expected_response = service_pb2.ListKeyRingsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_key_rings(parent) resources = list(paged_list_response) @@ -106,13 +102,13 @@ def test_list_key_rings(self): def test_list_key_rings_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_key_rings(parent) with pytest.raises(CustomException): @@ -120,27 +116,26 @@ def test_list_key_rings_exception(self): def test_list_crypto_keys(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" total_size = 705419236 crypto_keys_element = {} crypto_keys = [crypto_keys_element] expected_response = { - 'next_page_token': next_page_token, - 'total_size': total_size, - 'crypto_keys': crypto_keys + "next_page_token": next_page_token, + "total_size": total_size, + "crypto_keys": crypto_keys, } - expected_response = service_pb2.ListCryptoKeysResponse( - **expected_response) + expected_response = service_pb2.ListCryptoKeysResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - parent = client.key_ring_path('[PROJECT]', '[LOCATION]', '[KEY_RING]') + parent = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") paged_list_response = client.list_crypto_keys(parent) resources = list(paged_list_response) @@ -155,13 +150,13 @@ def test_list_crypto_keys(self): def test_list_crypto_keys_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - parent = client.key_ring_path('[PROJECT]', '[LOCATION]', '[KEY_RING]') + parent = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") paged_list_response = client.list_crypto_keys(parent) with pytest.raises(CustomException): @@ -169,28 +164,30 @@ def test_list_crypto_keys_exception(self): def test_list_crypto_key_versions(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" total_size = 705419236 crypto_key_versions_element = {} crypto_key_versions = [crypto_key_versions_element] expected_response = { - 'next_page_token': next_page_token, - 'total_size': total_size, - 'crypto_key_versions': crypto_key_versions + "next_page_token": next_page_token, + "total_size": total_size, + "crypto_key_versions": crypto_key_versions, } expected_response = service_pb2.ListCryptoKeyVersionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - parent = client.crypto_key_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]') + parent = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) paged_list_response = client.list_crypto_key_versions(parent) resources = list(paged_list_response) @@ -199,21 +196,21 @@ def test_list_crypto_key_versions(self): assert expected_response.crypto_key_versions[0] == resources[0] assert len(channel.requests) == 1 - expected_request = service_pb2.ListCryptoKeyVersionsRequest( - parent=parent) + expected_request = service_pb2.ListCryptoKeyVersionsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_crypto_key_versions_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - parent = client.crypto_key_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]') + parent = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) paged_list_response = client.list_crypto_key_versions(parent) with pytest.raises(CustomException): @@ -221,19 +218,19 @@ def test_list_crypto_key_versions_exception(self): def test_get_key_ring(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = resources_pb2.KeyRing(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.key_ring_path('[PROJECT]', '[LOCATION]', '[KEY_RING]') + name = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") response = client.get_key_ring(name) assert expected_response == response @@ -246,33 +243,34 @@ def test_get_key_ring(self): def test_get_key_ring_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.key_ring_path('[PROJECT]', '[LOCATION]', '[KEY_RING]') + name = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") with pytest.raises(CustomException): client.get_key_ring(name) def test_get_crypto_key(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = resources_pb2.CryptoKey(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_path('[PROJECT]', '[LOCATION]', '[KEY_RING]', - '[CRYPTO_KEY]') + name = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) response = client.get_crypto_key(name) assert expected_response == response @@ -285,35 +283,40 @@ def test_get_crypto_key(self): def test_get_crypto_key_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_path('[PROJECT]', '[LOCATION]', '[KEY_RING]', - '[CRYPTO_KEY]') + name = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) with pytest.raises(CustomException): client.get_crypto_key(name) def test_get_crypto_key_version(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = resources_pb2.CryptoKeyVersion(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) response = client.get_crypto_key_version(name) assert expected_response == response @@ -326,35 +329,39 @@ def test_get_crypto_key_version(self): def test_get_crypto_key_version_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) with pytest.raises(CustomException): client.get_crypto_key_version(name) def test_create_key_ring(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = resources_pb2.KeyRing(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') - key_ring_id = 'keyRingId-2056646742' + parent = client.location_path("[PROJECT]", "[LOCATION]") + key_ring_id = "keyRingId-2056646742" key_ring = {} response = client.create_key_ring(parent, key_ring_id, key_ring) @@ -362,21 +369,22 @@ def test_create_key_ring(self): assert len(channel.requests) == 1 expected_request = service_pb2.CreateKeyRingRequest( - parent=parent, key_ring_id=key_ring_id, key_ring=key_ring) + parent=parent, key_ring_id=key_ring_id, key_ring=key_ring + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_key_ring_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') - key_ring_id = 'keyRingId-2056646742' + parent = client.location_path("[PROJECT]", "[LOCATION]") + key_ring_id = "keyRingId-2056646742" key_ring = {} with pytest.raises(CustomException): @@ -384,29 +392,29 @@ def test_create_key_ring_exception(self): def test_create_crypto_key(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = resources_pb2.CryptoKey(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - parent = client.key_ring_path('[PROJECT]', '[LOCATION]', '[KEY_RING]') - crypto_key_id = 'my-app-key' + parent = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") + crypto_key_id = "my-app-key" purpose = enums.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT seconds = 2147483647 - next_rotation_time = {'seconds': seconds} + next_rotation_time = {"seconds": seconds} seconds_2 = 604800 - rotation_period = {'seconds': seconds_2} + rotation_period = {"seconds": seconds_2} crypto_key = { - 'purpose': purpose, - 'next_rotation_time': next_rotation_time, - 'rotation_period': rotation_period + "purpose": purpose, + "next_rotation_time": next_rotation_time, + "rotation_period": rotation_period, } response = client.create_crypto_key(parent, crypto_key_id, crypto_key) @@ -414,30 +422,31 @@ def test_create_crypto_key(self): assert len(channel.requests) == 1 expected_request = service_pb2.CreateCryptoKeyRequest( - parent=parent, crypto_key_id=crypto_key_id, crypto_key=crypto_key) + parent=parent, crypto_key_id=crypto_key_id, crypto_key=crypto_key + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_crypto_key_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - parent = client.key_ring_path('[PROJECT]', '[LOCATION]', '[KEY_RING]') - crypto_key_id = 'my-app-key' + parent = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") + crypto_key_id = "my-app-key" purpose = enums.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT seconds = 2147483647 - next_rotation_time = {'seconds': seconds} + next_rotation_time = {"seconds": seconds} seconds_2 = 604800 - rotation_period = {'seconds': seconds_2} + rotation_period = {"seconds": seconds_2} crypto_key = { - 'purpose': purpose, - 'next_rotation_time': next_rotation_time, - 'rotation_period': rotation_period + "purpose": purpose, + "next_rotation_time": next_rotation_time, + "rotation_period": rotation_period, } with pytest.raises(CustomException): @@ -445,20 +454,21 @@ def test_create_crypto_key_exception(self): def test_create_crypto_key_version(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = resources_pb2.CryptoKeyVersion(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - parent = client.crypto_key_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]') + parent = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) crypto_key_version = {} response = client.create_crypto_key_version(parent, crypto_key_version) @@ -466,21 +476,23 @@ def test_create_crypto_key_version(self): assert len(channel.requests) == 1 expected_request = service_pb2.CreateCryptoKeyVersionRequest( - parent=parent, crypto_key_version=crypto_key_version) + parent=parent, crypto_key_version=crypto_key_version + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_crypto_key_version_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - parent = client.crypto_key_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]') + parent = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) crypto_key_version = {} with pytest.raises(CustomException): @@ -488,13 +500,13 @@ def test_create_crypto_key_version_exception(self): def test_update_crypto_key(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = resources_pb2.CryptoKey(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() @@ -508,14 +520,15 @@ def test_update_crypto_key(self): assert len(channel.requests) == 1 expected_request = service_pb2.UpdateCryptoKeyRequest( - crypto_key=crypto_key, update_mask=update_mask) + crypto_key=crypto_key, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_crypto_key_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() @@ -529,13 +542,13 @@ def test_update_crypto_key_exception(self): def test_update_crypto_key_version(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = resources_pb2.CryptoKeyVersion(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() @@ -544,20 +557,20 @@ def test_update_crypto_key_version(self): crypto_key_version = {} update_mask = {} - response = client.update_crypto_key_version(crypto_key_version, - update_mask) + response = client.update_crypto_key_version(crypto_key_version, update_mask) assert expected_response == response assert len(channel.requests) == 1 expected_request = service_pb2.UpdateCryptoKeyVersionRequest( - crypto_key_version=crypto_key_version, update_mask=update_mask) + crypto_key_version=crypto_key_version, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_crypto_key_version_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() @@ -571,239 +584,260 @@ def test_update_crypto_key_version_exception(self): def test_encrypt(self): # Setup Expected Response - name_2 = 'name2-1052831874' - ciphertext = b'-72' - expected_response = {'name': name_2, 'ciphertext': ciphertext} + name_2 = "name2-1052831874" + ciphertext = b"-72" + expected_response = {"name": name_2, "ciphertext": ciphertext} expected_response = service_pb2.EncryptResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_path_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY_PATH]') - plaintext = b'-9' + name = client.crypto_key_path_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY_PATH]" + ) + plaintext = b"-9" response = client.encrypt(name, plaintext) assert expected_response == response assert len(channel.requests) == 1 - expected_request = service_pb2.EncryptRequest( - name=name, plaintext=plaintext) + expected_request = service_pb2.EncryptRequest(name=name, plaintext=plaintext) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_encrypt_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_path_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY_PATH]') - plaintext = b'-9' + name = client.crypto_key_path_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY_PATH]" + ) + plaintext = b"-9" with pytest.raises(CustomException): client.encrypt(name, plaintext) def test_decrypt(self): # Setup Expected Response - plaintext = b'-9' - expected_response = {'plaintext': plaintext} + plaintext = b"-9" + expected_response = {"plaintext": plaintext} expected_response = service_pb2.DecryptResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_path('[PROJECT]', '[LOCATION]', '[KEY_RING]', - '[CRYPTO_KEY]') - ciphertext = b'-72' + name = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) + ciphertext = b"-72" response = client.decrypt(name, ciphertext) assert expected_response == response assert len(channel.requests) == 1 - expected_request = service_pb2.DecryptRequest( - name=name, ciphertext=ciphertext) + expected_request = service_pb2.DecryptRequest(name=name, ciphertext=ciphertext) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_decrypt_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_path('[PROJECT]', '[LOCATION]', '[KEY_RING]', - '[CRYPTO_KEY]') - ciphertext = b'-72' + name = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) + ciphertext = b"-72" with pytest.raises(CustomException): client.decrypt(name, ciphertext) def test_update_crypto_key_primary_version(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = resources_pb2.CryptoKey(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_path('[PROJECT]', '[LOCATION]', '[KEY_RING]', - '[CRYPTO_KEY]') - crypto_key_version_id = 'cryptoKeyVersionId729489152' + name = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) + crypto_key_version_id = "cryptoKeyVersionId729489152" - response = client.update_crypto_key_primary_version( - name, crypto_key_version_id) + response = client.update_crypto_key_primary_version(name, crypto_key_version_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = service_pb2.UpdateCryptoKeyPrimaryVersionRequest( - name=name, crypto_key_version_id=crypto_key_version_id) + name=name, crypto_key_version_id=crypto_key_version_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_crypto_key_primary_version_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_path('[PROJECT]', '[LOCATION]', '[KEY_RING]', - '[CRYPTO_KEY]') - crypto_key_version_id = 'cryptoKeyVersionId729489152' + name = client.crypto_key_path( + "[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]" + ) + crypto_key_version_id = "cryptoKeyVersionId729489152" with pytest.raises(CustomException): - client.update_crypto_key_primary_version(name, - crypto_key_version_id) + client.update_crypto_key_primary_version(name, crypto_key_version_id) def test_destroy_crypto_key_version(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = resources_pb2.CryptoKeyVersion(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) response = client.destroy_crypto_key_version(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = service_pb2.DestroyCryptoKeyVersionRequest( - name=name) + expected_request = service_pb2.DestroyCryptoKeyVersionRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_destroy_crypto_key_version_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) with pytest.raises(CustomException): client.destroy_crypto_key_version(name) def test_restore_crypto_key_version(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = resources_pb2.CryptoKeyVersion(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) response = client.restore_crypto_key_version(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = service_pb2.RestoreCryptoKeyVersionRequest( - name=name) + expected_request = service_pb2.RestoreCryptoKeyVersionRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_restore_crypto_key_version_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) with pytest.raises(CustomException): client.restore_crypto_key_version(name) def test_get_public_key(self): # Setup Expected Response - pem = 'pem110872' - expected_response = {'pem': pem} + pem = "pem110872" + expected_response = {"pem": pem} expected_response = resources_pb2.PublicKey(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) response = client.get_public_key(name) assert expected_response == response @@ -816,106 +850,124 @@ def test_get_public_key(self): def test_get_public_key_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) with pytest.raises(CustomException): client.get_public_key(name) def test_asymmetric_decrypt(self): # Setup Expected Response - plaintext = b'-9' - expected_response = {'plaintext': plaintext} - expected_response = service_pb2.AsymmetricDecryptResponse( - **expected_response) + plaintext = b"-9" + expected_response = {"plaintext": plaintext} + expected_response = service_pb2.AsymmetricDecryptResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') - ciphertext = b'-72' + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) + ciphertext = b"-72" response = client.asymmetric_decrypt(name, ciphertext) assert expected_response == response assert len(channel.requests) == 1 expected_request = service_pb2.AsymmetricDecryptRequest( - name=name, ciphertext=ciphertext) + name=name, ciphertext=ciphertext + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_asymmetric_decrypt_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') - ciphertext = b'-72' + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) + ciphertext = b"-72" with pytest.raises(CustomException): client.asymmetric_decrypt(name, ciphertext) def test_asymmetric_sign(self): # Setup Expected Response - signature = b'-100' - expected_response = {'signature': signature} - expected_response = service_pb2.AsymmetricSignResponse( - **expected_response) + signature = b"-100" + expected_response = {"signature": signature} + expected_response = service_pb2.AsymmetricSignResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) digest = {} response = client.asymmetric_sign(name, digest) assert expected_response == response assert len(channel.requests) == 1 - expected_request = service_pb2.AsymmetricSignRequest( - name=name, digest=digest) + expected_request = service_pb2.AsymmetricSignRequest(name=name, digest=digest) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_asymmetric_sign_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - name = client.crypto_key_version_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]', '[CRYPTO_KEY]', - '[CRYPTO_KEY_VERSION]') + name = client.crypto_key_version_path( + "[PROJECT]", + "[LOCATION]", + "[KEY_RING]", + "[CRYPTO_KEY]", + "[CRYPTO_KEY_VERSION]", + ) digest = {} with pytest.raises(CustomException): @@ -924,20 +976,19 @@ def test_asymmetric_sign_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - resource = client.key_ring_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]') + resource = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") policy = {} response = client.set_iam_policy(resource, policy) @@ -945,21 +996,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - resource = client.key_ring_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]') + resource = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") policy = {} with pytest.raises(CustomException): @@ -968,41 +1019,38 @@ def test_set_iam_policy_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - resource = client.key_ring_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]') + resource = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - resource = client.key_ring_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]') + resource = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") with pytest.raises(CustomException): client.get_iam_policy(resource) @@ -1011,18 +1059,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup Request - resource = client.key_ring_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]') + resource = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -1030,21 +1078,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = kms_v1.KeyManagementServiceClient() # Setup request - resource = client.key_ring_path('[PROJECT]', '[LOCATION]', - '[KEY_RING]') + resource = client.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]") permissions = [] with pytest.raises(CustomException): diff --git a/language/docs/conf.py b/language/docs/conf.py index ad6af1f51564..1058e654d041 100644 --- a/language/docs/conf.py +++ b/language/docs/conf.py @@ -18,57 +18,55 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.90.4' +__version__ = "0.90.4" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.doctest', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.doctest", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # Allow markdown includes (so releases.md can include CHANGLEOG.md) # http://www.sphinx-doc.org/en/master/markdown.html -source_parsers = { - '.md': 'recommonmark.parser.CommonMarkParser', -} +source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-language' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-language" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -77,7 +75,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -88,37 +86,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -127,31 +125,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'alabaster' +html_theme = "alabaster" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -161,78 +159,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-language-doc' +htmlhelp_basename = "google-cloud-language-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -241,39 +236,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-language.tex', - u'google-cloud-language Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-language.tex", + u"google-cloud-language Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-language', - u'google-cloud-language Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-language", + u"google-cloud-language Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -281,27 +288,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-language', - u'google-cloud-language Documentation', author, 'google-cloud-language', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-language", + u"google-cloud-language Documentation", + author, + "google-cloud-language", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/language/google/__init__.py b/language/google/__init__.py index 9ee9bf4342ab..0e1bc5131ba6 100644 --- a/language/google/__init__.py +++ b/language/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/language/google/cloud/__init__.py b/language/google/cloud/__init__.py index 9ee9bf4342ab..0e1bc5131ba6 100644 --- a/language/google/cloud/__init__.py +++ b/language/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/language/google/cloud/language.py b/language/google/cloud/language.py index f66b7d1f94d8..624bd1194391 100644 --- a/language/google/cloud/language.py +++ b/language/google/cloud/language.py @@ -18,8 +18,4 @@ from google.cloud.language_v1 import enums from google.cloud.language_v1 import types -__all__ = ( - 'enums', - 'types', - 'LanguageServiceClient', -) +__all__ = ("enums", "types", "LanguageServiceClient") diff --git a/language/google/cloud/language_v1/__init__.py b/language/google/cloud/language_v1/__init__.py index 25ac70d64bcc..a44fe4c98d6c 100644 --- a/language/google/cloud/language_v1/__init__.py +++ b/language/google/cloud/language_v1/__init__.py @@ -24,7 +24,4 @@ class LanguageServiceClient(language_service_client.LanguageServiceClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'LanguageServiceClient', ) +__all__ = ("enums", "types", "LanguageServiceClient") diff --git a/language/google/cloud/language_v1/gapic/enums.py b/language/google/cloud/language_v1/gapic/enums.py index dcd23c41470c..1845f221979c 100644 --- a/language/google/cloud/language_v1/gapic/enums.py +++ b/language/google/cloud/language_v1/gapic/enums.py @@ -39,6 +39,7 @@ class EncodingType(enum.IntEnum): based on the UTF-32 encoding of the input. Python is an example of a language that uses this encoding natively. """ + NONE = 0 UTF8 = 1 UTF16 = 2 @@ -55,6 +56,7 @@ class Type(enum.IntEnum): PLAIN_TEXT (int): Plain text HTML (int): HTML """ + TYPE_UNSPECIFIED = 0 PLAIN_TEXT = 1 HTML = 2 @@ -75,6 +77,7 @@ class Type(enum.IntEnum): CONSUMER_GOOD (int): Consumer goods OTHER (int): Other types """ + UNKNOWN = 0 PERSON = 1 LOCATION = 2 @@ -106,6 +109,7 @@ class Tag(enum.IntEnum): X (int): Other: foreign words, typos, abbreviations AFFIX (int): Affix """ + UNKNOWN = 0 ADJ = 1 ADP = 2 @@ -131,6 +135,7 @@ class Aspect(enum.IntEnum): IMPERFECTIVE (int): Imperfective PROGRESSIVE (int): Progressive """ + ASPECT_UNKNOWN = 0 PERFECTIVE = 1 IMPERFECTIVE = 2 @@ -159,6 +164,7 @@ class Case(enum.IntEnum): RELATIVE_CASE (int): Relative VOCATIVE (int): Vocative """ + CASE_UNKNOWN = 0 ACCUSATIVE = 1 ADVERBIAL = 2 @@ -196,6 +202,7 @@ class Form(enum.IntEnum): ORDER (int): Order form SPECIFIC (int): Specific form """ + FORM_UNKNOWN = 0 ADNOMIAL = 1 AUXILIARY = 2 @@ -219,6 +226,7 @@ class Gender(enum.IntEnum): MASCULINE (int): Masculine NEUTER (int): Neuter """ + GENDER_UNKNOWN = 0 FEMININE = 1 MASCULINE = 2 @@ -237,6 +245,7 @@ class Mood(enum.IntEnum): JUSSIVE (int): Jussive SUBJUNCTIVE (int): Subjunctive """ + MOOD_UNKNOWN = 0 CONDITIONAL_MOOD = 1 IMPERATIVE = 2 @@ -255,6 +264,7 @@ class Number(enum.IntEnum): PLURAL (int): Plural DUAL (int): Dual """ + NUMBER_UNKNOWN = 0 SINGULAR = 1 PLURAL = 2 @@ -271,6 +281,7 @@ class Person(enum.IntEnum): THIRD (int): Third REFLEXIVE_PERSON (int): Reflexive """ + PERSON_UNKNOWN = 0 FIRST = 1 SECOND = 2 @@ -286,6 +297,7 @@ class Proper(enum.IntEnum): PROPER (int): Proper NOT_PROPER (int): Not proper """ + PROPER_UNKNOWN = 0 PROPER = 1 NOT_PROPER = 2 @@ -300,6 +312,7 @@ class Reciprocity(enum.IntEnum): RECIPROCAL (int): Reciprocal NON_RECIPROCAL (int): Non-reciprocal """ + RECIPROCITY_UNKNOWN = 0 RECIPROCAL = 1 NON_RECIPROCAL = 2 @@ -317,6 +330,7 @@ class Tense(enum.IntEnum): IMPERFECT (int): Imperfect PLUPERFECT (int): Pluperfect """ + TENSE_UNKNOWN = 0 CONDITIONAL_TENSE = 1 FUTURE = 2 @@ -336,6 +350,7 @@ class Voice(enum.IntEnum): CAUSATIVE (int): Causative PASSIVE (int): Passive """ + VOICE_UNKNOWN = 0 ACTIVE = 1 CAUSATIVE = 2 @@ -432,6 +447,7 @@ class Label(enum.IntEnum): MES (int): Measure NCOMP (int): Nominal complement of a noun """ + UNKNOWN = 0 ABBREV = 1 ACOMP = 2 @@ -527,6 +543,7 @@ class Type(enum.IntEnum): PROPER (int): Proper name COMMON (int): Common noun (or noun compound) """ + TYPE_UNKNOWN = 0 PROPER = 1 COMMON = 2 diff --git a/language/google/cloud/language_v1/gapic/language_service_client.py b/language/google/cloud/language_v1/gapic/language_service_client.py index e5daf10e6d87..b84718e07ef7 100644 --- a/language/google/cloud/language_v1/gapic/language_service_client.py +++ b/language/google/cloud/language_v1/gapic/language_service_client.py @@ -31,8 +31,7 @@ from google.cloud.language_v1.proto import language_service_pb2 from google.cloud.language_v1.proto import language_service_pb2_grpc -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-language', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-language").version class LanguageServiceClient(object): @@ -41,12 +40,12 @@ class LanguageServiceClient(object): recognition. """ - SERVICE_ADDRESS = 'language.googleapis.com:443' + SERVICE_ADDRESS = "language.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.language.v1.LanguageService' + _INTERFACE_NAME = "google.cloud.language.v1.LanguageService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -62,19 +61,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: LanguageServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -108,18 +108,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = language_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -128,25 +129,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=language_service_grpc_transport. - LanguageServiceGrpcTransport, + default_class=language_service_grpc_transport.LanguageServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = language_service_grpc_transport.LanguageServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +156,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,12 +166,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def analyze_sentiment(self, - document, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def analyze_sentiment( + self, + document, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Analyzes the sentiment of the provided text. @@ -210,30 +213,31 @@ def analyze_sentiment(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'analyze_sentiment' not in self._inner_api_calls: + if "analyze_sentiment" not in self._inner_api_calls: self._inner_api_calls[ - 'analyze_sentiment'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.analyze_sentiment, - default_retry=self._method_configs['AnalyzeSentiment']. - retry, - default_timeout=self._method_configs['AnalyzeSentiment']. - timeout, - client_info=self._client_info, - ) + "analyze_sentiment" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.analyze_sentiment, + default_retry=self._method_configs["AnalyzeSentiment"].retry, + default_timeout=self._method_configs["AnalyzeSentiment"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnalyzeSentimentRequest( - document=document, - encoding_type=encoding_type, + document=document, encoding_type=encoding_type + ) + return self._inner_api_calls["analyze_sentiment"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['analyze_sentiment']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def analyze_entities(self, - document, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def analyze_entities( + self, + document, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Finds named entities (currently proper names and common nouns) in the text along with entity types, salience, mentions for each entity, and @@ -275,31 +279,31 @@ def analyze_entities(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'analyze_entities' not in self._inner_api_calls: + if "analyze_entities" not in self._inner_api_calls: self._inner_api_calls[ - 'analyze_entities'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.analyze_entities, - default_retry=self._method_configs['AnalyzeEntities']. - retry, - default_timeout=self._method_configs['AnalyzeEntities']. - timeout, - client_info=self._client_info, - ) + "analyze_entities" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.analyze_entities, + default_retry=self._method_configs["AnalyzeEntities"].retry, + default_timeout=self._method_configs["AnalyzeEntities"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnalyzeEntitiesRequest( - document=document, - encoding_type=encoding_type, + document=document, encoding_type=encoding_type + ) + return self._inner_api_calls["analyze_entities"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['analyze_entities']( - request, retry=retry, timeout=timeout, metadata=metadata) def analyze_entity_sentiment( - self, - document, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + document, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Finds entities, similar to ``AnalyzeEntities`` in the text and analyzes sentiment associated with each entity and its mentions. @@ -340,30 +344,31 @@ def analyze_entity_sentiment( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'analyze_entity_sentiment' not in self._inner_api_calls: + if "analyze_entity_sentiment" not in self._inner_api_calls: self._inner_api_calls[ - 'analyze_entity_sentiment'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.analyze_entity_sentiment, - default_retry=self. - _method_configs['AnalyzeEntitySentiment'].retry, - default_timeout=self. - _method_configs['AnalyzeEntitySentiment'].timeout, - client_info=self._client_info, - ) + "analyze_entity_sentiment" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.analyze_entity_sentiment, + default_retry=self._method_configs["AnalyzeEntitySentiment"].retry, + default_timeout=self._method_configs["AnalyzeEntitySentiment"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnalyzeEntitySentimentRequest( - document=document, - encoding_type=encoding_type, + document=document, encoding_type=encoding_type ) - return self._inner_api_calls['analyze_entity_sentiment']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def analyze_syntax(self, - document, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["analyze_entity_sentiment"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def analyze_syntax( + self, + document, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Analyzes the syntax of the text and provides sentence boundaries and tokenization along with part of speech tags, dependency trees, and other @@ -405,28 +410,30 @@ def analyze_syntax(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'analyze_syntax' not in self._inner_api_calls: + if "analyze_syntax" not in self._inner_api_calls: self._inner_api_calls[ - 'analyze_syntax'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.analyze_syntax, - default_retry=self._method_configs['AnalyzeSyntax'].retry, - default_timeout=self._method_configs['AnalyzeSyntax']. - timeout, - client_info=self._client_info, - ) + "analyze_syntax" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.analyze_syntax, + default_retry=self._method_configs["AnalyzeSyntax"].retry, + default_timeout=self._method_configs["AnalyzeSyntax"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnalyzeSyntaxRequest( - document=document, - encoding_type=encoding_type, + document=document, encoding_type=encoding_type ) - return self._inner_api_calls['analyze_syntax']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def classify_text(self, - document, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["analyze_syntax"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def classify_text( + self, + document, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Classifies a document into categories. @@ -465,27 +472,30 @@ def classify_text(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'classify_text' not in self._inner_api_calls: + if "classify_text" not in self._inner_api_calls: self._inner_api_calls[ - 'classify_text'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.classify_text, - default_retry=self._method_configs['ClassifyText'].retry, - default_timeout=self._method_configs['ClassifyText']. - timeout, - client_info=self._client_info, - ) + "classify_text" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.classify_text, + default_retry=self._method_configs["ClassifyText"].retry, + default_timeout=self._method_configs["ClassifyText"].timeout, + client_info=self._client_info, + ) + + request = language_service_pb2.ClassifyTextRequest(document=document) + return self._inner_api_calls["classify_text"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = language_service_pb2.ClassifyTextRequest(document=document, ) - return self._inner_api_calls['classify_text']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def annotate_text(self, - document, - features, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def annotate_text( + self, + document, + features, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ A convenience method that provides all the features that analyzeSentiment, analyzeEntities, and analyzeSyntax provide in one call. @@ -533,20 +543,19 @@ def annotate_text(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'annotate_text' not in self._inner_api_calls: + if "annotate_text" not in self._inner_api_calls: self._inner_api_calls[ - 'annotate_text'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.annotate_text, - default_retry=self._method_configs['AnnotateText'].retry, - default_timeout=self._method_configs['AnnotateText']. - timeout, - client_info=self._client_info, - ) + "annotate_text" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.annotate_text, + default_retry=self._method_configs["AnnotateText"].retry, + default_timeout=self._method_configs["AnnotateText"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnnotateTextRequest( - document=document, - features=features, - encoding_type=encoding_type, + document=document, features=features, encoding_type=encoding_type + ) + return self._inner_api_calls["annotate_text"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['annotate_text']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/language/google/cloud/language_v1/gapic/language_service_client_config.py b/language/google/cloud/language_v1/gapic/language_service_client_config.py index 789883153df0..a36baec5bca5 100644 --- a/language/google/cloud/language_v1/gapic/language_service_client_config.py +++ b/language/google/cloud/language_v1/gapic/language_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.language.v1.LanguageService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "AnalyzeSentiment": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AnalyzeEntities": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AnalyzeEntitySentiment": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AnalyzeSyntax": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ClassifyText": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AnnotateText": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/language/google/cloud/language_v1/gapic/transports/language_service_grpc_transport.py b/language/google/cloud/language_v1/gapic/transports/language_service_grpc_transport.py index a6f62471a1cd..82acb8fc6d22 100644 --- a/language/google/cloud/language_v1/gapic/transports/language_service_grpc_transport.py +++ b/language/google/cloud/language_v1/gapic/transports/language_service_grpc_transport.py @@ -27,14 +27,14 @@ class LanguageServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='language.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="language.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,29 +52,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'language_service_stub': - language_service_pb2_grpc.LanguageServiceStub(channel), + "language_service_stub": language_service_pb2_grpc.LanguageServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='language.googleapis.com:443', - credentials=None): + def create_channel(cls, address="language.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -89,9 +85,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,7 +108,7 @@ def analyze_sentiment(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnalyzeSentiment + return self._stubs["language_service_stub"].AnalyzeSentiment @property def analyze_entities(self): @@ -129,7 +123,7 @@ def analyze_entities(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnalyzeEntities + return self._stubs["language_service_stub"].AnalyzeEntities @property def analyze_entity_sentiment(self): @@ -143,7 +137,7 @@ def analyze_entity_sentiment(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnalyzeEntitySentiment + return self._stubs["language_service_stub"].AnalyzeEntitySentiment @property def analyze_syntax(self): @@ -158,7 +152,7 @@ def analyze_syntax(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnalyzeSyntax + return self._stubs["language_service_stub"].AnalyzeSyntax @property def classify_text(self): @@ -171,7 +165,7 @@ def classify_text(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].ClassifyText + return self._stubs["language_service_stub"].ClassifyText @property def annotate_text(self): @@ -185,4 +179,4 @@ def annotate_text(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnnotateText + return self._stubs["language_service_stub"].AnnotateText diff --git a/language/google/cloud/language_v1/types.py b/language/google/cloud/language_v1/types.py index 469269333ef0..758829425134 100644 --- a/language/google/cloud/language_v1/types.py +++ b/language/google/cloud/language_v1/types.py @@ -22,14 +22,9 @@ from google.cloud.language_v1.proto import language_service_pb2 -_shared_modules = [ - http_pb2, - descriptor_pb2, -] +_shared_modules = [http_pb2, descriptor_pb2] -_local_modules = [ - language_service_pb2, -] +_local_modules = [language_service_pb2] names = [] @@ -40,7 +35,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.language_v1.types' + message.__module__ = "google.cloud.language_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/language/google/cloud/language_v1beta2/__init__.py b/language/google/cloud/language_v1beta2/__init__.py index f9846d89b1f0..d980c998cc19 100644 --- a/language/google/cloud/language_v1beta2/__init__.py +++ b/language/google/cloud/language_v1beta2/__init__.py @@ -24,7 +24,4 @@ class LanguageServiceClient(language_service_client.LanguageServiceClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'LanguageServiceClient', ) +__all__ = ("enums", "types", "LanguageServiceClient") diff --git a/language/google/cloud/language_v1beta2/gapic/enums.py b/language/google/cloud/language_v1beta2/gapic/enums.py index dcd23c41470c..1845f221979c 100644 --- a/language/google/cloud/language_v1beta2/gapic/enums.py +++ b/language/google/cloud/language_v1beta2/gapic/enums.py @@ -39,6 +39,7 @@ class EncodingType(enum.IntEnum): based on the UTF-32 encoding of the input. Python is an example of a language that uses this encoding natively. """ + NONE = 0 UTF8 = 1 UTF16 = 2 @@ -55,6 +56,7 @@ class Type(enum.IntEnum): PLAIN_TEXT (int): Plain text HTML (int): HTML """ + TYPE_UNSPECIFIED = 0 PLAIN_TEXT = 1 HTML = 2 @@ -75,6 +77,7 @@ class Type(enum.IntEnum): CONSUMER_GOOD (int): Consumer goods OTHER (int): Other types """ + UNKNOWN = 0 PERSON = 1 LOCATION = 2 @@ -106,6 +109,7 @@ class Tag(enum.IntEnum): X (int): Other: foreign words, typos, abbreviations AFFIX (int): Affix """ + UNKNOWN = 0 ADJ = 1 ADP = 2 @@ -131,6 +135,7 @@ class Aspect(enum.IntEnum): IMPERFECTIVE (int): Imperfective PROGRESSIVE (int): Progressive """ + ASPECT_UNKNOWN = 0 PERFECTIVE = 1 IMPERFECTIVE = 2 @@ -159,6 +164,7 @@ class Case(enum.IntEnum): RELATIVE_CASE (int): Relative VOCATIVE (int): Vocative """ + CASE_UNKNOWN = 0 ACCUSATIVE = 1 ADVERBIAL = 2 @@ -196,6 +202,7 @@ class Form(enum.IntEnum): ORDER (int): Order form SPECIFIC (int): Specific form """ + FORM_UNKNOWN = 0 ADNOMIAL = 1 AUXILIARY = 2 @@ -219,6 +226,7 @@ class Gender(enum.IntEnum): MASCULINE (int): Masculine NEUTER (int): Neuter """ + GENDER_UNKNOWN = 0 FEMININE = 1 MASCULINE = 2 @@ -237,6 +245,7 @@ class Mood(enum.IntEnum): JUSSIVE (int): Jussive SUBJUNCTIVE (int): Subjunctive """ + MOOD_UNKNOWN = 0 CONDITIONAL_MOOD = 1 IMPERATIVE = 2 @@ -255,6 +264,7 @@ class Number(enum.IntEnum): PLURAL (int): Plural DUAL (int): Dual """ + NUMBER_UNKNOWN = 0 SINGULAR = 1 PLURAL = 2 @@ -271,6 +281,7 @@ class Person(enum.IntEnum): THIRD (int): Third REFLEXIVE_PERSON (int): Reflexive """ + PERSON_UNKNOWN = 0 FIRST = 1 SECOND = 2 @@ -286,6 +297,7 @@ class Proper(enum.IntEnum): PROPER (int): Proper NOT_PROPER (int): Not proper """ + PROPER_UNKNOWN = 0 PROPER = 1 NOT_PROPER = 2 @@ -300,6 +312,7 @@ class Reciprocity(enum.IntEnum): RECIPROCAL (int): Reciprocal NON_RECIPROCAL (int): Non-reciprocal """ + RECIPROCITY_UNKNOWN = 0 RECIPROCAL = 1 NON_RECIPROCAL = 2 @@ -317,6 +330,7 @@ class Tense(enum.IntEnum): IMPERFECT (int): Imperfect PLUPERFECT (int): Pluperfect """ + TENSE_UNKNOWN = 0 CONDITIONAL_TENSE = 1 FUTURE = 2 @@ -336,6 +350,7 @@ class Voice(enum.IntEnum): CAUSATIVE (int): Causative PASSIVE (int): Passive """ + VOICE_UNKNOWN = 0 ACTIVE = 1 CAUSATIVE = 2 @@ -432,6 +447,7 @@ class Label(enum.IntEnum): MES (int): Measure NCOMP (int): Nominal complement of a noun """ + UNKNOWN = 0 ABBREV = 1 ACOMP = 2 @@ -527,6 +543,7 @@ class Type(enum.IntEnum): PROPER (int): Proper name COMMON (int): Common noun (or noun compound) """ + TYPE_UNKNOWN = 0 PROPER = 1 COMMON = 2 diff --git a/language/google/cloud/language_v1beta2/gapic/language_service_client.py b/language/google/cloud/language_v1beta2/gapic/language_service_client.py index a5215cf38b0a..01b09fa90bdc 100644 --- a/language/google/cloud/language_v1beta2/gapic/language_service_client.py +++ b/language/google/cloud/language_v1beta2/gapic/language_service_client.py @@ -27,12 +27,13 @@ from google.cloud.language_v1beta2.gapic import enums from google.cloud.language_v1beta2.gapic import language_service_client_config -from google.cloud.language_v1beta2.gapic.transports import language_service_grpc_transport +from google.cloud.language_v1beta2.gapic.transports import ( + language_service_grpc_transport, +) from google.cloud.language_v1beta2.proto import language_service_pb2 from google.cloud.language_v1beta2.proto import language_service_pb2_grpc -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-language', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-language").version class LanguageServiceClient(object): @@ -41,12 +42,12 @@ class LanguageServiceClient(object): recognition. """ - SERVICE_ADDRESS = 'language.googleapis.com:443' + SERVICE_ADDRESS = "language.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.language.v1beta2.LanguageService' + _INTERFACE_NAME = "google.cloud.language.v1beta2.LanguageService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -62,19 +63,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: LanguageServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -108,18 +110,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = language_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -128,25 +131,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=language_service_grpc_transport. - LanguageServiceGrpcTransport, + default_class=language_service_grpc_transport.LanguageServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = language_service_grpc_transport.LanguageServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +158,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,12 +168,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def analyze_sentiment(self, - document, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def analyze_sentiment( + self, + document, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Analyzes the sentiment of the provided text. @@ -211,30 +216,31 @@ def analyze_sentiment(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'analyze_sentiment' not in self._inner_api_calls: + if "analyze_sentiment" not in self._inner_api_calls: self._inner_api_calls[ - 'analyze_sentiment'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.analyze_sentiment, - default_retry=self._method_configs['AnalyzeSentiment']. - retry, - default_timeout=self._method_configs['AnalyzeSentiment']. - timeout, - client_info=self._client_info, - ) + "analyze_sentiment" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.analyze_sentiment, + default_retry=self._method_configs["AnalyzeSentiment"].retry, + default_timeout=self._method_configs["AnalyzeSentiment"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnalyzeSentimentRequest( - document=document, - encoding_type=encoding_type, + document=document, encoding_type=encoding_type + ) + return self._inner_api_calls["analyze_sentiment"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['analyze_sentiment']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def analyze_entities(self, - document, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def analyze_entities( + self, + document, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Finds named entities (currently proper names and common nouns) in the text along with entity types, salience, mentions for each entity, and @@ -276,31 +282,31 @@ def analyze_entities(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'analyze_entities' not in self._inner_api_calls: + if "analyze_entities" not in self._inner_api_calls: self._inner_api_calls[ - 'analyze_entities'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.analyze_entities, - default_retry=self._method_configs['AnalyzeEntities']. - retry, - default_timeout=self._method_configs['AnalyzeEntities']. - timeout, - client_info=self._client_info, - ) + "analyze_entities" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.analyze_entities, + default_retry=self._method_configs["AnalyzeEntities"].retry, + default_timeout=self._method_configs["AnalyzeEntities"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnalyzeEntitiesRequest( - document=document, - encoding_type=encoding_type, + document=document, encoding_type=encoding_type + ) + return self._inner_api_calls["analyze_entities"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['analyze_entities']( - request, retry=retry, timeout=timeout, metadata=metadata) def analyze_entity_sentiment( - self, - document, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + document, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Finds entities, similar to ``AnalyzeEntities`` in the text and analyzes sentiment associated with each entity and its mentions. @@ -341,30 +347,31 @@ def analyze_entity_sentiment( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'analyze_entity_sentiment' not in self._inner_api_calls: + if "analyze_entity_sentiment" not in self._inner_api_calls: self._inner_api_calls[ - 'analyze_entity_sentiment'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.analyze_entity_sentiment, - default_retry=self. - _method_configs['AnalyzeEntitySentiment'].retry, - default_timeout=self. - _method_configs['AnalyzeEntitySentiment'].timeout, - client_info=self._client_info, - ) + "analyze_entity_sentiment" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.analyze_entity_sentiment, + default_retry=self._method_configs["AnalyzeEntitySentiment"].retry, + default_timeout=self._method_configs["AnalyzeEntitySentiment"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnalyzeEntitySentimentRequest( - document=document, - encoding_type=encoding_type, + document=document, encoding_type=encoding_type ) - return self._inner_api_calls['analyze_entity_sentiment']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def analyze_syntax(self, - document, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["analyze_entity_sentiment"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def analyze_syntax( + self, + document, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Analyzes the syntax of the text and provides sentence boundaries and tokenization along with part of speech tags, dependency trees, and other @@ -406,28 +413,30 @@ def analyze_syntax(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'analyze_syntax' not in self._inner_api_calls: + if "analyze_syntax" not in self._inner_api_calls: self._inner_api_calls[ - 'analyze_syntax'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.analyze_syntax, - default_retry=self._method_configs['AnalyzeSyntax'].retry, - default_timeout=self._method_configs['AnalyzeSyntax']. - timeout, - client_info=self._client_info, - ) + "analyze_syntax" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.analyze_syntax, + default_retry=self._method_configs["AnalyzeSyntax"].retry, + default_timeout=self._method_configs["AnalyzeSyntax"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnalyzeSyntaxRequest( - document=document, - encoding_type=encoding_type, + document=document, encoding_type=encoding_type ) - return self._inner_api_calls['analyze_syntax']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def classify_text(self, - document, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["analyze_syntax"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def classify_text( + self, + document, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Classifies a document into categories. @@ -466,27 +475,30 @@ def classify_text(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'classify_text' not in self._inner_api_calls: + if "classify_text" not in self._inner_api_calls: self._inner_api_calls[ - 'classify_text'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.classify_text, - default_retry=self._method_configs['ClassifyText'].retry, - default_timeout=self._method_configs['ClassifyText']. - timeout, - client_info=self._client_info, - ) + "classify_text" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.classify_text, + default_retry=self._method_configs["ClassifyText"].retry, + default_timeout=self._method_configs["ClassifyText"].timeout, + client_info=self._client_info, + ) + + request = language_service_pb2.ClassifyTextRequest(document=document) + return self._inner_api_calls["classify_text"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = language_service_pb2.ClassifyTextRequest(document=document, ) - return self._inner_api_calls['classify_text']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def annotate_text(self, - document, - features, - encoding_type=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def annotate_text( + self, + document, + features, + encoding_type=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ A convenience method that provides all syntax, sentiment, entity, and classification features in one call. @@ -534,20 +546,19 @@ def annotate_text(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'annotate_text' not in self._inner_api_calls: + if "annotate_text" not in self._inner_api_calls: self._inner_api_calls[ - 'annotate_text'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.annotate_text, - default_retry=self._method_configs['AnnotateText'].retry, - default_timeout=self._method_configs['AnnotateText']. - timeout, - client_info=self._client_info, - ) + "annotate_text" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.annotate_text, + default_retry=self._method_configs["AnnotateText"].retry, + default_timeout=self._method_configs["AnnotateText"].timeout, + client_info=self._client_info, + ) request = language_service_pb2.AnnotateTextRequest( - document=document, - features=features, - encoding_type=encoding_type, + document=document, features=features, encoding_type=encoding_type + ) + return self._inner_api_calls["annotate_text"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['annotate_text']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/language/google/cloud/language_v1beta2/gapic/language_service_client_config.py b/language/google/cloud/language_v1beta2/gapic/language_service_client_config.py index f3473d4a2667..97ab1aa63434 100644 --- a/language/google/cloud/language_v1beta2/gapic/language_service_client_config.py +++ b/language/google/cloud/language_v1beta2/gapic/language_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.language.v1beta2.LanguageService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "AnalyzeSentiment": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AnalyzeEntities": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AnalyzeEntitySentiment": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AnalyzeSyntax": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ClassifyText": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AnnotateText": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/language/google/cloud/language_v1beta2/gapic/transports/language_service_grpc_transport.py b/language/google/cloud/language_v1beta2/gapic/transports/language_service_grpc_transport.py index a8527b3a0a76..624e0f05c7e8 100644 --- a/language/google/cloud/language_v1beta2/gapic/transports/language_service_grpc_transport.py +++ b/language/google/cloud/language_v1beta2/gapic/transports/language_service_grpc_transport.py @@ -27,14 +27,14 @@ class LanguageServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='language.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="language.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,29 +52,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'language_service_stub': - language_service_pb2_grpc.LanguageServiceStub(channel), + "language_service_stub": language_service_pb2_grpc.LanguageServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='language.googleapis.com:443', - credentials=None): + def create_channel(cls, address="language.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -89,9 +85,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,7 +108,7 @@ def analyze_sentiment(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnalyzeSentiment + return self._stubs["language_service_stub"].AnalyzeSentiment @property def analyze_entities(self): @@ -129,7 +123,7 @@ def analyze_entities(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnalyzeEntities + return self._stubs["language_service_stub"].AnalyzeEntities @property def analyze_entity_sentiment(self): @@ -143,7 +137,7 @@ def analyze_entity_sentiment(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnalyzeEntitySentiment + return self._stubs["language_service_stub"].AnalyzeEntitySentiment @property def analyze_syntax(self): @@ -158,7 +152,7 @@ def analyze_syntax(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnalyzeSyntax + return self._stubs["language_service_stub"].AnalyzeSyntax @property def classify_text(self): @@ -171,7 +165,7 @@ def classify_text(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].ClassifyText + return self._stubs["language_service_stub"].ClassifyText @property def annotate_text(self): @@ -185,4 +179,4 @@ def annotate_text(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['language_service_stub'].AnnotateText + return self._stubs["language_service_stub"].AnnotateText diff --git a/language/google/cloud/language_v1beta2/types.py b/language/google/cloud/language_v1beta2/types.py index f17b5a59dd96..1a33a23ef337 100644 --- a/language/google/cloud/language_v1beta2/types.py +++ b/language/google/cloud/language_v1beta2/types.py @@ -37,9 +37,7 @@ status_pb2, ] -_local_modules = [ - language_service_pb2, -] +_local_modules = [language_service_pb2] names = [] @@ -50,7 +48,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.language_v1beta2.types' + message.__module__ = "google.cloud.language_v1beta2.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/language/tests/system/gapic/v1/test_system_language_service_v1.py b/language/tests/system/gapic/v1/test_system_language_service_v1.py index cd0be245b24a..cc5b439d4779 100644 --- a/language/tests/system/gapic/v1/test_system_language_service_v1.py +++ b/language/tests/system/gapic/v1/test_system_language_service_v1.py @@ -25,7 +25,7 @@ class TestSystemLanguageService(object): def test_analyze_sentiment(self): client = language_v1.LanguageServiceClient() - content = 'Hello, world!' + content = "Hello, world!" type_ = enums.Document.Type.PLAIN_TEXT - document = {'content': content, 'type': type_} + document = {"content": content, "type": type_} response = client.analyze_sentiment(document) diff --git a/language/tests/system/gapic/v1beta2/test_system_language_service_v1beta2.py b/language/tests/system/gapic/v1beta2/test_system_language_service_v1beta2.py index 751b3a568081..ec87655305de 100644 --- a/language/tests/system/gapic/v1beta2/test_system_language_service_v1beta2.py +++ b/language/tests/system/gapic/v1beta2/test_system_language_service_v1beta2.py @@ -25,7 +25,7 @@ class TestSystemLanguageService(object): def test_analyze_sentiment(self): client = language_v1beta2.LanguageServiceClient() - content = 'Hello, world!' + content = "Hello, world!" type_ = enums.Document.Type.PLAIN_TEXT - document = {'content': content, 'type': type_} + document = {"content": content, "type": type_} response = client.analyze_sentiment(document) diff --git a/language/tests/unit/gapic/v1/test_language_service_client_v1.py b/language/tests/unit/gapic/v1/test_language_service_client_v1.py index 6d2da21a14ba..c6cd31615f08 100644 --- a/language/tests/unit/gapic/v1/test_language_service_client_v1.py +++ b/language/tests/unit/gapic/v1/test_language_service_client_v1.py @@ -50,10 +50,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -64,14 +61,15 @@ class CustomException(Exception): class TestLanguageServiceClient(object): def test_analyze_sentiment(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnalyzeSentimentResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -84,14 +82,15 @@ def test_analyze_sentiment(self): assert len(channel.requests) == 1 expected_request = language_service_pb2.AnalyzeSentimentRequest( - document=document) + document=document + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_analyze_sentiment_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -104,14 +103,15 @@ def test_analyze_sentiment_exception(self): def test_analyze_entities(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnalyzeEntitiesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -124,14 +124,15 @@ def test_analyze_entities(self): assert len(channel.requests) == 1 expected_request = language_service_pb2.AnalyzeEntitiesRequest( - document=document) + document=document + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_analyze_entities_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -144,14 +145,15 @@ def test_analyze_entities_exception(self): def test_analyze_entity_sentiment(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnalyzeEntitySentimentResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -164,14 +166,15 @@ def test_analyze_entity_sentiment(self): assert len(channel.requests) == 1 expected_request = language_service_pb2.AnalyzeEntitySentimentRequest( - document=document) + document=document + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_analyze_entity_sentiment_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -184,14 +187,15 @@ def test_analyze_entity_sentiment_exception(self): def test_analyze_syntax(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnalyzeSyntaxResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -203,15 +207,14 @@ def test_analyze_syntax(self): assert expected_response == response assert len(channel.requests) == 1 - expected_request = language_service_pb2.AnalyzeSyntaxRequest( - document=document) + expected_request = language_service_pb2.AnalyzeSyntaxRequest(document=document) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_analyze_syntax_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -226,11 +229,12 @@ def test_classify_text(self): # Setup Expected Response expected_response = {} expected_response = language_service_pb2.ClassifyTextResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -242,15 +246,14 @@ def test_classify_text(self): assert expected_response == response assert len(channel.requests) == 1 - expected_request = language_service_pb2.ClassifyTextRequest( - document=document) + expected_request = language_service_pb2.ClassifyTextRequest(document=document) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_classify_text_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -263,14 +266,15 @@ def test_classify_text_exception(self): def test_annotate_text(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnnotateTextResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() @@ -284,14 +288,15 @@ def test_annotate_text(self): assert len(channel.requests) == 1 expected_request = language_service_pb2.AnnotateTextRequest( - document=document, features=features) + document=document, features=features + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_annotate_text_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1.LanguageServiceClient() diff --git a/language/tests/unit/gapic/v1beta2/test_language_service_client_v1beta2.py b/language/tests/unit/gapic/v1beta2/test_language_service_client_v1beta2.py index 920ee01b15b9..90a30b642aa2 100644 --- a/language/tests/unit/gapic/v1beta2/test_language_service_client_v1beta2.py +++ b/language/tests/unit/gapic/v1beta2/test_language_service_client_v1beta2.py @@ -50,10 +50,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -64,14 +61,15 @@ class CustomException(Exception): class TestLanguageServiceClient(object): def test_analyze_sentiment(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnalyzeSentimentResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -84,14 +82,15 @@ def test_analyze_sentiment(self): assert len(channel.requests) == 1 expected_request = language_service_pb2.AnalyzeSentimentRequest( - document=document) + document=document + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_analyze_sentiment_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -104,14 +103,15 @@ def test_analyze_sentiment_exception(self): def test_analyze_entities(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnalyzeEntitiesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -124,14 +124,15 @@ def test_analyze_entities(self): assert len(channel.requests) == 1 expected_request = language_service_pb2.AnalyzeEntitiesRequest( - document=document) + document=document + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_analyze_entities_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -144,14 +145,15 @@ def test_analyze_entities_exception(self): def test_analyze_entity_sentiment(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnalyzeEntitySentimentResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -164,14 +166,15 @@ def test_analyze_entity_sentiment(self): assert len(channel.requests) == 1 expected_request = language_service_pb2.AnalyzeEntitySentimentRequest( - document=document) + document=document + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_analyze_entity_sentiment_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -184,14 +187,15 @@ def test_analyze_entity_sentiment_exception(self): def test_analyze_syntax(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnalyzeSyntaxResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -203,15 +207,14 @@ def test_analyze_syntax(self): assert expected_response == response assert len(channel.requests) == 1 - expected_request = language_service_pb2.AnalyzeSyntaxRequest( - document=document) + expected_request = language_service_pb2.AnalyzeSyntaxRequest(document=document) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_analyze_syntax_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -226,11 +229,12 @@ def test_classify_text(self): # Setup Expected Response expected_response = {} expected_response = language_service_pb2.ClassifyTextResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -242,15 +246,14 @@ def test_classify_text(self): assert expected_response == response assert len(channel.requests) == 1 - expected_request = language_service_pb2.ClassifyTextRequest( - document=document) + expected_request = language_service_pb2.ClassifyTextRequest(document=document) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_classify_text_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -263,14 +266,15 @@ def test_classify_text_exception(self): def test_annotate_text(self): # Setup Expected Response - language = 'language-1613589672' - expected_response = {'language': language} + language = "language-1613589672" + expected_response = {"language": language} expected_response = language_service_pb2.AnnotateTextResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() @@ -284,14 +288,15 @@ def test_annotate_text(self): assert len(channel.requests) == 1 expected_request = language_service_pb2.AnnotateTextRequest( - document=document, features=features) + document=document, features=features + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_annotate_text_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = language_v1beta2.LanguageServiceClient() diff --git a/monitoring/docs/conf.py b/monitoring/docs/conf.py index d2f757ae417b..9215b3091bae 100644 --- a/monitoring/docs/conf.py +++ b/monitoring/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-monitoring' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-monitoring" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-monitoring-doc' +htmlhelp_basename = "google-cloud-monitoring-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-monitoring.tex', - u'google-cloud-monitoring Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-monitoring.tex", + u"google-cloud-monitoring Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-monitoring', - u'google-cloud-monitoring Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-monitoring", + u"google-cloud-monitoring Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-monitoring', - u'google-cloud-monitoring Documentation', author, - 'google-cloud-monitoring', - 'GAPIC library for the {metadata.shortName} v3 service', 'APIs'), + ( + master_doc, + "google-cloud-monitoring", + u"google-cloud-monitoring Documentation", + author, + "google-cloud-monitoring", + "GAPIC library for the {metadata.shortName} v3 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/monitoring/google/__init__.py b/monitoring/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/monitoring/google/__init__.py +++ b/monitoring/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/monitoring/google/cloud/__init__.py b/monitoring/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/monitoring/google/cloud/__init__.py +++ b/monitoring/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/monitoring/google/cloud/monitoring.py b/monitoring/google/cloud/monitoring.py index 4e2d0a6f5fca..a3823be6c9e3 100644 --- a/monitoring/google/cloud/monitoring.py +++ b/monitoring/google/cloud/monitoring.py @@ -25,11 +25,11 @@ from google.cloud.monitoring_v3 import types __all__ = ( - 'enums', - 'types', - 'AlertPolicyServiceClient', - 'GroupServiceClient', - 'MetricServiceClient', - 'NotificationChannelServiceClient', - 'UptimeCheckServiceClient', + "enums", + "types", + "AlertPolicyServiceClient", + "GroupServiceClient", + "MetricServiceClient", + "NotificationChannelServiceClient", + "UptimeCheckServiceClient", ) diff --git a/monitoring/google/cloud/monitoring_v3/__init__.py b/monitoring/google/cloud/monitoring_v3/__init__.py index efdeb66436b7..65f4fa7d1cf3 100644 --- a/monitoring/google/cloud/monitoring_v3/__init__.py +++ b/monitoring/google/cloud/monitoring_v3/__init__.py @@ -22,12 +22,12 @@ from google.cloud.monitoring_v3.gapic import group_service_client from google.cloud.monitoring_v3.gapic import metric_service_client from google.cloud.monitoring_v3.gapic import ( - notification_channel_service_client as notification_client) + notification_channel_service_client as notification_client, +) from google.cloud.monitoring_v3.gapic import uptime_check_service_client -class AlertPolicyServiceClient( - alert_policy_service_client.AlertPolicyServiceClient): +class AlertPolicyServiceClient(alert_policy_service_client.AlertPolicyServiceClient): __doc__ = alert_policy_service_client.AlertPolicyServiceClient.__doc__ enums = enums @@ -43,23 +43,23 @@ class MetricServiceClient(metric_service_client.MetricServiceClient): class NotificationChannelServiceClient( - notification_client.NotificationChannelServiceClient): + notification_client.NotificationChannelServiceClient +): __doc__ = notification_client.NotificationChannelServiceClient.__doc__ enums = enums -class UptimeCheckServiceClient( - uptime_check_service_client.UptimeCheckServiceClient): +class UptimeCheckServiceClient(uptime_check_service_client.UptimeCheckServiceClient): __doc__ = uptime_check_service_client.UptimeCheckServiceClient.__doc__ enums = enums __all__ = ( - 'enums', - 'types', - 'AlertPolicyServiceClient', - 'GroupServiceClient', - 'MetricServiceClient', - 'NotificationChannelServiceClient', - 'UptimeCheckServiceClient', + "enums", + "types", + "AlertPolicyServiceClient", + "GroupServiceClient", + "MetricServiceClient", + "NotificationChannelServiceClient", + "UptimeCheckServiceClient", ) diff --git a/monitoring/google/cloud/monitoring_v3/_dataframe.py b/monitoring/google/cloud/monitoring_v3/_dataframe.py index 24708249e562..5bedb39bc356 100644 --- a/monitoring/google/cloud/monitoring_v3/_dataframe.py +++ b/monitoring/google/cloud/monitoring_v3/_dataframe.py @@ -15,6 +15,7 @@ """Time series as :mod:`pandas` dataframes.""" import itertools + try: import pandas except ImportError: # pragma: NO COVER @@ -22,13 +23,7 @@ from google.cloud.monitoring_v3.types import TimeSeries -TOP_RESOURCE_LABELS = ( - 'project_id', - 'aws_account', - 'location', - 'region', - 'zone', -) +TOP_RESOURCE_LABELS = ("project_id", "aws_account", "location", "region", "zone") def _extract_header(time_series): @@ -37,13 +32,13 @@ def _extract_header(time_series): metric=time_series.metric, resource=time_series.resource, metric_kind=time_series.metric_kind, - value_type=time_series.value_type + value_type=time_series.value_type, ) def _extract_labels(time_series): """Build the combined resource and metric labels, with resource_type.""" - labels = {'resource_type': time_series.resource.type} + labels = {"resource_type": time_series.resource.type} labels.update(time_series.resource.labels) labels.update(time_series.metric.labels) return labels @@ -51,12 +46,11 @@ def _extract_labels(time_series): def _extract_value(typed_value): """Extract the value from a TypedValue.""" - value_type = typed_value.WhichOneof('value') + value_type = typed_value.WhichOneof("value") return typed_value.__getattribute__(value_type) -def _build_dataframe(time_series_iterable, - label=None, labels=None): # pragma: NO COVER +def _build_dataframe(time_series_iterable, label=None, labels=None): # pragma: NO COVER """Build a :mod:`pandas` dataframe out of time series. :type time_series_iterable: @@ -88,11 +82,11 @@ def _build_dataframe(time_series_iterable, :raises: :exc:`RuntimeError` if `pandas` is not installed. """ if pandas is None: - raise RuntimeError('This method requires `pandas` to be installed.') + raise RuntimeError("This method requires `pandas` to be installed.") if label is not None: if labels: - raise ValueError('Cannot specify both `label` and `labels`.') + raise ValueError("Cannot specify both `label` and `labels`.") labels = (label,) columns = [] @@ -100,21 +94,26 @@ def _build_dataframe(time_series_iterable, for time_series in time_series_iterable: pandas_series = pandas.Series( data=[_extract_value(point.value) for point in time_series.points], - index=[point.interval.end_time.ToNanoseconds() - for point in time_series.points], + index=[ + point.interval.end_time.ToNanoseconds() for point in time_series.points + ], ) columns.append(pandas_series) headers.append(_extract_header(time_series)) # Implement a smart default of using all available labels. if labels is None: - resource_labels = set(itertools.chain.from_iterable( - header.resource.labels for header in headers)) - metric_labels = set(itertools.chain.from_iterable( - header.metric.labels for header in headers)) - labels = (['resource_type'] + - _sorted_resource_labels(resource_labels) + - sorted(metric_labels)) + resource_labels = set( + itertools.chain.from_iterable(header.resource.labels for header in headers) + ) + metric_labels = set( + itertools.chain.from_iterable(header.metric.labels for header in headers) + ) + labels = ( + ["resource_type"] + + _sorted_resource_labels(resource_labels) + + sorted(metric_labels) + ) # Assemble the columns into a DataFrame. dataframe = pandas.DataFrame.from_records(columns).T @@ -126,15 +125,15 @@ def _build_dataframe(time_series_iterable, # be undefined for some time series. levels = [] for key in labels: - level = [_extract_labels(header).get(key, '') for header in headers] + level = [_extract_labels(header).get(key, "") for header in headers] levels.append(level) # Build a column Index or MultiIndex. Do not include level names # in the column header if the user requested a single-level header # by specifying "label". dataframe.columns = pandas.MultiIndex.from_arrays( - levels, - names=labels if not label else None) + levels, names=labels if not label else None + ) # Sort the rows just in case (since the API doesn't guarantee the # ordering), and sort the columns lexicographically. @@ -144,6 +143,5 @@ def _build_dataframe(time_series_iterable, def _sorted_resource_labels(labels): """Sort label names, putting well-known resource labels first.""" head = [label for label in TOP_RESOURCE_LABELS if label in labels] - tail = sorted(label for label in labels - if label not in TOP_RESOURCE_LABELS) + tail = sorted(label for label in labels if label not in TOP_RESOURCE_LABELS) return head + tail diff --git a/monitoring/google/cloud/monitoring_v3/gapic/alert_policy_service_client.py b/monitoring/google/cloud/monitoring_v3/gapic/alert_policy_service_client.py index 7984cdca7bef..f3a079892da5 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/alert_policy_service_client.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/alert_policy_service_client.py @@ -30,7 +30,9 @@ from google.cloud.monitoring_v3.gapic import alert_policy_service_client_config from google.cloud.monitoring_v3.gapic import enums -from google.cloud.monitoring_v3.gapic.transports import alert_policy_service_grpc_transport +from google.cloud.monitoring_v3.gapic.transports import ( + alert_policy_service_grpc_transport, +) from google.cloud.monitoring_v3.proto import alert_pb2 from google.cloud.monitoring_v3.proto import alert_service_pb2 from google.cloud.monitoring_v3.proto import alert_service_pb2_grpc @@ -38,7 +40,8 @@ from google.protobuf import field_mask_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-monitoring', ).version + "google-cloud-monitoring" +).version class AlertPolicyServiceClient(object): @@ -54,12 +57,12 @@ class AlertPolicyServiceClient(object): Console `__. """ - SERVICE_ADDRESS = 'monitoring.googleapis.com:443' + SERVICE_ADDRESS = "monitoring.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.monitoring.v3.AlertPolicyService' + _INTERFACE_NAME = "google.monitoring.v3.AlertPolicyService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -75,9 +78,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: AlertPolicyServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -86,15 +88,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def alert_policy_path(cls, project, alert_policy): """Return a fully-qualified alert_policy string.""" return google.api_core.path_template.expand( - 'projects/{project}/alertPolicies/{alert_policy}', + "projects/{project}/alertPolicies/{alert_policy}", project=project, alert_policy=alert_policy, ) @@ -103,18 +104,20 @@ def alert_policy_path(cls, project, alert_policy): def alert_policy_condition_path(cls, project, alert_policy, condition): """Return a fully-qualified alert_policy_condition string.""" return google.api_core.path_template.expand( - 'projects/{project}/alertPolicies/{alert_policy}/conditions/{condition}', + "projects/{project}/alertPolicies/{alert_policy}/conditions/{condition}", project=project, alert_policy=alert_policy, condition=condition, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -148,18 +151,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = alert_policy_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -168,25 +172,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=alert_policy_service_grpc_transport. - AlertPolicyServiceGrpcTransport, + default_class=alert_policy_service_grpc_transport.AlertPolicyServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = alert_policy_service_grpc_transport.AlertPolicyServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -196,7 +199,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -205,14 +209,16 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_alert_policies(self, - name, - filter_=None, - order_by=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_alert_policies( + self, + name, + filter_=None, + order_by=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the existing alerting policies for the project. @@ -287,42 +293,41 @@ def list_alert_policies(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_alert_policies' not in self._inner_api_calls: + if "list_alert_policies" not in self._inner_api_calls: self._inner_api_calls[ - 'list_alert_policies'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_alert_policies, - default_retry=self._method_configs['ListAlertPolicies']. - retry, - default_timeout=self._method_configs['ListAlertPolicies']. - timeout, - client_info=self._client_info, - ) + "list_alert_policies" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_alert_policies, + default_retry=self._method_configs["ListAlertPolicies"].retry, + default_timeout=self._method_configs["ListAlertPolicies"].timeout, + client_info=self._client_info, + ) request = alert_service_pb2.ListAlertPoliciesRequest( - name=name, - filter=filter_, - order_by=order_by, - page_size=page_size, + name=name, filter=filter_, order_by=order_by, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_alert_policies'], + self._inner_api_calls["list_alert_policies"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='alert_policies', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="alert_policies", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_alert_policy(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_alert_policy( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a single alerting policy. @@ -362,26 +367,29 @@ def get_alert_policy(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'get_alert_policy' not in self._inner_api_calls: + if "get_alert_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_alert_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_alert_policy, - default_retry=self._method_configs['GetAlertPolicy'].retry, - default_timeout=self._method_configs['GetAlertPolicy']. - timeout, - client_info=self._client_info, - ) + "get_alert_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_alert_policy, + default_retry=self._method_configs["GetAlertPolicy"].retry, + default_timeout=self._method_configs["GetAlertPolicy"].timeout, + client_info=self._client_info, + ) - request = alert_service_pb2.GetAlertPolicyRequest(name=name, ) - return self._inner_api_calls['get_alert_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = alert_service_pb2.GetAlertPolicyRequest(name=name) + return self._inner_api_calls["get_alert_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def create_alert_policy(self, - name, - alert_policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_alert_policy( + self, + name, + alert_policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new alerting policy. @@ -435,29 +443,30 @@ def create_alert_policy(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'create_alert_policy' not in self._inner_api_calls: + if "create_alert_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'create_alert_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_alert_policy, - default_retry=self._method_configs['CreateAlertPolicy']. - retry, - default_timeout=self._method_configs['CreateAlertPolicy']. - timeout, - client_info=self._client_info, - ) + "create_alert_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_alert_policy, + default_retry=self._method_configs["CreateAlertPolicy"].retry, + default_timeout=self._method_configs["CreateAlertPolicy"].timeout, + client_info=self._client_info, + ) request = alert_service_pb2.CreateAlertPolicyRequest( - name=name, - alert_policy=alert_policy, + name=name, alert_policy=alert_policy + ) + return self._inner_api_calls["create_alert_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_alert_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_alert_policy(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def delete_alert_policy( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes an alerting policy. @@ -496,27 +505,29 @@ def delete_alert_policy(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'delete_alert_policy' not in self._inner_api_calls: + if "delete_alert_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_alert_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_alert_policy, - default_retry=self._method_configs['DeleteAlertPolicy']. - retry, - default_timeout=self._method_configs['DeleteAlertPolicy']. - timeout, - client_info=self._client_info, - ) + "delete_alert_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_alert_policy, + default_retry=self._method_configs["DeleteAlertPolicy"].retry, + default_timeout=self._method_configs["DeleteAlertPolicy"].timeout, + client_info=self._client_info, + ) - request = alert_service_pb2.DeleteAlertPolicyRequest(name=name, ) - self._inner_api_calls['delete_alert_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = alert_service_pb2.DeleteAlertPolicyRequest(name=name) + self._inner_api_calls["delete_alert_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_alert_policy(self, - alert_policy, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_alert_policy( + self, + alert_policy, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an alerting policy. You can either replace the entire policy with a new one or replace only certain fields in the current alerting @@ -589,20 +600,19 @@ def update_alert_policy(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'update_alert_policy' not in self._inner_api_calls: + if "update_alert_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'update_alert_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_alert_policy, - default_retry=self._method_configs['UpdateAlertPolicy']. - retry, - default_timeout=self._method_configs['UpdateAlertPolicy']. - timeout, - client_info=self._client_info, - ) + "update_alert_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_alert_policy, + default_retry=self._method_configs["UpdateAlertPolicy"].retry, + default_timeout=self._method_configs["UpdateAlertPolicy"].timeout, + client_info=self._client_info, + ) request = alert_service_pb2.UpdateAlertPolicyRequest( - alert_policy=alert_policy, - update_mask=update_mask, + alert_policy=alert_policy, update_mask=update_mask + ) + return self._inner_api_calls["update_alert_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_alert_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/monitoring/google/cloud/monitoring_v3/gapic/alert_policy_service_client_config.py b/monitoring/google/cloud/monitoring_v3/gapic/alert_policy_service_client_config.py index b1c085b57d11..279c75403897 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/alert_policy_service_client_config.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/alert_policy_service_client_config.py @@ -3,7 +3,7 @@ "google.monitoring.v3.AlertPolicyService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,36 +13,36 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListAlertPolicies": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetAlertPolicy": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateAlertPolicy": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteAlertPolicy": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateAlertPolicy": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/monitoring/google/cloud/monitoring_v3/gapic/enums.py b/monitoring/google/cloud/monitoring_v3/gapic/enums.py index 12cbc1bca7b6..bd6539d2ecd4 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/enums.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/enums.py @@ -28,6 +28,7 @@ class NullValue(enum.IntEnum): Attributes: NULL_VALUE (int): Null value. """ + NULL_VALUE = 0 @@ -45,6 +46,7 @@ class ComparisonType(enum.IntEnum): COMPARISON_EQ (int): The left argument is equal to the right argument. COMPARISON_NE (int): The left argument is not equal to the right argument. """ + COMPARISON_UNSPECIFIED = 0 COMPARISON_GT = 1 COMPARISON_GE = 2 @@ -74,6 +76,7 @@ class ServiceTier(enum.IntEnum): metrics. For more details, see `the service tiers documentation `__. """ + SERVICE_TIER_UNSPECIFIED = 0 SERVICE_TIER_BASIC = 1 SERVICE_TIER_PREMIUM = 2 @@ -113,6 +116,7 @@ class LaunchStage(enum.IntEnum): Platform Subject to the Deprecation Policy `__ documentation. """ + LAUNCH_STAGE_UNSPECIFIED = 0 EARLY_ACCESS = 1 ALPHA = 2 @@ -135,6 +139,7 @@ class UptimeCheckRegion(enum.IntEnum): ASIA_PACIFIC (int): Allows checks to run from locations within the Asia Pacific area (ex: Singapore). """ + REGION_UNSPECIFIED = 0 USA = 1 EUROPE = 2 @@ -156,6 +161,7 @@ class GroupResourceType(enum.IntEnum): Amazon Web Services (AWS). AWS_ELB_LOAD_BALANCER (int): A group of Amazon ELB load balancers. """ + RESOURCE_TYPE_UNSPECIFIED = 0 INSTANCE = 1 AWS_ELB_LOAD_BALANCER = 2 @@ -171,6 +177,7 @@ class ValueType(enum.IntEnum): BOOL (int): Boolean; true or false. INT64 (int): A 64-bit signed integer. """ + STRING = 0 BOOL = 1 INT64 = 2 @@ -284,6 +291,7 @@ class Aligner(enum.IntEnum): taken that the values for the metric will always be positive. The output is a gauge metric with value type ``DOUBLE``. """ + ALIGN_NONE = 0 ALIGN_DELTA = 1 ALIGN_RATE = 2 @@ -363,6 +371,7 @@ class Reducer(enum.IntEnum): each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is ``DOUBLE`` """ + REDUCE_NONE = 0 REDUCE_MEAN = 1 REDUCE_MIN = 2 @@ -394,6 +403,7 @@ class MetricKind(enum.IntEnum): value to zero and sets a new start time for the following points. """ + METRIC_KIND_UNSPECIFIED = 0 GAUGE = 1 DELTA = 2 @@ -414,6 +424,7 @@ class ValueType(enum.IntEnum): DISTRIBUTION (int): The value is a ``Distribution``. MONEY (int): The value is money. """ + VALUE_TYPE_UNSPECIFIED = 0 BOOL = 1 INT64 = 2 @@ -440,6 +451,7 @@ class ConditionCombinerType(enum.IntEnum): regular ``AND`` option, an incident is created only if all conditions are met simultaneously on at least one resource. """ + COMBINE_UNSPECIFIED = 0 AND = 1 OR = 2 @@ -465,6 +477,7 @@ class VerificationStatus(enum.IntEnum): notification channel and that someone on the project has access to messages that are delivered to that channel. """ + VERIFICATION_STATUS_UNSPECIFIED = 0 UNVERIFIED = 1 VERIFIED = 2 @@ -481,5 +494,6 @@ class TimeSeriesView(enum.IntEnum): HEADERS (int): Returns the identity of the metric and the time series resource, but not the time series data. """ + FULL = 0 HEADERS = 1 diff --git a/monitoring/google/cloud/monitoring_v3/gapic/group_service_client.py b/monitoring/google/cloud/monitoring_v3/gapic/group_service_client.py index 78fafb0564a4..8a28b7b7dc32 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/group_service_client.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/group_service_client.py @@ -43,7 +43,8 @@ from google.protobuf import field_mask_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-monitoring', ).version + "google-cloud-monitoring" +).version class GroupServiceClient(object): @@ -61,12 +62,12 @@ class GroupServiceClient(object): and removed from the infrastructure. """ - SERVICE_ADDRESS = 'monitoring.googleapis.com:443' + SERVICE_ADDRESS = "monitoring.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.monitoring.v3.GroupService' + _INTERFACE_NAME = "google.monitoring.v3.GroupService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -82,9 +83,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: GroupServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -93,25 +93,24 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def group_path(cls, project, group): """Return a fully-qualified group string.""" return google.api_core.path_template.expand( - 'projects/{project}/groups/{group}', - project=project, - group=group, + "projects/{project}/groups/{group}", project=project, group=group ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -145,18 +144,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = group_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -165,25 +165,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=group_service_grpc_transport. - GroupServiceGrpcTransport, + default_class=group_service_grpc_transport.GroupServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = group_service_grpc_transport.GroupServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -193,7 +192,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -202,15 +202,17 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_groups(self, - name, - children_of_group=None, - ancestors_of_group=None, - descendants_of_group=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_groups( + self, + name, + children_of_group=None, + ancestors_of_group=None, + descendants_of_group=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the existing groups. @@ -281,14 +283,15 @@ def list_groups(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_groups' not in self._inner_api_calls: + if "list_groups" not in self._inner_api_calls: self._inner_api_calls[ - 'list_groups'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_groups, - default_retry=self._method_configs['ListGroups'].retry, - default_timeout=self._method_configs['ListGroups'].timeout, - client_info=self._client_info, - ) + "list_groups" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_groups, + default_retry=self._method_configs["ListGroups"].retry, + default_timeout=self._method_configs["ListGroups"].timeout, + client_info=self._client_info, + ) # Sanity check: We have some fields which are mutually exclusive; # raise ValueError if more than one is sent. @@ -308,22 +311,25 @@ def list_groups(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_groups'], + self._inner_api_calls["list_groups"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='group', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="group", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_group(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_group( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a single group. @@ -362,26 +368,30 @@ def get_group(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'get_group' not in self._inner_api_calls: + if "get_group" not in self._inner_api_calls: self._inner_api_calls[ - 'get_group'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_group, - default_retry=self._method_configs['GetGroup'].retry, - default_timeout=self._method_configs['GetGroup'].timeout, - client_info=self._client_info, - ) + "get_group" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_group, + default_retry=self._method_configs["GetGroup"].retry, + default_timeout=self._method_configs["GetGroup"].timeout, + client_info=self._client_info, + ) + + request = group_service_pb2.GetGroupRequest(name=name) + return self._inner_api_calls["get_group"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = group_service_pb2.GetGroupRequest(name=name, ) - return self._inner_api_calls['get_group']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_group(self, - name, - group, - validate_only=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_group( + self, + name, + group, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new group. @@ -429,30 +439,31 @@ def create_group(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'create_group' not in self._inner_api_calls: + if "create_group" not in self._inner_api_calls: self._inner_api_calls[ - 'create_group'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_group, - default_retry=self._method_configs['CreateGroup'].retry, - default_timeout=self._method_configs['CreateGroup']. - timeout, - client_info=self._client_info, - ) + "create_group" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_group, + default_retry=self._method_configs["CreateGroup"].retry, + default_timeout=self._method_configs["CreateGroup"].timeout, + client_info=self._client_info, + ) request = group_service_pb2.CreateGroupRequest( - name=name, - group=group, - validate_only=validate_only, + name=name, group=group, validate_only=validate_only + ) + return self._inner_api_calls["create_group"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_group']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_group(self, - group, - validate_only=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def update_group( + self, + group, + validate_only=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an existing group. You can change any group attributes except ``name``. @@ -498,28 +509,30 @@ def update_group(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'update_group' not in self._inner_api_calls: + if "update_group" not in self._inner_api_calls: self._inner_api_calls[ - 'update_group'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_group, - default_retry=self._method_configs['UpdateGroup'].retry, - default_timeout=self._method_configs['UpdateGroup']. - timeout, - client_info=self._client_info, - ) + "update_group" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_group, + default_retry=self._method_configs["UpdateGroup"].retry, + default_timeout=self._method_configs["UpdateGroup"].timeout, + client_info=self._client_info, + ) request = group_service_pb2.UpdateGroupRequest( - group=group, - validate_only=validate_only, + group=group, validate_only=validate_only + ) + return self._inner_api_calls["update_group"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_group']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_group(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def delete_group( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes an existing group. @@ -555,28 +568,31 @@ def delete_group(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'delete_group' not in self._inner_api_calls: + if "delete_group" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_group'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_group, - default_retry=self._method_configs['DeleteGroup'].retry, - default_timeout=self._method_configs['DeleteGroup']. - timeout, - client_info=self._client_info, - ) + "delete_group" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_group, + default_retry=self._method_configs["DeleteGroup"].retry, + default_timeout=self._method_configs["DeleteGroup"].timeout, + client_info=self._client_info, + ) - request = group_service_pb2.DeleteGroupRequest(name=name, ) - self._inner_api_calls['delete_group']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_group_members(self, - name, - page_size=None, - filter_=None, - interval=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = group_service_pb2.DeleteGroupRequest(name=name) + self._inner_api_calls["delete_group"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_group_members( + self, + name, + page_size=None, + filter_=None, + interval=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the monitored resources that are members of a group. @@ -652,33 +668,30 @@ def list_group_members(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_group_members' not in self._inner_api_calls: + if "list_group_members" not in self._inner_api_calls: self._inner_api_calls[ - 'list_group_members'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_group_members, - default_retry=self._method_configs['ListGroupMembers']. - retry, - default_timeout=self._method_configs['ListGroupMembers']. - timeout, - client_info=self._client_info, - ) + "list_group_members" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_group_members, + default_retry=self._method_configs["ListGroupMembers"].retry, + default_timeout=self._method_configs["ListGroupMembers"].timeout, + client_info=self._client_info, + ) request = group_service_pb2.ListGroupMembersRequest( - name=name, - page_size=page_size, - filter=filter_, - interval=interval, + name=name, page_size=page_size, filter=filter_, interval=interval ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_group_members'], + self._inner_api_calls["list_group_members"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='members', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="members", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator diff --git a/monitoring/google/cloud/monitoring_v3/gapic/group_service_client_config.py b/monitoring/google/cloud/monitoring_v3/gapic/group_service_client_config.py index 72f991f41f9d..24157aaacd5d 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/group_service_client_config.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/group_service_client_config.py @@ -3,7 +3,7 @@ "google.monitoring.v3.GroupService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListGroups": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetGroup": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateGroup": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateGroup": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteGroup": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListGroupMembers": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/monitoring/google/cloud/monitoring_v3/gapic/metric_service_client.py b/monitoring/google/cloud/monitoring_v3/gapic/metric_service_client.py index e1d5f598317c..d1e3d884e83f 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/metric_service_client.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/metric_service_client.py @@ -47,7 +47,8 @@ from google.protobuf import field_mask_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-monitoring', ).version + "google-cloud-monitoring" +).version class MetricServiceClient(object): @@ -56,12 +57,12 @@ class MetricServiceClient(object): time series data. """ - SERVICE_ADDRESS = 'monitoring.googleapis.com:443' + SERVICE_ADDRESS = "monitoring.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.monitoring.v3.MetricService' + _INTERFACE_NAME = "google.monitoring.v3.MetricService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -77,9 +78,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: MetricServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -88,35 +88,35 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def metric_descriptor_path(cls, project, metric_descriptor): """Return a fully-qualified metric_descriptor string.""" return google.api_core.path_template.expand( - 'projects/{project}/metricDescriptors/{metric_descriptor=**}', + "projects/{project}/metricDescriptors/{metric_descriptor=**}", project=project, metric_descriptor=metric_descriptor, ) @classmethod - def monitored_resource_descriptor_path(cls, project, - monitored_resource_descriptor): + def monitored_resource_descriptor_path(cls, project, monitored_resource_descriptor): """Return a fully-qualified monitored_resource_descriptor string.""" return google.api_core.path_template.expand( - 'projects/{project}/monitoredResourceDescriptors/{monitored_resource_descriptor}', + "projects/{project}/monitoredResourceDescriptors/{monitored_resource_descriptor}", project=project, monitored_resource_descriptor=monitored_resource_descriptor, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -150,18 +150,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = metric_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -170,25 +171,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=metric_service_grpc_transport. - MetricServiceGrpcTransport, + default_class=metric_service_grpc_transport.MetricServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = metric_service_grpc_transport.MetricServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -198,7 +198,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -208,13 +209,14 @@ def __init__(self, # Service calls def list_monitored_resource_descriptors( - self, - name, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists monitored resource descriptors that match a filter. This method does not require a Stackdriver account. @@ -282,42 +284,45 @@ def list_monitored_resource_descriptors( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_monitored_resource_descriptors' not in self._inner_api_calls: + if "list_monitored_resource_descriptors" not in self._inner_api_calls: self._inner_api_calls[ - 'list_monitored_resource_descriptors'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_monitored_resource_descriptors, - default_retry=self. - _method_configs['ListMonitoredResourceDescriptors'].retry, - default_timeout=self._method_configs[ - 'ListMonitoredResourceDescriptors'].timeout, - client_info=self._client_info, - ) + "list_monitored_resource_descriptors" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_monitored_resource_descriptors, + default_retry=self._method_configs[ + "ListMonitoredResourceDescriptors" + ].retry, + default_timeout=self._method_configs[ + "ListMonitoredResourceDescriptors" + ].timeout, + client_info=self._client_info, + ) request = metric_service_pb2.ListMonitoredResourceDescriptorsRequest( - name=name, - filter=filter_, - page_size=page_size, + name=name, filter=filter_, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_monitored_resource_descriptors'], + self._inner_api_calls["list_monitored_resource_descriptors"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='resource_descriptors', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="resource_descriptors", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def get_monitored_resource_descriptor( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a single monitored resource descriptor. This method does not require a Stackdriver account. @@ -358,30 +363,34 @@ def get_monitored_resource_descriptor( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'get_monitored_resource_descriptor' not in self._inner_api_calls: + if "get_monitored_resource_descriptor" not in self._inner_api_calls: self._inner_api_calls[ - 'get_monitored_resource_descriptor'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_monitored_resource_descriptor, - default_retry=self. - _method_configs['GetMonitoredResourceDescriptor'].retry, - default_timeout=self. - _method_configs['GetMonitoredResourceDescriptor'].timeout, - client_info=self._client_info, - ) + "get_monitored_resource_descriptor" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_monitored_resource_descriptor, + default_retry=self._method_configs[ + "GetMonitoredResourceDescriptor" + ].retry, + default_timeout=self._method_configs[ + "GetMonitoredResourceDescriptor" + ].timeout, + client_info=self._client_info, + ) - request = metric_service_pb2.GetMonitoredResourceDescriptorRequest( - name=name, ) - return self._inner_api_calls['get_monitored_resource_descriptor']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = metric_service_pb2.GetMonitoredResourceDescriptorRequest(name=name) + return self._inner_api_calls["get_monitored_resource_descriptor"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def list_metric_descriptors( - self, - name, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists metric descriptors that match a filter. This method does not require a Stackdriver account. @@ -450,41 +459,41 @@ def list_metric_descriptors( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_metric_descriptors' not in self._inner_api_calls: + if "list_metric_descriptors" not in self._inner_api_calls: self._inner_api_calls[ - 'list_metric_descriptors'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_metric_descriptors, - default_retry=self. - _method_configs['ListMetricDescriptors'].retry, - default_timeout=self. - _method_configs['ListMetricDescriptors'].timeout, - client_info=self._client_info, - ) + "list_metric_descriptors" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_metric_descriptors, + default_retry=self._method_configs["ListMetricDescriptors"].retry, + default_timeout=self._method_configs["ListMetricDescriptors"].timeout, + client_info=self._client_info, + ) request = metric_service_pb2.ListMetricDescriptorsRequest( - name=name, - filter=filter_, - page_size=page_size, + name=name, filter=filter_, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_metric_descriptors'], + self._inner_api_calls["list_metric_descriptors"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='metric_descriptors', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="metric_descriptors", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_metric_descriptor(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_metric_descriptor( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a single metric descriptor. This method does not require a Stackdriver account. @@ -525,28 +534,29 @@ def get_metric_descriptor(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'get_metric_descriptor' not in self._inner_api_calls: + if "get_metric_descriptor" not in self._inner_api_calls: self._inner_api_calls[ - 'get_metric_descriptor'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_metric_descriptor, - default_retry=self._method_configs['GetMetricDescriptor']. - retry, - default_timeout=self. - _method_configs['GetMetricDescriptor'].timeout, - client_info=self._client_info, - ) + "get_metric_descriptor" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_metric_descriptor, + default_retry=self._method_configs["GetMetricDescriptor"].retry, + default_timeout=self._method_configs["GetMetricDescriptor"].timeout, + client_info=self._client_info, + ) - request = metric_service_pb2.GetMetricDescriptorRequest(name=name, ) - return self._inner_api_calls['get_metric_descriptor']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = metric_service_pb2.GetMetricDescriptorRequest(name=name) + return self._inner_api_calls["get_metric_descriptor"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def create_metric_descriptor( - self, - name, - metric_descriptor, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + metric_descriptor, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new metric descriptor. User-created metric descriptors define `custom metrics `__. @@ -595,30 +605,30 @@ def create_metric_descriptor( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'create_metric_descriptor' not in self._inner_api_calls: + if "create_metric_descriptor" not in self._inner_api_calls: self._inner_api_calls[ - 'create_metric_descriptor'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_metric_descriptor, - default_retry=self. - _method_configs['CreateMetricDescriptor'].retry, - default_timeout=self. - _method_configs['CreateMetricDescriptor'].timeout, - client_info=self._client_info, - ) + "create_metric_descriptor" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_metric_descriptor, + default_retry=self._method_configs["CreateMetricDescriptor"].retry, + default_timeout=self._method_configs["CreateMetricDescriptor"].timeout, + client_info=self._client_info, + ) request = metric_service_pb2.CreateMetricDescriptorRequest( - name=name, - metric_descriptor=metric_descriptor, + name=name, metric_descriptor=metric_descriptor + ) + return self._inner_api_calls["create_metric_descriptor"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_metric_descriptor']( - request, retry=retry, timeout=timeout, metadata=metadata) def delete_metric_descriptor( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a metric descriptor. Only user-created `custom metrics `__ can be @@ -658,32 +668,34 @@ def delete_metric_descriptor( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'delete_metric_descriptor' not in self._inner_api_calls: + if "delete_metric_descriptor" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_metric_descriptor'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_metric_descriptor, - default_retry=self. - _method_configs['DeleteMetricDescriptor'].retry, - default_timeout=self. - _method_configs['DeleteMetricDescriptor'].timeout, - client_info=self._client_info, - ) + "delete_metric_descriptor" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_metric_descriptor, + default_retry=self._method_configs["DeleteMetricDescriptor"].retry, + default_timeout=self._method_configs["DeleteMetricDescriptor"].timeout, + client_info=self._client_info, + ) + + request = metric_service_pb2.DeleteMetricDescriptorRequest(name=name) + self._inner_api_calls["delete_metric_descriptor"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = metric_service_pb2.DeleteMetricDescriptorRequest(name=name, ) - self._inner_api_calls['delete_metric_descriptor']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_time_series(self, - name, - filter_, - interval, - view, - aggregation=None, - order_by=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_time_series( + self, + name, + filter_, + interval, + view, + aggregation=None, + order_by=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists time series that match a filter. This method does not require a Stackdriver account. @@ -777,15 +789,15 @@ def list_time_series(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_time_series' not in self._inner_api_calls: + if "list_time_series" not in self._inner_api_calls: self._inner_api_calls[ - 'list_time_series'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_time_series, - default_retry=self._method_configs['ListTimeSeries'].retry, - default_timeout=self._method_configs['ListTimeSeries']. - timeout, - client_info=self._client_info, - ) + "list_time_series" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_time_series, + default_retry=self._method_configs["ListTimeSeries"].retry, + default_timeout=self._method_configs["ListTimeSeries"].timeout, + client_info=self._client_info, + ) request = metric_service_pb2.ListTimeSeriesRequest( name=name, @@ -799,23 +811,26 @@ def list_time_series(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_time_series'], + self._inner_api_calls["list_time_series"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='time_series', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="time_series", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def create_time_series(self, - name, - time_series, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_time_series( + self, + name, + time_series, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates or adds data to one or more time series. The response is empty if all time series in the request were written. @@ -865,20 +880,19 @@ def create_time_series(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'create_time_series' not in self._inner_api_calls: + if "create_time_series" not in self._inner_api_calls: self._inner_api_calls[ - 'create_time_series'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_time_series, - default_retry=self._method_configs['CreateTimeSeries']. - retry, - default_timeout=self._method_configs['CreateTimeSeries']. - timeout, - client_info=self._client_info, - ) + "create_time_series" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_time_series, + default_retry=self._method_configs["CreateTimeSeries"].retry, + default_timeout=self._method_configs["CreateTimeSeries"].timeout, + client_info=self._client_info, + ) request = metric_service_pb2.CreateTimeSeriesRequest( - name=name, - time_series=time_series, + name=name, time_series=time_series + ) + self._inner_api_calls["create_time_series"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['create_time_series']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/monitoring/google/cloud/monitoring_v3/gapic/metric_service_client_config.py b/monitoring/google/cloud/monitoring_v3/gapic/metric_service_client_config.py index ad1c5ec4e5d9..56ae49b29428 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/metric_service_client_config.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/metric_service_client_config.py @@ -3,7 +3,7 @@ "google.monitoring.v3.MetricService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,51 +13,51 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListMonitoredResourceDescriptors": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetMonitoredResourceDescriptor": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListMetricDescriptors": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetMetricDescriptor": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateMetricDescriptor": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteMetricDescriptor": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTimeSeries": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateTimeSeries": { "timeout_millis": 12000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/monitoring/google/cloud/monitoring_v3/gapic/notification_channel_service_client.py b/monitoring/google/cloud/monitoring_v3/gapic/notification_channel_service_client.py index 824c3578e637..62b2537640fe 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/notification_channel_service_client.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/notification_channel_service_client.py @@ -32,7 +32,9 @@ from google.api import monitored_resource_pb2 from google.cloud.monitoring_v3.gapic import enums from google.cloud.monitoring_v3.gapic import notification_channel_service_client_config -from google.cloud.monitoring_v3.gapic.transports import notification_channel_service_grpc_transport +from google.cloud.monitoring_v3.gapic.transports import ( + notification_channel_service_grpc_transport, +) from google.cloud.monitoring_v3.proto import alert_pb2 from google.cloud.monitoring_v3.proto import alert_service_pb2 from google.cloud.monitoring_v3.proto import alert_service_pb2_grpc @@ -50,7 +52,8 @@ from google.protobuf import field_mask_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-monitoring', ).version + "google-cloud-monitoring" +).version class NotificationChannelServiceClient(object): @@ -59,12 +62,12 @@ class NotificationChannelServiceClient(object): controls how messages related to incidents are sent. """ - SERVICE_ADDRESS = 'monitoring.googleapis.com:443' + SERVICE_ADDRESS = "monitoring.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.monitoring.v3.NotificationChannelService' + _INTERFACE_NAME = "google.monitoring.v3.NotificationChannelService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -80,9 +83,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: NotificationChannelServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -91,15 +93,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def notification_channel_path(cls, project, notification_channel): """Return a fully-qualified notification_channel string.""" return google.api_core.path_template.expand( - 'projects/{project}/notificationChannels/{notification_channel}', + "projects/{project}/notificationChannels/{notification_channel}", project=project, notification_channel=notification_channel, ) @@ -108,17 +109,19 @@ def notification_channel_path(cls, project, notification_channel): def notification_channel_descriptor_path(cls, project, channel_descriptor): """Return a fully-qualified notification_channel_descriptor string.""" return google.api_core.path_template.expand( - 'projects/{project}/notificationChannelDescriptors/{channel_descriptor}', + "projects/{project}/notificationChannelDescriptors/{channel_descriptor}", project=project, channel_descriptor=channel_descriptor, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -152,18 +155,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = notification_channel_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -172,25 +176,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=notification_channel_service_grpc_transport. - NotificationChannelServiceGrpcTransport, + default_class=notification_channel_service_grpc_transport.NotificationChannelServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = notification_channel_service_grpc_transport.NotificationChannelServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -200,7 +203,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -210,12 +214,13 @@ def __init__(self, # Service calls def list_notification_channel_descriptors( - self, - name, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the descriptors for supported channel types. The use of descriptors makes it possible for new channel types to be dynamically added. @@ -283,41 +288,45 @@ def list_notification_channel_descriptors( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_notification_channel_descriptors' not in self._inner_api_calls: + if "list_notification_channel_descriptors" not in self._inner_api_calls: self._inner_api_calls[ - 'list_notification_channel_descriptors'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_notification_channel_descriptors, - default_retry=self._method_configs[ - 'ListNotificationChannelDescriptors'].retry, - default_timeout=self._method_configs[ - 'ListNotificationChannelDescriptors'].timeout, - client_info=self._client_info, - ) + "list_notification_channel_descriptors" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_notification_channel_descriptors, + default_retry=self._method_configs[ + "ListNotificationChannelDescriptors" + ].retry, + default_timeout=self._method_configs[ + "ListNotificationChannelDescriptors" + ].timeout, + client_info=self._client_info, + ) request = notification_service_pb2.ListNotificationChannelDescriptorsRequest( - name=name, - page_size=page_size, + name=name, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_notification_channel_descriptors'], + self._inner_api_calls["list_notification_channel_descriptors"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='channel_descriptors', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="channel_descriptors", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def get_notification_channel_descriptor( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a single channel descriptor. The descriptor indicates which fields are expected / permitted for a notification channel of the given type. @@ -357,31 +366,37 @@ def get_notification_channel_descriptor( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'get_notification_channel_descriptor' not in self._inner_api_calls: + if "get_notification_channel_descriptor" not in self._inner_api_calls: self._inner_api_calls[ - 'get_notification_channel_descriptor'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_notification_channel_descriptor, - default_retry=self. - _method_configs['GetNotificationChannelDescriptor'].retry, - default_timeout=self._method_configs[ - 'GetNotificationChannelDescriptor'].timeout, - client_info=self._client_info, - ) + "get_notification_channel_descriptor" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_notification_channel_descriptor, + default_retry=self._method_configs[ + "GetNotificationChannelDescriptor" + ].retry, + default_timeout=self._method_configs[ + "GetNotificationChannelDescriptor" + ].timeout, + client_info=self._client_info, + ) request = notification_service_pb2.GetNotificationChannelDescriptorRequest( - name=name, ) - return self._inner_api_calls['get_notification_channel_descriptor']( - request, retry=retry, timeout=timeout, metadata=metadata) + name=name + ) + return self._inner_api_calls["get_notification_channel_descriptor"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def list_notification_channels( - self, - name, - filter_=None, - order_by=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + filter_=None, + order_by=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the notification channels that have been created for the project. @@ -454,43 +469,43 @@ def list_notification_channels( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_notification_channels' not in self._inner_api_calls: + if "list_notification_channels" not in self._inner_api_calls: self._inner_api_calls[ - 'list_notification_channels'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_notification_channels, - default_retry=self. - _method_configs['ListNotificationChannels'].retry, - default_timeout=self. - _method_configs['ListNotificationChannels'].timeout, - client_info=self._client_info, - ) + "list_notification_channels" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_notification_channels, + default_retry=self._method_configs["ListNotificationChannels"].retry, + default_timeout=self._method_configs[ + "ListNotificationChannels" + ].timeout, + client_info=self._client_info, + ) request = notification_service_pb2.ListNotificationChannelsRequest( - name=name, - filter=filter_, - order_by=order_by, - page_size=page_size, + name=name, filter=filter_, order_by=order_by, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_notification_channels'], + self._inner_api_calls["list_notification_channels"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='notification_channels', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="notification_channels", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def get_notification_channel( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a single notification channel. The channel includes the relevant configuration details with which the channel was created. However, the @@ -533,29 +548,29 @@ def get_notification_channel( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'get_notification_channel' not in self._inner_api_calls: + if "get_notification_channel" not in self._inner_api_calls: self._inner_api_calls[ - 'get_notification_channel'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_notification_channel, - default_retry=self. - _method_configs['GetNotificationChannel'].retry, - default_timeout=self. - _method_configs['GetNotificationChannel'].timeout, - client_info=self._client_info, - ) + "get_notification_channel" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_notification_channel, + default_retry=self._method_configs["GetNotificationChannel"].retry, + default_timeout=self._method_configs["GetNotificationChannel"].timeout, + client_info=self._client_info, + ) - request = notification_service_pb2.GetNotificationChannelRequest( - name=name, ) - return self._inner_api_calls['get_notification_channel']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = notification_service_pb2.GetNotificationChannelRequest(name=name) + return self._inner_api_calls["get_notification_channel"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def create_notification_channel( - self, - name, - notification_channel, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + notification_channel, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new notification channel, representing a single notification endpoint such as an email address, SMS number, or PagerDuty service. @@ -611,31 +626,33 @@ def create_notification_channel( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'create_notification_channel' not in self._inner_api_calls: + if "create_notification_channel" not in self._inner_api_calls: self._inner_api_calls[ - 'create_notification_channel'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_notification_channel, - default_retry=self. - _method_configs['CreateNotificationChannel'].retry, - default_timeout=self. - _method_configs['CreateNotificationChannel'].timeout, - client_info=self._client_info, - ) + "create_notification_channel" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_notification_channel, + default_retry=self._method_configs["CreateNotificationChannel"].retry, + default_timeout=self._method_configs[ + "CreateNotificationChannel" + ].timeout, + client_info=self._client_info, + ) request = notification_service_pb2.CreateNotificationChannelRequest( - name=name, - notification_channel=notification_channel, + name=name, notification_channel=notification_channel + ) + return self._inner_api_calls["create_notification_channel"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_notification_channel']( - request, retry=retry, timeout=timeout, metadata=metadata) def update_notification_channel( - self, - notification_channel, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + notification_channel, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a notification channel. Fields not specified in the field mask remain unchanged. @@ -685,31 +702,33 @@ def update_notification_channel( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'update_notification_channel' not in self._inner_api_calls: + if "update_notification_channel" not in self._inner_api_calls: self._inner_api_calls[ - 'update_notification_channel'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_notification_channel, - default_retry=self. - _method_configs['UpdateNotificationChannel'].retry, - default_timeout=self. - _method_configs['UpdateNotificationChannel'].timeout, - client_info=self._client_info, - ) + "update_notification_channel" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_notification_channel, + default_retry=self._method_configs["UpdateNotificationChannel"].retry, + default_timeout=self._method_configs[ + "UpdateNotificationChannel" + ].timeout, + client_info=self._client_info, + ) request = notification_service_pb2.UpdateNotificationChannelRequest( - notification_channel=notification_channel, - update_mask=update_mask, + notification_channel=notification_channel, update_mask=update_mask + ) + return self._inner_api_calls["update_notification_channel"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_notification_channel']( - request, retry=retry, timeout=timeout, metadata=metadata) def delete_notification_channel( - self, - name, - force=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + force=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a notification channel. @@ -749,20 +768,21 @@ def delete_notification_channel( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'delete_notification_channel' not in self._inner_api_calls: + if "delete_notification_channel" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_notification_channel'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_notification_channel, - default_retry=self. - _method_configs['DeleteNotificationChannel'].retry, - default_timeout=self. - _method_configs['DeleteNotificationChannel'].timeout, - client_info=self._client_info, - ) + "delete_notification_channel" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_notification_channel, + default_retry=self._method_configs["DeleteNotificationChannel"].retry, + default_timeout=self._method_configs[ + "DeleteNotificationChannel" + ].timeout, + client_info=self._client_info, + ) request = notification_service_pb2.DeleteNotificationChannelRequest( - name=name, - force=force, + name=name, force=force + ) + self._inner_api_calls["delete_notification_channel"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['delete_notification_channel']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/monitoring/google/cloud/monitoring_v3/gapic/notification_channel_service_client_config.py b/monitoring/google/cloud/monitoring_v3/gapic/notification_channel_service_client_config.py index 66ac6a22e25a..16f010042ea8 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/notification_channel_service_client_config.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/notification_channel_service_client_config.py @@ -3,7 +3,7 @@ "google.monitoring.v3.NotificationChannelService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,46 +13,46 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListNotificationChannelDescriptors": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetNotificationChannelDescriptor": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListNotificationChannels": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetNotificationChannel": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateNotificationChannel": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateNotificationChannel": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteNotificationChannel": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/monitoring/google/cloud/monitoring_v3/gapic/transports/alert_policy_service_grpc_transport.py b/monitoring/google/cloud/monitoring_v3/gapic/transports/alert_policy_service_grpc_transport.py index 0c0b606cec52..8182cd35edf0 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/transports/alert_policy_service_grpc_transport.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/transports/alert_policy_service_grpc_transport.py @@ -27,19 +27,19 @@ class AlertPolicyServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/monitoring', - 'https://www.googleapis.com/auth/monitoring.read', - 'https://www.googleapis.com/auth/monitoring.write', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write", ) - def __init__(self, - channel=None, - credentials=None, - address='monitoring.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="monitoring.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -57,29 +57,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'alert_policy_service_stub': - alert_service_pb2_grpc.AlertPolicyServiceStub(channel), + "alert_policy_service_stub": alert_service_pb2_grpc.AlertPolicyServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='monitoring.googleapis.com:443', - credentials=None): + def create_channel(cls, address="monitoring.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -98,8 +94,8 @@ def create_channel(cls, credentials=credentials, scopes=cls._OAUTH_SCOPES, options={ - 'grpc.max_send_message_length': -1, - 'grpc.max_receive_message_length': -1, + "grpc.max_send_message_length": -1, + "grpc.max_receive_message_length": -1, }.items(), ) @@ -123,7 +119,7 @@ def list_alert_policies(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['alert_policy_service_stub'].ListAlertPolicies + return self._stubs["alert_policy_service_stub"].ListAlertPolicies @property def get_alert_policy(self): @@ -136,7 +132,7 @@ def get_alert_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['alert_policy_service_stub'].GetAlertPolicy + return self._stubs["alert_policy_service_stub"].GetAlertPolicy @property def create_alert_policy(self): @@ -149,7 +145,7 @@ def create_alert_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['alert_policy_service_stub'].CreateAlertPolicy + return self._stubs["alert_policy_service_stub"].CreateAlertPolicy @property def delete_alert_policy(self): @@ -162,7 +158,7 @@ def delete_alert_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['alert_policy_service_stub'].DeleteAlertPolicy + return self._stubs["alert_policy_service_stub"].DeleteAlertPolicy @property def update_alert_policy(self): @@ -178,4 +174,4 @@ def update_alert_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['alert_policy_service_stub'].UpdateAlertPolicy + return self._stubs["alert_policy_service_stub"].UpdateAlertPolicy diff --git a/monitoring/google/cloud/monitoring_v3/gapic/transports/group_service_grpc_transport.py b/monitoring/google/cloud/monitoring_v3/gapic/transports/group_service_grpc_transport.py index 83d1a8dfa293..e99a907e85fd 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/transports/group_service_grpc_transport.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/transports/group_service_grpc_transport.py @@ -27,19 +27,19 @@ class GroupServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/monitoring', - 'https://www.googleapis.com/auth/monitoring.read', - 'https://www.googleapis.com/auth/monitoring.write', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write", ) - def __init__(self, - channel=None, - credentials=None, - address='monitoring.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="monitoring.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -57,29 +57,23 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'group_service_stub': - group_service_pb2_grpc.GroupServiceStub(channel), + "group_service_stub": group_service_pb2_grpc.GroupServiceStub(channel) } @classmethod - def create_channel(cls, - address='monitoring.googleapis.com:443', - credentials=None): + def create_channel(cls, address="monitoring.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -98,8 +92,8 @@ def create_channel(cls, credentials=credentials, scopes=cls._OAUTH_SCOPES, options={ - 'grpc.max_send_message_length': -1, - 'grpc.max_receive_message_length': -1, + "grpc.max_send_message_length": -1, + "grpc.max_receive_message_length": -1, }.items(), ) @@ -123,7 +117,7 @@ def list_groups(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['group_service_stub'].ListGroups + return self._stubs["group_service_stub"].ListGroups @property def get_group(self): @@ -136,7 +130,7 @@ def get_group(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['group_service_stub'].GetGroup + return self._stubs["group_service_stub"].GetGroup @property def create_group(self): @@ -149,7 +143,7 @@ def create_group(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['group_service_stub'].CreateGroup + return self._stubs["group_service_stub"].CreateGroup @property def update_group(self): @@ -163,7 +157,7 @@ def update_group(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['group_service_stub'].UpdateGroup + return self._stubs["group_service_stub"].UpdateGroup @property def delete_group(self): @@ -176,7 +170,7 @@ def delete_group(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['group_service_stub'].DeleteGroup + return self._stubs["group_service_stub"].DeleteGroup @property def list_group_members(self): @@ -189,4 +183,4 @@ def list_group_members(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['group_service_stub'].ListGroupMembers + return self._stubs["group_service_stub"].ListGroupMembers diff --git a/monitoring/google/cloud/monitoring_v3/gapic/transports/metric_service_grpc_transport.py b/monitoring/google/cloud/monitoring_v3/gapic/transports/metric_service_grpc_transport.py index 05e490bd6af3..756525b5aeb5 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/transports/metric_service_grpc_transport.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/transports/metric_service_grpc_transport.py @@ -27,19 +27,19 @@ class MetricServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/monitoring', - 'https://www.googleapis.com/auth/monitoring.read', - 'https://www.googleapis.com/auth/monitoring.write', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write", ) - def __init__(self, - channel=None, - credentials=None, - address='monitoring.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="monitoring.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -57,29 +57,23 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'metric_service_stub': - metric_service_pb2_grpc.MetricServiceStub(channel), + "metric_service_stub": metric_service_pb2_grpc.MetricServiceStub(channel) } @classmethod - def create_channel(cls, - address='monitoring.googleapis.com:443', - credentials=None): + def create_channel(cls, address="monitoring.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -98,8 +92,8 @@ def create_channel(cls, credentials=credentials, scopes=cls._OAUTH_SCOPES, options={ - 'grpc.max_send_message_length': -1, - 'grpc.max_receive_message_length': -1, + "grpc.max_send_message_length": -1, + "grpc.max_receive_message_length": -1, }.items(), ) @@ -123,8 +117,7 @@ def list_monitored_resource_descriptors(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'metric_service_stub'].ListMonitoredResourceDescriptors + return self._stubs["metric_service_stub"].ListMonitoredResourceDescriptors @property def get_monitored_resource_descriptor(self): @@ -137,8 +130,7 @@ def get_monitored_resource_descriptor(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'metric_service_stub'].GetMonitoredResourceDescriptor + return self._stubs["metric_service_stub"].GetMonitoredResourceDescriptor @property def list_metric_descriptors(self): @@ -151,7 +143,7 @@ def list_metric_descriptors(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['metric_service_stub'].ListMetricDescriptors + return self._stubs["metric_service_stub"].ListMetricDescriptors @property def get_metric_descriptor(self): @@ -164,7 +156,7 @@ def get_metric_descriptor(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['metric_service_stub'].GetMetricDescriptor + return self._stubs["metric_service_stub"].GetMetricDescriptor @property def create_metric_descriptor(self): @@ -178,7 +170,7 @@ def create_metric_descriptor(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['metric_service_stub'].CreateMetricDescriptor + return self._stubs["metric_service_stub"].CreateMetricDescriptor @property def delete_metric_descriptor(self): @@ -193,7 +185,7 @@ def delete_metric_descriptor(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['metric_service_stub'].DeleteMetricDescriptor + return self._stubs["metric_service_stub"].DeleteMetricDescriptor @property def list_time_series(self): @@ -206,7 +198,7 @@ def list_time_series(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['metric_service_stub'].ListTimeSeries + return self._stubs["metric_service_stub"].ListTimeSeries @property def create_time_series(self): @@ -222,4 +214,4 @@ def create_time_series(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['metric_service_stub'].CreateTimeSeries + return self._stubs["metric_service_stub"].CreateTimeSeries diff --git a/monitoring/google/cloud/monitoring_v3/gapic/transports/notification_channel_service_grpc_transport.py b/monitoring/google/cloud/monitoring_v3/gapic/transports/notification_channel_service_grpc_transport.py index d4e22c45393b..259394a7a4ee 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/transports/notification_channel_service_grpc_transport.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/transports/notification_channel_service_grpc_transport.py @@ -27,19 +27,19 @@ class NotificationChannelServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/monitoring', - 'https://www.googleapis.com/auth/monitoring.read', - 'https://www.googleapis.com/auth/monitoring.write', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write", ) - def __init__(self, - channel=None, - credentials=None, - address='monitoring.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="monitoring.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -57,30 +57,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'notification_channel_service_stub': - notification_service_pb2_grpc.NotificationChannelServiceStub( - channel), + "notification_channel_service_stub": notification_service_pb2_grpc.NotificationChannelServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='monitoring.googleapis.com:443', - credentials=None): + def create_channel(cls, address="monitoring.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -99,8 +94,8 @@ def create_channel(cls, credentials=credentials, scopes=cls._OAUTH_SCOPES, options={ - 'grpc.max_send_message_length': -1, - 'grpc.max_receive_message_length': -1, + "grpc.max_send_message_length": -1, + "grpc.max_receive_message_length": -1, }.items(), ) @@ -126,7 +121,8 @@ def list_notification_channel_descriptors(self): deserialized response object. """ return self._stubs[ - 'notification_channel_service_stub'].ListNotificationChannelDescriptors + "notification_channel_service_stub" + ].ListNotificationChannelDescriptors @property def get_notification_channel_descriptor(self): @@ -141,7 +137,8 @@ def get_notification_channel_descriptor(self): deserialized response object. """ return self._stubs[ - 'notification_channel_service_stub'].GetNotificationChannelDescriptor + "notification_channel_service_stub" + ].GetNotificationChannelDescriptor @property def list_notification_channels(self): @@ -154,8 +151,7 @@ def list_notification_channels(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'notification_channel_service_stub'].ListNotificationChannels + return self._stubs["notification_channel_service_stub"].ListNotificationChannels @property def get_notification_channel(self): @@ -172,8 +168,7 @@ def get_notification_channel(self): deserialized request object and returns a deserialized response object. """ - return self._stubs[ - 'notification_channel_service_stub'].GetNotificationChannel + return self._stubs["notification_channel_service_stub"].GetNotificationChannel @property def create_notification_channel(self): @@ -188,7 +183,8 @@ def create_notification_channel(self): deserialized response object. """ return self._stubs[ - 'notification_channel_service_stub'].CreateNotificationChannel + "notification_channel_service_stub" + ].CreateNotificationChannel @property def update_notification_channel(self): @@ -203,7 +199,8 @@ def update_notification_channel(self): deserialized response object. """ return self._stubs[ - 'notification_channel_service_stub'].UpdateNotificationChannel + "notification_channel_service_stub" + ].UpdateNotificationChannel @property def delete_notification_channel(self): @@ -217,4 +214,5 @@ def delete_notification_channel(self): deserialized response object. """ return self._stubs[ - 'notification_channel_service_stub'].DeleteNotificationChannel + "notification_channel_service_stub" + ].DeleteNotificationChannel diff --git a/monitoring/google/cloud/monitoring_v3/gapic/transports/uptime_check_service_grpc_transport.py b/monitoring/google/cloud/monitoring_v3/gapic/transports/uptime_check_service_grpc_transport.py index a19aea126c02..43060038108c 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/transports/uptime_check_service_grpc_transport.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/transports/uptime_check_service_grpc_transport.py @@ -27,19 +27,19 @@ class UptimeCheckServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/monitoring', - 'https://www.googleapis.com/auth/monitoring.read', - 'https://www.googleapis.com/auth/monitoring.write', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.read", + "https://www.googleapis.com/auth/monitoring.write", ) - def __init__(self, - channel=None, - credentials=None, - address='monitoring.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="monitoring.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -57,29 +57,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'uptime_check_service_stub': - uptime_service_pb2_grpc.UptimeCheckServiceStub(channel), + "uptime_check_service_stub": uptime_service_pb2_grpc.UptimeCheckServiceStub( + channel + ) } @classmethod - def create_channel(cls, - address='monitoring.googleapis.com:443', - credentials=None): + def create_channel(cls, address="monitoring.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -98,8 +94,8 @@ def create_channel(cls, credentials=credentials, scopes=cls._OAUTH_SCOPES, options={ - 'grpc.max_send_message_length': -1, - 'grpc.max_receive_message_length': -1, + "grpc.max_send_message_length": -1, + "grpc.max_receive_message_length": -1, }.items(), ) @@ -124,7 +120,7 @@ def list_uptime_check_configs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['uptime_check_service_stub'].ListUptimeCheckConfigs + return self._stubs["uptime_check_service_stub"].ListUptimeCheckConfigs @property def get_uptime_check_config(self): @@ -137,7 +133,7 @@ def get_uptime_check_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['uptime_check_service_stub'].GetUptimeCheckConfig + return self._stubs["uptime_check_service_stub"].GetUptimeCheckConfig @property def create_uptime_check_config(self): @@ -150,7 +146,7 @@ def create_uptime_check_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['uptime_check_service_stub'].CreateUptimeCheckConfig + return self._stubs["uptime_check_service_stub"].CreateUptimeCheckConfig @property def update_uptime_check_config(self): @@ -166,7 +162,7 @@ def update_uptime_check_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['uptime_check_service_stub'].UpdateUptimeCheckConfig + return self._stubs["uptime_check_service_stub"].UpdateUptimeCheckConfig @property def delete_uptime_check_config(self): @@ -181,7 +177,7 @@ def delete_uptime_check_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['uptime_check_service_stub'].DeleteUptimeCheckConfig + return self._stubs["uptime_check_service_stub"].DeleteUptimeCheckConfig @property def list_uptime_check_ips(self): @@ -194,4 +190,4 @@ def list_uptime_check_ips(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['uptime_check_service_stub'].ListUptimeCheckIps + return self._stubs["uptime_check_service_stub"].ListUptimeCheckIps diff --git a/monitoring/google/cloud/monitoring_v3/gapic/uptime_check_service_client.py b/monitoring/google/cloud/monitoring_v3/gapic/uptime_check_service_client.py index 5598eb2de3c3..0c0008a43819 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/uptime_check_service_client.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/uptime_check_service_client.py @@ -32,7 +32,9 @@ from google.api import monitored_resource_pb2 from google.cloud.monitoring_v3.gapic import enums from google.cloud.monitoring_v3.gapic import uptime_check_service_client_config -from google.cloud.monitoring_v3.gapic.transports import uptime_check_service_grpc_transport +from google.cloud.monitoring_v3.gapic.transports import ( + uptime_check_service_grpc_transport, +) from google.cloud.monitoring_v3.proto import alert_pb2 from google.cloud.monitoring_v3.proto import alert_service_pb2 from google.cloud.monitoring_v3.proto import alert_service_pb2_grpc @@ -53,7 +55,8 @@ from google.protobuf import field_mask_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-monitoring', ).version + "google-cloud-monitoring" +).version class UptimeCheckServiceClient(object): @@ -68,12 +71,12 @@ class UptimeCheckServiceClient(object): Stackdriver, and then clicking on "Uptime". """ - SERVICE_ADDRESS = 'monitoring.googleapis.com:443' + SERVICE_ADDRESS = "monitoring.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.monitoring.v3.UptimeCheckService' + _INTERFACE_NAME = "google.monitoring.v3.UptimeCheckService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -89,9 +92,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: UptimeCheckServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -100,25 +102,26 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def uptime_check_config_path(cls, project, uptime_check_config): """Return a fully-qualified uptime_check_config string.""" return google.api_core.path_template.expand( - 'projects/{project}/uptimeCheckConfigs/{uptime_check_config}', + "projects/{project}/uptimeCheckConfigs/{uptime_check_config}", project=project, uptime_check_config=uptime_check_config, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -152,18 +155,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = uptime_check_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -172,25 +176,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=uptime_check_service_grpc_transport. - UptimeCheckServiceGrpcTransport, + default_class=uptime_check_service_grpc_transport.UptimeCheckServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = uptime_check_service_grpc_transport.UptimeCheckServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -200,7 +203,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -210,12 +214,13 @@ def __init__(self, # Service calls def list_uptime_check_configs( - self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the existing valid uptime check configurations for the project, leaving out any invalid configurations. @@ -275,41 +280,41 @@ def list_uptime_check_configs( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_uptime_check_configs' not in self._inner_api_calls: + if "list_uptime_check_configs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_uptime_check_configs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_uptime_check_configs, - default_retry=self. - _method_configs['ListUptimeCheckConfigs'].retry, - default_timeout=self. - _method_configs['ListUptimeCheckConfigs'].timeout, - client_info=self._client_info, - ) + "list_uptime_check_configs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_uptime_check_configs, + default_retry=self._method_configs["ListUptimeCheckConfigs"].retry, + default_timeout=self._method_configs["ListUptimeCheckConfigs"].timeout, + client_info=self._client_info, + ) request = uptime_service_pb2.ListUptimeCheckConfigsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_uptime_check_configs'], + self._inner_api_calls["list_uptime_check_configs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='uptime_check_configs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="uptime_check_configs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def get_uptime_check_config( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a single uptime check configuration. @@ -348,28 +353,29 @@ def get_uptime_check_config( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'get_uptime_check_config' not in self._inner_api_calls: + if "get_uptime_check_config" not in self._inner_api_calls: self._inner_api_calls[ - 'get_uptime_check_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_uptime_check_config, - default_retry=self._method_configs['GetUptimeCheckConfig']. - retry, - default_timeout=self. - _method_configs['GetUptimeCheckConfig'].timeout, - client_info=self._client_info, - ) + "get_uptime_check_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_uptime_check_config, + default_retry=self._method_configs["GetUptimeCheckConfig"].retry, + default_timeout=self._method_configs["GetUptimeCheckConfig"].timeout, + client_info=self._client_info, + ) - request = uptime_service_pb2.GetUptimeCheckConfigRequest(name=name, ) - return self._inner_api_calls['get_uptime_check_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = uptime_service_pb2.GetUptimeCheckConfigRequest(name=name) + return self._inner_api_calls["get_uptime_check_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def create_uptime_check_config( - self, - parent, - uptime_check_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + uptime_check_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new uptime check configuration. @@ -415,31 +421,31 @@ def create_uptime_check_config( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'create_uptime_check_config' not in self._inner_api_calls: + if "create_uptime_check_config" not in self._inner_api_calls: self._inner_api_calls[ - 'create_uptime_check_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_uptime_check_config, - default_retry=self. - _method_configs['CreateUptimeCheckConfig'].retry, - default_timeout=self. - _method_configs['CreateUptimeCheckConfig'].timeout, - client_info=self._client_info, - ) + "create_uptime_check_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_uptime_check_config, + default_retry=self._method_configs["CreateUptimeCheckConfig"].retry, + default_timeout=self._method_configs["CreateUptimeCheckConfig"].timeout, + client_info=self._client_info, + ) request = uptime_service_pb2.CreateUptimeCheckConfigRequest( - parent=parent, - uptime_check_config=uptime_check_config, + parent=parent, uptime_check_config=uptime_check_config + ) + return self._inner_api_calls["create_uptime_check_config"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_uptime_check_config']( - request, retry=retry, timeout=timeout, metadata=metadata) def update_uptime_check_config( - self, - uptime_check_config, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + uptime_check_config, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an uptime check configuration. You can either replace the entire configuration with a new one or replace only certain fields in the @@ -501,30 +507,30 @@ def update_uptime_check_config( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'update_uptime_check_config' not in self._inner_api_calls: + if "update_uptime_check_config" not in self._inner_api_calls: self._inner_api_calls[ - 'update_uptime_check_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_uptime_check_config, - default_retry=self. - _method_configs['UpdateUptimeCheckConfig'].retry, - default_timeout=self. - _method_configs['UpdateUptimeCheckConfig'].timeout, - client_info=self._client_info, - ) + "update_uptime_check_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_uptime_check_config, + default_retry=self._method_configs["UpdateUptimeCheckConfig"].retry, + default_timeout=self._method_configs["UpdateUptimeCheckConfig"].timeout, + client_info=self._client_info, + ) request = uptime_service_pb2.UpdateUptimeCheckConfigRequest( - uptime_check_config=uptime_check_config, - update_mask=update_mask, + uptime_check_config=uptime_check_config, update_mask=update_mask + ) + return self._inner_api_calls["update_uptime_check_config"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_uptime_check_config']( - request, retry=retry, timeout=timeout, metadata=metadata) def delete_uptime_check_config( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes an uptime check configuration. Note that this method will fail if the uptime check configuration is referenced by an alert policy or @@ -562,27 +568,28 @@ def delete_uptime_check_config( metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'delete_uptime_check_config' not in self._inner_api_calls: + if "delete_uptime_check_config" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_uptime_check_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_uptime_check_config, - default_retry=self. - _method_configs['DeleteUptimeCheckConfig'].retry, - default_timeout=self. - _method_configs['DeleteUptimeCheckConfig'].timeout, - client_info=self._client_info, - ) + "delete_uptime_check_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_uptime_check_config, + default_retry=self._method_configs["DeleteUptimeCheckConfig"].retry, + default_timeout=self._method_configs["DeleteUptimeCheckConfig"].timeout, + client_info=self._client_info, + ) - request = uptime_service_pb2.DeleteUptimeCheckConfigRequest( - name=name, ) - self._inner_api_calls['delete_uptime_check_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = uptime_service_pb2.DeleteUptimeCheckConfigRequest(name=name) + self._inner_api_calls["delete_uptime_check_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_uptime_check_ips(self, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_uptime_check_ips( + self, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns the list of IPs that checkers run from @@ -637,29 +644,28 @@ def list_uptime_check_ips(self, metadata = [] metadata = list(metadata) # Wrap the transport method to add retry and timeout logic. - if 'list_uptime_check_ips' not in self._inner_api_calls: + if "list_uptime_check_ips" not in self._inner_api_calls: self._inner_api_calls[ - 'list_uptime_check_ips'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_uptime_check_ips, - default_retry=self._method_configs['ListUptimeCheckIps']. - retry, - default_timeout=self._method_configs['ListUptimeCheckIps']. - timeout, - client_info=self._client_info, - ) + "list_uptime_check_ips" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_uptime_check_ips, + default_retry=self._method_configs["ListUptimeCheckIps"].retry, + default_timeout=self._method_configs["ListUptimeCheckIps"].timeout, + client_info=self._client_info, + ) - request = uptime_service_pb2.ListUptimeCheckIpsRequest( - page_size=page_size, ) + request = uptime_service_pb2.ListUptimeCheckIpsRequest(page_size=page_size) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_uptime_check_ips'], + self._inner_api_calls["list_uptime_check_ips"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='uptime_check_ips', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="uptime_check_ips", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator diff --git a/monitoring/google/cloud/monitoring_v3/gapic/uptime_check_service_client_config.py b/monitoring/google/cloud/monitoring_v3/gapic/uptime_check_service_client_config.py index 3bac592e01a2..0be9a06c1184 100644 --- a/monitoring/google/cloud/monitoring_v3/gapic/uptime_check_service_client_config.py +++ b/monitoring/google/cloud/monitoring_v3/gapic/uptime_check_service_client_config.py @@ -3,7 +3,7 @@ "google.monitoring.v3.UptimeCheckService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListUptimeCheckConfigs": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetUptimeCheckConfig": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateUptimeCheckConfig": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateUptimeCheckConfig": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteUptimeCheckConfig": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListUptimeCheckIps": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/monitoring/google/cloud/monitoring_v3/query.py b/monitoring/google/cloud/monitoring_v3/query.py index 258d39272a63..cb23082f4575 100644 --- a/monitoring/google/cloud/monitoring_v3/query.py +++ b/monitoring/google/cloud/monitoring_v3/query.py @@ -80,20 +80,27 @@ class Query(object): .. _supported metrics: https://cloud.google.com/monitoring/api/metrics """ - DEFAULT_METRIC_TYPE = 'compute.googleapis.com/instance/cpu/utilization' - - def __init__(self, client, project, - metric_type=DEFAULT_METRIC_TYPE, - end_time=None, days=0, hours=0, minutes=0): + DEFAULT_METRIC_TYPE = "compute.googleapis.com/instance/cpu/utilization" + + def __init__( + self, + client, + project, + metric_type=DEFAULT_METRIC_TYPE, + end_time=None, + days=0, + hours=0, + minutes=0, + ): start_time = None if days or hours or minutes: if end_time is None: end_time = _UTCNOW().replace(second=0, microsecond=0) - start_time = end_time - datetime.timedelta(days=days, - hours=hours, - minutes=minutes) + start_time = end_time - datetime.timedelta( + days=days, hours=hours, minutes=minutes + ) elif end_time is not None: - raise ValueError('Non-zero duration required for time interval.') + raise ValueError("Non-zero duration required for time interval.") self._client = client self._project_path = self._client.project_path(project) @@ -355,8 +362,7 @@ def align(self, per_series_aligner, seconds=0, minutes=0, hours=0): """ new_query = copy.deepcopy(self) new_query._per_series_aligner = per_series_aligner - new_query._alignment_period_seconds = seconds + 60 * (minutes + - 60 * hours) + new_query._alignment_period_seconds = seconds + 60 * (minutes + 60 * hours) return new_query def reduce(self, cross_series_reducer, *group_by_fields): @@ -428,7 +434,7 @@ def iter(self, headers_only=False, page_size=None): specified. """ if self._end_time is None: - raise ValueError('Query time interval not specified.') + raise ValueError("Query time interval not specified.") params = self._build_query_params(headers_only, page_size) for ts in self._client.list_time_series(**params): @@ -446,29 +452,33 @@ def _build_query_params(self, headers_only=False, page_size=None): :param page_size: (Optional) A limit on the number of points to return per page. """ - params = {'name': self._project_path, 'filter_': self.filter} + params = {"name": self._project_path, "filter_": self.filter} - params['interval'] = types.TimeInterval() - params['interval'].end_time.FromDatetime(self._end_time) + params["interval"] = types.TimeInterval() + params["interval"].end_time.FromDatetime(self._end_time) if self._start_time: - params['interval'].start_time.FromDatetime(self._start_time) - - if (self._per_series_aligner or self._alignment_period_seconds or - self._cross_series_reducer or self._group_by_fields): - params['aggregation'] = types.Aggregation( + params["interval"].start_time.FromDatetime(self._start_time) + + if ( + self._per_series_aligner + or self._alignment_period_seconds + or self._cross_series_reducer + or self._group_by_fields + ): + params["aggregation"] = types.Aggregation( per_series_aligner=self._per_series_aligner, cross_series_reducer=self._cross_series_reducer, group_by_fields=self._group_by_fields, - alignment_period={'seconds': self._alignment_period_seconds}, + alignment_period={"seconds": self._alignment_period_seconds}, ) if headers_only: - params['view'] = enums.ListTimeSeriesRequest.TimeSeriesView.HEADERS + params["view"] = enums.ListTimeSeriesRequest.TimeSeriesView.HEADERS else: - params['view'] = enums.ListTimeSeriesRequest.TimeSeriesView.FULL + params["view"] = enums.ListTimeSeriesRequest.TimeSeriesView.FULL if page_size is not None: - params['page_size'] = page_size + params["page_size"] = page_size return params @@ -513,8 +523,7 @@ def as_dataframe(self, label=None, labels=None): :rtype: :class:`pandas.DataFrame` :returns: A dataframe where each column represents one time series. """ - return _dataframe._build_dataframe( - self, label, labels) + return _dataframe._build_dataframe(self, label, labels) def __deepcopy__(self, memo): """Create a deepcopy of the query object. @@ -548,16 +557,14 @@ def select_resources(self, *args, **kwargs): See :meth:`Query.select_resources`. """ - self.resource_label_filter = _build_label_filter('resource', - *args, **kwargs) + self.resource_label_filter = _build_label_filter("resource", *args, **kwargs) def select_metrics(self, *args, **kwargs): """Select by metric labels. See :meth:`Query.select_metrics`. """ - self.metric_label_filter = _build_label_filter('metric', - *args, **kwargs) + self.metric_label_filter = _build_label_filter("metric", *args, **kwargs) def __str__(self): filters = ['metric.type = "{type}"'.format(type=self.metric_type)] @@ -565,8 +572,11 @@ def __str__(self): filters.append('group.id = "{id}"'.format(id=self.group_id)) if self.projects: filters.append( - ' OR '.join('project = "{project}"'.format(project=project) - for project in self.projects)) + " OR ".join( + 'project = "{project}"'.format(project=project) + for project in self.projects + ) + ) if self.resource_label_filter: filters.append(self.resource_label_filter) if self.metric_label_filter: @@ -574,7 +584,7 @@ def __str__(self): # Parentheses are never actually required, because OR binds more # tightly than AND in the Monitoring API's filter syntax. - return ' AND '.join(filters) + return " AND ".join(filters) def _build_label_filter(category, *args, **kwargs): @@ -585,30 +595,31 @@ def _build_label_filter(category, *args, **kwargs): continue suffix = None - if key.endswith(('_prefix', '_suffix', '_greater', '_greaterequal', - '_less', '_lessequal')): - key, suffix = key.rsplit('_', 1) + if key.endswith( + ("_prefix", "_suffix", "_greater", "_greaterequal", "_less", "_lessequal") + ): + key, suffix = key.rsplit("_", 1) - if category == 'resource' and key == 'resource_type': - key = 'resource.type' + if category == "resource" and key == "resource_type": + key = "resource.type" else: - key = '.'.join((category, 'label', key)) + key = ".".join((category, "label", key)) - if suffix == 'prefix': + if suffix == "prefix": term = '{key} = starts_with("{value}")' - elif suffix == 'suffix': + elif suffix == "suffix": term = '{key} = ends_with("{value}")' - elif suffix == 'greater': - term = '{key} > {value}' - elif suffix == 'greaterequal': - term = '{key} >= {value}' - elif suffix == 'less': - term = '{key} < {value}' - elif suffix == 'lessequal': - term = '{key} <= {value}' + elif suffix == "greater": + term = "{key} > {value}" + elif suffix == "greaterequal": + term = "{key} >= {value}" + elif suffix == "less": + term = "{key} < {value}" + elif suffix == "lessequal": + term = "{key} <= {value}" else: term = '{key} = "{value}"' terms.append(term.format(key=key, value=value)) - return ' AND '.join(sorted(terms)) + return " AND ".join(sorted(terms)) diff --git a/monitoring/google/cloud/monitoring_v3/types.py b/monitoring/google/cloud/monitoring_v3/types.py index eaaca682c625..912ca4ded399 100644 --- a/monitoring/google/cloud/monitoring_v3/types.py +++ b/monitoring/google/cloud/monitoring_v3/types.py @@ -90,7 +90,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.monitoring_v3.types' + message.__module__ = "google.cloud.monitoring_v3.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/monitoring/tests/system/gapic/v3/test_system_metric_service_v3.py b/monitoring/tests/system/gapic/v3/test_system_metric_service_v3.py index 818a23acae96..b8a574945aae 100644 --- a/monitoring/tests/system/gapic/v3/test_system_metric_service_v3.py +++ b/monitoring/tests/system/gapic/v3/test_system_metric_service_v3.py @@ -23,7 +23,7 @@ class TestSystemMetricService(object): def test_list_monitored_resource_descriptors(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = monitoring_v3.MetricServiceClient() name = client.project_path(project_id) diff --git a/monitoring/tests/unit/gapic/v3/test_alert_policy_service_client_v3.py b/monitoring/tests/unit/gapic/v3/test_alert_policy_service_client_v3.py index 4c2c7a0df9f3..07eccf5ebd39 100644 --- a/monitoring/tests/unit/gapic/v3/test_alert_policy_service_client_v3.py +++ b/monitoring/tests/unit/gapic/v3/test_alert_policy_service_client_v3.py @@ -52,10 +52,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,25 +63,26 @@ class CustomException(Exception): class TestAlertPolicyServiceClient(object): def test_list_alert_policies(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" alert_policies_element = {} alert_policies = [alert_policies_element] expected_response = { - 'next_page_token': next_page_token, - 'alert_policies': alert_policies + "next_page_token": next_page_token, + "alert_policies": alert_policies, } expected_response = alert_service_pb2.ListAlertPoliciesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_alert_policies(name) resources = list(paged_list_response) @@ -93,20 +91,19 @@ def test_list_alert_policies(self): assert expected_response.alert_policies[0] == resources[0] assert len(channel.requests) == 1 - expected_request = alert_service_pb2.ListAlertPoliciesRequest( - name=name) + expected_request = alert_service_pb2.ListAlertPoliciesRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_alert_policies_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_alert_policies(name) with pytest.raises(CustomException): @@ -114,20 +111,20 @@ def test_list_alert_policies_exception(self): def test_get_alert_policy(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - expected_response = {'name': name_2, 'display_name': display_name} + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + expected_response = {"name": name_2, "display_name": display_name} expected_response = alert_pb2.AlertPolicy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() # Setup Request - name = client.alert_policy_path('[PROJECT]', '[ALERT_POLICY]') + name = client.alert_policy_path("[PROJECT]", "[ALERT_POLICY]") response = client.get_alert_policy(name) assert expected_response == response @@ -140,33 +137,33 @@ def test_get_alert_policy(self): def test_get_alert_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() # Setup request - name = client.alert_policy_path('[PROJECT]', '[ALERT_POLICY]') + name = client.alert_policy_path("[PROJECT]", "[ALERT_POLICY]") with pytest.raises(CustomException): client.get_alert_policy(name) def test_create_alert_policy(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - expected_response = {'name': name_2, 'display_name': display_name} + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + expected_response = {"name": name_2, "display_name": display_name} expected_response = alert_pb2.AlertPolicy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") alert_policy = {} response = client.create_alert_policy(name, alert_policy) @@ -174,20 +171,21 @@ def test_create_alert_policy(self): assert len(channel.requests) == 1 expected_request = alert_service_pb2.CreateAlertPolicyRequest( - name=name, alert_policy=alert_policy) + name=name, alert_policy=alert_policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_alert_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") alert_policy = {} with pytest.raises(CustomException): @@ -195,46 +193,45 @@ def test_create_alert_policy_exception(self): def test_delete_alert_policy(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() # Setup Request - name = client.alert_policy_path('[PROJECT]', '[ALERT_POLICY]') + name = client.alert_policy_path("[PROJECT]", "[ALERT_POLICY]") client.delete_alert_policy(name) assert len(channel.requests) == 1 - expected_request = alert_service_pb2.DeleteAlertPolicyRequest( - name=name) + expected_request = alert_service_pb2.DeleteAlertPolicyRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_alert_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() # Setup request - name = client.alert_policy_path('[PROJECT]', '[ALERT_POLICY]') + name = client.alert_policy_path("[PROJECT]", "[ALERT_POLICY]") with pytest.raises(CustomException): client.delete_alert_policy(name) def test_update_alert_policy(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - expected_response = {'name': name, 'display_name': display_name} + name = "name3373707" + display_name = "displayName1615086568" + expected_response = {"name": name, "display_name": display_name} expected_response = alert_pb2.AlertPolicy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() @@ -247,14 +244,15 @@ def test_update_alert_policy(self): assert len(channel.requests) == 1 expected_request = alert_service_pb2.UpdateAlertPolicyRequest( - alert_policy=alert_policy) + alert_policy=alert_policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_alert_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.AlertPolicyServiceClient() diff --git a/monitoring/tests/unit/gapic/v3/test_group_service_client_v3.py b/monitoring/tests/unit/gapic/v3/test_group_service_client_v3.py index 09b4487717c1..845c52d75919 100644 --- a/monitoring/tests/unit/gapic/v3/test_group_service_client_v3.py +++ b/monitoring/tests/unit/gapic/v3/test_group_service_client_v3.py @@ -53,10 +53,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -67,25 +64,21 @@ class CustomException(Exception): class TestGroupServiceClient(object): def test_list_groups(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" group_element = {} group = [group_element] - expected_response = { - 'next_page_token': next_page_token, - 'group': group - } - expected_response = group_service_pb2.ListGroupsResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "group": group} + expected_response = group_service_pb2.ListGroupsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_groups(name) resources = list(paged_list_response) @@ -100,13 +93,13 @@ def test_list_groups(self): def test_list_groups_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_groups(name) with pytest.raises(CustomException): @@ -114,29 +107,29 @@ def test_list_groups_exception(self): def test_get_group(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - parent_name = 'parentName1015022848' - filter_ = 'filter-1274492040' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + parent_name = "parentName1015022848" + filter_ = "filter-1274492040" is_cluster = False expected_response = { - 'name': name_2, - 'display_name': display_name, - 'parent_name': parent_name, - 'filter': filter_, - 'is_cluster': is_cluster + "name": name_2, + "display_name": display_name, + "parent_name": parent_name, + "filter": filter_, + "is_cluster": is_cluster, } expected_response = group_pb2.Group(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup Request - name = client.group_path('[PROJECT]', '[GROUP]') + name = client.group_path("[PROJECT]", "[GROUP]") response = client.get_group(name) assert expected_response == response @@ -149,63 +142,62 @@ def test_get_group(self): def test_get_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup request - name = client.group_path('[PROJECT]', '[GROUP]') + name = client.group_path("[PROJECT]", "[GROUP]") with pytest.raises(CustomException): client.get_group(name) def test_create_group(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - parent_name = 'parentName1015022848' - filter_ = 'filter-1274492040' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + parent_name = "parentName1015022848" + filter_ = "filter-1274492040" is_cluster = False expected_response = { - 'name': name_2, - 'display_name': display_name, - 'parent_name': parent_name, - 'filter': filter_, - 'is_cluster': is_cluster + "name": name_2, + "display_name": display_name, + "parent_name": parent_name, + "filter": filter_, + "is_cluster": is_cluster, } expected_response = group_pb2.Group(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") group = {} response = client.create_group(name, group) assert expected_response == response assert len(channel.requests) == 1 - expected_request = group_service_pb2.CreateGroupRequest( - name=name, group=group) + expected_request = group_service_pb2.CreateGroupRequest(name=name, group=group) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") group = {} with pytest.raises(CustomException): @@ -213,23 +205,23 @@ def test_create_group_exception(self): def test_update_group(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - parent_name = 'parentName1015022848' - filter_ = 'filter-1274492040' + name = "name3373707" + display_name = "displayName1615086568" + parent_name = "parentName1015022848" + filter_ = "filter-1274492040" is_cluster = False expected_response = { - 'name': name, - 'display_name': display_name, - 'parent_name': parent_name, - 'filter': filter_, - 'is_cluster': is_cluster + "name": name, + "display_name": display_name, + "parent_name": parent_name, + "filter": filter_, + "is_cluster": is_cluster, } expected_response = group_pb2.Group(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() @@ -248,7 +240,7 @@ def test_update_group(self): def test_update_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() @@ -261,13 +253,13 @@ def test_update_group_exception(self): def test_delete_group(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup Request - name = client.group_path('[PROJECT]', '[GROUP]') + name = client.group_path("[PROJECT]", "[GROUP]") client.delete_group(name) @@ -279,40 +271,41 @@ def test_delete_group(self): def test_delete_group_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup request - name = client.group_path('[PROJECT]', '[GROUP]') + name = client.group_path("[PROJECT]", "[GROUP]") with pytest.raises(CustomException): client.delete_group(name) def test_list_group_members(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" total_size = 705419236 members_element = {} members = [members_element] expected_response = { - 'next_page_token': next_page_token, - 'total_size': total_size, - 'members': members + "next_page_token": next_page_token, + "total_size": total_size, + "members": members, } expected_response = group_service_pb2.ListGroupMembersResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup Request - name = client.group_path('[PROJECT]', '[GROUP]') + name = client.group_path("[PROJECT]", "[GROUP]") paged_list_response = client.list_group_members(name) resources = list(paged_list_response) @@ -327,13 +320,13 @@ def test_list_group_members(self): def test_list_group_members_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.GroupServiceClient() # Setup request - name = client.group_path('[PROJECT]', '[GROUP]') + name = client.group_path("[PROJECT]", "[GROUP]") paged_list_response = client.list_group_members(name) with pytest.raises(CustomException): diff --git a/monitoring/tests/unit/gapic/v3/test_metric_service_client_v3.py b/monitoring/tests/unit/gapic/v3/test_metric_service_client_v3.py index 81237fffd741..f77d947b2d3a 100644 --- a/monitoring/tests/unit/gapic/v3/test_metric_service_client_v3.py +++ b/monitoring/tests/unit/gapic/v3/test_metric_service_client_v3.py @@ -56,10 +56,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,25 +67,26 @@ class CustomException(Exception): class TestMetricServiceClient(object): def test_list_monitored_resource_descriptors(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" resource_descriptors_element = {} resource_descriptors = [resource_descriptors_element] expected_response = { - 'next_page_token': next_page_token, - 'resource_descriptors': resource_descriptors + "next_page_token": next_page_token, + "resource_descriptors": resource_descriptors, } expected_response = metric_service_pb2.ListMonitoredResourceDescriptorsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_monitored_resource_descriptors(name) resources = list(paged_list_response) @@ -98,19 +96,20 @@ def test_list_monitored_resource_descriptors(self): assert len(channel.requests) == 1 expected_request = metric_service_pb2.ListMonitoredResourceDescriptorsRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_monitored_resource_descriptors_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_monitored_resource_descriptors(name) with pytest.raises(CustomException): @@ -118,75 +117,80 @@ def test_list_monitored_resource_descriptors_exception(self): def test_get_monitored_resource_descriptor(self): # Setup Expected Response - name_2 = 'name2-1052831874' - type_ = 'type3575610' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name_2 = "name2-1052831874" + type_ = "type3575610" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name_2, - 'type': type_, - 'display_name': display_name, - 'description': description + "name": name_2, + "type": type_, + "display_name": display_name, + "description": description, } expected_response = monitored_resource_pb2.MonitoredResourceDescriptor( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup Request name = client.monitored_resource_descriptor_path( - '[PROJECT]', '[MONITORED_RESOURCE_DESCRIPTOR]') + "[PROJECT]", "[MONITORED_RESOURCE_DESCRIPTOR]" + ) response = client.get_monitored_resource_descriptor(name) assert expected_response == response assert len(channel.requests) == 1 expected_request = metric_service_pb2.GetMonitoredResourceDescriptorRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_monitored_resource_descriptor_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup request name = client.monitored_resource_descriptor_path( - '[PROJECT]', '[MONITORED_RESOURCE_DESCRIPTOR]') + "[PROJECT]", "[MONITORED_RESOURCE_DESCRIPTOR]" + ) with pytest.raises(CustomException): client.get_monitored_resource_descriptor(name) def test_list_metric_descriptors(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" metric_descriptors_element = {} metric_descriptors = [metric_descriptors_element] expected_response = { - 'next_page_token': next_page_token, - 'metric_descriptors': metric_descriptors + "next_page_token": next_page_token, + "metric_descriptors": metric_descriptors, } expected_response = metric_service_pb2.ListMetricDescriptorsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_metric_descriptors(name) resources = list(paged_list_response) @@ -195,20 +199,19 @@ def test_list_metric_descriptors(self): assert expected_response.metric_descriptors[0] == resources[0] assert len(channel.requests) == 1 - expected_request = metric_service_pb2.ListMetricDescriptorsRequest( - name=name) + expected_request = metric_service_pb2.ListMetricDescriptorsRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_metric_descriptors_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_metric_descriptors(name) with pytest.raises(CustomException): @@ -216,82 +219,77 @@ def test_list_metric_descriptors_exception(self): def test_get_metric_descriptor(self): # Setup Expected Response - name_2 = 'name2-1052831874' - type_ = 'type3575610' - unit = 'unit3594628' - description = 'description-1724546052' - display_name = 'displayName1615086568' + name_2 = "name2-1052831874" + type_ = "type3575610" + unit = "unit3594628" + description = "description-1724546052" + display_name = "displayName1615086568" expected_response = { - 'name': name_2, - 'type': type_, - 'unit': unit, - 'description': description, - 'display_name': display_name + "name": name_2, + "type": type_, + "unit": unit, + "description": description, + "display_name": display_name, } - expected_response = api_metric_pb2.MetricDescriptor( - **expected_response) + expected_response = api_metric_pb2.MetricDescriptor(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup Request - name = client.metric_descriptor_path('[PROJECT]', - '[METRIC_DESCRIPTOR]') + name = client.metric_descriptor_path("[PROJECT]", "[METRIC_DESCRIPTOR]") response = client.get_metric_descriptor(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = metric_service_pb2.GetMetricDescriptorRequest( - name=name) + expected_request = metric_service_pb2.GetMetricDescriptorRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_metric_descriptor_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup request - name = client.metric_descriptor_path('[PROJECT]', - '[METRIC_DESCRIPTOR]') + name = client.metric_descriptor_path("[PROJECT]", "[METRIC_DESCRIPTOR]") with pytest.raises(CustomException): client.get_metric_descriptor(name) def test_create_metric_descriptor(self): # Setup Expected Response - name_2 = 'name2-1052831874' - type_ = 'type3575610' - unit = 'unit3594628' - description = 'description-1724546052' - display_name = 'displayName1615086568' + name_2 = "name2-1052831874" + type_ = "type3575610" + unit = "unit3594628" + description = "description-1724546052" + display_name = "displayName1615086568" expected_response = { - 'name': name_2, - 'type': type_, - 'unit': unit, - 'description': description, - 'display_name': display_name + "name": name_2, + "type": type_, + "unit": unit, + "description": description, + "display_name": display_name, } - expected_response = api_metric_pb2.MetricDescriptor( - **expected_response) + expected_response = api_metric_pb2.MetricDescriptor(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") metric_descriptor = {} response = client.create_metric_descriptor(name, metric_descriptor) @@ -299,20 +297,21 @@ def test_create_metric_descriptor(self): assert len(channel.requests) == 1 expected_request = metric_service_pb2.CreateMetricDescriptorRequest( - name=name, metric_descriptor=metric_descriptor) + name=name, metric_descriptor=metric_descriptor + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_metric_descriptor_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") metric_descriptor = {} with pytest.raises(CustomException): @@ -320,65 +319,62 @@ def test_create_metric_descriptor_exception(self): def test_delete_metric_descriptor(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup Request - name = client.metric_descriptor_path('[PROJECT]', - '[METRIC_DESCRIPTOR]') + name = client.metric_descriptor_path("[PROJECT]", "[METRIC_DESCRIPTOR]") client.delete_metric_descriptor(name) assert len(channel.requests) == 1 - expected_request = metric_service_pb2.DeleteMetricDescriptorRequest( - name=name) + expected_request = metric_service_pb2.DeleteMetricDescriptorRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_metric_descriptor_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup request - name = client.metric_descriptor_path('[PROJECT]', - '[METRIC_DESCRIPTOR]') + name = client.metric_descriptor_path("[PROJECT]", "[METRIC_DESCRIPTOR]") with pytest.raises(CustomException): client.delete_metric_descriptor(name) def test_list_time_series(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" time_series_element = {} time_series = [time_series_element] expected_response = { - 'next_page_token': next_page_token, - 'time_series': time_series + "next_page_token": next_page_token, + "time_series": time_series, } expected_response = metric_service_pb2.ListTimeSeriesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup Request - name = client.project_path('[PROJECT]') - filter_ = 'filter-1274492040' + name = client.project_path("[PROJECT]") + filter_ = "filter-1274492040" interval = {} view = enums.ListTimeSeriesRequest.TimeSeriesView.FULL - paged_list_response = client.list_time_series(name, filter_, interval, - view) + paged_list_response = client.list_time_series(name, filter_, interval, view) resources = list(paged_list_response) assert len(resources) == 1 @@ -386,57 +382,58 @@ def test_list_time_series(self): assert len(channel.requests) == 1 expected_request = metric_service_pb2.ListTimeSeriesRequest( - name=name, filter=filter_, interval=interval, view=view) + name=name, filter=filter_, interval=interval, view=view + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_time_series_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup request - name = client.project_path('[PROJECT]') - filter_ = 'filter-1274492040' + name = client.project_path("[PROJECT]") + filter_ = "filter-1274492040" interval = {} view = enums.ListTimeSeriesRequest.TimeSeriesView.FULL - paged_list_response = client.list_time_series(name, filter_, interval, - view) + paged_list_response = client.list_time_series(name, filter_, interval, view) with pytest.raises(CustomException): list(paged_list_response) def test_create_time_series(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") time_series = [] client.create_time_series(name, time_series) assert len(channel.requests) == 1 expected_request = metric_service_pb2.CreateTimeSeriesRequest( - name=name, time_series=time_series) + name=name, time_series=time_series + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_time_series_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.MetricServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") time_series = [] with pytest.raises(CustomException): diff --git a/monitoring/tests/unit/gapic/v3/test_notification_channel_service_client_v3.py b/monitoring/tests/unit/gapic/v3/test_notification_channel_service_client_v3.py index 047f696e101c..b39c7850aad8 100644 --- a/monitoring/tests/unit/gapic/v3/test_notification_channel_service_client_v3.py +++ b/monitoring/tests/unit/gapic/v3/test_notification_channel_service_client_v3.py @@ -52,10 +52,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,28 +63,28 @@ class CustomException(Exception): class TestNotificationChannelServiceClient(object): def test_list_notification_channel_descriptors(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" channel_descriptors_element = {} channel_descriptors = [channel_descriptors_element] expected_response = { - 'next_page_token': next_page_token, - 'channel_descriptors': channel_descriptors + "next_page_token": next_page_token, + "channel_descriptors": channel_descriptors, } expected_response = notification_service_pb2.ListNotificationChannelDescriptorsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") - paged_list_response = client.list_notification_channel_descriptors( - name) + paged_list_response = client.list_notification_channel_descriptors(name) resources = list(paged_list_response) assert len(resources) == 1 @@ -95,96 +92,101 @@ def test_list_notification_channel_descriptors(self): assert len(channel.requests) == 1 expected_request = notification_service_pb2.ListNotificationChannelDescriptorsRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_notification_channel_descriptors_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") - paged_list_response = client.list_notification_channel_descriptors( - name) + paged_list_response = client.list_notification_channel_descriptors(name) with pytest.raises(CustomException): list(paged_list_response) def test_get_notification_channel_descriptor(self): # Setup Expected Response - name_2 = 'name2-1052831874' - type_ = 'type3575610' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name_2 = "name2-1052831874" + type_ = "type3575610" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name_2, - 'type': type_, - 'display_name': display_name, - 'description': description + "name": name_2, + "type": type_, + "display_name": display_name, + "description": description, } expected_response = notification_pb2.NotificationChannelDescriptor( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup Request name = client.notification_channel_descriptor_path( - '[PROJECT]', '[CHANNEL_DESCRIPTOR]') + "[PROJECT]", "[CHANNEL_DESCRIPTOR]" + ) response = client.get_notification_channel_descriptor(name) assert expected_response == response assert len(channel.requests) == 1 expected_request = notification_service_pb2.GetNotificationChannelDescriptorRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_notification_channel_descriptor_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup request name = client.notification_channel_descriptor_path( - '[PROJECT]', '[CHANNEL_DESCRIPTOR]') + "[PROJECT]", "[CHANNEL_DESCRIPTOR]" + ) with pytest.raises(CustomException): client.get_notification_channel_descriptor(name) def test_list_notification_channels(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" notification_channels_element = {} notification_channels = [notification_channels_element] expected_response = { - 'next_page_token': next_page_token, - 'notification_channels': notification_channels + "next_page_token": next_page_token, + "notification_channels": notification_channels, } expected_response = notification_service_pb2.ListNotificationChannelsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_notification_channels(name) resources = list(paged_list_response) @@ -194,19 +196,20 @@ def test_list_notification_channels(self): assert len(channel.requests) == 1 expected_request = notification_service_pb2.ListNotificationChannelsRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_notification_channels_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") paged_list_response = client.list_notification_channels(name) with pytest.raises(CustomException): @@ -214,100 +217,97 @@ def test_list_notification_channels_exception(self): def test_get_notification_channel(self): # Setup Expected Response - type_ = 'type3575610' - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' + type_ = "type3575610" + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'type': type_, - 'name': name_2, - 'display_name': display_name, - 'description': description + "type": type_, + "name": name_2, + "display_name": display_name, + "description": description, } - expected_response = notification_pb2.NotificationChannel( - **expected_response) + expected_response = notification_pb2.NotificationChannel(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup Request - name = client.notification_channel_path('[PROJECT]', - '[NOTIFICATION_CHANNEL]') + name = client.notification_channel_path("[PROJECT]", "[NOTIFICATION_CHANNEL]") response = client.get_notification_channel(name) assert expected_response == response assert len(channel.requests) == 1 expected_request = notification_service_pb2.GetNotificationChannelRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_notification_channel_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup request - name = client.notification_channel_path('[PROJECT]', - '[NOTIFICATION_CHANNEL]') + name = client.notification_channel_path("[PROJECT]", "[NOTIFICATION_CHANNEL]") with pytest.raises(CustomException): client.get_notification_channel(name) def test_create_notification_channel(self): # Setup Expected Response - type_ = 'type3575610' - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' + type_ = "type3575610" + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'type': type_, - 'name': name_2, - 'display_name': display_name, - 'description': description + "type": type_, + "name": name_2, + "display_name": display_name, + "description": description, } - expected_response = notification_pb2.NotificationChannel( - **expected_response) + expected_response = notification_pb2.NotificationChannel(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") notification_channel = {} - response = client.create_notification_channel(name, - notification_channel) + response = client.create_notification_channel(name, notification_channel) assert expected_response == response assert len(channel.requests) == 1 expected_request = notification_service_pb2.CreateNotificationChannelRequest( - name=name, notification_channel=notification_channel) + name=name, notification_channel=notification_channel + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_notification_channel_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") notification_channel = {} with pytest.raises(CustomException): @@ -315,22 +315,21 @@ def test_create_notification_channel_exception(self): def test_update_notification_channel(self): # Setup Expected Response - type_ = 'type3575610' - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' + type_ = "type3575610" + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'type': type_, - 'name': name, - 'display_name': display_name, - 'description': description + "type": type_, + "name": name, + "display_name": display_name, + "description": description, } - expected_response = notification_pb2.NotificationChannel( - **expected_response) + expected_response = notification_pb2.NotificationChannel(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() @@ -343,14 +342,15 @@ def test_update_notification_channel(self): assert len(channel.requests) == 1 expected_request = notification_service_pb2.UpdateNotificationChannelRequest( - notification_channel=notification_channel) + notification_channel=notification_channel + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_notification_channel_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() @@ -363,34 +363,33 @@ def test_update_notification_channel_exception(self): def test_delete_notification_channel(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup Request - name = client.notification_channel_path('[PROJECT]', - '[NOTIFICATION_CHANNEL]') + name = client.notification_channel_path("[PROJECT]", "[NOTIFICATION_CHANNEL]") client.delete_notification_channel(name) assert len(channel.requests) == 1 expected_request = notification_service_pb2.DeleteNotificationChannelRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_notification_channel_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.NotificationChannelServiceClient() # Setup request - name = client.notification_channel_path('[PROJECT]', - '[NOTIFICATION_CHANNEL]') + name = client.notification_channel_path("[PROJECT]", "[NOTIFICATION_CHANNEL]") with pytest.raises(CustomException): client.delete_notification_channel(name) diff --git a/monitoring/tests/unit/gapic/v3/test_uptime_check_service_client_v3.py b/monitoring/tests/unit/gapic/v3/test_uptime_check_service_client_v3.py index 95b87105ee7a..bd320c1b3216 100644 --- a/monitoring/tests/unit/gapic/v3/test_uptime_check_service_client_v3.py +++ b/monitoring/tests/unit/gapic/v3/test_uptime_check_service_client_v3.py @@ -52,10 +52,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,27 +63,28 @@ class CustomException(Exception): class TestUptimeCheckServiceClient(object): def test_list_uptime_check_configs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" total_size = 705419236 uptime_check_configs_element = {} uptime_check_configs = [uptime_check_configs_element] expected_response = { - 'next_page_token': next_page_token, - 'total_size': total_size, - 'uptime_check_configs': uptime_check_configs + "next_page_token": next_page_token, + "total_size": total_size, + "uptime_check_configs": uptime_check_configs, } expected_response = uptime_service_pb2.ListUptimeCheckConfigsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_uptime_check_configs(parent) resources = list(paged_list_response) @@ -96,19 +94,20 @@ def test_list_uptime_check_configs(self): assert len(channel.requests) == 1 expected_request = uptime_service_pb2.ListUptimeCheckConfigsRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_uptime_check_configs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_uptime_check_configs(parent) with pytest.raises(CustomException): @@ -116,94 +115,91 @@ def test_list_uptime_check_configs_exception(self): def test_get_uptime_check_config(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" is_internal = True expected_response = { - 'name': name_2, - 'display_name': display_name, - 'is_internal': is_internal + "name": name_2, + "display_name": display_name, + "is_internal": is_internal, } expected_response = uptime_pb2.UptimeCheckConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() # Setup Request - name = client.uptime_check_config_path('[PROJECT]', - '[UPTIME_CHECK_CONFIG]') + name = client.uptime_check_config_path("[PROJECT]", "[UPTIME_CHECK_CONFIG]") response = client.get_uptime_check_config(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = uptime_service_pb2.GetUptimeCheckConfigRequest( - name=name) + expected_request = uptime_service_pb2.GetUptimeCheckConfigRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_uptime_check_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() # Setup request - name = client.uptime_check_config_path('[PROJECT]', - '[UPTIME_CHECK_CONFIG]') + name = client.uptime_check_config_path("[PROJECT]", "[UPTIME_CHECK_CONFIG]") with pytest.raises(CustomException): client.get_uptime_check_config(name) def test_create_uptime_check_config(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' + name = "name3373707" + display_name = "displayName1615086568" is_internal = True expected_response = { - 'name': name, - 'display_name': display_name, - 'is_internal': is_internal + "name": name, + "display_name": display_name, + "is_internal": is_internal, } expected_response = uptime_pb2.UptimeCheckConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") uptime_check_config = {} - response = client.create_uptime_check_config(parent, - uptime_check_config) + response = client.create_uptime_check_config(parent, uptime_check_config) assert expected_response == response assert len(channel.requests) == 1 expected_request = uptime_service_pb2.CreateUptimeCheckConfigRequest( - parent=parent, uptime_check_config=uptime_check_config) + parent=parent, uptime_check_config=uptime_check_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_uptime_check_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") uptime_check_config = {} with pytest.raises(CustomException): @@ -211,19 +207,19 @@ def test_create_uptime_check_config_exception(self): def test_update_uptime_check_config(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' + name = "name3373707" + display_name = "displayName1615086568" is_internal = True expected_response = { - 'name': name, - 'display_name': display_name, - 'is_internal': is_internal + "name": name, + "display_name": display_name, + "is_internal": is_internal, } expected_response = uptime_pb2.UptimeCheckConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() @@ -236,14 +232,15 @@ def test_update_uptime_check_config(self): assert len(channel.requests) == 1 expected_request = uptime_service_pb2.UpdateUptimeCheckConfigRequest( - uptime_check_config=uptime_check_config) + uptime_check_config=uptime_check_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_uptime_check_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() @@ -256,53 +253,51 @@ def test_update_uptime_check_config_exception(self): def test_delete_uptime_check_config(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() # Setup Request - name = client.uptime_check_config_path('[PROJECT]', - '[UPTIME_CHECK_CONFIG]') + name = client.uptime_check_config_path("[PROJECT]", "[UPTIME_CHECK_CONFIG]") client.delete_uptime_check_config(name) assert len(channel.requests) == 1 - expected_request = uptime_service_pb2.DeleteUptimeCheckConfigRequest( - name=name) + expected_request = uptime_service_pb2.DeleteUptimeCheckConfigRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_uptime_check_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() # Setup request - name = client.uptime_check_config_path('[PROJECT]', - '[UPTIME_CHECK_CONFIG]') + name = client.uptime_check_config_path("[PROJECT]", "[UPTIME_CHECK_CONFIG]") with pytest.raises(CustomException): client.delete_uptime_check_config(name) def test_list_uptime_check_ips(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" uptime_check_ips_element = {} uptime_check_ips = [uptime_check_ips_element] expected_response = { - 'next_page_token': next_page_token, - 'uptime_check_ips': uptime_check_ips + "next_page_token": next_page_token, + "uptime_check_ips": uptime_check_ips, } expected_response = uptime_service_pb2.ListUptimeCheckIpsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() @@ -320,7 +315,7 @@ def test_list_uptime_check_ips(self): def test_list_uptime_check_ips_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = monitoring_v3.UptimeCheckServiceClient() diff --git a/monitoring/tests/unit/test__dataframe.py b/monitoring/tests/unit/test__dataframe.py index 82ea346c62fc..5626dcaaffa1 100644 --- a/monitoring/tests/unit/test__dataframe.py +++ b/monitoring/tests/unit/test__dataframe.py @@ -22,29 +22,28 @@ import unittest -PROJECT = 'my-project' +PROJECT = "my-project" -INSTANCE_NAMES = ['instance-1', 'instance-2'] -INSTANCE_ZONES = ['us-east1-a', 'us-east1-b'] -INSTANCE_IDS = ['1234567890123456789', '9876543210987654321'] +INSTANCE_NAMES = ["instance-1", "instance-2"] +INSTANCE_ZONES = ["us-east1-a", "us-east1-b"] +INSTANCE_IDS = ["1234567890123456789", "9876543210987654321"] -METRIC_TYPE = 'compute.googleapis.com/instance/cpu/utilization' -METRIC_LABELS = list({'instance_name': name} for name in INSTANCE_NAMES) +METRIC_TYPE = "compute.googleapis.com/instance/cpu/utilization" +METRIC_LABELS = list({"instance_name": name} for name in INSTANCE_NAMES) -RESOURCE_TYPE = 'gce_instance' -RESOURCE_LABELS = list({ - 'project_id': PROJECT, - 'zone': zone, - 'instance_id': instance_id, -} for zone, instance_id in zip(INSTANCE_ZONES, INSTANCE_IDS)) +RESOURCE_TYPE = "gce_instance" +RESOURCE_LABELS = list( + {"project_id": PROJECT, "zone": zone, "instance_id": instance_id} + for zone, instance_id in zip(INSTANCE_ZONES, INSTANCE_IDS) +) -METRIC_KIND = 'GAUGE' -VALUE_TYPE = 'DOUBLE' +METRIC_KIND = "GAUGE" +VALUE_TYPE = "DOUBLE" TIMESTAMPS = [ - '2016-04-06T22:05:00.042Z', - '2016-04-06T22:05:01.042Z', - '2016-04-06T22:05:02.042Z', + "2016-04-06T22:05:00.042Z", + "2016-04-06T22:05:01.042Z", + "2016-04-06T22:05:02.042Z", ] DIMENSIONS = len(TIMESTAMPS), len(INSTANCE_NAMES) @@ -55,9 +54,7 @@ def parse_timestamps(): from google.api_core import datetime_helpers - return [ - datetime_helpers.from_rfc3339(t).replace(tzinfo=None) - for t in TIMESTAMPS] + return [datetime_helpers.from_rfc3339(t).replace(tzinfo=None) for t in TIMESTAMPS] def generate_query_results(): @@ -67,23 +64,24 @@ def P(timestamp, value): interval = types.TimeInterval() interval.start_time.FromJsonString(timestamp) interval.end_time.FromJsonString(timestamp) - return types.Point(interval=interval, value={'double_value': value}) + return types.Point(interval=interval, value={"double_value": value}) for metric_labels, resource_labels, value in zip( - METRIC_LABELS, RESOURCE_LABELS, VALUES): + METRIC_LABELS, RESOURCE_LABELS, VALUES + ): yield types.TimeSeries( metric=types.Metric(type=METRIC_TYPE, labels=metric_labels), resource=types.MonitoredResource( - type=RESOURCE_TYPE, labels=resource_labels), + type=RESOURCE_TYPE, labels=resource_labels + ), metric_kind=METRIC_KIND, value_type=VALUE_TYPE, points=[P(t, value) for t in TIMESTAMPS], ) -@unittest.skipUnless(HAVE_PANDAS, 'No pandas') +@unittest.skipUnless(HAVE_PANDAS, "No pandas") class Test__build_dataframe(unittest.TestCase): - def _call_fut(self, *args, **kwargs): from google.cloud.monitoring_v3._dataframe import _build_dataframe @@ -91,7 +89,7 @@ def _call_fut(self, *args, **kwargs): def test_both_label_and_labels_illegal(self): with self.assertRaises(ValueError): - self._call_fut([], label='instance_name', labels=['zone']) + self._call_fut([], label="instance_name", labels=["zone"]) def test_empty_labels_illegal(self): with self.assertRaises(ValueError): @@ -99,13 +97,12 @@ def test_empty_labels_illegal(self): def test_simple_label(self): iterable = generate_query_results() - dataframe = self._call_fut(iterable, label='instance_name') + dataframe = self._call_fut(iterable, label="instance_name") self.assertEqual(dataframe.shape, DIMENSIONS) self.assertEqual(dataframe.values.tolist(), ARRAY) - expected_headers = [(instance_name,) - for instance_name in INSTANCE_NAMES] + expected_headers = [(instance_name,) for instance_name in INSTANCE_NAMES] self.assertEqual(list(dataframe.columns), expected_headers) self.assertIsNone(dataframe.columns.name) @@ -113,7 +110,7 @@ def test_simple_label(self): self.assertIsNone(dataframe.index.name) def test_multiple_labels(self): - NAMES = ['resource_type', 'instance_id'] + NAMES = ["resource_type", "instance_id"] iterable = generate_query_results() dataframe = self._call_fut(iterable, labels=NAMES) @@ -121,8 +118,9 @@ def test_multiple_labels(self): self.assertEqual(dataframe.shape, DIMENSIONS) self.assertEqual(dataframe.values.tolist(), ARRAY) - expected_headers = [(RESOURCE_TYPE, instance_id) - for instance_id in INSTANCE_IDS] + expected_headers = [ + (RESOURCE_TYPE, instance_id) for instance_id in INSTANCE_IDS + ] self.assertEqual(list(dataframe.columns), expected_headers) self.assertEqual(dataframe.columns.names, NAMES) self.assertIsNone(dataframe.columns.name) @@ -131,7 +129,7 @@ def test_multiple_labels(self): self.assertIsNone(dataframe.index.name) def test_multiple_labels_with_just_one(self): - NAME = 'instance_id' + NAME = "instance_id" NAMES = [NAME] iterable = generate_query_results() @@ -149,9 +147,7 @@ def test_multiple_labels_with_just_one(self): self.assertIsNone(dataframe.index.name) def test_smart_labels(self): - NAMES = ['resource_type', 'project_id', - 'zone', 'instance_id', - 'instance_name'] + NAMES = ["resource_type", "project_id", "zone", "instance_id", "instance_name"] iterable = generate_query_results() dataframe = self._call_fut(iterable) @@ -161,8 +157,10 @@ def test_smart_labels(self): expected_headers = [ (RESOURCE_TYPE, PROJECT, zone, instance_id, instance_name) - for zone, instance_id, instance_name - in zip(INSTANCE_ZONES, INSTANCE_IDS, INSTANCE_NAMES)] + for zone, instance_id, instance_name in zip( + INSTANCE_ZONES, INSTANCE_IDS, INSTANCE_NAMES + ) + ] self.assertEqual(list(dataframe.columns), expected_headers) self.assertEqual(dataframe.columns.names, NAMES) self.assertIsNone(dataframe.columns.name) @@ -171,14 +169,14 @@ def test_smart_labels(self): self.assertIsNone(dataframe.index.name) def test_empty_table_simple_label(self): - dataframe = self._call_fut([], label='instance_name') + dataframe = self._call_fut([], label="instance_name") self.assertEqual(dataframe.shape, (0, 0)) self.assertIsNone(dataframe.columns.name) self.assertIsNone(dataframe.index.name) self.assertIsInstance(dataframe.index, pandas.DatetimeIndex) def test_empty_table_multiple_labels(self): - NAMES = ['resource_type', 'instance_id'] + NAMES = ["resource_type", "instance_id"] dataframe = self._call_fut([], labels=NAMES) self.assertEqual(dataframe.shape, (0, 0)) self.assertEqual(dataframe.columns.names, NAMES) @@ -187,7 +185,7 @@ def test_empty_table_multiple_labels(self): self.assertIsInstance(dataframe.index, pandas.DatetimeIndex) def test_empty_table_multiple_labels_with_just_one(self): - NAME = 'instance_id' + NAME = "instance_id" NAMES = [NAME] dataframe = self._call_fut([], labels=NAMES) self.assertEqual(dataframe.shape, (0, 0)) @@ -197,7 +195,7 @@ def test_empty_table_multiple_labels_with_just_one(self): self.assertIsInstance(dataframe.index, pandas.DatetimeIndex) def test_empty_table_smart_labels(self): - NAME = 'resource_type' + NAME = "resource_type" NAMES = [NAME] dataframe = self._call_fut([]) self.assertEqual(dataframe.shape, (0, 0)) @@ -208,10 +206,8 @@ def test_empty_table_smart_labels(self): class Test__sorted_resource_labels(unittest.TestCase): - def _call_fut(self, labels): - from google.cloud.monitoring_v3._dataframe import ( - _sorted_resource_labels) + from google.cloud.monitoring_v3._dataframe import _sorted_resource_labels return _sorted_resource_labels(labels) @@ -221,12 +217,12 @@ def test_empty(self): def test_sorted(self): from google.cloud.monitoring_v3._dataframe import TOP_RESOURCE_LABELS - EXPECTED = TOP_RESOURCE_LABELS + ('other-1', 'other-2') + EXPECTED = TOP_RESOURCE_LABELS + ("other-1", "other-2") self.assertSequenceEqual(self._call_fut(EXPECTED), EXPECTED) def test_reversed(self): from google.cloud.monitoring_v3._dataframe import TOP_RESOURCE_LABELS - EXPECTED = TOP_RESOURCE_LABELS + ('other-1', 'other-2') + EXPECTED = TOP_RESOURCE_LABELS + ("other-1", "other-2") INPUT = list(reversed(EXPECTED)) self.assertSequenceEqual(self._call_fut(INPUT), EXPECTED) diff --git a/monitoring/tests/unit/test_query.py b/monitoring/tests/unit/test_query.py index 2b253976039f..20010ff60b37 100644 --- a/monitoring/tests/unit/test_query.py +++ b/monitoring/tests/unit/test_query.py @@ -18,26 +18,26 @@ import unittest import mock -PROJECT = 'my-project' +PROJECT = "my-project" -METRIC_TYPE = 'compute.googleapis.com/instance/uptime' -METRIC_LABELS = {'instance_name': 'instance-1'} -METRIC_LABELS2 = {'instance_name': 'instance-2'} +METRIC_TYPE = "compute.googleapis.com/instance/uptime" +METRIC_LABELS = {"instance_name": "instance-1"} +METRIC_LABELS2 = {"instance_name": "instance-2"} -RESOURCE_TYPE = 'gce_instance' +RESOURCE_TYPE = "gce_instance" RESOURCE_LABELS = { - 'project_id': 'my-project', - 'zone': 'us-east1-a', - 'instance_id': '1234567890123456789', + "project_id": "my-project", + "zone": "us-east1-a", + "instance_id": "1234567890123456789", } RESOURCE_LABELS2 = { - 'project_id': 'my-project', - 'zone': 'us-east1-b', - 'instance_id': '9876543210987654321', + "project_id": "my-project", + "zone": "us-east1-b", + "instance_id": "9876543210987654321", } -METRIC_KIND = 'DELTA' -VALUE_TYPE = 'DOUBLE' +METRIC_KIND = "DELTA" +VALUE_TYPE = "DOUBLE" TS0 = datetime.datetime(2016, 4, 6, 22, 5, 0, 42) TS1 = datetime.datetime(2016, 4, 6, 22, 5, 1, 42) @@ -78,15 +78,11 @@ def __init__(self, responses=[]): ] self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) class TestQuery(unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.monitoring_v3.query import Query @@ -116,8 +112,9 @@ def test_constructor_minimal(self): query = self._make_one(client, PROJECT) self.assertEqual(query._client, client) - self.assertEqual(query._filter.metric_type, - self._get_target_class().DEFAULT_METRIC_TYPE) + self.assertEqual( + query._filter.metric_type, self._get_target_class().DEFAULT_METRIC_TYPE + ) self.assertIsNone(query._start_time) self.assertIsNone(query._end_time) @@ -136,9 +133,15 @@ def test_constructor_maximal(self): channel = ChannelStub() client = MetricServiceClient(channel=channel) - query = self._make_one(client, PROJECT, METRIC_TYPE, - end_time=T1, - days=DAYS, hours=HOURS, minutes=MINUTES) + query = self._make_one( + client, + PROJECT, + METRIC_TYPE, + end_time=T1, + days=DAYS, + hours=HOURS, + minutes=MINUTES, + ) self.assertEqual(query._client, client) self.assertEqual(query._filter.metric_type, METRIC_TYPE) @@ -161,10 +164,8 @@ def test_constructor_default_end_time(self): channel = ChannelStub() client = MetricServiceClient(channel=channel) - with mock.patch('google.cloud.monitoring_v3.query._UTCNOW', - new=lambda: NOW): - query = self._make_one( - client, PROJECT, METRIC_TYPE, minutes=MINUTES) + with mock.patch("google.cloud.monitoring_v3.query._UTCNOW", new=lambda: NOW): + query = self._make_one(client, PROJECT, METRIC_TYPE, minutes=MINUTES) self.assertEqual(query._start_time, T0) self.assertEqual(query._end_time, T1) @@ -207,21 +208,20 @@ def test_filter(self): def test_filter_by_group(self): from google.cloud.monitoring_v3 import MetricServiceClient - GROUP = '1234567' + GROUP = "1234567" channel = ChannelStub() client = MetricServiceClient(channel=channel) query = self._make_one(client, PROJECT, METRIC_TYPE) query = query.select_group(GROUP) - expected = ( - 'metric.type = "{type}"' - ' AND group.id = "{group}"' - ).format(type=METRIC_TYPE, group=GROUP) + expected = ('metric.type = "{type}"' ' AND group.id = "{group}"').format( + type=METRIC_TYPE, group=GROUP + ) self.assertEqual(query.filter, expected) def test_filter_by_projects(self): from google.cloud.monitoring_v3 import MetricServiceClient - PROJECT1, PROJECT2 = 'project-1', 'project-2' + PROJECT1, PROJECT2 = "project-1", "project-2" channel = ChannelStub() client = MetricServiceClient(channel=channel) query = self._make_one(client, PROJECT, METRIC_TYPE) @@ -235,7 +235,7 @@ def test_filter_by_projects(self): def test_filter_by_resources(self): from google.cloud.monitoring_v3 import MetricServiceClient - ZONE_PREFIX = 'europe-' + ZONE_PREFIX = "europe-" channel = ChannelStub() client = MetricServiceClient(channel=channel) query = self._make_one(client, PROJECT, METRIC_TYPE) @@ -249,14 +249,13 @@ def test_filter_by_resources(self): def test_filter_by_metrics(self): from google.cloud.monitoring_v3 import MetricServiceClient - INSTANCE = 'my-instance' + INSTANCE = "my-instance" channel = ChannelStub() client = MetricServiceClient(channel=channel) query = self._make_one(client, PROJECT, METRIC_TYPE) query = query.select_metrics(instance_name=INSTANCE) expected = ( - 'metric.type = "{type}"' - ' AND metric.label.instance_name = "{instance}"' + 'metric.type = "{type}"' ' AND metric.label.instance_name = "{instance}"' ).format(type=METRIC_TYPE, instance=INSTANCE) self.assertEqual(query.filter, expected) @@ -272,10 +271,10 @@ def test_request_parameters_minimal(self): query = query.select_interval(end_time=T1) actual = query._build_query_params() expected = { - 'name': u'projects/{}'.format(PROJECT), - 'filter_': 'metric.type = "{type}"'.format(type=METRIC_TYPE), - 'interval': self._make_interval(T1), - 'view': enums.ListTimeSeriesRequest.TimeSeriesView.FULL, + "name": u"projects/{}".format(PROJECT), + "filter_": 'metric.type = "{type}"'.format(type=METRIC_TYPE), + "interval": self._make_interval(T1), + "view": enums.ListTimeSeriesRequest.TimeSeriesView.FULL, } self.assertEqual(actual, expected) @@ -287,11 +286,11 @@ def test_request_parameters_maximal(self): T0 = datetime.datetime(2016, 4, 7, 2, 0, 0) T1 = datetime.datetime(2016, 4, 7, 2, 30, 0) - ALIGNER = 'ALIGN_DELTA' + ALIGNER = "ALIGN_DELTA" MINUTES, SECONDS, PERIOD_IN_SECONDS = 1, 30, 90 - REDUCER = 'REDUCE_MEAN' - FIELD1, FIELD2 = 'resource.zone', 'metric.instance_name' + REDUCER = "REDUCE_MEAN" + FIELD1, FIELD2 = "resource.zone", "metric.instance_name" PAGE_SIZE = 100 @@ -301,20 +300,19 @@ def test_request_parameters_maximal(self): query = query.select_interval(start_time=T0, end_time=T1) query = query.align(ALIGNER, minutes=MINUTES, seconds=SECONDS) query = query.reduce(REDUCER, FIELD1, FIELD2) - actual = query._build_query_params(headers_only=True, - page_size=PAGE_SIZE) + actual = query._build_query_params(headers_only=True, page_size=PAGE_SIZE) expected = { - 'name': 'projects/%s' % PROJECT, - 'filter_': 'metric.type = "{type}"'.format(type=METRIC_TYPE), - 'interval': self._make_interval(T1, T0), - 'aggregation': types.Aggregation( + "name": "projects/%s" % PROJECT, + "filter_": 'metric.type = "{type}"'.format(type=METRIC_TYPE), + "interval": self._make_interval(T1, T0), + "aggregation": types.Aggregation( per_series_aligner=ALIGNER, - alignment_period={'seconds': PERIOD_IN_SECONDS}, + alignment_period={"seconds": PERIOD_IN_SECONDS}, cross_series_reducer=REDUCER, group_by_fields=[FIELD1, FIELD2], ), - 'view': enums.ListTimeSeriesRequest.TimeSeriesView.HEADERS, - 'page_size': PAGE_SIZE, + "view": enums.ListTimeSeriesRequest.TimeSeriesView.HEADERS, + "page_size": PAGE_SIZE, } self.assertEqual(actual, expected) @@ -333,27 +331,27 @@ def test_iteration(self): VALUE2 = 60.001 # seconds SERIES1 = { - 'metric': {'type': METRIC_TYPE, 'labels': METRIC_LABELS}, - 'resource': {'type': RESOURCE_TYPE, 'labels': RESOURCE_LABELS}, - 'metric_kind': METRIC_KIND, - 'value_type': VALUE_TYPE, - 'points': [ - {'interval': INTERVAL2, 'value': {'double_value': VALUE1}}, - {'interval': INTERVAL1, 'value': {'double_value': VALUE1}}, + "metric": {"type": METRIC_TYPE, "labels": METRIC_LABELS}, + "resource": {"type": RESOURCE_TYPE, "labels": RESOURCE_LABELS}, + "metric_kind": METRIC_KIND, + "value_type": VALUE_TYPE, + "points": [ + {"interval": INTERVAL2, "value": {"double_value": VALUE1}}, + {"interval": INTERVAL1, "value": {"double_value": VALUE1}}, ], } SERIES2 = { - 'metric': {'type': METRIC_TYPE, 'labels': METRIC_LABELS2}, - 'resource': {'type': RESOURCE_TYPE, 'labels': RESOURCE_LABELS2}, - 'metric_kind': METRIC_KIND, - 'value_type': VALUE_TYPE, - 'points': [ - {'interval': INTERVAL2, 'value': {'double_value': VALUE2}}, - {'interval': INTERVAL1, 'value': {'double_value': VALUE2}}, + "metric": {"type": METRIC_TYPE, "labels": METRIC_LABELS2}, + "resource": {"type": RESOURCE_TYPE, "labels": RESOURCE_LABELS2}, + "metric_kind": METRIC_KIND, + "value_type": VALUE_TYPE, + "points": [ + {"interval": INTERVAL2, "value": {"double_value": VALUE2}}, + {"interval": INTERVAL1, "value": {"double_value": VALUE2}}, ], } - RESPONSE = {'time_series': [SERIES1, SERIES2], 'next_page_token': ''} + RESPONSE = {"time_series": [SERIES1, SERIES2], "next_page_token": ""} channel = ChannelStub(responses=[RESPONSE]) client = MetricServiceClient(channel=channel) @@ -369,20 +367,20 @@ def test_iteration(self): self.assertEqual(series1.resource.labels, RESOURCE_LABELS) self.assertEqual(series2.resource.labels, RESOURCE_LABELS2) - self.assertEqual([p.value.double_value for p in series1.points], - [VALUE1, VALUE1]) - self.assertEqual([p.value.double_value for p in series2.points], - [VALUE2, VALUE2]) - self.assertEqual([p.interval for p in series1.points], - [INTERVAL2, INTERVAL1]) - self.assertEqual([p.interval for p in series2.points], - [INTERVAL2, INTERVAL1]) + self.assertEqual( + [p.value.double_value for p in series1.points], [VALUE1, VALUE1] + ) + self.assertEqual( + [p.value.double_value for p in series2.points], [VALUE2, VALUE2] + ) + self.assertEqual([p.interval for p in series1.points], [INTERVAL2, INTERVAL1]) + self.assertEqual([p.interval for p in series2.points], [INTERVAL2, INTERVAL1]) expected_request = metric_service_pb2.ListTimeSeriesRequest( - name='projects/' + PROJECT, + name="projects/" + PROJECT, filter='metric.type = "{type}"'.format(type=METRIC_TYPE), interval=self._make_interval(T1, T0), - view=enums.ListTimeSeriesRequest.TimeSeriesView.FULL + view=enums.ListTimeSeriesRequest.TimeSeriesView.FULL, ) request = channel.requests[0][1] self.assertEqual(request, expected_request) @@ -395,7 +393,7 @@ def test_iteration_empty(self): T0 = datetime.datetime(2016, 4, 6, 22, 5, 0) T1 = datetime.datetime(2016, 4, 6, 22, 10, 0) - channel = ChannelStub(responses=[{'next_page_token': ''}]) + channel = ChannelStub(responses=[{"next_page_token": ""}]) client = MetricServiceClient(channel=channel) query = self._make_one(client, PROJECT, METRIC_TYPE) query = query.select_interval(start_time=T0, end_time=T1) @@ -404,10 +402,10 @@ def test_iteration_empty(self): self.assertEqual(len(response), 0) expected_request = metric_service_pb2.ListTimeSeriesRequest( - name='projects/' + PROJECT, + name="projects/" + PROJECT, filter='metric.type = "{type}"'.format(type=METRIC_TYPE), interval=self._make_interval(T1, T0), - view=enums.ListTimeSeriesRequest.TimeSeriesView.FULL + view=enums.ListTimeSeriesRequest.TimeSeriesView.FULL, ) request = channel.requests[0][1] self.assertEqual(request, expected_request) @@ -421,19 +419,19 @@ def test_iteration_headers_only(self): T1 = datetime.datetime(2016, 4, 6, 22, 10, 0) SERIES1 = { - 'metric': {'type': METRIC_TYPE, 'labels': METRIC_LABELS}, - 'resource': {'type': RESOURCE_TYPE, 'labels': RESOURCE_LABELS}, - 'metric_kind': METRIC_KIND, - 'value_type': VALUE_TYPE, + "metric": {"type": METRIC_TYPE, "labels": METRIC_LABELS}, + "resource": {"type": RESOURCE_TYPE, "labels": RESOURCE_LABELS}, + "metric_kind": METRIC_KIND, + "value_type": VALUE_TYPE, } SERIES2 = { - 'metric': {'type': METRIC_TYPE, 'labels': METRIC_LABELS2}, - 'resource': {'type': RESOURCE_TYPE, 'labels': RESOURCE_LABELS2}, - 'metric_kind': METRIC_KIND, - 'value_type': VALUE_TYPE, + "metric": {"type": METRIC_TYPE, "labels": METRIC_LABELS2}, + "resource": {"type": RESOURCE_TYPE, "labels": RESOURCE_LABELS2}, + "metric_kind": METRIC_KIND, + "value_type": VALUE_TYPE, } - RESPONSE = {'time_series': [SERIES1, SERIES2], 'next_page_token': ''} + RESPONSE = {"time_series": [SERIES1, SERIES2], "next_page_token": ""} channel = ChannelStub(responses=[RESPONSE]) client = MetricServiceClient(channel=channel) @@ -453,17 +451,16 @@ def test_iteration_headers_only(self): self.assertFalse(len(series2.points)) expected_request = metric_service_pb2.ListTimeSeriesRequest( - name='projects/' + PROJECT, + name="projects/" + PROJECT, filter='metric.type = "{type}"'.format(type=METRIC_TYPE), interval=self._make_interval(T1, T0), - view=enums.ListTimeSeriesRequest.TimeSeriesView.HEADERS + view=enums.ListTimeSeriesRequest.TimeSeriesView.HEADERS, ) request = channel.requests[0][1] self.assertEqual(request, expected_request) class Test_Filter(unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.monitoring_v3.query import _Filter @@ -480,11 +477,10 @@ def test_minimal(self): def test_maximal(self): obj = self._make_one(METRIC_TYPE) - obj.group_id = '1234567' - obj.projects = 'project-1', 'project-2' - obj.select_resources(resource_type='some-resource', - resource_label='foo') - obj.select_metrics(metric_label_prefix='bar-') + obj.group_id = "1234567" + obj.projects = "project-1", "project-2" + obj.select_resources(resource_type="some-resource", resource_label="foo") + obj.select_metrics(metric_label_prefix="bar-") expected = ( 'metric.type = "{type}"' @@ -499,24 +495,20 @@ def test_maximal(self): class Test__build_label_filter(unittest.TestCase): - def _call_fut(self, *args, **kwargs): from google.cloud.monitoring_v3.query import _build_label_filter return _build_label_filter(*args, **kwargs) def test_no_labels(self): - self.assertEqual(self._call_fut('resource'), '') + self.assertEqual(self._call_fut("resource"), "") def test_label_is_none(self): - self.assertEqual(self._call_fut('resource', foo=None), '') + self.assertEqual(self._call_fut("resource", foo=None), "") def test_metric_labels(self): actual = self._call_fut( - 'metric', - alpha_prefix='a-', - beta_gamma_suffix='-b', - delta_epsilon='xyz', + "metric", alpha_prefix="a-", beta_gamma_suffix="-b", delta_epsilon="xyz" ) expected = ( 'metric.label.alpha = starts_with("a-")' @@ -527,32 +519,25 @@ def test_metric_labels(self): def test_metric_label_response_code_greater_less(self): actual = self._call_fut( - 'metric', - response_code_greater=500, - response_code_less=600) + "metric", response_code_greater=500, response_code_less=600 + ) expected = ( - 'metric.label.response_code < 600' - ' AND metric.label.response_code > 500' + "metric.label.response_code < 600" " AND metric.label.response_code > 500" ) self.assertEqual(actual, expected) def test_metric_label_response_code_greater_less_equal(self): actual = self._call_fut( - 'metric', - response_code_greaterequal=500, - response_code_lessequal=600) + "metric", response_code_greaterequal=500, response_code_lessequal=600 + ) expected = ( - 'metric.label.response_code <= 600' - ' AND metric.label.response_code >= 500' + "metric.label.response_code <= 600" " AND metric.label.response_code >= 500" ) self.assertEqual(actual, expected) def test_resource_labels(self): actual = self._call_fut( - 'resource', - alpha_prefix='a-', - beta_gamma_suffix='-b', - delta_epsilon='xyz', + "resource", alpha_prefix="a-", beta_gamma_suffix="-b", delta_epsilon="xyz" ) expected = ( 'resource.label.alpha = starts_with("a-")' @@ -563,7 +548,7 @@ def test_resource_labels(self): def test_raw_label_filters(self): actual = self._call_fut( - 'resource', + "resource", 'resource.label.alpha = starts_with("a-")', 'resource.label.beta_gamma = ends_with("-b")', 'resource.label.delta_epsilon = "xyz"', @@ -576,16 +561,16 @@ def test_raw_label_filters(self): self.assertEqual(actual, expected) def test_resource_type(self): - actual = self._call_fut('resource', resource_type='foo') + actual = self._call_fut("resource", resource_type="foo") expected = 'resource.type = "foo"' self.assertEqual(actual, expected) def test_resource_type_prefix(self): - actual = self._call_fut('resource', resource_type_prefix='foo-') + actual = self._call_fut("resource", resource_type_prefix="foo-") expected = 'resource.type = starts_with("foo-")' self.assertEqual(actual, expected) def test_resource_type_suffix(self): - actual = self._call_fut('resource', resource_type_suffix='-foo') + actual = self._call_fut("resource", resource_type_suffix="-foo") expected = 'resource.type = ends_with("-foo")' self.assertEqual(actual, expected) diff --git a/oslogin/docs/conf.py b/oslogin/docs/conf.py index 1ff2461b145d..f89c52b7fd97 100644 --- a/oslogin/docs/conf.py +++ b/oslogin/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-os-login' -copyright = u'2018 Google LLC' -author = u'Google APIs' +project = u"google-cloud-os-login" +copyright = u"2018 Google LLC" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-os-login-doc' +htmlhelp_basename = "google-cloud-os-login-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-os-login.tex', - u'google-cloud-os-login Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-os-login.tex", + u"google-cloud-os-login Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-os-login', - u'google-cloud-os-login Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-os-login", + u"google-cloud-os-login Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-os-login', - u'google-cloud-os-login Documentation', author, 'google-cloud-os-login', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-os-login", + u"google-cloud-os-login Documentation", + author, + "google-cloud-os-login", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/oslogin/google/cloud/oslogin_v1/gapic/os_login_service_client.py b/oslogin/google/cloud/oslogin_v1/gapic/os_login_service_client.py index 46836f5b176b..fd29cddf1430 100644 --- a/oslogin/google/cloud/oslogin_v1/gapic/os_login_service_client.py +++ b/oslogin/google/cloud/oslogin_v1/gapic/os_login_service_client.py @@ -34,8 +34,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-os-login', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-os-login").version class OsLoginServiceClient(object): @@ -46,12 +45,12 @@ class OsLoginServiceClient(object): public keys for logging into virtual machines on Google Cloud Platform. """ - SERVICE_ADDRESS = 'oslogin.googleapis.com:443' + SERVICE_ADDRESS = "oslogin.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.oslogin.v1.OsLoginService' + _INTERFACE_NAME = "google.cloud.oslogin.v1.OsLoginService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -67,9 +66,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: OsLoginServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -77,35 +75,32 @@ def from_service_account_file(cls, filename, *args, **kwargs): @classmethod def user_path(cls, user): """Return a fully-qualified user string.""" - return google.api_core.path_template.expand( - 'users/{user}', - user=user, - ) + return google.api_core.path_template.expand("users/{user}", user=user) @classmethod def project_path(cls, user, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'users/{user}/projects/{project}', - user=user, - project=project, + "users/{user}/projects/{project}", user=user, project=project ) @classmethod def fingerprint_path(cls, user, fingerprint): """Return a fully-qualified fingerprint string.""" return google.api_core.path_template.expand( - 'users/{user}/sshPublicKeys/{fingerprint}', + "users/{user}/sshPublicKeys/{fingerprint}", user=user, fingerprint=fingerprint, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -139,18 +134,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = os_login_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -159,25 +155,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=os_login_service_grpc_transport. - OsLoginServiceGrpcTransport, + default_class=os_login_service_grpc_transport.OsLoginServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = os_login_service_grpc_transport.OsLoginServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -187,7 +182,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -196,11 +192,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def delete_posix_account(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_posix_account( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a POSIX account. @@ -234,26 +232,28 @@ def delete_posix_account(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_posix_account' not in self._inner_api_calls: + if "delete_posix_account" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_posix_account'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_posix_account, - default_retry=self._method_configs['DeletePosixAccount']. - retry, - default_timeout=self._method_configs['DeletePosixAccount']. - timeout, - client_info=self._client_info, - ) + "delete_posix_account" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_posix_account, + default_retry=self._method_configs["DeletePosixAccount"].retry, + default_timeout=self._method_configs["DeletePosixAccount"].timeout, + client_info=self._client_info, + ) - request = oslogin_pb2.DeletePosixAccountRequest(name=name, ) - self._inner_api_calls['delete_posix_account']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = oslogin_pb2.DeletePosixAccountRequest(name=name) + self._inner_api_calls["delete_posix_account"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_ssh_public_key(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_ssh_public_key( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes an SSH public key. @@ -287,26 +287,28 @@ def delete_ssh_public_key(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_ssh_public_key' not in self._inner_api_calls: + if "delete_ssh_public_key" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_ssh_public_key'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_ssh_public_key, - default_retry=self._method_configs['DeleteSshPublicKey']. - retry, - default_timeout=self._method_configs['DeleteSshPublicKey']. - timeout, - client_info=self._client_info, - ) + "delete_ssh_public_key" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_ssh_public_key, + default_retry=self._method_configs["DeleteSshPublicKey"].retry, + default_timeout=self._method_configs["DeleteSshPublicKey"].timeout, + client_info=self._client_info, + ) - request = oslogin_pb2.DeleteSshPublicKeyRequest(name=name, ) - self._inner_api_calls['delete_ssh_public_key']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = oslogin_pb2.DeleteSshPublicKeyRequest(name=name) + self._inner_api_calls["delete_ssh_public_key"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_login_profile(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_login_profile( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Retrieves the profile information used for logging in to a virtual machine on Google Compute Engine. @@ -342,26 +344,28 @@ def get_login_profile(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_login_profile' not in self._inner_api_calls: + if "get_login_profile" not in self._inner_api_calls: self._inner_api_calls[ - 'get_login_profile'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_login_profile, - default_retry=self._method_configs['GetLoginProfile']. - retry, - default_timeout=self._method_configs['GetLoginProfile']. - timeout, - client_info=self._client_info, - ) + "get_login_profile" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_login_profile, + default_retry=self._method_configs["GetLoginProfile"].retry, + default_timeout=self._method_configs["GetLoginProfile"].timeout, + client_info=self._client_info, + ) - request = oslogin_pb2.GetLoginProfileRequest(name=name, ) - return self._inner_api_calls['get_login_profile']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = oslogin_pb2.GetLoginProfileRequest(name=name) + return self._inner_api_calls["get_login_profile"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_ssh_public_key(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_ssh_public_key( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Retrieves an SSH public key. @@ -398,28 +402,30 @@ def get_ssh_public_key(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_ssh_public_key' not in self._inner_api_calls: + if "get_ssh_public_key" not in self._inner_api_calls: self._inner_api_calls[ - 'get_ssh_public_key'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_ssh_public_key, - default_retry=self._method_configs['GetSshPublicKey']. - retry, - default_timeout=self._method_configs['GetSshPublicKey']. - timeout, - client_info=self._client_info, - ) + "get_ssh_public_key" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_ssh_public_key, + default_retry=self._method_configs["GetSshPublicKey"].retry, + default_timeout=self._method_configs["GetSshPublicKey"].timeout, + client_info=self._client_info, + ) + + request = oslogin_pb2.GetSshPublicKeyRequest(name=name) + return self._inner_api_calls["get_ssh_public_key"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = oslogin_pb2.GetSshPublicKeyRequest(name=name, ) - return self._inner_api_calls['get_ssh_public_key']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def import_ssh_public_key(self, - parent, - ssh_public_key, - project_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def import_ssh_public_key( + self, + parent, + ssh_public_key, + project_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Adds an SSH public key and returns the profile information. Default POSIX account information is set when no username and UID exist as part of the @@ -464,32 +470,32 @@ def import_ssh_public_key(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'import_ssh_public_key' not in self._inner_api_calls: + if "import_ssh_public_key" not in self._inner_api_calls: self._inner_api_calls[ - 'import_ssh_public_key'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.import_ssh_public_key, - default_retry=self._method_configs['ImportSshPublicKey']. - retry, - default_timeout=self._method_configs['ImportSshPublicKey']. - timeout, - client_info=self._client_info, - ) + "import_ssh_public_key" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.import_ssh_public_key, + default_retry=self._method_configs["ImportSshPublicKey"].retry, + default_timeout=self._method_configs["ImportSshPublicKey"].timeout, + client_info=self._client_info, + ) request = oslogin_pb2.ImportSshPublicKeyRequest( - parent=parent, - ssh_public_key=ssh_public_key, - project_id=project_id, + parent=parent, ssh_public_key=ssh_public_key, project_id=project_id ) - return self._inner_api_calls['import_ssh_public_key']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_ssh_public_key(self, - name, - ssh_public_key, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["import_ssh_public_key"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def update_ssh_public_key( + self, + name, + ssh_public_key, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an SSH public key and returns the profile information. This method supports patch semantics. @@ -538,21 +544,19 @@ def update_ssh_public_key(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_ssh_public_key' not in self._inner_api_calls: + if "update_ssh_public_key" not in self._inner_api_calls: self._inner_api_calls[ - 'update_ssh_public_key'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_ssh_public_key, - default_retry=self._method_configs['UpdateSshPublicKey']. - retry, - default_timeout=self._method_configs['UpdateSshPublicKey']. - timeout, - client_info=self._client_info, - ) + "update_ssh_public_key" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_ssh_public_key, + default_retry=self._method_configs["UpdateSshPublicKey"].retry, + default_timeout=self._method_configs["UpdateSshPublicKey"].timeout, + client_info=self._client_info, + ) request = oslogin_pb2.UpdateSshPublicKeyRequest( - name=name, - ssh_public_key=ssh_public_key, - update_mask=update_mask, + name=name, ssh_public_key=ssh_public_key, update_mask=update_mask + ) + return self._inner_api_calls["update_ssh_public_key"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_ssh_public_key']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/oslogin/google/cloud/oslogin_v1/gapic/os_login_service_client_config.py b/oslogin/google/cloud/oslogin_v1/gapic/os_login_service_client_config.py index 73e359d62fb7..e55e7963358b 100644 --- a/oslogin/google/cloud/oslogin_v1/gapic/os_login_service_client_config.py +++ b/oslogin/google/cloud/oslogin_v1/gapic/os_login_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.oslogin.v1.OsLoginService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,41 +13,41 @@ "initial_rpc_timeout_millis": 10000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 10000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "DeletePosixAccount": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteSshPublicKey": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetLoginProfile": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetSshPublicKey": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ImportSshPublicKey": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateSshPublicKey": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/oslogin/google/cloud/oslogin_v1/gapic/transports/os_login_service_grpc_transport.py b/oslogin/google/cloud/oslogin_v1/gapic/transports/os_login_service_grpc_transport.py index e3f5087daeb6..7651fe81f3a5 100644 --- a/oslogin/google/cloud/oslogin_v1/gapic/transports/os_login_service_grpc_transport.py +++ b/oslogin/google/cloud/oslogin_v1/gapic/transports/os_login_service_grpc_transport.py @@ -27,19 +27,19 @@ class OsLoginServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-platform.read-only', - 'https://www.googleapis.com/auth/compute', - 'https://www.googleapis.com/auth/compute.readonly', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly", ) - def __init__(self, - channel=None, - credentials=None, - address='oslogin.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="oslogin.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -57,29 +57,23 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'os_login_service_stub': - oslogin_pb2_grpc.OsLoginServiceStub(channel), + "os_login_service_stub": oslogin_pb2_grpc.OsLoginServiceStub(channel) } @classmethod - def create_channel(cls, - address='oslogin.googleapis.com:443', - credentials=None): + def create_channel(cls, address="oslogin.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -94,9 +88,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -119,7 +111,7 @@ def delete_posix_account(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['os_login_service_stub'].DeletePosixAccount + return self._stubs["os_login_service_stub"].DeletePosixAccount @property def delete_ssh_public_key(self): @@ -132,7 +124,7 @@ def delete_ssh_public_key(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['os_login_service_stub'].DeleteSshPublicKey + return self._stubs["os_login_service_stub"].DeleteSshPublicKey @property def get_login_profile(self): @@ -146,7 +138,7 @@ def get_login_profile(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['os_login_service_stub'].GetLoginProfile + return self._stubs["os_login_service_stub"].GetLoginProfile @property def get_ssh_public_key(self): @@ -159,7 +151,7 @@ def get_ssh_public_key(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['os_login_service_stub'].GetSshPublicKey + return self._stubs["os_login_service_stub"].GetSshPublicKey @property def import_ssh_public_key(self): @@ -174,7 +166,7 @@ def import_ssh_public_key(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['os_login_service_stub'].ImportSshPublicKey + return self._stubs["os_login_service_stub"].ImportSshPublicKey @property def update_ssh_public_key(self): @@ -188,4 +180,4 @@ def update_ssh_public_key(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['os_login_service_stub'].UpdateSshPublicKey + return self._stubs["os_login_service_stub"].UpdateSshPublicKey diff --git a/oslogin/tests/unit/gapic/v1/test_os_login_service_client_v1.py b/oslogin/tests/unit/gapic/v1/test_os_login_service_client_v1.py index adcc91446e52..eabbc7d46712 100644 --- a/oslogin/tests/unit/gapic/v1/test_os_login_service_client_v1.py +++ b/oslogin/tests/unit/gapic/v1/test_os_login_service_client_v1.py @@ -52,10 +52,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,13 +63,13 @@ class CustomException(Exception): class TestOsLoginServiceClient(object): def test_delete_posix_account(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup Request - name = client.project_path('[USER]', '[PROJECT]') + name = client.project_path("[USER]", "[PROJECT]") client.delete_posix_account(name) @@ -84,26 +81,26 @@ def test_delete_posix_account(self): def test_delete_posix_account_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup request - name = client.project_path('[USER]', '[PROJECT]') + name = client.project_path("[USER]", "[PROJECT]") with pytest.raises(CustomException): client.delete_posix_account(name) def test_delete_ssh_public_key(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup Request - name = client.fingerprint_path('[USER]', '[FINGERPRINT]') + name = client.fingerprint_path("[USER]", "[FINGERPRINT]") client.delete_ssh_public_key(name) @@ -115,33 +112,33 @@ def test_delete_ssh_public_key(self): def test_delete_ssh_public_key_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup request - name = client.fingerprint_path('[USER]', '[FINGERPRINT]') + name = client.fingerprint_path("[USER]", "[FINGERPRINT]") with pytest.raises(CustomException): client.delete_ssh_public_key(name) def test_get_login_profile(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" suspended = False - expected_response = {'name': name_2, 'suspended': suspended} + expected_response = {"name": name_2, "suspended": suspended} expected_response = oslogin_pb2.LoginProfile(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup Request - name = client.user_path('[USER]') + name = client.user_path("[USER]") response = client.get_login_profile(name) assert expected_response == response @@ -154,38 +151,38 @@ def test_get_login_profile(self): def test_get_login_profile_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup request - name = client.user_path('[USER]') + name = client.user_path("[USER]") with pytest.raises(CustomException): client.get_login_profile(name) def test_get_ssh_public_key(self): # Setup Expected Response - key = 'key106079' + key = "key106079" expiration_time_usec = 2058878882 - fingerprint = 'fingerprint-1375934236' + fingerprint = "fingerprint-1375934236" expected_response = { - 'key': key, - 'expiration_time_usec': expiration_time_usec, - 'fingerprint': fingerprint + "key": key, + "expiration_time_usec": expiration_time_usec, + "fingerprint": fingerprint, } expected_response = common_pb2.SshPublicKey(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup Request - name = client.fingerprint_path('[USER]', '[FINGERPRINT]') + name = client.fingerprint_path("[USER]", "[FINGERPRINT]") response = client.get_ssh_public_key(name) assert expected_response == response @@ -198,13 +195,13 @@ def test_get_ssh_public_key(self): def test_get_ssh_public_key_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup request - name = client.fingerprint_path('[USER]', '[FINGERPRINT]') + name = client.fingerprint_path("[USER]", "[FINGERPRINT]") with pytest.raises(CustomException): client.get_ssh_public_key(name) @@ -212,18 +209,17 @@ def test_get_ssh_public_key_exception(self): def test_import_ssh_public_key(self): # Setup Expected Response expected_response = {} - expected_response = oslogin_pb2.ImportSshPublicKeyResponse( - **expected_response) + expected_response = oslogin_pb2.ImportSshPublicKeyResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup Request - parent = client.user_path('[USER]') + parent = client.user_path("[USER]") ssh_public_key = {} response = client.import_ssh_public_key(parent, ssh_public_key) @@ -231,20 +227,21 @@ def test_import_ssh_public_key(self): assert len(channel.requests) == 1 expected_request = oslogin_pb2.ImportSshPublicKeyRequest( - parent=parent, ssh_public_key=ssh_public_key) + parent=parent, ssh_public_key=ssh_public_key + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_import_ssh_public_key_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup request - parent = client.user_path('[USER]') + parent = client.user_path("[USER]") ssh_public_key = {} with pytest.raises(CustomException): @@ -252,25 +249,25 @@ def test_import_ssh_public_key_exception(self): def test_update_ssh_public_key(self): # Setup Expected Response - key = 'key106079' + key = "key106079" expiration_time_usec = 2058878882 - fingerprint = 'fingerprint-1375934236' + fingerprint = "fingerprint-1375934236" expected_response = { - 'key': key, - 'expiration_time_usec': expiration_time_usec, - 'fingerprint': fingerprint + "key": key, + "expiration_time_usec": expiration_time_usec, + "fingerprint": fingerprint, } expected_response = common_pb2.SshPublicKey(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup Request - name = client.fingerprint_path('[USER]', '[FINGERPRINT]') + name = client.fingerprint_path("[USER]", "[FINGERPRINT]") ssh_public_key = {} response = client.update_ssh_public_key(name, ssh_public_key) @@ -278,20 +275,21 @@ def test_update_ssh_public_key(self): assert len(channel.requests) == 1 expected_request = oslogin_pb2.UpdateSshPublicKeyRequest( - name=name, ssh_public_key=ssh_public_key) + name=name, ssh_public_key=ssh_public_key + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_ssh_public_key_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = oslogin_v1.OsLoginServiceClient() # Setup request - name = client.fingerprint_path('[USER]', '[FINGERPRINT]') + name = client.fingerprint_path("[USER]", "[FINGERPRINT]") ssh_public_key = {} with pytest.raises(CustomException): diff --git a/pubsub/google/__init__.py b/pubsub/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/pubsub/google/__init__.py +++ b/pubsub/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/pubsub/google/cloud/__init__.py b/pubsub/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/pubsub/google/cloud/__init__.py +++ b/pubsub/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/pubsub/google/cloud/pubsub.py b/pubsub/google/cloud/pubsub.py index 7da5d951d804..2c249504d7b3 100644 --- a/pubsub/google/cloud/pubsub.py +++ b/pubsub/google/cloud/pubsub.py @@ -20,8 +20,4 @@ from google.cloud.pubsub_v1 import SubscriberClient from google.cloud.pubsub_v1 import types -__all__ = ( - 'types', - 'PublisherClient', - 'SubscriberClient', -) +__all__ = ("types", "PublisherClient", "SubscriberClient") diff --git a/pubsub/google/cloud/pubsub_v1/__init__.py b/pubsub/google/cloud/pubsub_v1/__init__.py index e6f3c0aae6e7..67bec51b248b 100644 --- a/pubsub/google/cloud/pubsub_v1/__init__.py +++ b/pubsub/google/cloud/pubsub_v1/__init__.py @@ -27,8 +27,4 @@ class SubscriberClient(subscriber.Client): __doc__ = subscriber.Client.__doc__ -__all__ = ( - 'types', - 'PublisherClient', - 'SubscriberClient', -) +__all__ = ("types", "PublisherClient", "SubscriberClient") diff --git a/pubsub/google/cloud/pubsub_v1/_gapic.py b/pubsub/google/cloud/pubsub_v1/_gapic.py index 0383ec85f451..25cb3e5fa33c 100644 --- a/pubsub/google/cloud/pubsub_v1/_gapic.py +++ b/pubsub/google/cloud/pubsub_v1/_gapic.py @@ -24,6 +24,7 @@ def add_methods(source_class, blacklist=()): Additionally, any methods explicitly defined on the wrapped class are not added. """ + def wrap(wrapped_fx): """Wrap a GAPIC method; preserve its name and docstring.""" # If this is a static or class method, then we need to *not* @@ -34,7 +35,7 @@ def wrap(wrapped_fx): instance_method = True # If this is a bound method it's a classmethod. - self = getattr(wrapped_fx, '__self__', None) + self = getattr(wrapped_fx, "__self__", None) if issubclass(type(self), type): instance_method = False @@ -52,7 +53,7 @@ def actual_decorator(cls): # (the GAPIC) and make wrapped versions available on this client. for name in dir(source_class): # Ignore all private and magic methods. - if name.startswith('_'): + if name.startswith("_"): continue # Ignore anything on our blacklist. diff --git a/pubsub/google/cloud/pubsub_v1/exceptions.py b/pubsub/google/cloud/pubsub_v1/exceptions.py index 806bb204aeef..5ab750d0477c 100644 --- a/pubsub/google/cloud/pubsub_v1/exceptions.py +++ b/pubsub/google/cloud/pubsub_v1/exceptions.py @@ -17,6 +17,4 @@ from concurrent.futures import TimeoutError -__all__ = ( - 'TimeoutError', -) +__all__ = ("TimeoutError",) diff --git a/pubsub/google/cloud/pubsub_v1/futures.py b/pubsub/google/cloud/pubsub_v1/futures.py index 0940a47709a3..39688f291dbf 100644 --- a/pubsub/google/cloud/pubsub_v1/futures.py +++ b/pubsub/google/cloud/pubsub_v1/futures.py @@ -84,8 +84,7 @@ def done(self): This still returns True in failure cases; checking :meth:`result` or :meth:`exception` is the canonical way to assess success or failure. """ - return (self._exception != self._SENTINEL or - self._result != self._SENTINEL) + return self._exception != self._SENTINEL or self._result != self._SENTINEL def result(self, timeout=None): """Return the message ID, or raise an exception. @@ -131,7 +130,7 @@ def exception(self, timeout=None): """ # Wait until the future is done. if not self._completed.wait(timeout=timeout): - raise exceptions.TimeoutError('Timed out waiting for result.') + raise exceptions.TimeoutError("Timed out waiting for result.") # If the batch completed successfully, this should return None. if self._result != self._SENTINEL: @@ -158,7 +157,7 @@ def set_result(self, result): """ # Sanity check: A future can only complete once. if self.done(): - raise RuntimeError('set_result can only be called once.') + raise RuntimeError("set_result can only be called once.") # Set the result and trigger the future. self._result = result @@ -172,7 +171,7 @@ def set_exception(self, exception): """ # Sanity check: A future can only complete once. if self.done(): - raise RuntimeError('set_exception can only be called once.') + raise RuntimeError("set_exception can only be called once.") # Set the exception and trigger the future. self._exception = exception diff --git a/pubsub/google/cloud/pubsub_v1/gapic/publisher_client.py b/pubsub/google/cloud/pubsub_v1/gapic/publisher_client.py index 9e57c5f4789d..7c4da4ab6e01 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/publisher_client.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/publisher_client.py @@ -38,8 +38,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-pubsub', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-pubsub").version class PublisherClient(object): @@ -48,18 +47,19 @@ class PublisherClient(object): messages to a topic. """ - SERVICE_ADDRESS = 'pubsub.googleapis.com:443' + SERVICE_ADDRESS = "pubsub.googleapis.com:443" """The default address of the service.""" # The scopes needed to make gRPC calls to all of the methods defined in # this service _DEFAULT_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/pubsub', ) + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub", + ) # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.pubsub.v1.Publisher' + _INTERFACE_NAME = "google.pubsub.v1.Publisher" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -75,9 +75,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: PublisherClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -86,25 +85,24 @@ def from_service_account_file(cls, filename, *args, **kwargs): def topic_path(cls, project, topic): """Return a fully-qualified topic string.""" return google.api_core.path_template.expand( - 'projects/{project}/topics/{topic}', - project=project, - topic=topic, + "projects/{project}/topics/{topic}", project=project, topic=topic ) @classmethod def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -138,18 +136,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = publisher_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -158,25 +157,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=publisher_grpc_transport. - PublisherGrpcTransport, + default_class=publisher_grpc_transport.PublisherGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = publisher_grpc_transport.PublisherGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -186,7 +184,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -195,13 +194,15 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_topic(self, - name, - labels=None, - message_storage_policy=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_topic( + self, + name, + labels=None, + message_storage_policy=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates the given topic with the given name. See the resource name rules. @@ -252,30 +253,31 @@ def create_topic(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_topic' not in self._inner_api_calls: + if "create_topic" not in self._inner_api_calls: self._inner_api_calls[ - 'create_topic'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_topic, - default_retry=self._method_configs['CreateTopic'].retry, - default_timeout=self._method_configs['CreateTopic']. - timeout, - client_info=self._client_info, - ) + "create_topic" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_topic, + default_retry=self._method_configs["CreateTopic"].retry, + default_timeout=self._method_configs["CreateTopic"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.Topic( - name=name, - labels=labels, - message_storage_policy=message_storage_policy, + name=name, labels=labels, message_storage_policy=message_storage_policy + ) + return self._inner_api_calls["create_topic"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_topic']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_topic(self, - topic, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def update_topic( + self, + topic, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an existing topic. Note that certain properties of a topic are not modifiable. @@ -327,29 +329,29 @@ def update_topic(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_topic' not in self._inner_api_calls: + if "update_topic" not in self._inner_api_calls: self._inner_api_calls[ - 'update_topic'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_topic, - default_retry=self._method_configs['UpdateTopic'].retry, - default_timeout=self._method_configs['UpdateTopic']. - timeout, - client_info=self._client_info, - ) + "update_topic" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_topic, + default_retry=self._method_configs["UpdateTopic"].retry, + default_timeout=self._method_configs["UpdateTopic"].timeout, + client_info=self._client_info, + ) - request = pubsub_pb2.UpdateTopicRequest( - topic=topic, - update_mask=update_mask, + request = pubsub_pb2.UpdateTopicRequest(topic=topic, update_mask=update_mask) + return self._inner_api_calls["update_topic"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_topic']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def publish(self, - topic, - messages, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def publish( + self, + topic, + messages, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Adds one or more messages to the topic. Returns ``NOT_FOUND`` if the topic does not exist. @@ -393,27 +395,28 @@ def publish(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'publish' not in self._inner_api_calls: + if "publish" not in self._inner_api_calls: self._inner_api_calls[ - 'publish'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.publish, - default_retry=self._method_configs['Publish'].retry, - default_timeout=self._method_configs['Publish'].timeout, - client_info=self._client_info, - ) + "publish" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.publish, + default_retry=self._method_configs["Publish"].retry, + default_timeout=self._method_configs["Publish"].timeout, + client_info=self._client_info, + ) - request = pubsub_pb2.PublishRequest( - topic=topic, - messages=messages, + request = pubsub_pb2.PublishRequest(topic=topic, messages=messages) + return self._inner_api_calls["publish"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['publish']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_topic(self, - topic, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_topic( + self, + topic, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the configuration of a topic. @@ -449,25 +452,29 @@ def get_topic(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_topic' not in self._inner_api_calls: + if "get_topic" not in self._inner_api_calls: self._inner_api_calls[ - 'get_topic'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_topic, - default_retry=self._method_configs['GetTopic'].retry, - default_timeout=self._method_configs['GetTopic'].timeout, - client_info=self._client_info, - ) + "get_topic" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_topic, + default_retry=self._method_configs["GetTopic"].retry, + default_timeout=self._method_configs["GetTopic"].timeout, + client_info=self._client_info, + ) - request = pubsub_pb2.GetTopicRequest(topic=topic, ) - return self._inner_api_calls['get_topic']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = pubsub_pb2.GetTopicRequest(topic=topic) + return self._inner_api_calls["get_topic"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_topics(self, - project, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_topics( + self, + project, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists matching topics. @@ -523,40 +530,40 @@ def list_topics(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_topics' not in self._inner_api_calls: + if "list_topics" not in self._inner_api_calls: self._inner_api_calls[ - 'list_topics'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_topics, - default_retry=self._method_configs['ListTopics'].retry, - default_timeout=self._method_configs['ListTopics'].timeout, - client_info=self._client_info, - ) + "list_topics" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_topics, + default_retry=self._method_configs["ListTopics"].retry, + default_timeout=self._method_configs["ListTopics"].timeout, + client_info=self._client_info, + ) - request = pubsub_pb2.ListTopicsRequest( - project=project, - page_size=page_size, - ) + request = pubsub_pb2.ListTopicsRequest(project=project, page_size=page_size) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_topics'], + self._inner_api_calls["list_topics"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='topics', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="topics", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def list_topic_subscriptions( - self, - topic, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + topic, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the names of the subscriptions on this topic. @@ -612,40 +619,41 @@ def list_topic_subscriptions( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_topic_subscriptions' not in self._inner_api_calls: + if "list_topic_subscriptions" not in self._inner_api_calls: self._inner_api_calls[ - 'list_topic_subscriptions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_topic_subscriptions, - default_retry=self. - _method_configs['ListTopicSubscriptions'].retry, - default_timeout=self. - _method_configs['ListTopicSubscriptions'].timeout, - client_info=self._client_info, - ) + "list_topic_subscriptions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_topic_subscriptions, + default_retry=self._method_configs["ListTopicSubscriptions"].retry, + default_timeout=self._method_configs["ListTopicSubscriptions"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.ListTopicSubscriptionsRequest( - topic=topic, - page_size=page_size, + topic=topic, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_topic_subscriptions'], + self._inner_api_calls["list_topic_subscriptions"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='subscriptions', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="subscriptions", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def delete_topic(self, - topic, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_topic( + self, + topic, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes the topic with the given name. Returns ``NOT_FOUND`` if the topic does not exist. After a topic is deleted, a new topic may be @@ -683,26 +691,29 @@ def delete_topic(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_topic' not in self._inner_api_calls: + if "delete_topic" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_topic'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_topic, - default_retry=self._method_configs['DeleteTopic'].retry, - default_timeout=self._method_configs['DeleteTopic']. - timeout, - client_info=self._client_info, - ) + "delete_topic" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_topic, + default_retry=self._method_configs["DeleteTopic"].retry, + default_timeout=self._method_configs["DeleteTopic"].timeout, + client_info=self._client_info, + ) - request = pubsub_pb2.DeleteTopicRequest(topic=topic, ) - self._inner_api_calls['delete_topic']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = pubsub_pb2.DeleteTopicRequest(topic=topic) + self._inner_api_calls["delete_topic"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy on the specified resource. Replaces any existing policy. @@ -750,28 +761,28 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy @@ -810,26 +821,29 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, @@ -875,20 +889,19 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions + ) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/pubsub/google/cloud/pubsub_v1/gapic/publisher_client_config.py b/pubsub/google/cloud/pubsub_v1/gapic/publisher_client_config.py index e5db20ce1d9f..4c3519d7dac2 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/publisher_client_config.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/publisher_client_config.py @@ -5,9 +5,14 @@ "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], "non_idempotent": [], "one_plus_delivery": [ - "ABORTED", "CANCELLED", "DEADLINE_EXCEEDED", "INTERNAL", - "RESOURCE_EXHAUSTED", "UNAVAILABLE", "UNKNOWN" - ] + "ABORTED", + "CANCELLED", + "DEADLINE_EXCEEDED", + "INTERNAL", + "RESOURCE_EXHAUSTED", + "UNAVAILABLE", + "UNKNOWN", + ], }, "retry_params": { "default": { @@ -17,7 +22,7 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, }, "messaging": { "initial_retry_delay_millis": 100, @@ -26,19 +31,19 @@ "initial_rpc_timeout_millis": 12000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 30000, - "total_timeout_millis": 600000 - } + "total_timeout_millis": 600000, + }, }, "methods": { "CreateTopic": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateTopic": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "Publish": { "timeout_millis": 60000, @@ -49,45 +54,45 @@ "element_count_limit": 1000, "request_byte_threshold": 1024, "request_byte_limit": 10485760, - "delay_threshold_millis": 10 - } + "delay_threshold_millis": 10, + }, }, "GetTopic": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTopics": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTopicSubscriptions": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteTopic": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client.py b/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client.py index 7f50e15e8a9c..67375a9387c9 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client.py @@ -40,8 +40,7 @@ from google.protobuf import field_mask_pb2 from google.protobuf import timestamp_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-pubsub', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-pubsub").version class SubscriberClient(object): @@ -51,18 +50,19 @@ class SubscriberClient(object): establishing a bi-directional stream using the ``StreamingPull`` method. """ - SERVICE_ADDRESS = 'pubsub.googleapis.com:443' + SERVICE_ADDRESS = "pubsub.googleapis.com:443" """The default address of the service.""" # The scopes needed to make gRPC calls to all of the methods defined in # this service _DEFAULT_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/pubsub', ) + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub", + ) # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.pubsub.v1.Subscriber' + _INTERFACE_NAME = "google.pubsub.v1.Subscriber" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -78,9 +78,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: SubscriberClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -89,7 +88,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def subscription_path(cls, project, subscription): """Return a fully-qualified subscription string.""" return google.api_core.path_template.expand( - 'projects/{project}/subscriptions/{subscription}', + "projects/{project}/subscriptions/{subscription}", project=project, subscription=subscription, ) @@ -98,34 +97,33 @@ def subscription_path(cls, project, subscription): def topic_path(cls, project, topic): """Return a fully-qualified topic string.""" return google.api_core.path_template.expand( - 'projects/{project}/topics/{topic}', - project=project, - topic=topic, + "projects/{project}/topics/{topic}", project=project, topic=topic ) @classmethod def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def snapshot_path(cls, project, snapshot): """Return a fully-qualified snapshot string.""" return google.api_core.path_template.expand( - 'projects/{project}/snapshots/{snapshot}', + "projects/{project}/snapshots/{snapshot}", project=project, snapshot=snapshot, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -159,18 +157,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = subscriber_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -179,25 +178,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=subscriber_grpc_transport. - SubscriberGrpcTransport, + default_class=subscriber_grpc_transport.SubscriberGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = subscriber_grpc_transport.SubscriberGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -207,7 +205,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -216,18 +215,20 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_subscription(self, - name, - topic, - push_config=None, - ack_deadline_seconds=None, - retain_acked_messages=None, - message_retention_duration=None, - labels=None, - expiration_policy=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_subscription( + self, + name, + topic, + push_config=None, + ack_deadline_seconds=None, + retain_acked_messages=None, + message_retention_duration=None, + labels=None, + expiration_policy=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a subscription to a given topic. See the resource name rules. If the subscription already exists, returns ``ALREADY_EXISTS``. If the @@ -338,16 +339,15 @@ def create_subscription(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_subscription' not in self._inner_api_calls: + if "create_subscription" not in self._inner_api_calls: self._inner_api_calls[ - 'create_subscription'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_subscription, - default_retry=self._method_configs['CreateSubscription']. - retry, - default_timeout=self._method_configs['CreateSubscription']. - timeout, - client_info=self._client_info, - ) + "create_subscription" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_subscription, + default_retry=self._method_configs["CreateSubscription"].retry, + default_timeout=self._method_configs["CreateSubscription"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.Subscription( name=name, @@ -359,14 +359,17 @@ def create_subscription(self, labels=labels, expiration_policy=expiration_policy, ) - return self._inner_api_calls['create_subscription']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_subscription(self, - subscription, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["create_subscription"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def get_subscription( + self, + subscription, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the configuration details of a subscription. @@ -402,28 +405,29 @@ def get_subscription(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_subscription' not in self._inner_api_calls: + if "get_subscription" not in self._inner_api_calls: self._inner_api_calls[ - 'get_subscription'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_subscription, - default_retry=self._method_configs['GetSubscription']. - retry, - default_timeout=self._method_configs['GetSubscription']. - timeout, - client_info=self._client_info, - ) + "get_subscription" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_subscription, + default_retry=self._method_configs["GetSubscription"].retry, + default_timeout=self._method_configs["GetSubscription"].timeout, + client_info=self._client_info, + ) + + request = pubsub_pb2.GetSubscriptionRequest(subscription=subscription) + return self._inner_api_calls["get_subscription"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = pubsub_pb2.GetSubscriptionRequest( - subscription=subscription, ) - return self._inner_api_calls['get_subscription']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_subscription(self, - subscription, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_subscription( + self, + subscription, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an existing subscription. Note that certain properties of a subscription, such as its topic, are not modifiable. @@ -471,30 +475,31 @@ def update_subscription(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_subscription' not in self._inner_api_calls: + if "update_subscription" not in self._inner_api_calls: self._inner_api_calls[ - 'update_subscription'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_subscription, - default_retry=self._method_configs['UpdateSubscription']. - retry, - default_timeout=self._method_configs['UpdateSubscription']. - timeout, - client_info=self._client_info, - ) + "update_subscription" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_subscription, + default_retry=self._method_configs["UpdateSubscription"].retry, + default_timeout=self._method_configs["UpdateSubscription"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.UpdateSubscriptionRequest( - subscription=subscription, - update_mask=update_mask, + subscription=subscription, update_mask=update_mask ) - return self._inner_api_calls['update_subscription']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_subscriptions(self, - project, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_subscription"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_subscriptions( + self, + project, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists matching subscriptions. @@ -550,40 +555,41 @@ def list_subscriptions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_subscriptions' not in self._inner_api_calls: + if "list_subscriptions" not in self._inner_api_calls: self._inner_api_calls[ - 'list_subscriptions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_subscriptions, - default_retry=self._method_configs['ListSubscriptions']. - retry, - default_timeout=self._method_configs['ListSubscriptions']. - timeout, - client_info=self._client_info, - ) + "list_subscriptions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_subscriptions, + default_retry=self._method_configs["ListSubscriptions"].retry, + default_timeout=self._method_configs["ListSubscriptions"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.ListSubscriptionsRequest( - project=project, - page_size=page_size, + project=project, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_subscriptions'], + self._inner_api_calls["list_subscriptions"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='subscriptions', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="subscriptions", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def delete_subscription(self, - subscription, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_subscription( + self, + subscription, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes an existing subscription. All messages retained in the subscription are immediately dropped. Calls to ``Pull`` after deletion @@ -621,29 +627,30 @@ def delete_subscription(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_subscription' not in self._inner_api_calls: + if "delete_subscription" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_subscription'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_subscription, - default_retry=self._method_configs['DeleteSubscription']. - retry, - default_timeout=self._method_configs['DeleteSubscription']. - timeout, - client_info=self._client_info, - ) + "delete_subscription" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_subscription, + default_retry=self._method_configs["DeleteSubscription"].retry, + default_timeout=self._method_configs["DeleteSubscription"].timeout, + client_info=self._client_info, + ) + + request = pubsub_pb2.DeleteSubscriptionRequest(subscription=subscription) + self._inner_api_calls["delete_subscription"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = pubsub_pb2.DeleteSubscriptionRequest( - subscription=subscription, ) - self._inner_api_calls['delete_subscription']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def modify_ack_deadline(self, - subscription, - ack_ids, - ack_deadline_seconds, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def modify_ack_deadline( + self, + subscription, + ack_ids, + ack_deadline_seconds, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Modifies the ack deadline for a specific message. This method is useful to indicate that more time is needed to process a message by the @@ -693,31 +700,33 @@ def modify_ack_deadline(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'modify_ack_deadline' not in self._inner_api_calls: + if "modify_ack_deadline" not in self._inner_api_calls: self._inner_api_calls[ - 'modify_ack_deadline'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.modify_ack_deadline, - default_retry=self._method_configs['ModifyAckDeadline']. - retry, - default_timeout=self._method_configs['ModifyAckDeadline']. - timeout, - client_info=self._client_info, - ) + "modify_ack_deadline" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.modify_ack_deadline, + default_retry=self._method_configs["ModifyAckDeadline"].retry, + default_timeout=self._method_configs["ModifyAckDeadline"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.ModifyAckDeadlineRequest( subscription=subscription, ack_ids=ack_ids, ack_deadline_seconds=ack_deadline_seconds, ) - self._inner_api_calls['modify_ack_deadline']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def acknowledge(self, - subscription, - ack_ids, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self._inner_api_calls["modify_ack_deadline"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def acknowledge( + self, + subscription, + ack_ids, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Acknowledges the messages associated with the ``ack_ids`` in the ``AcknowledgeRequest``. The Pub/Sub system can remove the relevant @@ -762,30 +771,32 @@ def acknowledge(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'acknowledge' not in self._inner_api_calls: + if "acknowledge" not in self._inner_api_calls: self._inner_api_calls[ - 'acknowledge'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.acknowledge, - default_retry=self._method_configs['Acknowledge'].retry, - default_timeout=self._method_configs['Acknowledge']. - timeout, - client_info=self._client_info, - ) + "acknowledge" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.acknowledge, + default_retry=self._method_configs["Acknowledge"].retry, + default_timeout=self._method_configs["Acknowledge"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.AcknowledgeRequest( - subscription=subscription, - ack_ids=ack_ids, + subscription=subscription, ack_ids=ack_ids + ) + self._inner_api_calls["acknowledge"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['acknowledge']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def pull(self, - subscription, - max_messages, - return_immediately=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def pull( + self, + subscription, + max_messages, + return_immediately=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Pulls messages from the server. The server may return ``UNAVAILABLE`` if there are too many concurrent pull requests pending for the given @@ -832,28 +843,30 @@ def pull(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'pull' not in self._inner_api_calls: - self._inner_api_calls[ - 'pull'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.pull, - default_retry=self._method_configs['Pull'].retry, - default_timeout=self._method_configs['Pull'].timeout, - client_info=self._client_info, - ) + if "pull" not in self._inner_api_calls: + self._inner_api_calls["pull"] = google.api_core.gapic_v1.method.wrap_method( + self.transport.pull, + default_retry=self._method_configs["Pull"].retry, + default_timeout=self._method_configs["Pull"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.PullRequest( subscription=subscription, max_messages=max_messages, return_immediately=return_immediately, ) - return self._inner_api_calls['pull']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def streaming_pull(self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["pull"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def streaming_pull( + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Establishes a stream with the server, which sends messages down to the client. The client streams acknowledgements and ack deadline @@ -904,25 +917,28 @@ def streaming_pull(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'streaming_pull' not in self._inner_api_calls: + if "streaming_pull" not in self._inner_api_calls: self._inner_api_calls[ - 'streaming_pull'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.streaming_pull, - default_retry=self._method_configs['StreamingPull'].retry, - default_timeout=self._method_configs['StreamingPull']. - timeout, - client_info=self._client_info, - ) + "streaming_pull" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.streaming_pull, + default_retry=self._method_configs["StreamingPull"].retry, + default_timeout=self._method_configs["StreamingPull"].timeout, + client_info=self._client_info, + ) - return self._inner_api_calls['streaming_pull']( - requests, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["streaming_pull"]( + requests, retry=retry, timeout=timeout, metadata=metadata + ) - def modify_push_config(self, - subscription, - push_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def modify_push_config( + self, + subscription, + push_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Modifies the ``PushConfig`` for a specified subscription. @@ -973,30 +989,31 @@ def modify_push_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'modify_push_config' not in self._inner_api_calls: + if "modify_push_config" not in self._inner_api_calls: self._inner_api_calls[ - 'modify_push_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.modify_push_config, - default_retry=self._method_configs['ModifyPushConfig']. - retry, - default_timeout=self._method_configs['ModifyPushConfig']. - timeout, - client_info=self._client_info, - ) + "modify_push_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.modify_push_config, + default_retry=self._method_configs["ModifyPushConfig"].retry, + default_timeout=self._method_configs["ModifyPushConfig"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.ModifyPushConfigRequest( - subscription=subscription, - push_config=push_config, + subscription=subscription, push_config=push_config + ) + self._inner_api_calls["modify_push_config"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['modify_push_config']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_snapshots(self, - project, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def list_snapshots( + self, + project, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the existing snapshots.

ALPHA: This feature is part of an alpha release. This API might be @@ -1055,41 +1072,41 @@ def list_snapshots(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_snapshots' not in self._inner_api_calls: + if "list_snapshots" not in self._inner_api_calls: self._inner_api_calls[ - 'list_snapshots'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_snapshots, - default_retry=self._method_configs['ListSnapshots'].retry, - default_timeout=self._method_configs['ListSnapshots']. - timeout, - client_info=self._client_info, - ) + "list_snapshots" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_snapshots, + default_retry=self._method_configs["ListSnapshots"].retry, + default_timeout=self._method_configs["ListSnapshots"].timeout, + client_info=self._client_info, + ) - request = pubsub_pb2.ListSnapshotsRequest( - project=project, - page_size=page_size, - ) + request = pubsub_pb2.ListSnapshotsRequest(project=project, page_size=page_size) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_snapshots'], + self._inner_api_calls["list_snapshots"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='snapshots', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="snapshots", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def create_snapshot(self, - name, - subscription, - labels=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_snapshot( + self, + name, + subscription, + labels=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a snapshot from the requested subscription. ALPHA: This feature is part of an alpha release. This API might be changed in @@ -1151,30 +1168,31 @@ def create_snapshot(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_snapshot' not in self._inner_api_calls: + if "create_snapshot" not in self._inner_api_calls: self._inner_api_calls[ - 'create_snapshot'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_snapshot, - default_retry=self._method_configs['CreateSnapshot'].retry, - default_timeout=self._method_configs['CreateSnapshot']. - timeout, - client_info=self._client_info, - ) + "create_snapshot" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_snapshot, + default_retry=self._method_configs["CreateSnapshot"].retry, + default_timeout=self._method_configs["CreateSnapshot"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.CreateSnapshotRequest( - name=name, - subscription=subscription, - labels=labels, + name=name, subscription=subscription, labels=labels + ) + return self._inner_api_calls["create_snapshot"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_snapshot']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_snapshot(self, - snapshot, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def update_snapshot( + self, + snapshot, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an existing snapshot.

ALPHA: This feature is part of an alpha release. This API might be @@ -1226,28 +1244,30 @@ def update_snapshot(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_snapshot' not in self._inner_api_calls: + if "update_snapshot" not in self._inner_api_calls: self._inner_api_calls[ - 'update_snapshot'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_snapshot, - default_retry=self._method_configs['UpdateSnapshot'].retry, - default_timeout=self._method_configs['UpdateSnapshot']. - timeout, - client_info=self._client_info, - ) + "update_snapshot" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_snapshot, + default_retry=self._method_configs["UpdateSnapshot"].retry, + default_timeout=self._method_configs["UpdateSnapshot"].timeout, + client_info=self._client_info, + ) request = pubsub_pb2.UpdateSnapshotRequest( - snapshot=snapshot, - update_mask=update_mask, + snapshot=snapshot, update_mask=update_mask ) - return self._inner_api_calls['update_snapshot']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_snapshot(self, - snapshot, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_snapshot"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def delete_snapshot( + self, + snapshot, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Removes an existing snapshot.

ALPHA: This feature is part of an alpha release. This API might be @@ -1287,27 +1307,30 @@ def delete_snapshot(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_snapshot' not in self._inner_api_calls: + if "delete_snapshot" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_snapshot'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_snapshot, - default_retry=self._method_configs['DeleteSnapshot'].retry, - default_timeout=self._method_configs['DeleteSnapshot']. - timeout, - client_info=self._client_info, - ) + "delete_snapshot" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_snapshot, + default_retry=self._method_configs["DeleteSnapshot"].retry, + default_timeout=self._method_configs["DeleteSnapshot"].timeout, + client_info=self._client_info, + ) + + request = pubsub_pb2.DeleteSnapshotRequest(snapshot=snapshot) + self._inner_api_calls["delete_snapshot"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = pubsub_pb2.DeleteSnapshotRequest(snapshot=snapshot, ) - self._inner_api_calls['delete_snapshot']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def seek(self, - subscription, - time=None, - snapshot=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def seek( + self, + subscription, + time=None, + snapshot=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Seeks an existing subscription to a point in time or to a given snapshot, whichever is provided in the request.

@@ -1362,36 +1385,33 @@ def seek(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'seek' not in self._inner_api_calls: - self._inner_api_calls[ - 'seek'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.seek, - default_retry=self._method_configs['Seek'].retry, - default_timeout=self._method_configs['Seek'].timeout, - client_info=self._client_info, - ) + if "seek" not in self._inner_api_calls: + self._inner_api_calls["seek"] = google.api_core.gapic_v1.method.wrap_method( + self.transport.seek, + default_retry=self._method_configs["Seek"].retry, + default_timeout=self._method_configs["Seek"].timeout, + client_info=self._client_info, + ) # Sanity check: We have some fields which are mutually exclusive; # raise ValueError if more than one is sent. - google.api_core.protobuf_helpers.check_oneof( - time=time, - snapshot=snapshot, - ) + google.api_core.protobuf_helpers.check_oneof(time=time, snapshot=snapshot) request = pubsub_pb2.SeekRequest( - subscription=subscription, - time=time, - snapshot=snapshot, + subscription=subscription, time=time, snapshot=snapshot ) - return self._inner_api_calls['seek']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["seek"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy on the specified resource. Replaces any existing policy. @@ -1439,28 +1459,28 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy @@ -1499,26 +1519,29 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, @@ -1564,20 +1587,19 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions + ) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client_config.py b/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client_config.py index 536d6d34b2b5..8d85d8f6094d 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client_config.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/subscriber_client_config.py @@ -4,10 +4,12 @@ "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], "pull": [ - "DEADLINE_EXCEEDED", "INTERNAL", "RESOURCE_EXHAUSTED", - "UNAVAILABLE" + "DEADLINE_EXCEEDED", + "INTERNAL", + "RESOURCE_EXHAUSTED", + "UNAVAILABLE", ], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -17,7 +19,7 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, }, "messaging": { "initial_retry_delay_millis": 100, @@ -26,7 +28,7 @@ "initial_rpc_timeout_millis": 12000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 12000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, }, "streaming_messaging": { "initial_retry_delay_millis": 100, @@ -35,101 +37,101 @@ "initial_rpc_timeout_millis": 600000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 600000, - "total_timeout_millis": 600000 - } + "total_timeout_millis": 600000, + }, }, "methods": { "CreateSubscription": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetSubscription": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateSubscription": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListSubscriptions": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteSubscription": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ModifyAckDeadline": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "Acknowledge": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "messaging" + "retry_params_name": "messaging", }, "Pull": { "timeout_millis": 60000, "retry_codes_name": "pull", - "retry_params_name": "messaging" + "retry_params_name": "messaging", }, "StreamingPull": { "timeout_millis": 900000, "retry_codes_name": "pull", - "retry_params_name": "streaming_messaging" + "retry_params_name": "streaming_messaging", }, "ModifyPushConfig": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListSnapshots": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateSnapshot": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateSnapshot": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteSnapshot": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "Seek": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/pubsub/google/cloud/pubsub_v1/gapic/transports/publisher_grpc_transport.py b/pubsub/google/cloud/pubsub_v1/gapic/transports/publisher_grpc_transport.py index 3353208636bb..77016f503d9e 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/transports/publisher_grpc_transport.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/transports/publisher_grpc_transport.py @@ -28,17 +28,17 @@ class PublisherGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/pubsub', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub", ) - def __init__(self, - channel=None, - credentials=None, - address='pubsub.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="pubsub.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,29 +56,24 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'iam_policy_stub': iam_policy_pb2.IAMPolicyStub(channel), - 'publisher_stub': pubsub_pb2_grpc.PublisherStub(channel), + "iam_policy_stub": iam_policy_pb2.IAMPolicyStub(channel), + "publisher_stub": pubsub_pb2_grpc.PublisherStub(channel), } @classmethod - def create_channel(cls, - address='pubsub.googleapis.com:443', - credentials=None): + def create_channel(cls, address="pubsub.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -93,9 +88,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -119,7 +112,7 @@ def create_topic(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['publisher_stub'].CreateTopic + return self._stubs["publisher_stub"].CreateTopic @property def update_topic(self): @@ -133,7 +126,7 @@ def update_topic(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['publisher_stub'].UpdateTopic + return self._stubs["publisher_stub"].UpdateTopic @property def publish(self): @@ -147,7 +140,7 @@ def publish(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['publisher_stub'].Publish + return self._stubs["publisher_stub"].Publish @property def get_topic(self): @@ -160,7 +153,7 @@ def get_topic(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['publisher_stub'].GetTopic + return self._stubs["publisher_stub"].GetTopic @property def list_topics(self): @@ -173,7 +166,7 @@ def list_topics(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['publisher_stub'].ListTopics + return self._stubs["publisher_stub"].ListTopics @property def list_topic_subscriptions(self): @@ -186,7 +179,7 @@ def list_topic_subscriptions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['publisher_stub'].ListTopicSubscriptions + return self._stubs["publisher_stub"].ListTopicSubscriptions @property def delete_topic(self): @@ -204,7 +197,7 @@ def delete_topic(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['publisher_stub'].DeleteTopic + return self._stubs["publisher_stub"].DeleteTopic @property def set_iam_policy(self): @@ -218,7 +211,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].SetIamPolicy + return self._stubs["iam_policy_stub"].SetIamPolicy @property def get_iam_policy(self): @@ -233,7 +226,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].GetIamPolicy + return self._stubs["iam_policy_stub"].GetIamPolicy @property def test_iam_permissions(self): @@ -248,4 +241,4 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].TestIamPermissions + return self._stubs["iam_policy_stub"].TestIamPermissions diff --git a/pubsub/google/cloud/pubsub_v1/gapic/transports/subscriber_grpc_transport.py b/pubsub/google/cloud/pubsub_v1/gapic/transports/subscriber_grpc_transport.py index c2682b5a8f63..ddcb075a9d58 100644 --- a/pubsub/google/cloud/pubsub_v1/gapic/transports/subscriber_grpc_transport.py +++ b/pubsub/google/cloud/pubsub_v1/gapic/transports/subscriber_grpc_transport.py @@ -28,17 +28,17 @@ class SubscriberGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/pubsub', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/pubsub", ) - def __init__(self, - channel=None, - credentials=None, - address='pubsub.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="pubsub.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,29 +56,24 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'iam_policy_stub': iam_policy_pb2.IAMPolicyStub(channel), - 'subscriber_stub': pubsub_pb2_grpc.SubscriberStub(channel), + "iam_policy_stub": iam_policy_pb2.IAMPolicyStub(channel), + "subscriber_stub": pubsub_pb2_grpc.SubscriberStub(channel), } @classmethod - def create_channel(cls, - address='pubsub.googleapis.com:443', - credentials=None): + def create_channel(cls, address="pubsub.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -93,9 +88,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -127,7 +120,7 @@ def create_subscription(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].CreateSubscription + return self._stubs["subscriber_stub"].CreateSubscription @property def get_subscription(self): @@ -140,7 +133,7 @@ def get_subscription(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].GetSubscription + return self._stubs["subscriber_stub"].GetSubscription @property def update_subscription(self): @@ -154,7 +147,7 @@ def update_subscription(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].UpdateSubscription + return self._stubs["subscriber_stub"].UpdateSubscription @property def list_subscriptions(self): @@ -167,7 +160,7 @@ def list_subscriptions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].ListSubscriptions + return self._stubs["subscriber_stub"].ListSubscriptions @property def delete_subscription(self): @@ -185,7 +178,7 @@ def delete_subscription(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].DeleteSubscription + return self._stubs["subscriber_stub"].DeleteSubscription @property def modify_ack_deadline(self): @@ -202,7 +195,7 @@ def modify_ack_deadline(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].ModifyAckDeadline + return self._stubs["subscriber_stub"].ModifyAckDeadline @property def acknowledge(self): @@ -221,7 +214,7 @@ def acknowledge(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].Acknowledge + return self._stubs["subscriber_stub"].Acknowledge @property def pull(self): @@ -236,7 +229,7 @@ def pull(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].Pull + return self._stubs["subscriber_stub"].Pull @property def streaming_pull(self): @@ -255,7 +248,7 @@ def streaming_pull(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].StreamingPull + return self._stubs["subscriber_stub"].StreamingPull @property def modify_push_config(self): @@ -274,7 +267,7 @@ def modify_push_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].ModifyPushConfig + return self._stubs["subscriber_stub"].ModifyPushConfig @property def list_snapshots(self): @@ -290,7 +283,7 @@ def list_snapshots(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].ListSnapshots + return self._stubs["subscriber_stub"].ListSnapshots @property def create_snapshot(self): @@ -316,7 +309,7 @@ def create_snapshot(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].CreateSnapshot + return self._stubs["subscriber_stub"].CreateSnapshot @property def update_snapshot(self): @@ -333,7 +326,7 @@ def update_snapshot(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].UpdateSnapshot + return self._stubs["subscriber_stub"].UpdateSnapshot @property def delete_snapshot(self): @@ -353,7 +346,7 @@ def delete_snapshot(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].DeleteSnapshot + return self._stubs["subscriber_stub"].DeleteSnapshot @property def seek(self): @@ -370,7 +363,7 @@ def seek(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['subscriber_stub'].Seek + return self._stubs["subscriber_stub"].Seek @property def set_iam_policy(self): @@ -384,7 +377,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].SetIamPolicy + return self._stubs["iam_policy_stub"].SetIamPolicy @property def get_iam_policy(self): @@ -399,7 +392,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].GetIamPolicy + return self._stubs["iam_policy_stub"].GetIamPolicy @property def test_iam_permissions(self): @@ -414,4 +407,4 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['iam_policy_stub'].TestIamPermissions + return self._stubs["iam_policy_stub"].TestIamPermissions diff --git a/pubsub/google/cloud/pubsub_v1/publisher/__init__.py b/pubsub/google/cloud/pubsub_v1/publisher/__init__.py index ca5f04d582c2..688ee744b7b4 100644 --- a/pubsub/google/cloud/pubsub_v1/publisher/__init__.py +++ b/pubsub/google/cloud/pubsub_v1/publisher/__init__.py @@ -17,6 +17,4 @@ from google.cloud.pubsub_v1.publisher.client import Client -__all__ = ( - 'Client', -) +__all__ = ("Client",) diff --git a/pubsub/google/cloud/pubsub_v1/publisher/_batch/base.py b/pubsub/google/cloud/pubsub_v1/publisher/_batch/base.py index ac1f7ef7fe0e..4dc6ceec6a80 100644 --- a/pubsub/google/cloud/pubsub_v1/publisher/_batch/base.py +++ b/pubsub/google/cloud/pubsub_v1/publisher/_batch/base.py @@ -45,6 +45,7 @@ class Batch(object): regardless of how much is in it. However, if either the message count or size thresholds are encountered first, then the batch will commit early. """ + def __len__(self): """Return the number of messages currently in the batch.""" return len(self.messages) @@ -157,8 +158,9 @@ class BatchStatus(object): class; this represents the list of statuses where the existing library hooks in functionality. """ - ACCEPTING_MESSAGES = 'accepting messages' - STARTING = 'starting' - IN_PROGRESS = 'in progress' - ERROR = 'error' - SUCCESS = 'success' + + ACCEPTING_MESSAGES = "accepting messages" + STARTING = "starting" + IN_PROGRESS = "in progress" + ERROR = "error" + SUCCESS = "success" diff --git a/pubsub/google/cloud/pubsub_v1/publisher/_batch/thread.py b/pubsub/google/cloud/pubsub_v1/publisher/_batch/thread.py index b59b8a3cafd8..f187024b7cf7 100644 --- a/pubsub/google/cloud/pubsub_v1/publisher/_batch/thread.py +++ b/pubsub/google/cloud/pubsub_v1/publisher/_batch/thread.py @@ -28,10 +28,7 @@ _LOGGER = logging.getLogger(__name__) -_CAN_COMMIT = ( - base.BatchStatus.ACCEPTING_MESSAGES, - base.BatchStatus.STARTING, -) +_CAN_COMMIT = (base.BatchStatus.ACCEPTING_MESSAGES, base.BatchStatus.STARTING) class Batch(base.Batch): @@ -68,6 +65,7 @@ class Batch(base.Batch): has elapsed. Defaults to True unless ``settings.max_latency`` is inf. """ + def __init__(self, client, topic, settings, autocommit=True): self._client = client self._topic = topic @@ -84,10 +82,9 @@ def __init__(self, client, topic, settings, autocommit=True): # If max latency is specified, start a thread to monitor the batch and # commit when the max latency is reached. self._thread = None - if autocommit and self._settings.max_latency < float('inf'): + if autocommit and self._settings.max_latency < float("inf"): self._thread = threading.Thread( - name='Thread-MonitorBatchPublisher', - target=self.monitor, + name="Thread-MonitorBatchPublisher", target=self.monitor ) self._thread.start() @@ -164,8 +161,7 @@ def commit(self): # Start a new thread to actually handle the commit. commit_thread = threading.Thread( - name='Thread-CommitBatchPublisher', - target=self._commit, + name="Thread-CommitBatchPublisher", target=self._commit ) commit_thread.start() @@ -188,12 +184,12 @@ def _commit(self): # If, in the intervening period between when this method was # called and now, the batch started to be committed, or # completed a commit, then no-op at this point. - _LOGGER.debug('Batch is already in progress, exiting commit') + _LOGGER.debug("Batch is already in progress, exiting commit") return # Sanity check: If there are no messages, no-op. if not self._messages: - _LOGGER.debug('No messages to publish, exiting commit') + _LOGGER.debug("No messages to publish, exiting commit") self._status = base.BatchStatus.SUCCESS return @@ -202,10 +198,7 @@ def _commit(self): start = time.time() try: - response = self._client.api.publish( - self._topic, - self._messages, - ) + response = self._client.api.publish(self._topic, self._messages) except google.api_core.exceptions.GoogleAPICallError as exc: # We failed to publish, set the exception on all futures and # exit. @@ -214,12 +207,11 @@ def _commit(self): for future in self._futures: future.set_exception(exc) - _LOGGER.exception( - 'Failed to publish %s messages.', len(self._futures)) + _LOGGER.exception("Failed to publish %s messages.", len(self._futures)) return end = time.time() - _LOGGER.debug('gRPC Publish took %s seconds.', end - start) + _LOGGER.debug("gRPC Publish took %s seconds.", end - start) if len(response.message_ids) == len(self._futures): # Iterate over the futures on the queue and return the response @@ -234,14 +226,17 @@ def _commit(self): # the number of futures I have, then something went wrong. self._status = base.BatchStatus.ERROR exception = exceptions.PublishError( - 'Some messages were not successfully published.') + "Some messages were not successfully published." + ) for future in self._futures: future.set_exception(exception) _LOGGER.error( - 'Only %s of %s messages were published.', - len(response.message_ids), len(self._futures)) + "Only %s of %s messages were published.", + len(response.message_ids), + len(self._futures), + ) def monitor(self): """Commit this batch after sufficient time has elapsed. @@ -255,7 +250,7 @@ def monitor(self): # Sleep for however long we should be waiting. time.sleep(self._settings.max_latency) - _LOGGER.debug('Monitor is waking up') + _LOGGER.debug("Monitor is waking up") return self._commit() def publish(self, message): @@ -289,8 +284,8 @@ def publish(self, message): new_size = self._size + message.ByteSize() new_count = len(self._messages) + 1 overflow = ( - new_size > self.settings.max_bytes or - new_count >= self._settings.max_messages + new_size > self.settings.max_bytes + or new_count >= self._settings.max_messages ) if not self._messages or not overflow: diff --git a/pubsub/google/cloud/pubsub_v1/publisher/client.py b/pubsub/google/cloud/pubsub_v1/publisher/client.py index 670000f7fc69..45b230e34eab 100644 --- a/pubsub/google/cloud/pubsub_v1/publisher/client.py +++ b/pubsub/google/cloud/pubsub_v1/publisher/client.py @@ -30,17 +30,16 @@ from google.cloud.pubsub_v1.publisher._batch import thread -__version__ = pkg_resources.get_distribution('google-cloud-pubsub').version +__version__ = pkg_resources.get_distribution("google-cloud-pubsub").version _BLACKLISTED_METHODS = ( - 'publish', - 'from_service_account_file', - 'from_service_account_json', + "publish", + "from_service_account_file", + "from_service_account_json", ) -@_gapic.add_methods( - publisher_client.PublisherClient, blacklist=_BLACKLISTED_METHODS) +@_gapic.add_methods(publisher_client.PublisherClient, blacklist=_BLACKLISTED_METHODS) class Client(object): """A publisher client for Google Cloud Pub/Sub. @@ -59,28 +58,29 @@ class Client(object): be added if ``credentials`` are passed explicitly or if the Pub / Sub emulator is detected as running. """ + _batch_class = thread.Batch def __init__(self, batch_settings=(), **kwargs): # Sanity check: Is our goal to use the emulator? # If so, create a grpc insecure channel with the emulator host # as the target. - if os.environ.get('PUBSUB_EMULATOR_HOST'): - kwargs['channel'] = grpc.insecure_channel( - target=os.environ.get('PUBSUB_EMULATOR_HOST'), + if os.environ.get("PUBSUB_EMULATOR_HOST"): + kwargs["channel"] = grpc.insecure_channel( + target=os.environ.get("PUBSUB_EMULATOR_HOST") ) # Use a custom channel. # We need this in order to set appropriate default message size and # keepalive options. - if 'channel' not in kwargs: - kwargs['channel'] = grpc_helpers.create_channel( - credentials=kwargs.pop('credentials', None), + if "channel" not in kwargs: + kwargs["channel"] = grpc_helpers.create_channel( + credentials=kwargs.pop("credentials", None), target=self.target, scopes=publisher_client.PublisherClient._DEFAULT_SCOPES, options={ - 'grpc.max_send_message_length': -1, - 'grpc.max_receive_message_length': -1, + "grpc.max_send_message_length": -1, + "grpc.max_receive_message_length": -1, }.items(), ) @@ -109,9 +109,8 @@ def from_service_account_file(cls, filename, batch_settings=(), **kwargs): Returns: PublisherClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(batch_settings, **kwargs) from_service_account_json = from_service_account_file @@ -204,8 +203,7 @@ def publish(self, topic, data, **attrs): # If it is literally anything else, complain loudly about it. if not isinstance(data, six.binary_type): raise TypeError( - 'Data being published to Pub/Sub must be sent ' - 'as a bytestring.' + "Data being published to Pub/Sub must be sent " "as a bytestring." ) # Coerce all attributes to text strings. @@ -213,11 +211,11 @@ def publish(self, topic, data, **attrs): if isinstance(v, six.text_type): continue if isinstance(v, six.binary_type): - attrs[k] = v.decode('utf-8') + attrs[k] = v.decode("utf-8") continue raise TypeError( - 'All attributes being published to Pub/Sub must ' - 'be sent as text strings.' + "All attributes being published to Pub/Sub must " + "be sent as text strings." ) # Create the Pub/Sub message object. diff --git a/pubsub/google/cloud/pubsub_v1/publisher/exceptions.py b/pubsub/google/cloud/pubsub_v1/publisher/exceptions.py index b6bb0256966f..adbfaaaa1ee1 100644 --- a/pubsub/google/cloud/pubsub_v1/publisher/exceptions.py +++ b/pubsub/google/cloud/pubsub_v1/publisher/exceptions.py @@ -22,7 +22,4 @@ class PublishError(GoogleAPICallError): pass -__all__ = ( - 'PublishError', - 'TimeoutError', -) +__all__ = ("PublishError", "TimeoutError") diff --git a/pubsub/google/cloud/pubsub_v1/publisher/futures.py b/pubsub/google/cloud/pubsub_v1/publisher/futures.py index 9c0e93120bc5..a47f50e00a0d 100644 --- a/pubsub/google/cloud/pubsub_v1/publisher/futures.py +++ b/pubsub/google/cloud/pubsub_v1/publisher/futures.py @@ -35,6 +35,7 @@ class Future(futures.Future): used. If this argument is not provided, then a new :class:`threading.Event` will be created and used. """ + # The publishing-side subclass does not need any special behavior # at this time. # @@ -44,6 +45,4 @@ class Future(futures.Future): pass -__all__ = ( - 'Future', -) +__all__ = ("Future",) diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/__init__.py b/pubsub/google/cloud/pubsub_v1/subscriber/__init__.py index d82e3da96286..a444c3ea7571 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/__init__.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/__init__.py @@ -17,6 +17,4 @@ from google.cloud.pubsub_v1.subscriber.client import Client -__all__ = ( - 'Client', -) +__all__ = ("Client",) diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/dispatcher.py b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/dispatcher.py index c70f8531a817..e41341afab3d 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/dispatcher.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/dispatcher.py @@ -24,7 +24,7 @@ _LOGGER = logging.getLogger(__name__) -_CALLBACK_WORKER_NAME = 'Thread-CallbackRequestDispatcher' +_CALLBACK_WORKER_NAME = "Thread-CallbackRequestDispatcher" class Dispatcher(object): @@ -40,23 +40,20 @@ def start(self): """ with self._operational_lock: if self._thread is not None: - raise ValueError('Dispatcher is already running.') + raise ValueError("Dispatcher is already running.") flow_control = self._manager.flow_control worker = helper_threads.QueueCallbackWorker( self._queue, self.dispatch_callback, max_items=flow_control.max_request_batch_size, - max_latency=flow_control.max_request_batch_latency + max_latency=flow_control.max_request_batch_latency, ) # Create and start the helper thread. - thread = threading.Thread( - name=_CALLBACK_WORKER_NAME, - target=worker, - ) + thread = threading.Thread(name=_CALLBACK_WORKER_NAME, target=worker) thread.daemon = True thread.start() - _LOGGER.debug('Started helper thread %s', thread.name) + _LOGGER.debug("Started helper thread %s", thread.name) self._thread = thread def stop(self): @@ -88,13 +85,12 @@ def dispatch_callback(self, items): for item in items: batched_commands[item.__class__].append(item) - _LOGGER.debug('Handling %d batched requests', len(items)) + _LOGGER.debug("Handling %d batched requests", len(items)) if batched_commands[requests.LeaseRequest]: self.lease(batched_commands.pop(requests.LeaseRequest)) if batched_commands[requests.ModAckRequest]: - self.modify_ack_deadline( - batched_commands.pop(requests.ModAckRequest)) + self.modify_ack_deadline(batched_commands.pop(requests.ModAckRequest)) # Note: Drop and ack *must* be after lease. It's possible to get both # the lease the and ack/drop request in the same batch. if batched_commands[requests.AckRequest]: @@ -151,8 +147,7 @@ def modify_ack_deadline(self, items): seconds = [item.seconds for item in items] request = types.StreamingPullRequest( - modify_deadline_ack_ids=ack_ids, - modify_deadline_seconds=seconds, + modify_deadline_ack_ids=ack_ids, modify_deadline_seconds=seconds ) self._manager.send(request) @@ -162,8 +157,7 @@ def nack(self, items): Args: items(Sequence[NackRequest]): The items to deny. """ - self.modify_ack_deadline([ - requests.ModAckRequest(ack_id=item.ack_id, seconds=0) - for item in items]) - self.drop( - [requests.DropRequest(*item) for item in items]) + self.modify_ack_deadline( + [requests.ModAckRequest(ack_id=item.ack_id, seconds=0) for item in items] + ) + self.drop([requests.DropRequest(*item) for item in items]) diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/heartbeater.py b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/heartbeater.py index 38d2ae8dc505..9cd84a1e2397 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/heartbeater.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/heartbeater.py @@ -19,7 +19,7 @@ _LOGGER = logging.getLogger(__name__) -_HEARTBEAT_WORKER_NAME = 'Thread-Heartbeater' +_HEARTBEAT_WORKER_NAME = "Thread-Heartbeater" # How often to send heartbeats in seconds. Determined as half the period of # time where the Pub/Sub server will close the stream as inactive, which is # 60 seconds. @@ -38,24 +38,24 @@ def heartbeat(self): """Periodically send heartbeats.""" while self._manager.is_active and not self._stop_event.is_set(): self._manager.heartbeat() - _LOGGER.debug('Sent heartbeat.') + _LOGGER.debug("Sent heartbeat.") self._stop_event.wait(timeout=self._period) - _LOGGER.info('%s exiting.', _HEARTBEAT_WORKER_NAME) + _LOGGER.info("%s exiting.", _HEARTBEAT_WORKER_NAME) def start(self): with self._operational_lock: if self._thread is not None: - raise ValueError('Heartbeater is already running.') + raise ValueError("Heartbeater is already running.") # Create and start the helper thread. self._stop_event.clear() thread = threading.Thread( - name=_HEARTBEAT_WORKER_NAME, - target=self.heartbeat) + name=_HEARTBEAT_WORKER_NAME, target=self.heartbeat + ) thread.daemon = True thread.start() - _LOGGER.debug('Started helper thread %s', thread.name) + _LOGGER.debug("Started helper thread %s", thread.name) self._thread = thread def stop(self): diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/helper_threads.py b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/helper_threads.py index edb22d14fea5..80ad58738cd1 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/helper_threads.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/helper_threads.py @@ -19,10 +19,7 @@ from six.moves import queue -__all__ = ( - 'QueueCallbackWorker', - 'STOP', -) +__all__ = ("QueueCallbackWorker", "STOP") _LOGGER = logging.getLogger(__name__) @@ -94,14 +91,13 @@ def __call__(self): continue_ = True while continue_: items = _get_many( - self.queue, - max_items=self.max_items, - max_latency=self.max_latency) + self.queue, max_items=self.max_items, max_latency=self.max_latency + ) # If stop is in the items, process all items up to STOP and then # exit. try: - items = items[:items.index(STOP)] + items = items[: items.index(STOP)] continue_ = False except ValueError: pass @@ -111,6 +107,6 @@ def __call__(self): try: self._callback(items) except Exception as exc: - _LOGGER.exception('Error in queue callback worker: %s', exc) + _LOGGER.exception("Error in queue callback worker: %s", exc) - _LOGGER.debug('Exiting the QueueCallbackWorker.') + _LOGGER.debug("Exiting the QueueCallbackWorker.") diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/histogram.py b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/histogram.py index 46a8c3f1a2c0..29ee6fc61685 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/histogram.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/histogram.py @@ -30,6 +30,7 @@ class Histogram(object): values outside the range of ``10 <= x <= 600`` are stored as ``10`` or ``600``, since these are the boundaries of leases in the actual API. """ + def __init__(self, data=None): """Instantiate the histogram. @@ -74,10 +75,8 @@ def __contains__(self, needle): return needle in self._data def __repr__(self): - return ''.format( - len=len(self), - max=self.max, - min=self.min, + return "".format( + len=len(self), max=self.max, min=self.min ) @property diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/leaser.py b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/leaser.py index c3ef6565587a..bcb73352b537 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/leaser.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/leaser.py @@ -27,12 +27,10 @@ _LOGGER = logging.getLogger(__name__) -_LEASE_WORKER_NAME = 'Thread-LeaseMaintainer' +_LEASE_WORKER_NAME = "Thread-LeaseMaintainer" -_LeasedMessage = collections.namedtuple( - '_LeasedMessage', - ['added_time', 'size']) +_LeasedMessage = collections.namedtuple("_LeasedMessage", ["added_time", "size"]) class Leaser(object): @@ -71,12 +69,11 @@ def add(self, items): # the size counter. if item.ack_id not in self._leased_messages: self._leased_messages[item.ack_id] = _LeasedMessage( - added_time=time.time(), - size=item.byte_size) + added_time=time.time(), size=item.byte_size + ) self._bytes += item.byte_size else: - _LOGGER.debug( - 'Message %s is already lease managed', item.ack_id) + _LOGGER.debug("Message %s is already lease managed", item.ack_id) def remove(self, items): """Remove messages from lease management.""" @@ -86,11 +83,10 @@ def remove(self, items): if self._leased_messages.pop(item.ack_id, None) is not None: self._bytes -= item.byte_size else: - _LOGGER.debug('Item %s was not managed.', item.ack_id) + _LOGGER.debug("Item %s was not managed.", item.ack_id) if self._bytes < 0: - _LOGGER.debug( - 'Bytes was unexpectedly negative: %d', self._bytes) + _LOGGER.debug("Bytes was unexpectedly negative: %d", self._bytes) self._bytes = 0 def maintain_leases(self): @@ -105,7 +101,7 @@ def maintain_leases(self): # based off of how long previous messages have taken to ack, with # a sensible default and within the ranges allowed by Pub/Sub. p99 = self._manager.ack_histogram.percentile(99) - _LOGGER.debug('The current p99 value is %d seconds.', p99) + _LOGGER.debug("The current p99 value is %d seconds.", p99) # Make a copy of the leased messages. This is needed because it's # possible for another thread to modify the dictionary while @@ -115,19 +111,17 @@ def maintain_leases(self): # Drop any leases that are well beyond max lease time. This # ensures that in the event of a badly behaving actor, we can # drop messages and allow Pub/Sub to resend them. - cutoff = ( - time.time() - - self._manager.flow_control.max_lease_duration) + cutoff = time.time() - self._manager.flow_control.max_lease_duration to_drop = [ requests.DropRequest(ack_id, item.size) - for ack_id, item - in six.iteritems(leased_messages) - if item.added_time < cutoff] + for ack_id, item in six.iteritems(leased_messages) + if item.added_time < cutoff + ] if to_drop: _LOGGER.warning( - 'Dropping %s items because they were leased too long.', - len(to_drop)) + "Dropping %s items because they were leased too long.", len(to_drop) + ) self._manager.dispatcher.drop(to_drop) # Remove dropped items from our copy of the leased messages (they @@ -141,15 +135,16 @@ def maintain_leases(self): # because it is more efficient to make a single request. ack_ids = leased_messages.keys() if ack_ids: - _LOGGER.debug('Renewing lease for %d ack IDs.', len(ack_ids)) + _LOGGER.debug("Renewing lease for %d ack IDs.", len(ack_ids)) # NOTE: This may not work as expected if ``consumer.active`` # has changed since we checked it. An implementation # without any sort of race condition would require a # way for ``send_request`` to fail when the consumer # is inactive. - self._manager.dispatcher.modify_ack_deadline([ - requests.ModAckRequest(ack_id, p99) for ack_id in ack_ids]) + self._manager.dispatcher.modify_ack_deadline( + [requests.ModAckRequest(ack_id, p99) for ack_id in ack_ids] + ) # Now wait an appropriate period of time and do this again. # @@ -158,24 +153,24 @@ def maintain_leases(self): # jitter (http://bit.ly/2s2ekL7) helps decrease contention in cases # where there are many clients. snooze = random.uniform(0.0, p99 * 0.9) - _LOGGER.debug('Snoozing lease management for %f seconds.', snooze) + _LOGGER.debug("Snoozing lease management for %f seconds.", snooze) self._stop_event.wait(timeout=snooze) - _LOGGER.info('%s exiting.', _LEASE_WORKER_NAME) + _LOGGER.info("%s exiting.", _LEASE_WORKER_NAME) def start(self): with self._operational_lock: if self._thread is not None: - raise ValueError('Leaser is already running.') + raise ValueError("Leaser is already running.") # Create and start the helper thread. self._stop_event.clear() thread = threading.Thread( - name=_LEASE_WORKER_NAME, - target=self.maintain_leases) + name=_LEASE_WORKER_NAME, target=self.maintain_leases + ) thread.daemon = True thread.start() - _LOGGER.debug('Started helper thread %s', thread.name) + _LOGGER.debug("Started helper thread %s", thread.name) self._thread = thread def stop(self): diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/requests.py b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/requests.py index 6e042e080648..ac1df0af8eff 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/requests.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/requests.py @@ -21,26 +21,13 @@ # Namedtuples for management requests. Used by the Message class to communicate # items of work back to the policy. AckRequest = collections.namedtuple( - 'AckRequest', - ['ack_id', 'byte_size', 'time_to_ack'], + "AckRequest", ["ack_id", "byte_size", "time_to_ack"] ) -DropRequest = collections.namedtuple( - 'DropRequest', - ['ack_id', 'byte_size'], -) +DropRequest = collections.namedtuple("DropRequest", ["ack_id", "byte_size"]) -LeaseRequest = collections.namedtuple( - 'LeaseRequest', - ['ack_id', 'byte_size'], -) +LeaseRequest = collections.namedtuple("LeaseRequest", ["ack_id", "byte_size"]) -ModAckRequest = collections.namedtuple( - 'ModAckRequest', - ['ack_id', 'seconds'], -) +ModAckRequest = collections.namedtuple("ModAckRequest", ["ack_id", "seconds"]) -NackRequest = collections.namedtuple( - 'NackRequest', - ['ack_id', 'byte_size'], -) +NackRequest = collections.namedtuple("NackRequest", ["ack_id", "byte_size"]) diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py index 5a7c7d754262..d8d94384c67e 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py @@ -34,13 +34,13 @@ import google.cloud.pubsub_v1.subscriber.scheduler _LOGGER = logging.getLogger(__name__) -_RPC_ERROR_THREAD_NAME = 'Thread-OnRpcTerminated' +_RPC_ERROR_THREAD_NAME = "Thread-OnRpcTerminated" _RETRYABLE_STREAM_ERRORS = ( exceptions.DeadlineExceeded, exceptions.ServiceUnavailable, exceptions.InternalServerError, exceptions.Unknown, - exceptions.GatewayTimeout + exceptions.GatewayTimeout, ) @@ -66,8 +66,8 @@ def _wrap_callback_errors(callback, message): # a message to a queue, so if this doesn't work the world is in an # unrecoverable state and this thread should just bail. _LOGGER.exception( - 'Top-level exception occurred in callback while processing a ' - 'message') + "Top-level exception occurred in callback while processing a " "message" + ) message.nack() @@ -92,8 +92,9 @@ class StreamingPullManager(object): """If set to True, this class will make requests over a separate unary RPC instead of over the streaming RPC.""" - def __init__(self, client, subscription, flow_control=types.FlowControl(), - scheduler=None): + def __init__( + self, client, subscription, flow_control=types.FlowControl(), scheduler=None + ): self._client = client self._subscription = subscription self._flow_control = flow_control @@ -108,7 +109,8 @@ def __init__(self, client, subscription, flow_control=types.FlowControl(), if scheduler is None: self._scheduler = ( - google.cloud.pubsub_v1.subscriber.scheduler.ThreadScheduler()) + google.cloud.pubsub_v1.subscriber.scheduler.ThreadScheduler() + ) else: self._scheduler = scheduler @@ -165,10 +167,7 @@ def ack_deadline(self): Returns: int: The ack deadline. """ - target = min([ - self._last_histogram_size * 2, - self._last_histogram_size + 100, - ]) + target = min([self._last_histogram_size * 2, self._last_histogram_size + 100]) if len(self.ack_histogram) > target: self._ack_deadline = self.ack_histogram.percentile(percent=99) return self._ack_deadline @@ -193,10 +192,12 @@ def load(self): if self._leaser is None: return 0 - return max([ - self._leaser.message_count / self._flow_control.max_messages, - self._leaser.bytes / self._flow_control.max_bytes, - ]) + return max( + [ + self._leaser.message_count / self._flow_control.max_messages, + self._leaser.bytes / self._flow_control.max_bytes, + ] + ) def add_close_callback(self, callback): """Schedules a callable when the manager closes. @@ -210,8 +211,7 @@ def maybe_pause_consumer(self): """Check the current load and pause the consumer if needed.""" if self.load >= 1.0: if self._consumer is not None and not self._consumer.is_paused: - _LOGGER.debug( - 'Message backlog over load at %.2f, pausing.', self.load) + _LOGGER.debug("Message backlog over load at %.2f, pausing.", self.load) self._consumer.pause() def maybe_resume_consumer(self): @@ -228,7 +228,7 @@ def maybe_resume_consumer(self): if self.load < self.flow_control.resume_threshold: self._consumer.resume() else: - _LOGGER.debug('Did not resume, current load is %s', self.load) + _LOGGER.debug("Did not resume, current load is %s", self.load) def _send_unary_request(self, request): """Send a request using a separate unary request instead of over the @@ -240,8 +240,8 @@ def _send_unary_request(self, request): """ if request.ack_ids: self._client.acknowledge( - subscription=self._subscription, - ack_ids=list(request.ack_ids)) + subscription=self._subscription, ack_ids=list(request.ack_ids) + ) if request.modify_deadline_ack_ids: # Send ack_ids with the same deadline seconds together. @@ -255,9 +255,10 @@ def _send_unary_request(self, request): self._client.modify_ack_deadline( subscription=self._subscription, ack_ids=ack_ids, - ack_deadline_seconds=deadline) + ack_deadline_seconds=deadline, + ) - _LOGGER.debug('Sent request(s) over unary RPC.') + _LOGGER.debug("Sent request(s) over unary RPC.") def send(self, request): """Queue a request to be sent to the RPC.""" @@ -266,9 +267,10 @@ def send(self, request): self._send_unary_request(request) except exceptions.GoogleAPICallError: _LOGGER.debug( - 'Exception while sending unary RPC. This is typically ' - 'non-fatal as stream requests are best-effort.', - exc_info=True) + "Exception while sending unary RPC. This is typically " + "non-fatal as stream requests are best-effort.", + exc_info=True, + ) else: self._rpc.send(request) @@ -290,11 +292,10 @@ def open(self, callback): stream. """ if self.is_active: - raise ValueError('This manager is already open.') + raise ValueError("This manager is already open.") if self._closed: - raise ValueError( - 'This manager has been closed and can not be re-used.') + raise ValueError("This manager has been closed and can not be re-used.") self._callback = functools.partial(_wrap_callback_errors, callback) @@ -302,13 +303,13 @@ def open(self, callback): self._rpc = bidi.ResumableBidiRpc( start_rpc=self._client.api.streaming_pull, initial_request=self._get_initial_request, - should_recover=self._should_recover) + should_recover=self._should_recover, + ) self._rpc.add_done_callback(self._on_rpc_done) # Create references to threads self._dispatcher = dispatcher.Dispatcher(self, self._scheduler.queue) - self._consumer = bidi.BackgroundConsumer( - self._rpc, self._on_response) + self._consumer = bidi.BackgroundConsumer(self._rpc, self._on_response) self._leaser = leaser.Leaser(self) self._heartbeater = heartbeater.Heartbeater(self) @@ -340,27 +341,27 @@ def close(self, reason=None): # Stop consuming messages. if self.is_active: - _LOGGER.debug('Stopping consumer.') + _LOGGER.debug("Stopping consumer.") self._consumer.stop() self._consumer = None # Shutdown all helper threads - _LOGGER.debug('Stopping scheduler.') + _LOGGER.debug("Stopping scheduler.") self._scheduler.shutdown() self._scheduler = None - _LOGGER.debug('Stopping leaser.') + _LOGGER.debug("Stopping leaser.") self._leaser.stop() self._leaser = None - _LOGGER.debug('Stopping dispatcher.') + _LOGGER.debug("Stopping dispatcher.") self._dispatcher.stop() self._dispatcher = None - _LOGGER.debug('Stopping heartbeater.') + _LOGGER.debug("Stopping heartbeater.") self._heartbeater.stop() self._heartbeater = None self._rpc = None self._closed = True - _LOGGER.debug('Finished stopping manager.') + _LOGGER.debug("Finished stopping manager.") for callback in self._close_callbacks: callback(self, reason) @@ -410,22 +411,20 @@ def _on_response(self, response): """ _LOGGER.debug( - 'Scheduling callbacks for %s messages.', - len(response.received_messages)) + "Scheduling callbacks for %s messages.", len(response.received_messages) + ) # Immediately modack the messages we received, as this tells the server # that we've received them. items = [ - requests.ModAckRequest( - message.ack_id, self._ack_histogram.percentile(99)) + requests.ModAckRequest(message.ack_id, self._ack_histogram.percentile(99)) for message in response.received_messages ] self._dispatcher.modify_ack_deadline(items) for received_message in response.received_messages: message = google.cloud.pubsub_v1.subscriber.message.Message( - received_message.message, - received_message.ack_id, - self._scheduler.queue) + received_message.message, received_message.ack_id, self._scheduler.queue + ) # TODO: Immediately lease instead of using the callback queue. self._scheduler.schedule(self._callback, message) @@ -446,9 +445,9 @@ def _should_recover(self, exception): # If this is in the list of idempotent exceptions, then we want to # recover. if isinstance(exception, _RETRYABLE_STREAM_ERRORS): - _LOGGER.info('Observed recoverable stream error %s', exception) + _LOGGER.info("Observed recoverable stream error %s", exception) return True - _LOGGER.info('Observed non-recoverable stream error %s', exception) + _LOGGER.info("Observed non-recoverable stream error %s", exception) return False def _on_rpc_done(self, future): @@ -462,12 +461,10 @@ def _on_rpc_done(self, future): with shutting everything down. This is to prevent blocking in the background consumer and preventing it from being ``joined()``. """ - _LOGGER.info( - 'RPC termination has signaled streaming pull manager shutdown.') + _LOGGER.info("RPC termination has signaled streaming pull manager shutdown.") future = _maybe_wrap_exception(future) thread = threading.Thread( - name=_RPC_ERROR_THREAD_NAME, - target=self.close, - kwargs={'reason': future}) + name=_RPC_ERROR_THREAD_NAME, target=self.close, kwargs={"reason": future} + ) thread.daemon = True thread.start() diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/client.py b/pubsub/google/cloud/pubsub_v1/subscriber/client.py index 226b7bf344f8..b50a269e99f0 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/client.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/client.py @@ -29,17 +29,16 @@ from google.cloud.pubsub_v1.subscriber._protocol import streaming_pull_manager -__version__ = pkg_resources.get_distribution('google-cloud-pubsub').version +__version__ = pkg_resources.get_distribution("google-cloud-pubsub").version _BLACKLISTED_METHODS = ( - 'publish', - 'from_service_account_file', - 'from_service_account_json', + "publish", + "from_service_account_file", + "from_service_account_json", ) -@_gapic.add_methods( - subscriber_client.SubscriberClient, blacklist=_BLACKLISTED_METHODS) +@_gapic.add_methods(subscriber_client.SubscriberClient, blacklist=_BLACKLISTED_METHODS) class Client(object): """A subscriber client for Google Cloud Pub/Sub. @@ -54,27 +53,28 @@ class Client(object): Generally, you should not need to set additional keyword arguments. """ + def __init__(self, **kwargs): # Sanity check: Is our goal to use the emulator? # If so, create a grpc insecure channel with the emulator host # as the target. - if os.environ.get('PUBSUB_EMULATOR_HOST'): - kwargs['channel'] = grpc.insecure_channel( - target=os.environ.get('PUBSUB_EMULATOR_HOST'), + if os.environ.get("PUBSUB_EMULATOR_HOST"): + kwargs["channel"] = grpc.insecure_channel( + target=os.environ.get("PUBSUB_EMULATOR_HOST") ) # Use a custom channel. # We need this in order to set appropriate default message size and # keepalive options. - if 'channel' not in kwargs: - kwargs['channel'] = grpc_helpers.create_channel( - credentials=kwargs.pop('credentials', None), + if "channel" not in kwargs: + kwargs["channel"] = grpc_helpers.create_channel( + credentials=kwargs.pop("credentials", None), target=self.target, scopes=subscriber_client.SubscriberClient._DEFAULT_SCOPES, options={ - 'grpc.max_send_message_length': -1, - 'grpc.max_receive_message_length': -1, - 'grpc.keepalive_time_ms': 30000, + "grpc.max_send_message_length": -1, + "grpc.max_receive_message_length": -1, + "grpc.keepalive_time_ms": 30000, }.items(), ) @@ -95,9 +95,8 @@ def from_service_account_file(cls, filename, **kwargs): Returns: PublisherClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(**kwargs) from_service_account_json = from_service_account_file @@ -116,9 +115,7 @@ def api(self): """The underlying gapic API client.""" return self._api - def subscribe( - self, subscription, callback, flow_control=(), - scheduler=None): + def subscribe(self, subscription, callback, flow_control=(), scheduler=None): """Asynchronously start receiving messages on a given subscription. This method starts a background thread to begin pulling messages from @@ -198,7 +195,8 @@ def callback(message): flow_control = types.FlowControl(*flow_control) manager = streaming_pull_manager.StreamingPullManager( - self, subscription, flow_control=flow_control, scheduler=scheduler) + self, subscription, flow_control=flow_control, scheduler=scheduler + ) future = futures.StreamingPullFuture(manager) diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/message.py b/pubsub/google/cloud/pubsub_v1/subscriber/message.py index 6772f196bf60..56dde9a7f6b8 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/message.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/message.py @@ -30,7 +30,7 @@ }}""" -def _indent(lines, prefix=' '): +def _indent(lines, prefix=" "): """Indent some text. Note that this is present as ``textwrap.indent``, but not in Python 2. @@ -44,9 +44,9 @@ def _indent(lines, prefix=' '): str: The newly indented content. """ indented = [] - for line in lines.split('\n'): + for line in lines.split("\n"): indented.append(prefix + line) - return '\n'.join(indented) + return "\n".join(indented) class Message(object): @@ -104,13 +104,10 @@ def __repr__(self): # Get an abbreviated version of the data. abbv_data = self._message.data if len(abbv_data) > 50: - abbv_data = abbv_data[:50] + b'...' + abbv_data = abbv_data[:50] + b"..." pretty_attrs = json.dumps( - dict(self.attributes), - indent=2, - separators=(',', ': '), - sort_keys=True, + dict(self.attributes), indent=2, separators=(",", ": "), sort_keys=True ) pretty_attrs = _indent(pretty_attrs) # We don't actually want the first line indented. @@ -155,8 +152,8 @@ def publish_time(self): """ timestamp = self._message.publish_time delta = datetime.timedelta( - seconds=timestamp.seconds, - microseconds=timestamp.nanos // 1000) + seconds=timestamp.seconds, microseconds=timestamp.nanos // 1000 + ) return datetime_helpers._UTC_EPOCH + delta @property @@ -186,9 +183,7 @@ def ack(self): time_to_ack = math.ceil(time.time() - self._received_timestamp) self._request_queue.put( requests.AckRequest( - ack_id=self._ack_id, - byte_size=self.size, - time_to_ack=time_to_ack + ack_id=self._ack_id, byte_size=self.size, time_to_ack=time_to_ack ) ) @@ -206,10 +201,7 @@ def drop(self): directly. """ self._request_queue.put( - requests.DropRequest( - ack_id=self._ack_id, - byte_size=self.size - ) + requests.DropRequest(ack_id=self._ack_id, byte_size=self.size) ) def lease(self): @@ -220,10 +212,7 @@ def lease(self): need to call it manually. """ self._request_queue.put( - requests.LeaseRequest( - ack_id=self._ack_id, - byte_size=self.size - ) + requests.LeaseRequest(ack_id=self._ack_id, byte_size=self.size) ) def modify_ack_deadline(self, seconds): @@ -242,10 +231,7 @@ def modify_ack_deadline(self, seconds): values below 10 are advised against. """ self._request_queue.put( - requests.ModAckRequest( - ack_id=self._ack_id, - seconds=seconds - ) + requests.ModAckRequest(ack_id=self._ack_id, seconds=seconds) ) def nack(self): @@ -254,8 +240,5 @@ def nack(self): This will cause the message to be re-delivered to the subscription. """ self._request_queue.put( - requests.NackRequest( - ack_id=self._ack_id, - byte_size=self.size - ) + requests.NackRequest(ack_id=self._ack_id, byte_size=self.size) ) diff --git a/pubsub/google/cloud/pubsub_v1/subscriber/scheduler.py b/pubsub/google/cloud/pubsub_v1/subscriber/scheduler.py index 70c3721249f9..94502d48e754 100644 --- a/pubsub/google/cloud/pubsub_v1/subscriber/scheduler.py +++ b/pubsub/google/cloud/pubsub_v1/subscriber/scheduler.py @@ -69,12 +69,8 @@ def _make_default_thread_pool_executor(): # for debugging. executor_kwargs = {} if sys.version_info[:2] == (2, 7) or sys.version_info >= (3, 6): - executor_kwargs['thread_name_prefix'] = ( - 'ThreadPoolExecutor-ThreadScheduler') - return concurrent.futures.ThreadPoolExecutor( - max_workers=10, - **executor_kwargs - ) + executor_kwargs["thread_name_prefix"] = "ThreadPoolExecutor-ThreadScheduler" + return concurrent.futures.ThreadPoolExecutor(max_workers=10, **executor_kwargs) class ThreadScheduler(object): @@ -86,6 +82,7 @@ class ThreadScheduler(object): executor(concurrent.futures.ThreadPoolExecutor): An optional executor to use. If not specified, a default one will be created. """ + def __init__(self, executor=None): self._queue = queue.Queue() if executor is None: diff --git a/pubsub/google/cloud/pubsub_v1/types.py b/pubsub/google/cloud/pubsub_v1/types.py index 1f5ca92174e2..c2662cf83631 100644 --- a/pubsub/google/cloud/pubsub_v1/types.py +++ b/pubsub/google/cloud/pubsub_v1/types.py @@ -36,13 +36,12 @@ # these settings can be altered to tweak Pub/Sub behavior. # The defaults should be fine for most use cases. BatchSettings = collections.namedtuple( - 'BatchSettings', - ['max_bytes', 'max_latency', 'max_messages'], + "BatchSettings", ["max_bytes", "max_latency", "max_messages"] ) BatchSettings.__new__.__defaults__ = ( 1000 * 1000 * 10, # max_bytes: documented "10 MB", enforced 10000000 - 0.05, # max_latency: 0.05 seconds - 1000, # max_messages: 1,000 + 0.05, # max_latency: 0.05 seconds + 1000, # max_messages: 1,000 ) # Define the type class and default values for flow control settings. @@ -51,19 +50,25 @@ # these settings can be altered to tweak Pub/Sub behavior. # The defaults should be fine for most use cases. FlowControl = collections.namedtuple( - 'FlowControl', - ['max_bytes', 'max_messages', 'resume_threshold', 'max_requests', - 'max_request_batch_size', 'max_request_batch_latency', - 'max_lease_duration'], + "FlowControl", + [ + "max_bytes", + "max_messages", + "resume_threshold", + "max_requests", + "max_request_batch_size", + "max_request_batch_latency", + "max_lease_duration", + ], ) FlowControl.__new__.__defaults__ = ( - 100 * 1024 * 1024, # max_bytes: 100mb - 100, # max_messages: 100 - 0.8, # resume_threshold: 80% - 100, # max_requests: 100 - 100, # max_request_batch_size: 100 - 0.01, # max_request_batch_latency: 0.01s - 2 * 60 * 60, # max_lease_duration: 2 hours. + 100 * 1024 * 1024, # max_bytes: 100mb + 100, # max_messages: 100 + 0.8, # resume_threshold: 80% + 100, # max_requests: 100 + 100, # max_request_batch_size: 100 + 0.01, # max_request_batch_latency: 0.01s + 2 * 60 * 60, # max_lease_duration: 2 hours. ) @@ -79,12 +84,10 @@ timestamp_pb2, ] -_local_modules = [ - pubsub_pb2, -] +_local_modules = [pubsub_pb2] -names = ['BatchSettings', 'FlowControl'] +names = ["BatchSettings", "FlowControl"] for module in _shared_modules: @@ -94,7 +97,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.pubsub_v1.types' + message.__module__ = "google.cloud.pubsub_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/pubsub/tests/system.py b/pubsub/tests/system.py index 3c77f0629aef..e6001f8e7801 100644 --- a/pubsub/tests/system.py +++ b/pubsub/tests/system.py @@ -28,31 +28,31 @@ from test_utils.system import unique_resource_id -@pytest.fixture(scope=u'module') +@pytest.fixture(scope=u"module") def project(): _, default_project = google.auth.default() yield default_project -@pytest.fixture(scope=u'module') +@pytest.fixture(scope=u"module") def publisher(): yield pubsub_v1.PublisherClient() -@pytest.fixture(scope=u'module') +@pytest.fixture(scope=u"module") def subscriber(): yield pubsub_v1.SubscriberClient() @pytest.fixture def topic_path(project, publisher): - topic_name = 't' + unique_resource_id('-') + topic_name = "t" + unique_resource_id("-") yield publisher.topic_path(project, topic_name) @pytest.fixture def subscription_path(project, subscriber): - sub_name = 's' + unique_resource_id('-') + sub_name = "s" + unique_resource_id("-") yield subscriber.subscription_path(project, sub_name) @@ -76,9 +76,9 @@ def test_publish_messages(publisher, topic_path, cleanup): futures.append( publisher.publish( topic_path, - b'The hail in Wales falls mainly on the snails.', + b"The hail in Wales falls mainly on the snails.", num=str(index), - ), + ) ) for future in futures: result = future.result() @@ -86,7 +86,8 @@ def test_publish_messages(publisher, topic_path, cleanup): def test_subscribe_to_messages( - publisher, topic_path, subscriber, subscription_path, cleanup): + publisher, topic_path, subscriber, subscription_path, cleanup +): # Make sure the topic and subscription get deleted. cleanup.append((publisher.delete_topic, topic_path)) cleanup.append((subscriber.delete_subscription, subscription_path)) @@ -100,11 +101,7 @@ def test_subscribe_to_messages( # Publish some messages. futures = [ - publisher.publish( - topic_path, - b'Wooooo! The claaaaaw!', - num=str(index), - ) + publisher.publish(topic_path, b"Wooooo! The claaaaaw!", num=str(index)) for index in six.moves.range(50) ] @@ -132,7 +129,8 @@ def test_subscribe_to_messages( def test_subscribe_to_messages_async_callbacks( - publisher, topic_path, subscriber, subscription_path, cleanup): + publisher, topic_path, subscriber, subscription_path, cleanup +): # Make sure the topic and subscription get deleted. cleanup.append((publisher.delete_topic, topic_path)) cleanup.append((subscriber.delete_subscription, subscription_path)) @@ -146,11 +144,7 @@ def test_subscribe_to_messages_async_callbacks( # Publish some messages. futures = [ - publisher.publish( - topic_path, - b'Wooooo! The claaaaaw!', - num=str(index), - ) + publisher.publish(topic_path, b"Wooooo! The claaaaaw!", num=str(index)) for index in six.moves.range(2) ] @@ -185,7 +179,6 @@ def test_subscribe_to_messages_async_callbacks( class AckCallback(object): - def __init__(self): self.calls = 0 self.lock = threading.Lock() @@ -198,7 +191,6 @@ def __call__(self, message): class TimesCallback(object): - def __init__(self, sleep_time): self.sleep_time = sleep_time self.calls = 0 diff --git a/pubsub/tests/system/gapic/v1/test_system_publisher_v1.py b/pubsub/tests/system/gapic/v1/test_system_publisher_v1.py index 0d1dfa290e9a..7723419da509 100644 --- a/pubsub/tests/system/gapic/v1/test_system_publisher_v1.py +++ b/pubsub/tests/system/gapic/v1/test_system_publisher_v1.py @@ -23,7 +23,7 @@ class TestSystemPublisher(object): def test_list_topics(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = pubsub_v1.PublisherClient() project = client.project_path(project_id) diff --git a/pubsub/tests/unit/gapic/v1/test_publisher_client_v1.py b/pubsub/tests/unit/gapic/v1/test_publisher_client_v1.py index feff5f1df72f..5d6d3029e5d3 100644 --- a/pubsub/tests/unit/gapic/v1/test_publisher_client_v1.py +++ b/pubsub/tests/unit/gapic/v1/test_publisher_client_v1.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -68,19 +65,19 @@ class CustomException(Exception): class TestPublisherClient(object): def test_create_topic(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = pubsub_pb2.Topic(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - name = client.topic_path('[PROJECT]', '[TOPIC]') + name = client.topic_path("[PROJECT]", "[TOPIC]") response = client.create_topic(name) assert expected_response == response @@ -93,26 +90,26 @@ def test_create_topic(self): def test_create_topic_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - name = client.topic_path('[PROJECT]', '[TOPIC]') + name = client.topic_path("[PROJECT]", "[TOPIC]") with pytest.raises(CustomException): client.create_topic(name) def test_update_topic(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = pubsub_pb2.Topic(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() @@ -126,14 +123,15 @@ def test_update_topic(self): assert len(channel.requests) == 1 expected_request = pubsub_pb2.UpdateTopicRequest( - topic=topic, update_mask=update_mask) + topic=topic, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_topic_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() @@ -147,45 +145,44 @@ def test_update_topic_exception(self): def test_publish(self): # Setup Expected Response - message_ids_element = 'messageIdsElement-744837059' + message_ids_element = "messageIdsElement-744837059" message_ids = [message_ids_element] - expected_response = {'message_ids': message_ids} + expected_response = {"message_ids": message_ids} expected_response = pubsub_pb2.PublishResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - topic = client.topic_path('[PROJECT]', '[TOPIC]') - data = b'-86' - messages_element = {'data': data} + topic = client.topic_path("[PROJECT]", "[TOPIC]") + data = b"-86" + messages_element = {"data": data} messages = [messages_element] response = client.publish(topic, messages) assert expected_response == response assert len(channel.requests) == 1 - expected_request = pubsub_pb2.PublishRequest( - topic=topic, messages=messages) + expected_request = pubsub_pb2.PublishRequest(topic=topic, messages=messages) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_publish_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - topic = client.topic_path('[PROJECT]', '[TOPIC]') - data = b'-86' - messages_element = {'data': data} + topic = client.topic_path("[PROJECT]", "[TOPIC]") + data = b"-86" + messages_element = {"data": data} messages = [messages_element] with pytest.raises(CustomException): @@ -193,19 +190,19 @@ def test_publish_exception(self): def test_get_topic(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = pubsub_pb2.Topic(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - topic = client.topic_path('[PROJECT]', '[TOPIC]') + topic = client.topic_path("[PROJECT]", "[TOPIC]") response = client.get_topic(topic) assert expected_response == response @@ -218,37 +215,34 @@ def test_get_topic(self): def test_get_topic_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - topic = client.topic_path('[PROJECT]', '[TOPIC]') + topic = client.topic_path("[PROJECT]", "[TOPIC]") with pytest.raises(CustomException): client.get_topic(topic) def test_list_topics(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" topics_element = {} topics = [topics_element] - expected_response = { - 'next_page_token': next_page_token, - 'topics': topics - } + expected_response = {"next_page_token": next_page_token, "topics": topics} expected_response = pubsub_pb2.ListTopicsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - project = client.project_path('[PROJECT]') + project = client.project_path("[PROJECT]") paged_list_response = client.list_topics(project) resources = list(paged_list_response) @@ -263,13 +257,13 @@ def test_list_topics(self): def test_list_topics_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - project = client.project_path('[PROJECT]') + project = client.project_path("[PROJECT]") paged_list_response = client.list_topics(project) with pytest.raises(CustomException): @@ -277,25 +271,26 @@ def test_list_topics_exception(self): def test_list_topic_subscriptions(self): # Setup Expected Response - next_page_token = '' - subscriptions_element = 'subscriptionsElement1698708147' + next_page_token = "" + subscriptions_element = "subscriptionsElement1698708147" subscriptions = [subscriptions_element] expected_response = { - 'next_page_token': next_page_token, - 'subscriptions': subscriptions + "next_page_token": next_page_token, + "subscriptions": subscriptions, } expected_response = pubsub_pb2.ListTopicSubscriptionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - topic = client.topic_path('[PROJECT]', '[TOPIC]') + topic = client.topic_path("[PROJECT]", "[TOPIC]") paged_list_response = client.list_topic_subscriptions(topic) resources = list(paged_list_response) @@ -304,20 +299,19 @@ def test_list_topic_subscriptions(self): assert expected_response.subscriptions[0] == resources[0] assert len(channel.requests) == 1 - expected_request = pubsub_pb2.ListTopicSubscriptionsRequest( - topic=topic) + expected_request = pubsub_pb2.ListTopicSubscriptionsRequest(topic=topic) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_topic_subscriptions_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - topic = client.topic_path('[PROJECT]', '[TOPIC]') + topic = client.topic_path("[PROJECT]", "[TOPIC]") paged_list_response = client.list_topic_subscriptions(topic) with pytest.raises(CustomException): @@ -325,13 +319,13 @@ def test_list_topic_subscriptions_exception(self): def test_delete_topic(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - topic = client.topic_path('[PROJECT]', '[TOPIC]') + topic = client.topic_path("[PROJECT]", "[TOPIC]") client.delete_topic(topic) @@ -343,13 +337,13 @@ def test_delete_topic(self): def test_delete_topic_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - topic = client.topic_path('[PROJECT]', '[TOPIC]') + topic = client.topic_path("[PROJECT]", "[TOPIC]") with pytest.raises(CustomException): client.delete_topic(topic) @@ -357,19 +351,19 @@ def test_delete_topic_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - resource = client.topic_path('[PROJECT]', '[TOPIC]') + resource = client.topic_path("[PROJECT]", "[TOPIC]") policy = {} response = client.set_iam_policy(resource, policy) @@ -377,20 +371,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - resource = client.topic_path('[PROJECT]', '[TOPIC]') + resource = client.topic_path("[PROJECT]", "[TOPIC]") policy = {} with pytest.raises(CustomException): @@ -399,39 +394,38 @@ def test_set_iam_policy_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - resource = client.topic_path('[PROJECT]', '[TOPIC]') + resource = client.topic_path("[PROJECT]", "[TOPIC]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - resource = client.topic_path('[PROJECT]', '[TOPIC]') + resource = client.topic_path("[PROJECT]", "[TOPIC]") with pytest.raises(CustomException): client.get_iam_policy(resource) @@ -440,17 +434,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup Request - resource = client.topic_path('[PROJECT]', '[TOPIC]') + resource = client.topic_path("[PROJECT]", "[TOPIC]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -458,20 +453,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = publisher_client.PublisherClient() # Setup request - resource = client.topic_path('[PROJECT]', '[TOPIC]') + resource = client.topic_path("[PROJECT]", "[TOPIC]") permissions = [] with pytest.raises(CustomException): diff --git a/pubsub/tests/unit/gapic/v1/test_subscriber_client_v1.py b/pubsub/tests/unit/gapic/v1/test_subscriber_client_v1.py index aad07e34e45b..70d3222b98bc 100644 --- a/pubsub/tests/unit/gapic/v1/test_subscriber_client_v1.py +++ b/pubsub/tests/unit/gapic/v1/test_subscriber_client_v1.py @@ -55,16 +55,12 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) - def stream_stream(self, - method, - request_serializer=None, - response_deserializer=None): + def stream_stream( + self, method, request_serializer=None, response_deserializer=None + ): return MultiCallableStub(method, self) @@ -75,28 +71,28 @@ class CustomException(Exception): class TestSubscriberClient(object): def test_create_subscription(self): # Setup Expected Response - name_2 = 'name2-1052831874' - topic_2 = 'topic2-1139259102' + name_2 = "name2-1052831874" + topic_2 = "topic2-1139259102" ack_deadline_seconds = 2135351438 retain_acked_messages = False expected_response = { - 'name': name_2, - 'topic': topic_2, - 'ack_deadline_seconds': ack_deadline_seconds, - 'retain_acked_messages': retain_acked_messages + "name": name_2, + "topic": topic_2, + "ack_deadline_seconds": ack_deadline_seconds, + "retain_acked_messages": retain_acked_messages, } expected_response = pubsub_pb2.Subscription(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - name = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') - topic = client.topic_path('[PROJECT]', '[TOPIC]') + name = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") + topic = client.topic_path("[PROJECT]", "[TOPIC]") response = client.create_subscription(name, topic) assert expected_response == response @@ -109,141 +105,140 @@ def test_create_subscription(self): def test_create_subscription_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - name = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') - topic = client.topic_path('[PROJECT]', '[TOPIC]') + name = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") + topic = client.topic_path("[PROJECT]", "[TOPIC]") with pytest.raises(CustomException): client.create_subscription(name, topic) def test_get_subscription(self): # Setup Expected Response - name = 'name3373707' - topic = 'topic110546223' + name = "name3373707" + topic = "topic110546223" ack_deadline_seconds = 2135351438 retain_acked_messages = False expected_response = { - 'name': name, - 'topic': topic, - 'ack_deadline_seconds': ack_deadline_seconds, - 'retain_acked_messages': retain_acked_messages + "name": name, + "topic": topic, + "ack_deadline_seconds": ack_deadline_seconds, + "retain_acked_messages": retain_acked_messages, } expected_response = pubsub_pb2.Subscription(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") response = client.get_subscription(subscription) assert expected_response == response assert len(channel.requests) == 1 - expected_request = pubsub_pb2.GetSubscriptionRequest( - subscription=subscription) + expected_request = pubsub_pb2.GetSubscriptionRequest(subscription=subscription) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_subscription_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") with pytest.raises(CustomException): client.get_subscription(subscription) def test_update_subscription(self): # Setup Expected Response - name = 'name3373707' - topic = 'topic110546223' + name = "name3373707" + topic = "topic110546223" ack_deadline_seconds_2 = 921632575 retain_acked_messages = False expected_response = { - 'name': name, - 'topic': topic, - 'ack_deadline_seconds': ack_deadline_seconds_2, - 'retain_acked_messages': retain_acked_messages + "name": name, + "topic": topic, + "ack_deadline_seconds": ack_deadline_seconds_2, + "retain_acked_messages": retain_acked_messages, } expected_response = pubsub_pb2.Subscription(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request ack_deadline_seconds = 42 - subscription = {'ack_deadline_seconds': ack_deadline_seconds} - paths_element = 'ack_deadline_seconds' + subscription = {"ack_deadline_seconds": ack_deadline_seconds} + paths_element = "ack_deadline_seconds" paths = [paths_element] - update_mask = {'paths': paths} + update_mask = {"paths": paths} response = client.update_subscription(subscription, update_mask) assert expected_response == response assert len(channel.requests) == 1 expected_request = pubsub_pb2.UpdateSubscriptionRequest( - subscription=subscription, update_mask=update_mask) + subscription=subscription, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_subscription_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request ack_deadline_seconds = 42 - subscription = {'ack_deadline_seconds': ack_deadline_seconds} - paths_element = 'ack_deadline_seconds' + subscription = {"ack_deadline_seconds": ack_deadline_seconds} + paths_element = "ack_deadline_seconds" paths = [paths_element] - update_mask = {'paths': paths} + update_mask = {"paths": paths} with pytest.raises(CustomException): client.update_subscription(subscription, update_mask) def test_list_subscriptions(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" subscriptions_element = {} subscriptions = [subscriptions_element] expected_response = { - 'next_page_token': next_page_token, - 'subscriptions': subscriptions + "next_page_token": next_page_token, + "subscriptions": subscriptions, } - expected_response = pubsub_pb2.ListSubscriptionsResponse( - **expected_response) + expected_response = pubsub_pb2.ListSubscriptionsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - project = client.project_path('[PROJECT]') + project = client.project_path("[PROJECT]") paged_list_response = client.list_subscriptions(project) resources = list(paged_list_response) @@ -258,13 +253,13 @@ def test_list_subscriptions(self): def test_list_subscriptions_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - project = client.project_path('[PROJECT]') + project = client.project_path("[PROJECT]") paged_list_response = client.list_subscriptions(project) with pytest.raises(CustomException): @@ -272,45 +267,46 @@ def test_list_subscriptions_exception(self): def test_delete_subscription(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") client.delete_subscription(subscription) assert len(channel.requests) == 1 expected_request = pubsub_pb2.DeleteSubscriptionRequest( - subscription=subscription) + subscription=subscription + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_subscription_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") with pytest.raises(CustomException): client.delete_subscription(subscription) def test_modify_ack_deadline(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") ack_ids = [] ack_deadline_seconds = 2135351438 @@ -320,56 +316,57 @@ def test_modify_ack_deadline(self): expected_request = pubsub_pb2.ModifyAckDeadlineRequest( subscription=subscription, ack_ids=ack_ids, - ack_deadline_seconds=ack_deadline_seconds) + ack_deadline_seconds=ack_deadline_seconds, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_modify_ack_deadline_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") ack_ids = [] ack_deadline_seconds = 2135351438 with pytest.raises(CustomException): - client.modify_ack_deadline(subscription, ack_ids, - ack_deadline_seconds) + client.modify_ack_deadline(subscription, ack_ids, ack_deadline_seconds) def test_acknowledge(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") ack_ids = [] client.acknowledge(subscription, ack_ids) assert len(channel.requests) == 1 expected_request = pubsub_pb2.AcknowledgeRequest( - subscription=subscription, ack_ids=ack_ids) + subscription=subscription, ack_ids=ack_ids + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_acknowledge_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") ack_ids = [] with pytest.raises(CustomException): @@ -382,13 +379,13 @@ def test_pull(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") max_messages = 496131527 response = client.pull(subscription, max_messages) @@ -396,20 +393,21 @@ def test_pull(self): assert len(channel.requests) == 1 expected_request = pubsub_pb2.PullRequest( - subscription=subscription, max_messages=max_messages) + subscription=subscription, max_messages=max_messages + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_pull_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") max_messages = 496131527 with pytest.raises(CustomException): @@ -419,23 +417,22 @@ def test_streaming_pull(self): # Setup Expected Response received_messages_element = {} received_messages = [received_messages_element] - expected_response = {'received_messages': received_messages} - expected_response = pubsub_pb2.StreamingPullResponse( - **expected_response) + expected_response = {"received_messages": received_messages} + expected_response = pubsub_pb2.StreamingPullResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[iter([expected_response])]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") stream_ack_deadline_seconds = 1875467245 request = { - 'subscription': subscription, - 'stream_ack_deadline_seconds': stream_ack_deadline_seconds + "subscription": subscription, + "stream_ack_deadline_seconds": stream_ack_deadline_seconds, } request = pubsub_pb2.StreamingPullRequest(**request) requests = [request] @@ -454,17 +451,17 @@ def test_streaming_pull(self): def test_streaming_pull_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") stream_ack_deadline_seconds = 1875467245 request = { - 'subscription': subscription, - 'stream_ack_deadline_seconds': stream_ack_deadline_seconds + "subscription": subscription, + "stream_ack_deadline_seconds": stream_ack_deadline_seconds, } request = pubsub_pb2.StreamingPullRequest(**request) @@ -475,33 +472,34 @@ def test_streaming_pull_exception(self): def test_modify_push_config(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") push_config = {} client.modify_push_config(subscription, push_config) assert len(channel.requests) == 1 expected_request = pubsub_pb2.ModifyPushConfigRequest( - subscription=subscription, push_config=push_config) + subscription=subscription, push_config=push_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_modify_push_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") push_config = {} with pytest.raises(CustomException): @@ -509,25 +507,21 @@ def test_modify_push_config_exception(self): def test_list_snapshots(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" snapshots_element = {} snapshots = [snapshots_element] - expected_response = { - 'next_page_token': next_page_token, - 'snapshots': snapshots - } - expected_response = pubsub_pb2.ListSnapshotsResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "snapshots": snapshots} + expected_response = pubsub_pb2.ListSnapshotsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - project = client.project_path('[PROJECT]') + project = client.project_path("[PROJECT]") paged_list_response = client.list_snapshots(project) resources = list(paged_list_response) @@ -542,13 +536,13 @@ def test_list_snapshots(self): def test_list_snapshots_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - project = client.project_path('[PROJECT]') + project = client.project_path("[PROJECT]") paged_list_response = client.list_snapshots(project) with pytest.raises(CustomException): @@ -556,105 +550,107 @@ def test_list_snapshots_exception(self): def test_create_snapshot(self): # Setup Expected Response - name_2 = 'name2-1052831874' - topic = 'topic110546223' - expected_response = {'name': name_2, 'topic': topic} + name_2 = "name2-1052831874" + topic = "topic110546223" + expected_response = {"name": name_2, "topic": topic} expected_response = pubsub_pb2.Snapshot(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - name = client.snapshot_path('[PROJECT]', '[SNAPSHOT]') - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + name = client.snapshot_path("[PROJECT]", "[SNAPSHOT]") + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") response = client.create_snapshot(name, subscription) assert expected_response == response assert len(channel.requests) == 1 expected_request = pubsub_pb2.CreateSnapshotRequest( - name=name, subscription=subscription) + name=name, subscription=subscription + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_snapshot_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - name = client.snapshot_path('[PROJECT]', '[SNAPSHOT]') - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + name = client.snapshot_path("[PROJECT]", "[SNAPSHOT]") + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") with pytest.raises(CustomException): client.create_snapshot(name, subscription) def test_update_snapshot(self): # Setup Expected Response - name = 'name3373707' - topic = 'topic110546223' - expected_response = {'name': name, 'topic': topic} + name = "name3373707" + topic = "topic110546223" + expected_response = {"name": name, "topic": topic} expected_response = pubsub_pb2.Snapshot(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request seconds = 123456 - expire_time = {'seconds': seconds} - snapshot = {'expire_time': expire_time} - paths_element = 'expire_time' + expire_time = {"seconds": seconds} + snapshot = {"expire_time": expire_time} + paths_element = "expire_time" paths = [paths_element] - update_mask = {'paths': paths} + update_mask = {"paths": paths} response = client.update_snapshot(snapshot, update_mask) assert expected_response == response assert len(channel.requests) == 1 expected_request = pubsub_pb2.UpdateSnapshotRequest( - snapshot=snapshot, update_mask=update_mask) + snapshot=snapshot, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_snapshot_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request seconds = 123456 - expire_time = {'seconds': seconds} - snapshot = {'expire_time': expire_time} - paths_element = 'expire_time' + expire_time = {"seconds": seconds} + snapshot = {"expire_time": expire_time} + paths_element = "expire_time" paths = [paths_element] - update_mask = {'paths': paths} + update_mask = {"paths": paths} with pytest.raises(CustomException): client.update_snapshot(snapshot, update_mask) def test_delete_snapshot(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - snapshot = client.snapshot_path('[PROJECT]', '[SNAPSHOT]') + snapshot = client.snapshot_path("[PROJECT]", "[SNAPSHOT]") client.delete_snapshot(snapshot) @@ -666,13 +662,13 @@ def test_delete_snapshot(self): def test_delete_snapshot_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - snapshot = client.snapshot_path('[PROJECT]', '[SNAPSHOT]') + snapshot = client.snapshot_path("[PROJECT]", "[SNAPSHOT]") with pytest.raises(CustomException): client.delete_snapshot(snapshot) @@ -684,13 +680,13 @@ def test_seek(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") response = client.seek(subscription) assert expected_response == response @@ -703,13 +699,13 @@ def test_seek(self): def test_seek_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - subscription = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + subscription = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") with pytest.raises(CustomException): client.seek(subscription) @@ -717,19 +713,19 @@ def test_seek_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - resource = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + resource = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") policy = {} response = client.set_iam_policy(resource, policy) @@ -737,20 +733,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - resource = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + resource = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") policy = {} with pytest.raises(CustomException): @@ -759,39 +756,38 @@ def test_set_iam_policy_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - resource = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + resource = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - resource = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + resource = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") with pytest.raises(CustomException): client.get_iam_policy(resource) @@ -800,17 +796,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup Request - resource = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + resource = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -818,20 +815,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = subscriber_client.SubscriberClient() # Setup request - resource = client.subscription_path('[PROJECT]', '[SUBSCRIPTION]') + resource = client.subscription_path("[PROJECT]", "[SUBSCRIPTION]") permissions = [] with pytest.raises(CustomException): diff --git a/pubsub/tests/unit/pubsub_v1/publisher/batch/test_base.py b/pubsub/tests/unit/pubsub_v1/publisher/batch/test_base.py index 0ef98945b0bf..b19a5a1f1504 100644 --- a/pubsub/tests/unit/pubsub_v1/publisher/batch/test_base.py +++ b/pubsub/tests/unit/pubsub_v1/publisher/batch/test_base.py @@ -35,7 +35,7 @@ def create_batch(status=None, settings=types.BatchSettings()): """ creds = mock.Mock(spec=credentials.Credentials) client = publisher.Client(credentials=creds) - batch = Batch(client, 'topic_name', settings, autocommit=False) + batch = Batch(client, "topic_name", settings, autocommit=False) if status: batch._status = status return batch @@ -44,7 +44,7 @@ def create_batch(status=None, settings=types.BatchSettings()): def test_len(): batch = create_batch(status=BatchStatus.ACCEPTING_MESSAGES) assert len(batch) == 0 - batch.publish(types.PubsubMessage(data=b'foo')) + batch.publish(types.PubsubMessage(data=b"foo")) assert len(batch) == 1 @@ -59,12 +59,12 @@ def test_will_accept_oversize(): settings=types.BatchSettings(max_bytes=10), status=BatchStatus.ACCEPTING_MESSAGES, ) - message = types.PubsubMessage(data=b'abcdefghijklmnopqrstuvwxyz') + message = types.PubsubMessage(data=b"abcdefghijklmnopqrstuvwxyz") assert batch.will_accept(message) is True def test_will_not_accept_status(): - batch = create_batch(status='talk to the hand') + batch = create_batch(status="talk to the hand") message = types.PubsubMessage() assert batch.will_accept(message) is False @@ -74,5 +74,5 @@ def test_will_not_accept_number(): settings=types.BatchSettings(max_messages=-1), status=BatchStatus.ACCEPTING_MESSAGES, ) - message = types.PubsubMessage(data=b'abc') + message = types.PubsubMessage(data=b"abc") assert batch.will_accept(message) is False diff --git a/pubsub/tests/unit/pubsub_v1/publisher/batch/test_thread.py b/pubsub/tests/unit/pubsub_v1/publisher/batch/test_thread.py index 315f072bdf29..af04f865dd40 100644 --- a/pubsub/tests/unit/pubsub_v1/publisher/batch/test_thread.py +++ b/pubsub/tests/unit/pubsub_v1/publisher/batch/test_thread.py @@ -47,7 +47,7 @@ def create_batch(autocommit=False, **batch_settings): """ client = create_client() settings = types.BatchSettings(**batch_settings) - return Batch(client, 'topic_name', settings, autocommit=autocommit) + return Batch(client, "topic_name", settings, autocommit=autocommit) def test_init(): @@ -57,11 +57,10 @@ def test_init(): # Do not actually create a thread, but do verify that one was created; # it should be running the batch's "monitor" method (which commits the # batch once time elapses). - with mock.patch.object(threading, 'Thread', autospec=True) as Thread: - batch = Batch(client, 'topic_name', types.BatchSettings()) + with mock.patch.object(threading, "Thread", autospec=True) as Thread: + batch = Batch(client, "topic_name", types.BatchSettings()) Thread.assert_called_once_with( - name='Thread-MonitorBatchPublisher', - target=batch.monitor, + name="Thread-MonitorBatchPublisher", target=batch.monitor ) # New batches start able to accept messages by default. @@ -69,11 +68,11 @@ def test_init(): def test_init_infinite_latency(): - batch = create_batch(max_latency=float('inf')) + batch = create_batch(max_latency=float("inf")) assert batch._thread is None -@mock.patch.object(threading, 'Lock') +@mock.patch.object(threading, "Lock") def test_make_lock(Lock): lock = Batch.make_lock() assert lock is Lock.return_value @@ -83,19 +82,18 @@ def test_make_lock(Lock): def test_client(): client = create_client() settings = types.BatchSettings() - batch = Batch(client, 'topic_name', settings, autocommit=False) + batch = Batch(client, "topic_name", settings, autocommit=False) assert batch.client is client def test_commit(): batch = create_batch() - with mock.patch.object(threading, 'Thread', autospec=True) as Thread: + with mock.patch.object(threading, "Thread", autospec=True) as Thread: batch.commit() # A thread should have been created to do the actual commit. Thread.assert_called_once_with( - name='Thread-CommitBatchPublisher', - target=batch._commit, + name="Thread-CommitBatchPublisher", target=batch._commit ) Thread.return_value.start.assert_called_once_with() @@ -108,7 +106,7 @@ def test_commit(): def test_commit_no_op(): batch = create_batch() batch._status = BatchStatus.IN_PROGRESS - with mock.patch.object(threading, 'Thread', autospec=True) as Thread: + with mock.patch.object(threading, "Thread", autospec=True) as Thread: batch.commit() # Make sure a thread was not created. @@ -121,36 +119,37 @@ def test_commit_no_op(): def test_blocking__commit(): batch = create_batch() futures = ( - batch.publish({'data': b'This is my message.'}), - batch.publish({'data': b'This is another message.'}), + batch.publish({"data": b"This is my message."}), + batch.publish({"data": b"This is another message."}), ) # Set up the underlying API publish method to return a PublishResponse. - publish_response = types.PublishResponse(message_ids=['a', 'b']) + publish_response = types.PublishResponse(message_ids=["a", "b"]) patch = mock.patch.object( - type(batch.client.api), 'publish', return_value=publish_response) + type(batch.client.api), "publish", return_value=publish_response + ) with patch as publish: batch._commit() # Establish that the underlying API call was made with expected # arguments. publish.assert_called_once_with( - 'topic_name', + "topic_name", [ - types.PubsubMessage(data=b'This is my message.'), - types.PubsubMessage(data=b'This is another message.'), + types.PubsubMessage(data=b"This is my message."), + types.PubsubMessage(data=b"This is another message."), ], ) # Establish that all of the futures are done, and that they have the # expected values. assert futures[0].done() - assert futures[0].result() == 'a' + assert futures[0].result() == "a" assert futures[1].done() - assert futures[1].result() == 'b' + assert futures[1].result() == "b" -@mock.patch.object(thread, '_LOGGER') +@mock.patch.object(thread, "_LOGGER") def test_blocking__commit_starting(_LOGGER): batch = create_batch() batch._status = BatchStatus.STARTING @@ -158,11 +157,10 @@ def test_blocking__commit_starting(_LOGGER): batch._commit() assert batch._status == BatchStatus.SUCCESS - _LOGGER.debug.assert_called_once_with( - 'No messages to publish, exiting commit') + _LOGGER.debug.assert_called_once_with("No messages to publish, exiting commit") -@mock.patch.object(thread, '_LOGGER') +@mock.patch.object(thread, "_LOGGER") def test_blocking__commit_already_started(_LOGGER): batch = create_batch() batch._status = BatchStatus.IN_PROGRESS @@ -171,12 +169,13 @@ def test_blocking__commit_already_started(_LOGGER): assert batch._status == BatchStatus.IN_PROGRESS _LOGGER.debug.assert_called_once_with( - 'Batch is already in progress, exiting commit') + "Batch is already in progress, exiting commit" + ) def test_blocking__commit_no_messages(): batch = create_batch() - with mock.patch.object(type(batch.client.api), 'publish') as publish: + with mock.patch.object(type(batch.client.api), "publish") as publish: batch._commit() assert publish.call_count == 0 @@ -185,14 +184,15 @@ def test_blocking__commit_no_messages(): def test_blocking__commit_wrong_messageid_length(): batch = create_batch() futures = ( - batch.publish({'data': b'blah blah blah'}), - batch.publish({'data': b'blah blah blah blah'}), + batch.publish({"data": b"blah blah blah"}), + batch.publish({"data": b"blah blah blah blah"}), ) # Set up a PublishResponse that only returns one message ID. - publish_response = types.PublishResponse(message_ids=['a']) + publish_response = types.PublishResponse(message_ids=["a"]) patch = mock.patch.object( - type(batch.client.api), 'publish', return_value=publish_response) + type(batch.client.api), "publish", return_value=publish_response + ) with patch: batch._commit() @@ -205,14 +205,13 @@ def test_blocking__commit_wrong_messageid_length(): def test_block__commmit_api_error(): batch = create_batch() futures = ( - batch.publish({'data': b'blah blah blah'}), - batch.publish({'data': b'blah blah blah blah'}), + batch.publish({"data": b"blah blah blah"}), + batch.publish({"data": b"blah blah blah blah"}), ) # Make the API throw an error when publishing. - error = google.api_core.exceptions.InternalServerError('uh oh') - patch = mock.patch.object( - type(batch.client.api), 'publish', side_effect=error) + error = google.api_core.exceptions.InternalServerError("uh oh") + patch = mock.patch.object(type(batch.client.api), "publish", side_effect=error) with patch: batch._commit() @@ -224,8 +223,8 @@ def test_block__commmit_api_error(): def test_monitor(): batch = create_batch(max_latency=5.0) - with mock.patch.object(time, 'sleep') as sleep: - with mock.patch.object(type(batch), '_commit') as _commit: + with mock.patch.object(time, "sleep") as sleep: + with mock.patch.object(type(batch), "_commit") as _commit: batch.monitor() # The monitor should have waited the given latency. @@ -238,9 +237,9 @@ def test_monitor(): def test_monitor_already_committed(): batch = create_batch(max_latency=5.0) - status = 'something else' + status = "something else" batch._status = status - with mock.patch.object(time, 'sleep') as sleep: + with mock.patch.object(time, "sleep") as sleep: batch.monitor() # The monitor should have waited the given latency. @@ -253,9 +252,9 @@ def test_monitor_already_committed(): def test_publish(): batch = create_batch() messages = ( - types.PubsubMessage(data=b'foobarbaz'), - types.PubsubMessage(data=b'spameggs'), - types.PubsubMessage(data=b'1335020400'), + types.PubsubMessage(data=b"foobarbaz"), + types.PubsubMessage(data=b"spameggs"), + types.PubsubMessage(data=b"1335020400"), ) # Publish each of the messages, which should save them to the batch. @@ -276,7 +275,7 @@ def test_publish_not_will_accept(): batch = create_batch(max_messages=0) # Publish the message. - message = types.PubsubMessage(data=b'foobarbaz') + message = types.PubsubMessage(data=b"foobarbaz") future = batch.publish(message) assert future is None @@ -289,13 +288,13 @@ def test_publish_exceed_max_messages(): max_messages = 4 batch = create_batch(max_messages=max_messages) messages = ( - types.PubsubMessage(data=b'foobarbaz'), - types.PubsubMessage(data=b'spameggs'), - types.PubsubMessage(data=b'1335020400'), + types.PubsubMessage(data=b"foobarbaz"), + types.PubsubMessage(data=b"spameggs"), + types.PubsubMessage(data=b"1335020400"), ) # Publish each of the messages, which should save them to the batch. - with mock.patch.object(batch, 'commit') as commit: + with mock.patch.object(batch, "commit") as commit: futures = [batch.publish(message) for message in messages] assert batch._futures == futures assert len(futures) == max_messages - 1 @@ -305,7 +304,7 @@ def test_publish_exceed_max_messages(): # When a fourth message is published, commit should be called. # No future will be returned in this case. - future = batch.publish(types.PubsubMessage(data=b'last one')) + future = batch.publish(types.PubsubMessage(data=b"last one")) commit.assert_called_once_with() assert future is None @@ -314,11 +313,11 @@ def test_publish_exceed_max_messages(): def test_publish_dict(): batch = create_batch() - future = batch.publish( - {'data': b'foobarbaz', 'attributes': {'spam': 'eggs'}}) + future = batch.publish({"data": b"foobarbaz", "attributes": {"spam": "eggs"}}) # There should be one message on the batch. expected_message = types.PubsubMessage( - data=b'foobarbaz', attributes={'spam': 'eggs'}) + data=b"foobarbaz", attributes={"spam": "eggs"} + ) assert batch.messages == [expected_message] assert batch._futures == [future] diff --git a/pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py b/pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py index 523dbe855fd1..a141e1f12187 100644 --- a/pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py +++ b/pubsub/tests/unit/pubsub_v1/publisher/test_publisher_client.py @@ -37,7 +37,7 @@ def test_init(): def test_init_emulator(monkeypatch): - monkeypatch.setenv('PUBSUB_EMULATOR_HOST', '/foo/bar/') + monkeypatch.setenv("PUBSUB_EMULATOR_HOST", "/foo/bar/") # NOTE: When the emulator host is set, a custom channel will be used, so # no credentials (mock ot otherwise) can be passed in. client = publisher.Client() @@ -47,7 +47,7 @@ def test_init_emulator(monkeypatch): # Sadly, there seems to be no good way to do this without poking at # the private API of gRPC. channel = client.api.transport.publish._channel - assert channel.target().decode('utf8') == '/foo/bar/' + assert channel.target().decode("utf8") == "/foo/bar/" def test_batch_create(): @@ -55,7 +55,7 @@ def test_batch_create(): client = publisher.Client(credentials=creds) assert len(client._batches) == 0 - topic = 'topic/path' + topic = "topic/path" batch = client._batch(topic, autocommit=False) assert client._batches == {topic: batch} @@ -64,7 +64,7 @@ def test_batch_exists(): creds = mock.Mock(spec=credentials.Credentials) client = publisher.Client(credentials=creds) - topic = 'topic/path' + topic = "topic/path" client._batches[topic] = mock.sentinel.batch # A subsequent request should return the same batch. @@ -77,7 +77,7 @@ def test_batch_create_and_exists(): creds = mock.Mock(spec=credentials.Credentials) client = publisher.Client(credentials=creds) - topic = 'topic/path' + topic = "topic/path" client._batches[topic] = mock.sentinel.batch # A subsequent request should return the same batch. @@ -94,17 +94,14 @@ def test_publish(): batch = mock.Mock(spec=client._batch_class) # Set the mock up to claim indiscriminately that it accepts all messages. batch.will_accept.return_value = True - batch.publish.side_effect = ( - mock.sentinel.future1, - mock.sentinel.future2, - ) + batch.publish.side_effect = (mock.sentinel.future1, mock.sentinel.future2) - topic = 'topic/path' + topic = "topic/path" client._batches[topic] = batch # Begin publishing. - future1 = client.publish(topic, b'spam') - future2 = client.publish(topic, b'foo', bar='baz') + future1 = client.publish(topic, b"spam") + future2 = client.publish(topic, b"foo", bar="baz") assert future1 is mock.sentinel.future1 assert future2 is mock.sentinel.future2 @@ -112,21 +109,18 @@ def test_publish(): # Check mock. batch.publish.assert_has_calls( [ - mock.call(types.PubsubMessage(data=b'spam')), - mock.call(types.PubsubMessage( - data=b'foo', - attributes={'bar': 'baz'}, - )), - ], + mock.call(types.PubsubMessage(data=b"spam")), + mock.call(types.PubsubMessage(data=b"foo", attributes={"bar": "baz"})), + ] ) def test_publish_data_not_bytestring_error(): creds = mock.Mock(spec=credentials.Credentials) client = publisher.Client(credentials=creds) - topic = 'topic/path' + topic = "topic/path" with pytest.raises(TypeError): - client.publish(topic, u'This is a text string.') + client.publish(topic, u"This is a text string.") with pytest.raises(TypeError): client.publish(topic, 42) @@ -140,20 +134,17 @@ def test_publish_attrs_bytestring(): # Set the mock up to claim indiscriminately that it accepts all messages. batch.will_accept.return_value = True - topic = 'topic/path' + topic = "topic/path" client._batches[topic] = batch # Begin publishing. - future = client.publish(topic, b'foo', bar=b'baz') + future = client.publish(topic, b"foo", bar=b"baz") assert future is batch.publish.return_value # The attributes should have been sent as text. batch.publish.assert_called_once_with( - types.PubsubMessage( - data=b'foo', - attributes={'bar': u'baz'}, - ), + types.PubsubMessage(data=b"foo", attributes={"bar": u"baz"}) ) @@ -169,7 +160,7 @@ def test_publish_new_batch_needed(): batch1.publish.return_value = None batch2.publish.return_value = mock.sentinel.future - topic = 'topic/path' + topic = "topic/path" client._batches[topic] = batch1 # Actually mock the batch class now. @@ -177,20 +168,14 @@ def test_publish_new_batch_needed(): client._batch_class = batch_class # Publish a message. - future = client.publish(topic, b'foo', bar=b'baz') + future = client.publish(topic, b"foo", bar=b"baz") assert future is mock.sentinel.future # Check the mocks. batch_class.assert_called_once_with( - autocommit=True, - client=client, - settings=client.batch_settings, - topic=topic, - ) - message_pb = types.PubsubMessage( - data=b'foo', - attributes={'bar': u'baz'}, + autocommit=True, client=client, settings=client.batch_settings, topic=topic ) + message_pb = types.PubsubMessage(data=b"foo", attributes={"bar": u"baz"}) batch1.publish.assert_called_once_with(message_pb) batch2.publish.assert_called_once_with(message_pb) @@ -198,9 +183,9 @@ def test_publish_new_batch_needed(): def test_publish_attrs_type_error(): creds = mock.Mock(spec=credentials.Credentials) client = publisher.Client(credentials=creds) - topic = 'topic/path' + topic = "topic/path" with pytest.raises(TypeError): - client.publish(topic, b'foo', answer=42) + client.publish(topic, b"foo", answer=42) def test_gapic_instance_method(): @@ -208,25 +193,26 @@ def test_gapic_instance_method(): client = publisher.Client(credentials=creds) ct = mock.Mock() - client.api._inner_api_calls['create_topic'] = ct + client.api._inner_api_calls["create_topic"] = ct - client.create_topic('projects/foo/topics/bar') + client.create_topic("projects/foo/topics/bar") assert ct.call_count == 1 _, args, _ = ct.mock_calls[0] - assert args[0] == types.Topic(name='projects/foo/topics/bar') + assert args[0] == types.Topic(name="projects/foo/topics/bar") def test_gapic_class_method_on_class(): - answer = publisher.Client.topic_path('foo', 'bar') - assert answer == 'projects/foo/topics/bar' + answer = publisher.Client.topic_path("foo", "bar") + assert answer == "projects/foo/topics/bar" def test_class_method_factory(): patch = mock.patch( - 'google.oauth2.service_account.Credentials.from_service_account_file') + "google.oauth2.service_account.Credentials.from_service_account_file" + ) with patch: - client = publisher.Client.from_service_account_file('filename.json') + client = publisher.Client.from_service_account_file("filename.json") assert isinstance(client, publisher.Client) @@ -234,5 +220,5 @@ def test_class_method_factory(): def test_gapic_class_method_on_instance(): creds = mock.Mock(spec=credentials.Credentials) client = publisher.Client(credentials=creds) - answer = client.topic_path('foo', 'bar') - assert answer == 'projects/foo/topics/bar' + answer = client.topic_path("foo", "bar") + assert answer == "projects/foo/topics/bar" diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_dispatcher.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_dispatcher.py index 7fdee71e7dcb..0e1e9744f6d9 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_dispatcher.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_dispatcher.py @@ -25,16 +25,20 @@ import pytest -@pytest.mark.parametrize('item,method_name', [ - (requests.AckRequest(0, 0, 0), 'ack'), - (requests.DropRequest(0, 0), 'drop'), - (requests.LeaseRequest(0, 0), 'lease'), - (requests.ModAckRequest(0, 0), 'modify_ack_deadline'), - (requests.NackRequest(0, 0), 'nack') -]) +@pytest.mark.parametrize( + "item,method_name", + [ + (requests.AckRequest(0, 0, 0), "ack"), + (requests.DropRequest(0, 0), "drop"), + (requests.LeaseRequest(0, 0), "lease"), + (requests.ModAckRequest(0, 0), "modify_ack_deadline"), + (requests.NackRequest(0, 0), "nack"), + ], +) def test_dispatch_callback(item, method_name): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) items = [item] @@ -47,7 +51,8 @@ def test_dispatch_callback(item, method_name): def test_dispatch_callback_inactive(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) manager.is_active = False dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) @@ -58,16 +63,16 @@ def test_dispatch_callback_inactive(): def test_ack(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) - items = [requests.AckRequest( - ack_id='ack_id_string', byte_size=0, time_to_ack=20)] + items = [requests.AckRequest(ack_id="ack_id_string", byte_size=0, time_to_ack=20)] dispatcher_.ack(items) - manager.send.assert_called_once_with(types.StreamingPullRequest( - ack_ids=['ack_id_string'], - )) + manager.send.assert_called_once_with( + types.StreamingPullRequest(ack_ids=["ack_id_string"]) + ) manager.leaser.remove.assert_called_once_with(items) manager.maybe_resume_consumer.assert_called_once() @@ -76,26 +81,27 @@ def test_ack(): def test_ack_no_time(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) - items = [requests.AckRequest( - ack_id='ack_id_string', byte_size=0, time_to_ack=None)] + items = [requests.AckRequest(ack_id="ack_id_string", byte_size=0, time_to_ack=None)] dispatcher_.ack(items) - manager.send.assert_called_once_with(types.StreamingPullRequest( - ack_ids=['ack_id_string'], - )) + manager.send.assert_called_once_with( + types.StreamingPullRequest(ack_ids=["ack_id_string"]) + ) manager.ack_histogram.add.assert_not_called() def test_lease(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) - items = [requests.LeaseRequest(ack_id='ack_id_string', byte_size=10)] + items = [requests.LeaseRequest(ack_id="ack_id_string", byte_size=10)] dispatcher_.lease(items) manager.leaser.add.assert_called_once_with(items) @@ -104,10 +110,11 @@ def test_lease(): def test_drop(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) - items = [requests.DropRequest(ack_id='ack_id_string', byte_size=10)] + items = [requests.DropRequest(ack_id="ack_id_string", byte_size=10)] dispatcher_.drop(items) manager.leaser.remove.assert_called_once_with(items) @@ -116,52 +123,59 @@ def test_drop(): def test_nack(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) - items = [requests.NackRequest(ack_id='ack_id_string', byte_size=10)] + items = [requests.NackRequest(ack_id="ack_id_string", byte_size=10)] dispatcher_.nack(items) - manager.send.assert_called_once_with(types.StreamingPullRequest( - modify_deadline_ack_ids=['ack_id_string'], - modify_deadline_seconds=[0], - )) + manager.send.assert_called_once_with( + types.StreamingPullRequest( + modify_deadline_ack_ids=["ack_id_string"], modify_deadline_seconds=[0] + ) + ) def test_modify_ack_deadline(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) - items = [requests.ModAckRequest(ack_id='ack_id_string', seconds=60)] + items = [requests.ModAckRequest(ack_id="ack_id_string", seconds=60)] dispatcher_.modify_ack_deadline(items) - manager.send.assert_called_once_with(types.StreamingPullRequest( - modify_deadline_ack_ids=['ack_id_string'], - modify_deadline_seconds=[60], - )) + manager.send.assert_called_once_with( + types.StreamingPullRequest( + modify_deadline_ack_ids=["ack_id_string"], modify_deadline_seconds=[60] + ) + ) -@mock.patch('threading.Thread', autospec=True) +@mock.patch("threading.Thread", autospec=True) def test_start(thread): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) dispatcher_.start() thread.assert_called_once_with( - name=dispatcher._CALLBACK_WORKER_NAME, target=mock.ANY) + name=dispatcher._CALLBACK_WORKER_NAME, target=mock.ANY + ) thread.return_value.start.assert_called_once() assert dispatcher_._thread is not None -@mock.patch('threading.Thread', autospec=True) +@mock.patch("threading.Thread", autospec=True) def test_start_already_started(thread): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) dispatcher_ = dispatcher.Dispatcher(manager, mock.sentinel.queue) dispatcher_._thread = mock.sentinel.thread @@ -185,7 +199,6 @@ def test_stop(): def test_stop_no_join(): - dispatcher_ = dispatcher.Dispatcher( - mock.sentinel.manager, mock.sentinel.queue) + dispatcher_ = dispatcher.Dispatcher(mock.sentinel.manager, mock.sentinel.queue) dispatcher_.stop() diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_futures_subscriber.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_futures_subscriber.py index 7c695047c86f..4d41713e6ec8 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_futures_subscriber.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_futures_subscriber.py @@ -24,7 +24,8 @@ class TestStreamingPullFuture(object): def make_future(self): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) future = futures.StreamingPullFuture(manager) return future @@ -34,7 +35,8 @@ def test_default_state(self): assert future.running() assert not future.done() future._manager.add_close_callback.assert_called_once_with( - future._on_close_callback) + future._on_close_callback + ) def test__on_close_callback_success(self): future = self.make_future() @@ -47,7 +49,7 @@ def test__on_close_callback_success(self): def test__on_close_callback_failure(self): future = self.make_future() - future._on_close_callback(mock.sentinel.manager, ValueError('meep')) + future._on_close_callback(mock.sentinel.manager, ValueError("meep")) with pytest.raises(ValueError): future.result() diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_heartbeater.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_heartbeater.py index f9147a4d7e39..8f5049691a9d 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_heartbeater.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_heartbeater.py @@ -25,27 +25,29 @@ def test_heartbeat_inactive(caplog): caplog.set_level(logging.INFO) manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) manager.is_active = False heartbeater_ = heartbeater.Heartbeater(manager) heartbeater_.heartbeat() - assert 'exiting' in caplog.text + assert "exiting" in caplog.text def test_heartbeat_stopped(caplog): caplog.set_level(logging.INFO) manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) heartbeater_ = heartbeater.Heartbeater(manager) heartbeater_.stop() heartbeater_.heartbeat() - assert 'exiting' in caplog.text + assert "exiting" in caplog.text def make_sleep_mark_manager_as_inactive(heartbeater): @@ -60,7 +62,8 @@ def trigger_inactive(timeout): def test_heartbeat_once(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) heartbeater_ = heartbeater.Heartbeater(manager) make_sleep_mark_manager_as_inactive(heartbeater_) @@ -69,27 +72,29 @@ def test_heartbeat_once(): manager.heartbeat.assert_called_once() -@mock.patch('threading.Thread', autospec=True) +@mock.patch("threading.Thread", autospec=True) def test_start(thread): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) heartbeater_ = heartbeater.Heartbeater(manager) heartbeater_.start() thread.assert_called_once_with( - name=heartbeater._HEARTBEAT_WORKER_NAME, - target=heartbeater_.heartbeat) + name=heartbeater._HEARTBEAT_WORKER_NAME, target=heartbeater_.heartbeat + ) thread.return_value.start.assert_called_once() assert heartbeater_._thread is not None -@mock.patch('threading.Thread', autospec=True) +@mock.patch("threading.Thread", autospec=True) def test_start_already_started(thread): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) heartbeater_ = heartbeater.Heartbeater(manager) heartbeater_._thread = mock.sentinel.thread @@ -101,7 +106,8 @@ def test_start_already_started(thread): def test_stop(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) heartbeater_ = heartbeater.Heartbeater(manager) thread = mock.create_autospec(threading.Thread, instance=True) heartbeater_._thread = thread diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_helper_threads.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_helper_threads.py index 507e8292f7c8..6e1bcc813c89 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_helper_threads.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_helper_threads.py @@ -25,11 +25,8 @@ def test_queue_callback_worker(): # Set up an appropriate mock for the queue, and call the queue callback # thread. - with mock.patch.object(queue.Queue, 'get') as get: - get.side_effect = ( - mock.sentinel.A, - helper_threads.STOP, - queue.Empty()) + with mock.patch.object(queue.Queue, "get") as get: + get.side_effect = (mock.sentinel.A, helper_threads.STOP, queue.Empty()) qct() # Assert that we got the expected calls. @@ -44,12 +41,13 @@ def test_queue_callback_worker_stop_with_extra_items(): # Set up an appropriate mock for the queue, and call the queue callback # thread. - with mock.patch.object(queue.Queue, 'get') as get: + with mock.patch.object(queue.Queue, "get") as get: get.side_effect = ( mock.sentinel.A, helper_threads.STOP, mock.sentinel.B, - queue.Empty()) + queue.Empty(), + ) qct() # Assert that we got the expected calls. @@ -64,20 +62,21 @@ def test_queue_callback_worker_get_many(): # Set up an appropriate mock for the queue, and call the queue callback # thread. - with mock.patch.object(queue.Queue, 'get') as get: + with mock.patch.object(queue.Queue, "get") as get: get.side_effect = ( mock.sentinel.A, queue.Empty(), mock.sentinel.B, helper_threads.STOP, - queue.Empty()) + queue.Empty(), + ) qct() # Assert that we got the expected calls. assert get.call_count == 5 - callback.assert_has_calls([ - mock.call([(mock.sentinel.A)]), - mock.call([(mock.sentinel.B)])]) + callback.assert_has_calls( + [mock.call([(mock.sentinel.A)]), mock.call([(mock.sentinel.B)])] + ) def test_queue_callback_worker_max_items(): @@ -87,19 +86,20 @@ def test_queue_callback_worker_max_items(): # Set up an appropriate mock for the queue, and call the queue callback # thread. - with mock.patch.object(queue.Queue, 'get') as get: + with mock.patch.object(queue.Queue, "get") as get: get.side_effect = ( mock.sentinel.A, mock.sentinel.B, helper_threads.STOP, - queue.Empty()) + queue.Empty(), + ) qct() # Assert that we got the expected calls. assert get.call_count == 3 - callback.assert_has_calls([ - mock.call([(mock.sentinel.A)]), - mock.call([(mock.sentinel.B)])]) + callback.assert_has_calls( + [mock.call([(mock.sentinel.A)]), mock.call([(mock.sentinel.B)])] + ) def test_queue_callback_worker_exception(): @@ -109,11 +109,8 @@ def test_queue_callback_worker_exception(): # Set up an appropriate mock for the queue, and call the queue callback # thread. - with mock.patch.object(queue.Queue, 'get') as get: - get.side_effect = ( - mock.sentinel.A, - helper_threads.STOP, - queue.Empty()) + with mock.patch.object(queue.Queue, "get") as get: + get.side_effect = (mock.sentinel.A, helper_threads.STOP, queue.Empty()) qct() # Assert that we got the expected calls. diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_leaser.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_leaser.py index 447fa79f5036..c8b217473d40 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_leaser.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_leaser.py @@ -29,20 +29,17 @@ def test_add_and_remove(): leaser_ = leaser.Leaser(mock.sentinel.manager) - leaser_.add([ - requests.LeaseRequest(ack_id='ack1', byte_size=50)]) - leaser_.add([ - requests.LeaseRequest(ack_id='ack2', byte_size=25)]) + leaser_.add([requests.LeaseRequest(ack_id="ack1", byte_size=50)]) + leaser_.add([requests.LeaseRequest(ack_id="ack2", byte_size=25)]) assert leaser_.message_count == 2 - assert set(leaser_.ack_ids) == set(['ack1', 'ack2']) + assert set(leaser_.ack_ids) == set(["ack1", "ack2"]) assert leaser_.bytes == 75 - leaser_.remove([ - requests.DropRequest(ack_id='ack1', byte_size=50)]) + leaser_.remove([requests.DropRequest(ack_id="ack1", byte_size=50)]) assert leaser_.message_count == 1 - assert set(leaser_.ack_ids) == set(['ack2']) + assert set(leaser_.ack_ids) == set(["ack2"]) assert leaser_.bytes == 25 @@ -51,12 +48,10 @@ def test_add_already_managed(caplog): leaser_ = leaser.Leaser(mock.sentinel.manager) - leaser_.add([ - requests.LeaseRequest(ack_id='ack1', byte_size=50)]) - leaser_.add([ - requests.LeaseRequest(ack_id='ack1', byte_size=50)]) + leaser_.add([requests.LeaseRequest(ack_id="ack1", byte_size=50)]) + leaser_.add([requests.LeaseRequest(ack_id="ack1", byte_size=50)]) - assert 'already lease managed' in caplog.text + assert "already lease managed" in caplog.text def test_remove_not_managed(caplog): @@ -64,10 +59,9 @@ def test_remove_not_managed(caplog): leaser_ = leaser.Leaser(mock.sentinel.manager) - leaser_.remove([ - requests.DropRequest(ack_id='ack1', byte_size=50)]) + leaser_.remove([requests.DropRequest(ack_id="ack1", byte_size=50)]) - assert 'not managed' in caplog.text + assert "not managed" in caplog.text def test_remove_negative_bytes(caplog): @@ -75,20 +69,18 @@ def test_remove_negative_bytes(caplog): leaser_ = leaser.Leaser(mock.sentinel.manager) - leaser_.add([ - requests.LeaseRequest(ack_id='ack1', byte_size=50)]) - leaser_.remove([ - requests.DropRequest(ack_id='ack1', byte_size=75)]) + leaser_.add([requests.LeaseRequest(ack_id="ack1", byte_size=50)]) + leaser_.remove([requests.DropRequest(ack_id="ack1", byte_size=75)]) assert leaser_.bytes == 0 - assert 'unexpectedly negative' in caplog.text + assert "unexpectedly negative" in caplog.text def create_manager(flow_control=types.FlowControl()): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) - manager.dispatcher = mock.create_autospec( - dispatcher.Dispatcher, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) + manager.dispatcher = mock.create_autospec(dispatcher.Dispatcher, instance=True) manager.is_active = True manager.flow_control = flow_control manager.ack_histogram = histogram.Histogram() @@ -104,7 +96,7 @@ def test_maintain_leases_inactive(caplog): leaser_.maintain_leases() - assert 'exiting' in caplog.text + assert "exiting" in caplog.text def test_maintain_leases_stopped(caplog): @@ -116,7 +108,7 @@ def test_maintain_leases_stopped(caplog): leaser_.maintain_leases() - assert 'exiting' in caplog.text + assert "exiting" in caplog.text def make_sleep_mark_manager_as_inactive(leaser): @@ -133,16 +125,13 @@ def test_maintain_leases_ack_ids(): manager = create_manager() leaser_ = leaser.Leaser(manager) make_sleep_mark_manager_as_inactive(leaser_) - leaser_.add([requests.LeaseRequest(ack_id='my ack id', byte_size=50)]) + leaser_.add([requests.LeaseRequest(ack_id="my ack id", byte_size=50)]) leaser_.maintain_leases() - manager.dispatcher.modify_ack_deadline.assert_called_once_with([ - requests.ModAckRequest( - ack_id='my ack id', - seconds=10, - ) - ]) + manager.dispatcher.modify_ack_deadline.assert_called_once_with( + [requests.ModAckRequest(ack_id="my ack id", seconds=10)] + ) def test_maintain_leases_no_ack_ids(): @@ -155,7 +144,7 @@ def test_maintain_leases_no_ack_ids(): manager.dispatcher.modify_ack_deadline.assert_not_called() -@mock.patch('time.time', autospec=True) +@mock.patch("time.time", autospec=True) def test_maintain_leases_outdated_items(time): manager = create_manager() leaser_ = leaser.Leaser(manager) @@ -163,13 +152,11 @@ def test_maintain_leases_outdated_items(time): # Add these items at the beginning of the timeline time.return_value = 0 - leaser_.add([ - requests.LeaseRequest(ack_id='ack1', byte_size=50)]) + leaser_.add([requests.LeaseRequest(ack_id="ack1", byte_size=50)]) # Add another item at towards end of the timeline time.return_value = manager.flow_control.max_lease_duration - 1 - leaser_.add([ - requests.LeaseRequest(ack_id='ack2', byte_size=50)]) + leaser_.add([requests.LeaseRequest(ack_id="ack2", byte_size=50)]) # Now make sure time reports that we are at the end of our timeline. time.return_value = manager.flow_control.max_lease_duration + 1 @@ -177,37 +164,37 @@ def test_maintain_leases_outdated_items(time): leaser_.maintain_leases() # Only ack2 should be renewed. ack1 should've been dropped - manager.dispatcher.modify_ack_deadline.assert_called_once_with([ - requests.ModAckRequest( - ack_id='ack2', - seconds=10, - ) - ]) - manager.dispatcher.drop.assert_called_once_with([ - requests.DropRequest(ack_id='ack1', byte_size=50) - ]) - - -@mock.patch('threading.Thread', autospec=True) + manager.dispatcher.modify_ack_deadline.assert_called_once_with( + [requests.ModAckRequest(ack_id="ack2", seconds=10)] + ) + manager.dispatcher.drop.assert_called_once_with( + [requests.DropRequest(ack_id="ack1", byte_size=50)] + ) + + +@mock.patch("threading.Thread", autospec=True) def test_start(thread): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) leaser_ = leaser.Leaser(manager) leaser_.start() thread.assert_called_once_with( - name=leaser._LEASE_WORKER_NAME, target=leaser_.maintain_leases) + name=leaser._LEASE_WORKER_NAME, target=leaser_.maintain_leases + ) thread.return_value.start.assert_called_once() assert leaser_._thread is not None -@mock.patch('threading.Thread', autospec=True) +@mock.patch("threading.Thread", autospec=True) def test_start_already_started(thread): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) leaser_ = leaser.Leaser(manager) leaser_._thread = mock.sentinel.thread @@ -219,7 +206,8 @@ def test_start_already_started(thread): def test_stop(): manager = mock.create_autospec( - streaming_pull_manager.StreamingPullManager, instance=True) + streaming_pull_manager.StreamingPullManager, instance=True + ) leaser_ = leaser.Leaser(manager) thread = mock.create_autospec(threading.Thread, instance=True) leaser_._thread = thread diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_message.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_message.py index bb87dec3518c..98a946ae75c6 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_message.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_message.py @@ -29,51 +29,53 @@ RECEIVED = datetime.datetime(2012, 4, 21, 15, 0, tzinfo=pytz.utc) RECEIVED_SECONDS = datetime_helpers.to_milliseconds(RECEIVED) // 1000 PUBLISHED_MICROS = 123456 -PUBLISHED = RECEIVED + datetime.timedelta( - days=1, microseconds=PUBLISHED_MICROS) +PUBLISHED = RECEIVED + datetime.timedelta(days=1, microseconds=PUBLISHED_MICROS) PUBLISHED_SECONDS = datetime_helpers.to_milliseconds(PUBLISHED) // 1000 -def create_message(data, ack_id='ACKID', **attrs): - with mock.patch.object(message.Message, 'lease') as lease: - with mock.patch.object(time, 'time') as time_: +def create_message(data, ack_id="ACKID", **attrs): + with mock.patch.object(message.Message, "lease") as lease: + with mock.patch.object(time, "time") as time_: time_.return_value = RECEIVED_SECONDS - msg = message.Message(types.PubsubMessage( - attributes=attrs, - data=data, - message_id='message_id', - publish_time=timestamp_pb2.Timestamp( - seconds=PUBLISHED_SECONDS, - nanos=PUBLISHED_MICROS * 1000, + msg = message.Message( + types.PubsubMessage( + attributes=attrs, + data=data, + message_id="message_id", + publish_time=timestamp_pb2.Timestamp( + seconds=PUBLISHED_SECONDS, nanos=PUBLISHED_MICROS * 1000 + ), ), - ), ack_id, queue.Queue()) + ack_id, + queue.Queue(), + ) lease.assert_called_once_with() return msg def test_attributes(): - msg = create_message(b'foo', baz='bacon', spam='eggs') - assert msg.attributes == {'baz': 'bacon', 'spam': 'eggs'} + msg = create_message(b"foo", baz="bacon", spam="eggs") + assert msg.attributes == {"baz": "bacon", "spam": "eggs"} def test_data(): - msg = create_message(b'foo') - assert msg.data == b'foo' + msg = create_message(b"foo") + assert msg.data == b"foo" def test_size(): - msg = create_message(b'foo') + msg = create_message(b"foo") assert msg.size == 30 # payload + protobuf overhead def test_ack_id(): - ack_id = 'MY-ACK-ID' - msg = create_message(b'foo', ack_id=ack_id) + ack_id = "MY-ACK-ID" + msg = create_message(b"foo", ack_id=ack_id) assert msg.ack_id == ack_id def test_publish_time(): - msg = create_message(b'foo') + msg = create_message(b"foo") assert msg.publish_time == PUBLISHED @@ -101,72 +103,70 @@ def check_call_types(mock, *args, **kwargs): def test_ack(): - msg = create_message(b'foo', ack_id='bogus_ack_id') - with mock.patch.object(msg._request_queue, 'put') as put: + msg = create_message(b"foo", ack_id="bogus_ack_id") + with mock.patch.object(msg._request_queue, "put") as put: msg.ack() - put.assert_called_once_with(requests.AckRequest( - ack_id='bogus_ack_id', - byte_size=30, - time_to_ack=mock.ANY, - )) + put.assert_called_once_with( + requests.AckRequest( + ack_id="bogus_ack_id", byte_size=30, time_to_ack=mock.ANY + ) + ) check_call_types(put, requests.AckRequest) def test_drop(): - msg = create_message(b'foo', ack_id='bogus_ack_id') - with mock.patch.object(msg._request_queue, 'put') as put: + msg = create_message(b"foo", ack_id="bogus_ack_id") + with mock.patch.object(msg._request_queue, "put") as put: msg.drop() - put.assert_called_once_with(requests.DropRequest( - ack_id='bogus_ack_id', - byte_size=30, - )) + put.assert_called_once_with( + requests.DropRequest(ack_id="bogus_ack_id", byte_size=30) + ) check_call_types(put, requests.DropRequest) def test_lease(): - msg = create_message(b'foo', ack_id='bogus_ack_id') - with mock.patch.object(msg._request_queue, 'put') as put: + msg = create_message(b"foo", ack_id="bogus_ack_id") + with mock.patch.object(msg._request_queue, "put") as put: msg.lease() - put.assert_called_once_with(requests.LeaseRequest( - ack_id='bogus_ack_id', - byte_size=30, - )) + put.assert_called_once_with( + requests.LeaseRequest(ack_id="bogus_ack_id", byte_size=30) + ) check_call_types(put, requests.LeaseRequest) def test_modify_ack_deadline(): - msg = create_message(b'foo', ack_id='bogus_ack_id') - with mock.patch.object(msg._request_queue, 'put') as put: + msg = create_message(b"foo", ack_id="bogus_ack_id") + with mock.patch.object(msg._request_queue, "put") as put: msg.modify_ack_deadline(60) - put.assert_called_once_with(requests.ModAckRequest( - ack_id='bogus_ack_id', - seconds=60, - )) + put.assert_called_once_with( + requests.ModAckRequest(ack_id="bogus_ack_id", seconds=60) + ) check_call_types(put, requests.ModAckRequest) def test_nack(): - msg = create_message(b'foo', ack_id='bogus_ack_id') - with mock.patch.object(msg._request_queue, 'put') as put: + msg = create_message(b"foo", ack_id="bogus_ack_id") + with mock.patch.object(msg._request_queue, "put") as put: msg.nack() - put.assert_called_once_with(requests.NackRequest( - ack_id='bogus_ack_id', - byte_size=30, - )) + put.assert_called_once_with( + requests.NackRequest(ack_id="bogus_ack_id", byte_size=30) + ) check_call_types(put, requests.NackRequest) def test_repr(): - data = b'foo' - msg = create_message(data, snow='cones', orange='juice') - data_line = ' data: {!r}'.format(data) - expected_repr = '\n'.join(( - 'Message {', - data_line, - ' attributes: {', - ' "orange": "juice",', - ' "snow": "cones"', - ' }', - '}', - )) + data = b"foo" + msg = create_message(data, snow="cones", orange="juice") + data_line = " data: {!r}".format(data) + expected_repr = "\n".join( + ( + "Message {", + data_line, + " attributes: {", + ' "orange": "juice",', + ' "snow": "cones"', + " }", + "}", + ) + ) assert repr(msg) == expected_repr diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_scheduler.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_scheduler.py index ddd40637e15e..2e1561db022e 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_scheduler.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_scheduler.py @@ -29,8 +29,7 @@ def test_constructor_defaults(): def test_constructor_options(): - scheduler_ = scheduler.ThreadScheduler( - executor=mock.sentinel.executor) + scheduler_ = scheduler.ThreadScheduler(executor=mock.sentinel.executor) assert scheduler_._executor == mock.sentinel.executor @@ -45,9 +44,9 @@ def callback(*args, **kwargs): scheduler_ = scheduler.ThreadScheduler() - scheduler_.schedule(callback, 'arg1', kwarg1='meep') + scheduler_.schedule(callback, "arg1", kwarg1="meep") called.wait() scheduler_.shutdown() - assert called_with == [(('arg1',), {'kwarg1': 'meep'})] + assert called_with == [(("arg1",), {"kwarg1": "meep"})] diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_streaming_pull_manager.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_streaming_pull_manager.py index 924fde56ea70..f5f7354f15d5 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_streaming_pull_manager.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_streaming_pull_manager.py @@ -32,14 +32,20 @@ import grpc -@pytest.mark.parametrize('exception,expected_cls', [ - (ValueError('meep'), ValueError), - (mock.create_autospec(grpc.RpcError, instance=True), - exceptions.GoogleAPICallError), -]) +@pytest.mark.parametrize( + "exception,expected_cls", + [ + (ValueError("meep"), ValueError), + ( + mock.create_autospec(grpc.RpcError, instance=True), + exceptions.GoogleAPICallError, + ), + ], +) def test__maybe_wrap_exception(exception, expected_cls): assert isinstance( - streaming_pull_manager._maybe_wrap_exception(exception), expected_cls) + streaming_pull_manager._maybe_wrap_exception(exception), expected_cls + ) def test__wrap_callback_errors_no_error(): @@ -54,7 +60,7 @@ def test__wrap_callback_errors_no_error(): def test__wrap_callback_errors_error(): msg = mock.create_autospec(message.Message, instance=True) - callback = mock.Mock(side_effect=ValueError('meep')) + callback = mock.Mock(side_effect=ValueError("meep")) streaming_pull_manager._wrap_callback_errors(callback, msg) @@ -63,8 +69,8 @@ def test__wrap_callback_errors_error(): def test_constructor_and_default_state(): manager = streaming_pull_manager.StreamingPullManager( - mock.sentinel.client, - mock.sentinel.subscription) + mock.sentinel.client, mock.sentinel.subscription + ) # Public state assert manager.is_active is False @@ -86,7 +92,8 @@ def test_constructor_with_options(): mock.sentinel.client, mock.sentinel.subscription, flow_control=mock.sentinel.flow_control, - scheduler=mock.sentinel.scheduler) + scheduler=mock.sentinel.scheduler, + ) assert manager.flow_control == mock.sentinel.flow_control assert manager._scheduler == mock.sentinel.scheduler @@ -96,10 +103,8 @@ def make_manager(**kwargs): client_ = mock.create_autospec(client.Client, instance=True) scheduler_ = mock.create_autospec(scheduler.Scheduler, instance=True) return streaming_pull_manager.StreamingPullManager( - client_, - 'subscription-name', - scheduler=scheduler_, - **kwargs) + client_, "subscription-name", scheduler=scheduler_, **kwargs + ) def test_ack_deadline(): @@ -113,7 +118,8 @@ def test_ack_deadline(): def test_maybe_pause_consumer_wo_consumer_set(): manager = make_manager( - flow_control=types.FlowControl(max_messages=10, max_bytes=1000)) + flow_control=types.FlowControl(max_messages=10, max_bytes=1000) + ) manager.maybe_pause_consumer() # no raise # Ensure load > 1 _leaser = manager._leaser = mock.create_autospec(leaser.Leaser) @@ -124,27 +130,27 @@ def test_maybe_pause_consumer_wo_consumer_set(): def test_lease_load_and_pause(): manager = make_manager( - flow_control=types.FlowControl(max_messages=10, max_bytes=1000)) + flow_control=types.FlowControl(max_messages=10, max_bytes=1000) + ) manager._leaser = leaser.Leaser(manager) - manager._consumer = mock.create_autospec( - bidi.BackgroundConsumer, instance=True) + manager._consumer = mock.create_autospec(bidi.BackgroundConsumer, instance=True) manager._consumer.is_paused = False # This should mean that our messages count is at 10%, and our bytes # are at 15%; load should return the higher (0.15), and shouldn't cause # the consumer to pause. - manager.leaser.add([requests.LeaseRequest(ack_id='one', byte_size=150)]) + manager.leaser.add([requests.LeaseRequest(ack_id="one", byte_size=150)]) assert manager.load == 0.15 manager.maybe_pause_consumer() manager._consumer.pause.assert_not_called() # After this message is added, the messages should be higher at 20% # (versus 16% for bytes). - manager.leaser.add([requests.LeaseRequest(ack_id='two', byte_size=10)]) + manager.leaser.add([requests.LeaseRequest(ack_id="two", byte_size=10)]) assert manager.load == 0.2 # Returning a number above 100% is fine, and it should cause this to pause. - manager.leaser.add([requests.LeaseRequest(ack_id='three', byte_size=1000)]) + manager.leaser.add([requests.LeaseRequest(ack_id="three", byte_size=1000)]) assert manager.load == 1.16 manager.maybe_pause_consumer() manager._consumer.pause.assert_called_once() @@ -152,16 +158,19 @@ def test_lease_load_and_pause(): def test_drop_and_resume(): manager = make_manager( - flow_control=types.FlowControl(max_messages=10, max_bytes=1000)) + flow_control=types.FlowControl(max_messages=10, max_bytes=1000) + ) manager._leaser = leaser.Leaser(manager) - manager._consumer = mock.create_autospec( - bidi.BackgroundConsumer, instance=True) + manager._consumer = mock.create_autospec(bidi.BackgroundConsumer, instance=True) manager._consumer.is_paused = True # Add several messages until we're over the load threshold. - manager.leaser.add([ - requests.LeaseRequest(ack_id='one', byte_size=750), - requests.LeaseRequest(ack_id='two', byte_size=250)]) + manager.leaser.add( + [ + requests.LeaseRequest(ack_id="one", byte_size=750), + requests.LeaseRequest(ack_id="two", byte_size=250), + ] + ) assert manager.load == 1.0 @@ -171,16 +180,14 @@ def test_drop_and_resume(): # Drop the 200 byte message, which should put us under the resume # threshold. - manager.leaser.remove([ - requests.DropRequest(ack_id='two', byte_size=250)]) + manager.leaser.remove([requests.DropRequest(ack_id="two", byte_size=250)]) manager.maybe_resume_consumer() manager._consumer.resume.assert_called_once() def test_resume_not_paused(): manager = make_manager() - manager._consumer = mock.create_autospec( - bidi.BackgroundConsumer, instance=True) + manager._consumer = mock.create_autospec(bidi.BackgroundConsumer, instance=True) manager._consumer.is_paused = False # Resuming should have no effect is the consumer is not actually paused. @@ -190,7 +197,8 @@ def test_resume_not_paused(): def test_maybe_resume_consumer_wo_consumer_set(): manager = make_manager( - flow_control=types.FlowControl(max_messages=10, max_bytes=1000)) + flow_control=types.FlowControl(max_messages=10, max_bytes=1000) + ) manager.maybe_resume_consumer() # no raise @@ -198,22 +206,33 @@ def test_send_unary(): manager = make_manager() manager._UNARY_REQUESTS = True - manager.send(types.StreamingPullRequest( - ack_ids=['ack_id1', 'ack_id2'], - modify_deadline_ack_ids=['ack_id3', 'ack_id4', 'ack_id5'], - modify_deadline_seconds=[10, 20, 20])) + manager.send( + types.StreamingPullRequest( + ack_ids=["ack_id1", "ack_id2"], + modify_deadline_ack_ids=["ack_id3", "ack_id4", "ack_id5"], + modify_deadline_seconds=[10, 20, 20], + ) + ) manager._client.acknowledge.assert_called_once_with( - subscription=manager._subscription, ack_ids=['ack_id1', 'ack_id2']) + subscription=manager._subscription, ack_ids=["ack_id1", "ack_id2"] + ) - manager._client.modify_ack_deadline.assert_has_calls([ - mock.call( - subscription=manager._subscription, - ack_ids=['ack_id3'], ack_deadline_seconds=10), - mock.call( - subscription=manager._subscription, - ack_ids=['ack_id4', 'ack_id5'], ack_deadline_seconds=20), - ], any_order=True) + manager._client.modify_ack_deadline.assert_has_calls( + [ + mock.call( + subscription=manager._subscription, + ack_ids=["ack_id3"], + ack_deadline_seconds=10, + ), + mock.call( + subscription=manager._subscription, + ack_ids=["ack_id4", "ack_id5"], + ack_deadline_seconds=20, + ), + ], + any_order=True, + ) def test_send_unary_empty(): @@ -232,13 +251,12 @@ def test_send_unary_error(caplog): manager = make_manager() manager._UNARY_REQUESTS = True - error = exceptions.GoogleAPICallError('The front fell off') + error = exceptions.GoogleAPICallError("The front fell off") manager._client.acknowledge.side_effect = error - manager.send(types.StreamingPullRequest( - ack_ids=['ack_id1', 'ack_id2'])) + manager.send(types.StreamingPullRequest(ack_ids=["ack_id1", "ack_id2"])) - assert 'The front fell off' in caplog.text + assert "The front fell off" in caplog.text def test_send_streaming(): @@ -271,24 +289,16 @@ def test_heartbeat_inactive(): manager._rpc.send.assert_not_called() +@mock.patch("google.api_core.bidi.ResumableBidiRpc", autospec=True) +@mock.patch("google.api_core.bidi.BackgroundConsumer", autospec=True) +@mock.patch("google.cloud.pubsub_v1.subscriber._protocol.leaser.Leaser", autospec=True) @mock.patch( - 'google.api_core.bidi.ResumableBidiRpc', - autospec=True) -@mock.patch( - 'google.api_core.bidi.BackgroundConsumer', - autospec=True) -@mock.patch( - 'google.cloud.pubsub_v1.subscriber._protocol.leaser.Leaser', - autospec=True) + "google.cloud.pubsub_v1.subscriber._protocol.dispatcher.Dispatcher", autospec=True +) @mock.patch( - 'google.cloud.pubsub_v1.subscriber._protocol.dispatcher.Dispatcher', - autospec=True) -@mock.patch( - 'google.cloud.pubsub_v1.subscriber._protocol.heartbeater.Heartbeater', - autospec=True) -def test_open( - heartbeater, dispatcher, leaser, background_consumer, - resumable_bidi_rpc): + "google.cloud.pubsub_v1.subscriber._protocol.heartbeater.Heartbeater", autospec=True +) +def test_open(heartbeater, dispatcher, leaser, background_consumer, resumable_bidi_rpc): manager = make_manager() manager.open(mock.sentinel.callback) @@ -305,17 +315,18 @@ def test_open( leaser.return_value.start.assert_called_once() assert manager.leaser == leaser.return_value - background_consumer.assert_called_once_with( - manager._rpc, manager._on_response) + background_consumer.assert_called_once_with(manager._rpc, manager._on_response) background_consumer.return_value.start.assert_called_once() assert manager._consumer == background_consumer.return_value resumable_bidi_rpc.assert_called_once_with( start_rpc=manager._client.api.streaming_pull, initial_request=manager._get_initial_request, - should_recover=manager._should_recover) + should_recover=manager._should_recover, + ) resumable_bidi_rpc.return_value.add_done_callback.assert_called_once_with( - manager._on_rpc_done) + manager._on_rpc_done + ) assert manager._rpc == resumable_bidi_rpc.return_value manager._consumer.is_active = True @@ -324,11 +335,10 @@ def test_open( def test_open_already_active(): manager = make_manager() - manager._consumer = mock.create_autospec( - bidi.BackgroundConsumer, instance=True) + manager._consumer = mock.create_autospec(bidi.BackgroundConsumer, instance=True) manager._consumer.is_active = True - with pytest.raises(ValueError, match='already open'): + with pytest.raises(ValueError, match="already open"): manager.open(mock.sentinel.callback) @@ -336,30 +346,32 @@ def test_open_has_been_closed(): manager = make_manager() manager._closed = True - with pytest.raises(ValueError, match='closed'): + with pytest.raises(ValueError, match="closed"): manager.open(mock.sentinel.callback) def make_running_manager(): manager = make_manager() - manager._consumer = mock.create_autospec( - bidi.BackgroundConsumer, instance=True) + manager._consumer = mock.create_autospec(bidi.BackgroundConsumer, instance=True) manager._consumer.is_active = True - manager._dispatcher = mock.create_autospec( - dispatcher.Dispatcher, instance=True) - manager._leaser = mock.create_autospec( - leaser.Leaser, instance=True) - manager._heartbeater = mock.create_autospec( - heartbeater.Heartbeater, instance=True) + manager._dispatcher = mock.create_autospec(dispatcher.Dispatcher, instance=True) + manager._leaser = mock.create_autospec(leaser.Leaser, instance=True) + manager._heartbeater = mock.create_autospec(heartbeater.Heartbeater, instance=True) return ( - manager, manager._consumer, manager._dispatcher, manager._leaser, - manager._heartbeater, manager._scheduler) + manager, + manager._consumer, + manager._dispatcher, + manager._leaser, + manager._heartbeater, + manager._scheduler, + ) def test_close(): manager, consumer, dispatcher, leaser, heartbeater, scheduler = ( - make_running_manager()) + make_running_manager() + ) manager.close() @@ -374,7 +386,8 @@ def test_close(): def test_close_inactive_consumer(): manager, consumer, dispatcher, leaser, heartbeater, scheduler = ( - make_running_manager()) + make_running_manager() + ) consumer.is_active = False manager.close() @@ -401,23 +414,22 @@ def test_close_callbacks(): callback = mock.Mock() manager.add_close_callback(callback) - manager.close(reason='meep') + manager.close(reason="meep") - callback.assert_called_once_with(manager, 'meep') + callback.assert_called_once_with(manager, "meep") def test__get_initial_request(): manager = make_manager() - manager._leaser = mock.create_autospec( - leaser.Leaser, instance=True) - manager._leaser.ack_ids = ['1', '2'] + manager._leaser = mock.create_autospec(leaser.Leaser, instance=True) + manager._leaser.ack_ids = ["1", "2"] initial_request = manager._get_initial_request() assert isinstance(initial_request, types.StreamingPullRequest) - assert initial_request.subscription == 'subscription-name' + assert initial_request.subscription == "subscription-name" assert initial_request.stream_ack_deadline_seconds == 10 - assert initial_request.modify_deadline_ack_ids == ['1', '2'] + assert initial_request.modify_deadline_ack_ids == ["1", "2"] assert initial_request.modify_deadline_seconds == [10, 10] @@ -428,7 +440,7 @@ def test__get_initial_request_wo_leaser(): initial_request = manager._get_initial_request() assert isinstance(initial_request, types.StreamingPullRequest) - assert initial_request.subscription == 'subscription-name' + assert initial_request.subscription == "subscription-name" assert initial_request.stream_ack_deadline_seconds == 10 assert initial_request.modify_deadline_ack_ids == [] assert initial_request.modify_deadline_seconds == [] @@ -442,14 +454,12 @@ def test_on_response(): response = types.StreamingPullResponse( received_messages=[ types.ReceivedMessage( - ack_id='fack', - message=types.PubsubMessage(data=b'foo', message_id='1') + ack_id="fack", message=types.PubsubMessage(data=b"foo", message_id="1") ), types.ReceivedMessage( - ack_id='back', - message=types.PubsubMessage(data=b'bar', message_id='2') + ack_id="back", message=types.PubsubMessage(data=b"bar", message_id="2") ), - ], + ] ) # Actually run the method and prove that modack and schedule @@ -457,8 +467,7 @@ def test_on_response(): manager._on_response(response) dispatcher.modify_ack_deadline.assert_called_once_with( - [requests.ModAckRequest('fack', 10), - requests.ModAckRequest('back', 10)] + [requests.ModAckRequest("fack", 10), requests.ModAckRequest("back", 10)] ) schedule_calls = scheduler.schedule.mock_calls @@ -470,26 +479,22 @@ def test_on_response(): def test_retryable_stream_errors(): # Make sure the config matches our hard-coded tuple of exceptions. - interfaces = subscriber_client_config.config['interfaces'] - retry_codes = interfaces['google.pubsub.v1.Subscriber']['retry_codes'] - idempotent = retry_codes['idempotent'] + interfaces = subscriber_client_config.config["interfaces"] + retry_codes = interfaces["google.pubsub.v1.Subscriber"]["retry_codes"] + idempotent = retry_codes["idempotent"] - status_codes = tuple( - getattr(grpc.StatusCode, name, None) - for name in idempotent - ) + status_codes = tuple(getattr(grpc.StatusCode, name, None) for name in idempotent) expected = tuple( exceptions.exception_class_for_grpc_status(status_code) for status_code in status_codes ) - assert set(expected).issubset( - set(streaming_pull_manager._RETRYABLE_STREAM_ERRORS)) + assert set(expected).issubset(set(streaming_pull_manager._RETRYABLE_STREAM_ERRORS)) def test__should_recover_true(): manager = make_manager() - details = 'UNAVAILABLE. Service taking nap.' + details = "UNAVAILABLE. Service taking nap." exc = exceptions.ServiceUnavailable(details) assert manager._should_recover(exc) is True @@ -498,17 +503,17 @@ def test__should_recover_true(): def test__should_recover_false(): manager = make_manager() - exc = TypeError('wahhhhhh') + exc = TypeError("wahhhhhh") assert manager._should_recover(exc) is False -@mock.patch('threading.Thread', autospec=True) +@mock.patch("threading.Thread", autospec=True) def test__on_rpc_done(thread): manager = make_manager() manager._on_rpc_done(mock.sentinel.error) thread.assert_called_once_with( - name=mock.ANY, target=manager.close, - kwargs={'reason': mock.sentinel.error}) + name=mock.ANY, target=manager.close, kwargs={"reason": mock.sentinel.error} + ) diff --git a/pubsub/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py b/pubsub/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py index 86297d31cd96..5acd5b6f8dd7 100644 --- a/pubsub/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py +++ b/pubsub/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py @@ -27,7 +27,7 @@ def test_init(): def test_init_emulator(monkeypatch): - monkeypatch.setenv('PUBSUB_EMULATOR_HOST', '/baz/bacon/') + monkeypatch.setenv("PUBSUB_EMULATOR_HOST", "/baz/bacon/") # NOTE: When the emulator host is set, a custom channel will be used, so # no credentials (mock ot otherwise) can be passed in. client = subscriber.Client() @@ -37,38 +37,41 @@ def test_init_emulator(monkeypatch): # Sadly, there seems to be no good way to do this without poking at # the private API of gRPC. channel = client.api.transport.pull._channel - assert channel.target().decode('utf8') == '/baz/bacon/' + assert channel.target().decode("utf8") == "/baz/bacon/" def test_class_method_factory(): patch = mock.patch( - 'google.oauth2.service_account.Credentials.from_service_account_file') + "google.oauth2.service_account.Credentials.from_service_account_file" + ) with patch: - client = subscriber.Client.from_service_account_file('filename.json') + client = subscriber.Client.from_service_account_file("filename.json") assert isinstance(client, subscriber.Client) @mock.patch( - 'google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager.' - 'StreamingPullManager.open', autospec=True) + "google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager." + "StreamingPullManager.open", + autospec=True, +) def test_subscribe(manager_open): creds = mock.Mock(spec=credentials.Credentials) client = subscriber.Client(credentials=creds) - future = client.subscribe( - 'sub_name_a', callback=mock.sentinel.callback) + future = client.subscribe("sub_name_a", callback=mock.sentinel.callback) assert isinstance(future, futures.StreamingPullFuture) - assert future._manager._subscription == 'sub_name_a' - manager_open.assert_called_once_with( - mock.ANY, mock.sentinel.callback) + assert future._manager._subscription == "sub_name_a" + manager_open.assert_called_once_with(mock.ANY, mock.sentinel.callback) @mock.patch( - 'google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager.' - 'StreamingPullManager.open', autospec=True) + "google.cloud.pubsub_v1.subscriber._protocol.streaming_pull_manager." + "StreamingPullManager.open", + autospec=True, +) def test_subscribe_options(manager_open): creds = mock.Mock(spec=credentials.Credentials) client = subscriber.Client(credentials=creds) @@ -76,14 +79,14 @@ def test_subscribe_options(manager_open): scheduler = mock.sentinel.scheduler future = client.subscribe( - 'sub_name_a', + "sub_name_a", callback=mock.sentinel.callback, flow_control=flow_control, - scheduler=scheduler) + scheduler=scheduler, + ) assert isinstance(future, futures.StreamingPullFuture) - assert future._manager._subscription == 'sub_name_a' + assert future._manager._subscription == "sub_name_a" assert future._manager.flow_control == flow_control assert future._manager._scheduler == scheduler - manager_open.assert_called_once_with( - mock.ANY, mock.sentinel.callback) + manager_open.assert_called_once_with(mock.ANY, mock.sentinel.callback) diff --git a/pubsub/tests/unit/pubsub_v1/test_futures.py b/pubsub/tests/unit/pubsub_v1/test_futures.py index 9dd77b506267..11349d5d480a 100644 --- a/pubsub/tests/unit/pubsub_v1/test_futures.py +++ b/pubsub/tests/unit/pubsub_v1/test_futures.py @@ -26,7 +26,7 @@ def _future(*args, **kwargs): def test_constructor_defaults(): - with mock.patch.object(threading, 'Event', autospec=True) as Event: + with mock.patch.object(threading, "Event", autospec=True) as Event: future = _future() assert future._result == futures.Future._SENTINEL @@ -58,26 +58,26 @@ def test_cancelled(): def test_running(): future = _future() assert future.running() is True - future.set_result('foobar') + future.set_result("foobar") assert future.running() is False def test_done(): future = _future() assert future.done() is False - future.set_result('12345') + future.set_result("12345") assert future.done() is True def test_exception_no_error(): future = _future() - future.set_result('12345') + future.set_result("12345") assert future.exception() is None def test_exception_with_error(): future = _future() - error = RuntimeError('Something really bad happened.') + error = RuntimeError("Something really bad happened.") future.set_exception(error) # Make sure that the exception that is returned is the batch's error. @@ -97,13 +97,13 @@ def test_exception_timeout(): def test_result_no_error(): future = _future() - future.set_result('42') - assert future.result() == '42' + future.set_result("42") + assert future.result() == "42" def test_result_with_error(): future = _future() - future.set_exception(RuntimeError('Something really bad happened.')) + future.set_exception(RuntimeError("Something really bad happened.")) with pytest.raises(RuntimeError): future.result() @@ -119,7 +119,7 @@ def test_add_done_callback_pending_batch(): def test_add_done_callback_completed_batch(): future = _future() - future.set_result('12345') + future.set_result("12345") callback = mock.Mock(spec=()) future.add_done_callback(callback) callback.assert_called_once_with(future) @@ -130,19 +130,19 @@ def test_trigger(): callback = mock.Mock(spec=()) future.add_done_callback(callback) assert callback.call_count == 0 - future.set_result('12345') + future.set_result("12345") callback.assert_called_once_with(future) def test_set_result_once_only(): future = _future() - future.set_result('12345') + future.set_result("12345") with pytest.raises(RuntimeError): - future.set_result('67890') + future.set_result("67890") def test_set_exception_once_only(): future = _future() - future.set_exception(ValueError('wah wah')) + future.set_exception(ValueError("wah wah")) with pytest.raises(RuntimeError): - future.set_exception(TypeError('other wah wah')) + future.set_exception(TypeError("other wah wah")) diff --git a/redis/docs/conf.py b/redis/docs/conf.py index bbd8a724003e..40161d814d84 100644 --- a/redis/docs/conf.py +++ b/redis/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-redis' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-redis" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-redis-doc' +htmlhelp_basename = "google-cloud-redis-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,45 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-redis.tex', u'google-cloud-redis Documentation', - author, 'manual'), + ( + master_doc, + "google-cloud-redis.tex", + u"google-cloud-redis Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-redis', - u'google-cloud-redis Documentation', [author], 1)] +man_pages = [ + (master_doc, "google-cloud-redis", u"google-cloud-redis Documentation", [author], 1) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +277,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-redis', u'google-cloud-redis Documentation', - author, 'google-cloud-redis', - 'GAPIC library for the {metadata.shortName} v1beta1 service', 'APIs'), + ( + master_doc, + "google-cloud-redis", + u"google-cloud-redis Documentation", + author, + "google-cloud-redis", + "GAPIC library for the {metadata.shortName} v1beta1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/redis/google/__init__.py b/redis/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/redis/google/__init__.py +++ b/redis/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/redis/google/cloud/__init__.py b/redis/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/redis/google/cloud/__init__.py +++ b/redis/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/redis/google/cloud/redis.py b/redis/google/cloud/redis.py index 8d88b66280a3..532e43b9a9e3 100644 --- a/redis/google/cloud/redis.py +++ b/redis/google/cloud/redis.py @@ -20,8 +20,4 @@ from google.cloud.redis_v1 import enums from google.cloud.redis_v1 import types -__all__ = ( - 'enums', - 'types', - 'CloudRedisClient', -) +__all__ = ("enums", "types", "CloudRedisClient") diff --git a/redis/google/cloud/redis_v1/__init__.py b/redis/google/cloud/redis_v1/__init__.py index 9be2b9e1ff0f..5aae905e6568 100644 --- a/redis/google/cloud/redis_v1/__init__.py +++ b/redis/google/cloud/redis_v1/__init__.py @@ -26,8 +26,4 @@ class CloudRedisClient(cloud_redis_client.CloudRedisClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'CloudRedisClient', -) +__all__ = ("enums", "types", "CloudRedisClient") diff --git a/redis/google/cloud/redis_v1/gapic/cloud_redis_client.py b/redis/google/cloud/redis_v1/gapic/cloud_redis_client.py index 325ad9f59ac6..6992ebe08ad5 100644 --- a/redis/google/cloud/redis_v1/gapic/cloud_redis_client.py +++ b/redis/google/cloud/redis_v1/gapic/cloud_redis_client.py @@ -39,8 +39,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-redis', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-redis").version class CloudRedisClient(object): @@ -63,12 +62,12 @@ class CloudRedisClient(object): ``projects/redpepper-1290/locations/us-central1/instances/my-redis`` """ - SERVICE_ADDRESS = 'redis.googleapis.com:443' + SERVICE_ADDRESS = "redis.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.redis.v1.CloudRedis' + _INTERFACE_NAME = "google.cloud.redis.v1.CloudRedis" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -84,9 +83,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: CloudRedisClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -95,7 +93,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -104,18 +102,20 @@ def location_path(cls, project, location): def instance_path(cls, project, location, instance): """Return a fully-qualified instance string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/instances/{instance}', + "projects/{project}/locations/{location}/instances/{instance}", project=project, location=location, instance=instance, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -149,18 +149,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = cloud_redis_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -169,25 +170,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=cloud_redis_grpc_transport. - CloudRedisGrpcTransport, + default_class=cloud_redis_grpc_transport.CloudRedisGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = cloud_redis_grpc_transport.CloudRedisGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -197,7 +197,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -206,12 +207,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_instances(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_instances( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all Redis instances owned by a project in either the specified location (region) or all locations. @@ -275,39 +278,41 @@ def list_instances(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_instances' not in self._inner_api_calls: + if "list_instances" not in self._inner_api_calls: self._inner_api_calls[ - 'list_instances'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_instances, - default_retry=self._method_configs['ListInstances'].retry, - default_timeout=self._method_configs['ListInstances']. - timeout, - client_info=self._client_info, - ) + "list_instances" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_instances, + default_retry=self._method_configs["ListInstances"].retry, + default_timeout=self._method_configs["ListInstances"].timeout, + client_info=self._client_info, + ) request = cloud_redis_pb2.ListInstancesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_instances'], + self._inner_api_calls["list_instances"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='instances', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="instances", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_instance(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_instance( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the details of a specific Redis instance. @@ -344,27 +349,30 @@ def get_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_instance' not in self._inner_api_calls: + if "get_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'get_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_instance, - default_retry=self._method_configs['GetInstance'].retry, - default_timeout=self._method_configs['GetInstance']. - timeout, - client_info=self._client_info, - ) + "get_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_instance, + default_retry=self._method_configs["GetInstance"].retry, + default_timeout=self._method_configs["GetInstance"].timeout, + client_info=self._client_info, + ) - request = cloud_redis_pb2.GetInstanceRequest(name=name, ) - return self._inner_api_calls['get_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_instance(self, - parent, - instance_id, - instance, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = cloud_redis_pb2.GetInstanceRequest(name=name) + return self._inner_api_calls["get_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_instance( + self, + parent, + instance_id, + instance, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a Redis instance based on the specified tier and memory size. @@ -439,23 +447,22 @@ def create_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_instance' not in self._inner_api_calls: + if "create_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'create_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_instance, - default_retry=self._method_configs['CreateInstance'].retry, - default_timeout=self._method_configs['CreateInstance']. - timeout, - client_info=self._client_info, - ) + "create_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_instance, + default_retry=self._method_configs["CreateInstance"].retry, + default_timeout=self._method_configs["CreateInstance"].timeout, + client_info=self._client_info, + ) request = cloud_redis_pb2.CreateInstanceRequest( - parent=parent, - instance_id=instance_id, - instance=instance, + parent=parent, instance_id=instance_id, instance=instance + ) + operation = self._inner_api_calls["create_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['create_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -463,12 +470,14 @@ def create_instance(self, metadata_type=cloud_redis_pb2.OperationMetadata, ) - def update_instance(self, - update_mask, - instance, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_instance( + self, + update_mask, + instance, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the metadata and configuration of a specific Redis instance. @@ -537,22 +546,22 @@ def update_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_instance' not in self._inner_api_calls: + if "update_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'update_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_instance, - default_retry=self._method_configs['UpdateInstance'].retry, - default_timeout=self._method_configs['UpdateInstance']. - timeout, - client_info=self._client_info, - ) + "update_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_instance, + default_retry=self._method_configs["UpdateInstance"].retry, + default_timeout=self._method_configs["UpdateInstance"].timeout, + client_info=self._client_info, + ) request = cloud_redis_pb2.UpdateInstanceRequest( - update_mask=update_mask, - instance=instance, + update_mask=update_mask, instance=instance + ) + operation = self._inner_api_calls["update_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['update_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -560,11 +569,13 @@ def update_instance(self, metadata_type=cloud_redis_pb2.OperationMetadata, ) - def delete_instance(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_instance( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a specific Redis instance. Instance stops serving and data is deleted. @@ -611,19 +622,20 @@ def delete_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_instance' not in self._inner_api_calls: + if "delete_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_instance, - default_retry=self._method_configs['DeleteInstance'].retry, - default_timeout=self._method_configs['DeleteInstance']. - timeout, - client_info=self._client_info, - ) + "delete_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_instance, + default_retry=self._method_configs["DeleteInstance"].retry, + default_timeout=self._method_configs["DeleteInstance"].timeout, + client_info=self._client_info, + ) - request = cloud_redis_pb2.DeleteInstanceRequest(name=name, ) - operation = self._inner_api_calls['delete_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = cloud_redis_pb2.DeleteInstanceRequest(name=name) + operation = self._inner_api_calls["delete_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/redis/google/cloud/redis_v1/gapic/cloud_redis_client_config.py b/redis/google/cloud/redis_v1/gapic/cloud_redis_client_config.py index ccf11e0a797d..9c2f466a13f8 100644 --- a/redis/google/cloud/redis_v1/gapic/cloud_redis_client_config.py +++ b/redis/google/cloud/redis_v1/gapic/cloud_redis_client_config.py @@ -3,7 +3,7 @@ "google.cloud.redis.v1.CloudRedis": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,36 +13,36 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListInstances": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetInstance": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateInstance": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateInstance": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteInstance": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/redis/google/cloud/redis_v1/gapic/enums.py b/redis/google/cloud/redis_v1/gapic/enums.py index 06a70f37c8df..3799b71aa958 100644 --- a/redis/google/cloud/redis_v1/gapic/enums.py +++ b/redis/google/cloud/redis_v1/gapic/enums.py @@ -35,6 +35,7 @@ class State(enum.IntEnum): found in the ``status_message`` field. MAINTENANCE (int): Maintenance is being performed on this Redis instance. """ + STATE_UNSPECIFIED = 0 CREATING = 1 READY = 2 @@ -52,6 +53,7 @@ class Tier(enum.IntEnum): BASIC (int): BASIC tier: standalone instance STANDARD_HA (int): STANDARD\_HA tier: highly available primary/replica instances """ + TIER_UNSPECIFIED = 0 BASIC = 1 STANDARD_HA = 3 diff --git a/redis/google/cloud/redis_v1/gapic/transports/cloud_redis_grpc_transport.py b/redis/google/cloud/redis_v1/gapic/transports/cloud_redis_grpc_transport.py index 49bac66b9df2..dcc01ed7b917 100644 --- a/redis/google/cloud/redis_v1/gapic/transports/cloud_redis_grpc_transport.py +++ b/redis/google/cloud/redis_v1/gapic/transports/cloud_redis_grpc_transport.py @@ -28,14 +28,14 @@ class CloudRedisGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='redis.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="redis.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,34 +53,28 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'cloud_redis_stub': cloud_redis_pb2_grpc.CloudRedisStub(channel), - } + self._stubs = {"cloud_redis_stub": cloud_redis_pb2_grpc.CloudRedisStub(channel)} # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='redis.googleapis.com:443', - credentials=None): + def create_channel(cls, address="redis.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -95,9 +89,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -127,7 +119,7 @@ def list_instances(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].ListInstances + return self._stubs["cloud_redis_stub"].ListInstances @property def get_instance(self): @@ -140,7 +132,7 @@ def get_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].GetInstance + return self._stubs["cloud_redis_stub"].GetInstance @property def create_instance(self): @@ -165,7 +157,7 @@ def create_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].CreateInstance + return self._stubs["cloud_redis_stub"].CreateInstance @property def update_instance(self): @@ -182,7 +174,7 @@ def update_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].UpdateInstance + return self._stubs["cloud_redis_stub"].UpdateInstance @property def delete_instance(self): @@ -196,4 +188,4 @@ def delete_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].DeleteInstance + return self._stubs["cloud_redis_stub"].DeleteInstance diff --git a/redis/google/cloud/redis_v1/types.py b/redis/google/cloud/redis_v1/types.py index 2b3d570a6614..8ba2e2e88738 100644 --- a/redis/google/cloud/redis_v1/types.py +++ b/redis/google/cloud/redis_v1/types.py @@ -40,9 +40,7 @@ status_pb2, ] -_local_modules = [ - cloud_redis_pb2, -] +_local_modules = [cloud_redis_pb2] names = [] @@ -52,7 +50,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.redis_v1.types' + message.__module__ = "google.cloud.redis_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/redis/google/cloud/redis_v1beta1/__init__.py b/redis/google/cloud/redis_v1beta1/__init__.py index cbac83c2d838..61f1c6e0d7ff 100644 --- a/redis/google/cloud/redis_v1beta1/__init__.py +++ b/redis/google/cloud/redis_v1beta1/__init__.py @@ -26,8 +26,4 @@ class CloudRedisClient(cloud_redis_client.CloudRedisClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'CloudRedisClient', -) +__all__ = ("enums", "types", "CloudRedisClient") diff --git a/redis/google/cloud/redis_v1beta1/gapic/cloud_redis_client.py b/redis/google/cloud/redis_v1beta1/gapic/cloud_redis_client.py index 7c30afa29013..76b95c7d093a 100644 --- a/redis/google/cloud/redis_v1beta1/gapic/cloud_redis_client.py +++ b/redis/google/cloud/redis_v1beta1/gapic/cloud_redis_client.py @@ -40,8 +40,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-redis', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-redis").version class CloudRedisClient(object): @@ -64,12 +63,12 @@ class CloudRedisClient(object): ``projects/redpepper-1290/locations/us-central1/instances/my-redis`` """ - SERVICE_ADDRESS = 'redis.googleapis.com:443' + SERVICE_ADDRESS = "redis.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.redis.v1beta1.CloudRedis' + _INTERFACE_NAME = "google.cloud.redis.v1beta1.CloudRedis" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -85,9 +84,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: CloudRedisClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -96,7 +94,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -105,18 +103,20 @@ def location_path(cls, project, location): def instance_path(cls, project, location, instance): """Return a fully-qualified instance string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/instances/{instance}', + "projects/{project}/locations/{location}/instances/{instance}", project=project, location=location, instance=instance, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -150,18 +150,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = cloud_redis_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -170,25 +171,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=cloud_redis_grpc_transport. - CloudRedisGrpcTransport, + default_class=cloud_redis_grpc_transport.CloudRedisGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = cloud_redis_grpc_transport.CloudRedisGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -198,7 +198,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -207,12 +208,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_instances(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_instances( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all Redis instances owned by a project in either the specified location (region) or all locations. @@ -276,39 +279,41 @@ def list_instances(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_instances' not in self._inner_api_calls: + if "list_instances" not in self._inner_api_calls: self._inner_api_calls[ - 'list_instances'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_instances, - default_retry=self._method_configs['ListInstances'].retry, - default_timeout=self._method_configs['ListInstances']. - timeout, - client_info=self._client_info, - ) + "list_instances" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_instances, + default_retry=self._method_configs["ListInstances"].retry, + default_timeout=self._method_configs["ListInstances"].timeout, + client_info=self._client_info, + ) request = cloud_redis_pb2.ListInstancesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_instances'], + self._inner_api_calls["list_instances"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='instances', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="instances", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_instance(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_instance( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the details of a specific Redis instance. @@ -345,27 +350,30 @@ def get_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_instance' not in self._inner_api_calls: + if "get_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'get_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_instance, - default_retry=self._method_configs['GetInstance'].retry, - default_timeout=self._method_configs['GetInstance']. - timeout, - client_info=self._client_info, - ) + "get_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_instance, + default_retry=self._method_configs["GetInstance"].retry, + default_timeout=self._method_configs["GetInstance"].timeout, + client_info=self._client_info, + ) - request = cloud_redis_pb2.GetInstanceRequest(name=name, ) - return self._inner_api_calls['get_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_instance(self, - parent, - instance_id, - instance, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = cloud_redis_pb2.GetInstanceRequest(name=name) + return self._inner_api_calls["get_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_instance( + self, + parent, + instance_id, + instance, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a Redis instance based on the specified tier and memory size. @@ -440,23 +448,22 @@ def create_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_instance' not in self._inner_api_calls: + if "create_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'create_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_instance, - default_retry=self._method_configs['CreateInstance'].retry, - default_timeout=self._method_configs['CreateInstance']. - timeout, - client_info=self._client_info, - ) + "create_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_instance, + default_retry=self._method_configs["CreateInstance"].retry, + default_timeout=self._method_configs["CreateInstance"].timeout, + client_info=self._client_info, + ) request = cloud_redis_pb2.CreateInstanceRequest( - parent=parent, - instance_id=instance_id, - instance=instance, + parent=parent, instance_id=instance_id, instance=instance + ) + operation = self._inner_api_calls["create_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['create_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -464,12 +471,14 @@ def create_instance(self, metadata_type=any_pb2.Any, ) - def update_instance(self, - update_mask, - instance, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_instance( + self, + update_mask, + instance, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the metadata and configuration of a specific Redis instance. @@ -534,22 +543,22 @@ def update_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_instance' not in self._inner_api_calls: + if "update_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'update_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_instance, - default_retry=self._method_configs['UpdateInstance'].retry, - default_timeout=self._method_configs['UpdateInstance']. - timeout, - client_info=self._client_info, - ) + "update_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_instance, + default_retry=self._method_configs["UpdateInstance"].retry, + default_timeout=self._method_configs["UpdateInstance"].timeout, + client_info=self._client_info, + ) request = cloud_redis_pb2.UpdateInstanceRequest( - update_mask=update_mask, - instance=instance, + update_mask=update_mask, instance=instance + ) + operation = self._inner_api_calls["update_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['update_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -557,11 +566,13 @@ def update_instance(self, metadata_type=any_pb2.Any, ) - def delete_instance(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_instance( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a specific Redis instance. Instance stops serving and data is deleted. @@ -608,19 +619,20 @@ def delete_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_instance' not in self._inner_api_calls: + if "delete_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_instance, - default_retry=self._method_configs['DeleteInstance'].retry, - default_timeout=self._method_configs['DeleteInstance']. - timeout, - client_info=self._client_info, - ) + "delete_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_instance, + default_retry=self._method_configs["DeleteInstance"].retry, + default_timeout=self._method_configs["DeleteInstance"].timeout, + client_info=self._client_info, + ) - request = cloud_redis_pb2.DeleteInstanceRequest(name=name, ) - operation = self._inner_api_calls['delete_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = cloud_redis_pb2.DeleteInstanceRequest(name=name) + operation = self._inner_api_calls["delete_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/redis/google/cloud/redis_v1beta1/gapic/cloud_redis_client_config.py b/redis/google/cloud/redis_v1beta1/gapic/cloud_redis_client_config.py index 3af57fd0c972..863c124675fa 100644 --- a/redis/google/cloud/redis_v1beta1/gapic/cloud_redis_client_config.py +++ b/redis/google/cloud/redis_v1beta1/gapic/cloud_redis_client_config.py @@ -3,7 +3,7 @@ "google.cloud.redis.v1beta1.CloudRedis": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,36 +13,36 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListInstances": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetInstance": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateInstance": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateInstance": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteInstance": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/redis/google/cloud/redis_v1beta1/gapic/enums.py b/redis/google/cloud/redis_v1beta1/gapic/enums.py index 06a70f37c8df..3799b71aa958 100644 --- a/redis/google/cloud/redis_v1beta1/gapic/enums.py +++ b/redis/google/cloud/redis_v1beta1/gapic/enums.py @@ -35,6 +35,7 @@ class State(enum.IntEnum): found in the ``status_message`` field. MAINTENANCE (int): Maintenance is being performed on this Redis instance. """ + STATE_UNSPECIFIED = 0 CREATING = 1 READY = 2 @@ -52,6 +53,7 @@ class Tier(enum.IntEnum): BASIC (int): BASIC tier: standalone instance STANDARD_HA (int): STANDARD\_HA tier: highly available primary/replica instances """ + TIER_UNSPECIFIED = 0 BASIC = 1 STANDARD_HA = 3 diff --git a/redis/google/cloud/redis_v1beta1/gapic/transports/cloud_redis_grpc_transport.py b/redis/google/cloud/redis_v1beta1/gapic/transports/cloud_redis_grpc_transport.py index 12bfd3cdb9d4..943d9ba6f882 100644 --- a/redis/google/cloud/redis_v1beta1/gapic/transports/cloud_redis_grpc_transport.py +++ b/redis/google/cloud/redis_v1beta1/gapic/transports/cloud_redis_grpc_transport.py @@ -28,14 +28,14 @@ class CloudRedisGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='redis.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="redis.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,34 +53,28 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'cloud_redis_stub': cloud_redis_pb2_grpc.CloudRedisStub(channel), - } + self._stubs = {"cloud_redis_stub": cloud_redis_pb2_grpc.CloudRedisStub(channel)} # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='redis.googleapis.com:443', - credentials=None): + def create_channel(cls, address="redis.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -95,9 +89,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -127,7 +119,7 @@ def list_instances(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].ListInstances + return self._stubs["cloud_redis_stub"].ListInstances @property def get_instance(self): @@ -140,7 +132,7 @@ def get_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].GetInstance + return self._stubs["cloud_redis_stub"].GetInstance @property def create_instance(self): @@ -165,7 +157,7 @@ def create_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].CreateInstance + return self._stubs["cloud_redis_stub"].CreateInstance @property def update_instance(self): @@ -182,7 +174,7 @@ def update_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].UpdateInstance + return self._stubs["cloud_redis_stub"].UpdateInstance @property def delete_instance(self): @@ -196,4 +188,4 @@ def delete_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_redis_stub'].DeleteInstance + return self._stubs["cloud_redis_stub"].DeleteInstance diff --git a/redis/google/cloud/redis_v1beta1/types.py b/redis/google/cloud/redis_v1beta1/types.py index d9af4f1dfc0d..f4900f213718 100644 --- a/redis/google/cloud/redis_v1beta1/types.py +++ b/redis/google/cloud/redis_v1beta1/types.py @@ -40,9 +40,7 @@ status_pb2, ] -_local_modules = [ - cloud_redis_pb2, -] +_local_modules = [cloud_redis_pb2] names = [] @@ -52,7 +50,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.redis_v1beta1.types' + message.__module__ = "google.cloud.redis_v1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/redis/tests/unit/gapic/v1/test_cloud_redis_client_v1.py b/redis/tests/unit/gapic/v1/test_cloud_redis_client_v1.py index 8242701be862..5f7a522bd932 100644 --- a/redis/tests/unit/gapic/v1/test_cloud_redis_client_v1.py +++ b/redis/tests/unit/gapic/v1/test_cloud_redis_client_v1.py @@ -56,10 +56,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,25 +67,21 @@ class CustomException(Exception): class TestCloudRedisClient(object): def test_list_instances(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" instances_element = {} instances = [instances_element] - expected_response = { - 'next_page_token': next_page_token, - 'instances': instances - } - expected_response = cloud_redis_pb2.ListInstancesResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "instances": instances} + expected_response = cloud_redis_pb2.ListInstancesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_instances(parent) resources = list(paged_list_response) @@ -103,13 +96,13 @@ def test_list_instances(self): def test_list_instances_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_instances(parent) with pytest.raises(CustomException): @@ -117,43 +110,43 @@ def test_list_instances_exception(self): def test_get_instance(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - location_id = 'locationId552319461' - alternative_location_id = 'alternativeLocationId-718920621' - redis_version = 'redisVersion-685310444' - reserved_ip_range = 'reservedIpRange-1082940580' - host = 'host3208616' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + location_id = "locationId552319461" + alternative_location_id = "alternativeLocationId-718920621" + redis_version = "redisVersion-685310444" + reserved_ip_range = "reservedIpRange-1082940580" + host = "host3208616" port = 3446913 - current_location_id = 'currentLocationId1312712735' - status_message = 'statusMessage-239442758' + current_location_id = "currentLocationId1312712735" + status_message = "statusMessage-239442758" memory_size_gb = 34199707 - authorized_network = 'authorizedNetwork-1733809270' + authorized_network = "authorizedNetwork-1733809270" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'location_id': location_id, - 'alternative_location_id': alternative_location_id, - 'redis_version': redis_version, - 'reserved_ip_range': reserved_ip_range, - 'host': host, - 'port': port, - 'current_location_id': current_location_id, - 'status_message': status_message, - 'memory_size_gb': memory_size_gb, - 'authorized_network': authorized_network + "name": name_2, + "display_name": display_name, + "location_id": location_id, + "alternative_location_id": alternative_location_id, + "redis_version": redis_version, + "reserved_ip_range": reserved_ip_range, + "host": host, + "port": port, + "current_location_id": current_location_id, + "status_message": status_message, + "memory_size_gb": memory_size_gb, + "authorized_network": authorized_network, } expected_response = cloud_redis_pb2.Instance(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup Request - name = client.instance_path('[PROJECT]', '[LOCATION]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]") response = client.get_instance(name) assert expected_response == response @@ -166,63 +159,64 @@ def test_get_instance(self): def test_get_instance_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup request - name = client.instance_path('[PROJECT]', '[LOCATION]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]") with pytest.raises(CustomException): client.get_instance(name) def test_create_instance(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - location_id = 'locationId552319461' - alternative_location_id = 'alternativeLocationId-718920621' - redis_version = 'redisVersion-685310444' - reserved_ip_range = 'reservedIpRange-1082940580' - host = 'host3208616' + name = "name3373707" + display_name = "displayName1615086568" + location_id = "locationId552319461" + alternative_location_id = "alternativeLocationId-718920621" + redis_version = "redisVersion-685310444" + reserved_ip_range = "reservedIpRange-1082940580" + host = "host3208616" port = 3446913 - current_location_id = 'currentLocationId1312712735' - status_message = 'statusMessage-239442758' + current_location_id = "currentLocationId1312712735" + status_message = "statusMessage-239442758" memory_size_gb_2 = 1493816946 - authorized_network = 'authorizedNetwork-1733809270' + authorized_network = "authorizedNetwork-1733809270" expected_response = { - 'name': name, - 'display_name': display_name, - 'location_id': location_id, - 'alternative_location_id': alternative_location_id, - 'redis_version': redis_version, - 'reserved_ip_range': reserved_ip_range, - 'host': host, - 'port': port, - 'current_location_id': current_location_id, - 'status_message': status_message, - 'memory_size_gb': memory_size_gb_2, - 'authorized_network': authorized_network + "name": name, + "display_name": display_name, + "location_id": location_id, + "alternative_location_id": alternative_location_id, + "redis_version": redis_version, + "reserved_ip_range": reserved_ip_range, + "host": host, + "port": port, + "current_location_id": current_location_id, + "status_message": status_message, + "memory_size_gb": memory_size_gb_2, + "authorized_network": authorized_network, } expected_response = cloud_redis_pb2.Instance(**expected_response) operation = operations_pb2.Operation( - name='operations/test_create_instance', done=True) + name="operations/test_create_instance", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') - instance_id = 'test_instance' + parent = client.location_path("[PROJECT]", "[LOCATION]") + instance_id = "test_instance" tier = enums.Instance.Tier.BASIC memory_size_gb = 1 - instance = {'tier': tier, 'memory_size_gb': memory_size_gb} + instance = {"tier": tier, "memory_size_gb": memory_size_gb} response = client.create_instance(parent, instance_id, instance) result = response.result() @@ -230,7 +224,8 @@ def test_create_instance(self): assert len(channel.requests) == 1 expected_request = cloud_redis_pb2.CreateInstanceRequest( - parent=parent, instance_id=instance_id, instance=instance) + parent=parent, instance_id=instance_id, instance=instance + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -238,22 +233,23 @@ def test_create_instance_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_create_instance_exception', done=True) + name="operations/test_create_instance_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') - instance_id = 'test_instance' + parent = client.location_path("[PROJECT]", "[LOCATION]") + instance_id = "test_instance" tier = enums.Instance.Tier.BASIC memory_size_gb = 1 - instance = {'tier': tier, 'memory_size_gb': memory_size_gb} + instance = {"tier": tier, "memory_size_gb": memory_size_gb} response = client.create_instance(parent, instance_id, instance) exception = response.exception() @@ -261,55 +257,53 @@ def test_create_instance_exception(self): def test_update_instance(self): # Setup Expected Response - name = 'name3373707' - display_name_2 = 'displayName21615000987' - location_id = 'locationId552319461' - alternative_location_id = 'alternativeLocationId-718920621' - redis_version = 'redisVersion-685310444' - reserved_ip_range = 'reservedIpRange-1082940580' - host = 'host3208616' + name = "name3373707" + display_name_2 = "displayName21615000987" + location_id = "locationId552319461" + alternative_location_id = "alternativeLocationId-718920621" + redis_version = "redisVersion-685310444" + reserved_ip_range = "reservedIpRange-1082940580" + host = "host3208616" port = 3446913 - current_location_id = 'currentLocationId1312712735' - status_message = 'statusMessage-239442758' + current_location_id = "currentLocationId1312712735" + status_message = "statusMessage-239442758" memory_size_gb_2 = 1493816946 - authorized_network = 'authorizedNetwork-1733809270' + authorized_network = "authorizedNetwork-1733809270" expected_response = { - 'name': name, - 'display_name': display_name_2, - 'location_id': location_id, - 'alternative_location_id': alternative_location_id, - 'redis_version': redis_version, - 'reserved_ip_range': reserved_ip_range, - 'host': host, - 'port': port, - 'current_location_id': current_location_id, - 'status_message': status_message, - 'memory_size_gb': memory_size_gb_2, - 'authorized_network': authorized_network + "name": name, + "display_name": display_name_2, + "location_id": location_id, + "alternative_location_id": alternative_location_id, + "redis_version": redis_version, + "reserved_ip_range": reserved_ip_range, + "host": host, + "port": port, + "current_location_id": current_location_id, + "status_message": status_message, + "memory_size_gb": memory_size_gb_2, + "authorized_network": authorized_network, } expected_response = cloud_redis_pb2.Instance(**expected_response) operation = operations_pb2.Operation( - name='operations/test_update_instance', done=True) + name="operations/test_update_instance", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup Request - paths_element = 'display_name' - paths_element_2 = 'memory_size_gb' + paths_element = "display_name" + paths_element_2 = "memory_size_gb" paths = [paths_element, paths_element_2] - update_mask = {'paths': paths} - display_name = 'UpdatedDisplayName' + update_mask = {"paths": paths} + display_name = "UpdatedDisplayName" memory_size_gb = 4 - instance = { - 'display_name': display_name, - 'memory_size_gb': memory_size_gb - } + instance = {"display_name": display_name, "memory_size_gb": memory_size_gb} response = client.update_instance(update_mask, instance) result = response.result() @@ -317,7 +311,8 @@ def test_update_instance(self): assert len(channel.requests) == 1 expected_request = cloud_redis_pb2.UpdateInstanceRequest( - update_mask=update_mask, instance=instance) + update_mask=update_mask, instance=instance + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -325,27 +320,25 @@ def test_update_instance_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_update_instance_exception', done=True) + name="operations/test_update_instance_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup Request - paths_element = 'display_name' - paths_element_2 = 'memory_size_gb' + paths_element = "display_name" + paths_element_2 = "memory_size_gb" paths = [paths_element, paths_element_2] - update_mask = {'paths': paths} - display_name = 'UpdatedDisplayName' + update_mask = {"paths": paths} + display_name = "UpdatedDisplayName" memory_size_gb = 4 - instance = { - 'display_name': display_name, - 'memory_size_gb': memory_size_gb - } + instance = {"display_name": display_name, "memory_size_gb": memory_size_gb} response = client.update_instance(update_mask, instance) exception = response.exception() @@ -356,18 +349,19 @@ def test_delete_instance(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_delete_instance', done=True) + name="operations/test_delete_instance", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup Request - name = client.instance_path('[PROJECT]', '[LOCATION]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]") response = client.delete_instance(name) result = response.result() @@ -382,18 +376,19 @@ def test_delete_instance_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_delete_instance_exception', done=True) + name="operations/test_delete_instance_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1.CloudRedisClient() # Setup Request - name = client.instance_path('[PROJECT]', '[LOCATION]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]") response = client.delete_instance(name) exception = response.exception() diff --git a/redis/tests/unit/gapic/v1beta1/test_cloud_redis_client_v1beta1.py b/redis/tests/unit/gapic/v1beta1/test_cloud_redis_client_v1beta1.py index a9e2f4c9aea6..03ff42f24288 100644 --- a/redis/tests/unit/gapic/v1beta1/test_cloud_redis_client_v1beta1.py +++ b/redis/tests/unit/gapic/v1beta1/test_cloud_redis_client_v1beta1.py @@ -56,10 +56,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,25 +67,21 @@ class CustomException(Exception): class TestCloudRedisClient(object): def test_list_instances(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" instances_element = {} instances = [instances_element] - expected_response = { - 'next_page_token': next_page_token, - 'instances': instances - } - expected_response = cloud_redis_pb2.ListInstancesResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "instances": instances} + expected_response = cloud_redis_pb2.ListInstancesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_instances(parent) resources = list(paged_list_response) @@ -103,13 +96,13 @@ def test_list_instances(self): def test_list_instances_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_instances(parent) with pytest.raises(CustomException): @@ -117,43 +110,43 @@ def test_list_instances_exception(self): def test_get_instance(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - location_id = 'locationId552319461' - alternative_location_id = 'alternativeLocationId-718920621' - redis_version = 'redisVersion-685310444' - reserved_ip_range = 'reservedIpRange-1082940580' - host = 'host3208616' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + location_id = "locationId552319461" + alternative_location_id = "alternativeLocationId-718920621" + redis_version = "redisVersion-685310444" + reserved_ip_range = "reservedIpRange-1082940580" + host = "host3208616" port = 3446913 - current_location_id = 'currentLocationId1312712735' - status_message = 'statusMessage-239442758' + current_location_id = "currentLocationId1312712735" + status_message = "statusMessage-239442758" memory_size_gb = 34199707 - authorized_network = 'authorizedNetwork-1733809270' + authorized_network = "authorizedNetwork-1733809270" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'location_id': location_id, - 'alternative_location_id': alternative_location_id, - 'redis_version': redis_version, - 'reserved_ip_range': reserved_ip_range, - 'host': host, - 'port': port, - 'current_location_id': current_location_id, - 'status_message': status_message, - 'memory_size_gb': memory_size_gb, - 'authorized_network': authorized_network + "name": name_2, + "display_name": display_name, + "location_id": location_id, + "alternative_location_id": alternative_location_id, + "redis_version": redis_version, + "reserved_ip_range": reserved_ip_range, + "host": host, + "port": port, + "current_location_id": current_location_id, + "status_message": status_message, + "memory_size_gb": memory_size_gb, + "authorized_network": authorized_network, } expected_response = cloud_redis_pb2.Instance(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup Request - name = client.instance_path('[PROJECT]', '[LOCATION]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]") response = client.get_instance(name) assert expected_response == response @@ -166,63 +159,64 @@ def test_get_instance(self): def test_get_instance_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup request - name = client.instance_path('[PROJECT]', '[LOCATION]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]") with pytest.raises(CustomException): client.get_instance(name) def test_create_instance(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - location_id = 'locationId552319461' - alternative_location_id = 'alternativeLocationId-718920621' - redis_version = 'redisVersion-685310444' - reserved_ip_range = 'reservedIpRange-1082940580' - host = 'host3208616' + name = "name3373707" + display_name = "displayName1615086568" + location_id = "locationId552319461" + alternative_location_id = "alternativeLocationId-718920621" + redis_version = "redisVersion-685310444" + reserved_ip_range = "reservedIpRange-1082940580" + host = "host3208616" port = 3446913 - current_location_id = 'currentLocationId1312712735' - status_message = 'statusMessage-239442758' + current_location_id = "currentLocationId1312712735" + status_message = "statusMessage-239442758" memory_size_gb_2 = 1493816946 - authorized_network = 'authorizedNetwork-1733809270' + authorized_network = "authorizedNetwork-1733809270" expected_response = { - 'name': name, - 'display_name': display_name, - 'location_id': location_id, - 'alternative_location_id': alternative_location_id, - 'redis_version': redis_version, - 'reserved_ip_range': reserved_ip_range, - 'host': host, - 'port': port, - 'current_location_id': current_location_id, - 'status_message': status_message, - 'memory_size_gb': memory_size_gb_2, - 'authorized_network': authorized_network + "name": name, + "display_name": display_name, + "location_id": location_id, + "alternative_location_id": alternative_location_id, + "redis_version": redis_version, + "reserved_ip_range": reserved_ip_range, + "host": host, + "port": port, + "current_location_id": current_location_id, + "status_message": status_message, + "memory_size_gb": memory_size_gb_2, + "authorized_network": authorized_network, } expected_response = cloud_redis_pb2.Instance(**expected_response) operation = operations_pb2.Operation( - name='operations/test_create_instance', done=True) + name="operations/test_create_instance", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') - instance_id = 'test_instance' + parent = client.location_path("[PROJECT]", "[LOCATION]") + instance_id = "test_instance" tier = enums.Instance.Tier.BASIC memory_size_gb = 1 - instance = {'tier': tier, 'memory_size_gb': memory_size_gb} + instance = {"tier": tier, "memory_size_gb": memory_size_gb} response = client.create_instance(parent, instance_id, instance) result = response.result() @@ -230,7 +224,8 @@ def test_create_instance(self): assert len(channel.requests) == 1 expected_request = cloud_redis_pb2.CreateInstanceRequest( - parent=parent, instance_id=instance_id, instance=instance) + parent=parent, instance_id=instance_id, instance=instance + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -238,22 +233,23 @@ def test_create_instance_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_create_instance_exception', done=True) + name="operations/test_create_instance_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') - instance_id = 'test_instance' + parent = client.location_path("[PROJECT]", "[LOCATION]") + instance_id = "test_instance" tier = enums.Instance.Tier.BASIC memory_size_gb = 1 - instance = {'tier': tier, 'memory_size_gb': memory_size_gb} + instance = {"tier": tier, "memory_size_gb": memory_size_gb} response = client.create_instance(parent, instance_id, instance) exception = response.exception() @@ -261,55 +257,53 @@ def test_create_instance_exception(self): def test_update_instance(self): # Setup Expected Response - name = 'name3373707' - display_name_2 = 'displayName21615000987' - location_id = 'locationId552319461' - alternative_location_id = 'alternativeLocationId-718920621' - redis_version = 'redisVersion-685310444' - reserved_ip_range = 'reservedIpRange-1082940580' - host = 'host3208616' + name = "name3373707" + display_name_2 = "displayName21615000987" + location_id = "locationId552319461" + alternative_location_id = "alternativeLocationId-718920621" + redis_version = "redisVersion-685310444" + reserved_ip_range = "reservedIpRange-1082940580" + host = "host3208616" port = 3446913 - current_location_id = 'currentLocationId1312712735' - status_message = 'statusMessage-239442758' + current_location_id = "currentLocationId1312712735" + status_message = "statusMessage-239442758" memory_size_gb_2 = 1493816946 - authorized_network = 'authorizedNetwork-1733809270' + authorized_network = "authorizedNetwork-1733809270" expected_response = { - 'name': name, - 'display_name': display_name_2, - 'location_id': location_id, - 'alternative_location_id': alternative_location_id, - 'redis_version': redis_version, - 'reserved_ip_range': reserved_ip_range, - 'host': host, - 'port': port, - 'current_location_id': current_location_id, - 'status_message': status_message, - 'memory_size_gb': memory_size_gb_2, - 'authorized_network': authorized_network + "name": name, + "display_name": display_name_2, + "location_id": location_id, + "alternative_location_id": alternative_location_id, + "redis_version": redis_version, + "reserved_ip_range": reserved_ip_range, + "host": host, + "port": port, + "current_location_id": current_location_id, + "status_message": status_message, + "memory_size_gb": memory_size_gb_2, + "authorized_network": authorized_network, } expected_response = cloud_redis_pb2.Instance(**expected_response) operation = operations_pb2.Operation( - name='operations/test_update_instance', done=True) + name="operations/test_update_instance", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup Request - paths_element = 'display_name' - paths_element_2 = 'memory_size_gb' + paths_element = "display_name" + paths_element_2 = "memory_size_gb" paths = [paths_element, paths_element_2] - update_mask = {'paths': paths} - display_name = 'UpdatedDisplayName' + update_mask = {"paths": paths} + display_name = "UpdatedDisplayName" memory_size_gb = 4 - instance = { - 'display_name': display_name, - 'memory_size_gb': memory_size_gb - } + instance = {"display_name": display_name, "memory_size_gb": memory_size_gb} response = client.update_instance(update_mask, instance) result = response.result() @@ -317,7 +311,8 @@ def test_update_instance(self): assert len(channel.requests) == 1 expected_request = cloud_redis_pb2.UpdateInstanceRequest( - update_mask=update_mask, instance=instance) + update_mask=update_mask, instance=instance + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -325,27 +320,25 @@ def test_update_instance_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_update_instance_exception', done=True) + name="operations/test_update_instance_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup Request - paths_element = 'display_name' - paths_element_2 = 'memory_size_gb' + paths_element = "display_name" + paths_element_2 = "memory_size_gb" paths = [paths_element, paths_element_2] - update_mask = {'paths': paths} - display_name = 'UpdatedDisplayName' + update_mask = {"paths": paths} + display_name = "UpdatedDisplayName" memory_size_gb = 4 - instance = { - 'display_name': display_name, - 'memory_size_gb': memory_size_gb - } + instance = {"display_name": display_name, "memory_size_gb": memory_size_gb} response = client.update_instance(update_mask, instance) exception = response.exception() @@ -356,18 +349,19 @@ def test_delete_instance(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_delete_instance', done=True) + name="operations/test_delete_instance", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup Request - name = client.instance_path('[PROJECT]', '[LOCATION]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]") response = client.delete_instance(name) result = response.result() @@ -382,18 +376,19 @@ def test_delete_instance_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_delete_instance_exception', done=True) + name="operations/test_delete_instance_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = redis_v1beta1.CloudRedisClient() # Setup Request - name = client.instance_path('[PROJECT]', '[LOCATION]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[LOCATION]", "[INSTANCE]") response = client.delete_instance(name) exception = response.exception() diff --git a/scheduler/docs/conf.py b/scheduler/docs/conf.py index 3733362f325a..9f0d97e0912b 100644 --- a/scheduler/docs/conf.py +++ b/scheduler/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-scheduler' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-scheduler" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-scheduler-doc' +htmlhelp_basename = "google-cloud-scheduler-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-scheduler.tex', - u'google-cloud-scheduler Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-scheduler.tex", + u"google-cloud-scheduler Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-scheduler', - u'google-cloud-scheduler Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-scheduler", + u"google-cloud-scheduler Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-scheduler', - u'google-cloud-scheduler Documentation', author, - 'google-cloud-scheduler', - 'GAPIC library for the {metadata.shortName} v1beta1 service', 'APIs'), + ( + master_doc, + "google-cloud-scheduler", + u"google-cloud-scheduler Documentation", + author, + "google-cloud-scheduler", + "GAPIC library for the {metadata.shortName} v1beta1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/scheduler/google/__init__.py b/scheduler/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/scheduler/google/__init__.py +++ b/scheduler/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/scheduler/google/cloud/__init__.py b/scheduler/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/scheduler/google/cloud/__init__.py +++ b/scheduler/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/scheduler/google/cloud/scheduler.py b/scheduler/google/cloud/scheduler.py index 18b959bbfb46..9c36258396e1 100644 --- a/scheduler/google/cloud/scheduler.py +++ b/scheduler/google/cloud/scheduler.py @@ -20,8 +20,4 @@ from google.cloud.scheduler_v1beta1 import enums from google.cloud.scheduler_v1beta1 import types -__all__ = ( - 'enums', - 'types', - 'CloudSchedulerClient', -) +__all__ = ("enums", "types", "CloudSchedulerClient") diff --git a/scheduler/google/cloud/scheduler_v1beta1/__init__.py b/scheduler/google/cloud/scheduler_v1beta1/__init__.py index a680792ca586..42219a4f873e 100644 --- a/scheduler/google/cloud/scheduler_v1beta1/__init__.py +++ b/scheduler/google/cloud/scheduler_v1beta1/__init__.py @@ -26,8 +26,4 @@ class CloudSchedulerClient(cloud_scheduler_client.CloudSchedulerClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'CloudSchedulerClient', -) +__all__ = ("enums", "types", "CloudSchedulerClient") diff --git a/scheduler/google/cloud/scheduler_v1beta1/gapic/cloud_scheduler_client.py b/scheduler/google/cloud/scheduler_v1beta1/gapic/cloud_scheduler_client.py index dfe34ce5d465..a86a57374519 100644 --- a/scheduler/google/cloud/scheduler_v1beta1/gapic/cloud_scheduler_client.py +++ b/scheduler/google/cloud/scheduler_v1beta1/gapic/cloud_scheduler_client.py @@ -30,7 +30,9 @@ from google.cloud.scheduler_v1beta1.gapic import cloud_scheduler_client_config from google.cloud.scheduler_v1beta1.gapic import enums -from google.cloud.scheduler_v1beta1.gapic.transports import cloud_scheduler_grpc_transport +from google.cloud.scheduler_v1beta1.gapic.transports import ( + cloud_scheduler_grpc_transport, +) from google.cloud.scheduler_v1beta1.proto import cloudscheduler_pb2 from google.cloud.scheduler_v1beta1.proto import cloudscheduler_pb2_grpc from google.cloud.scheduler_v1beta1.proto import job_pb2 @@ -38,7 +40,8 @@ from google.protobuf import field_mask_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-scheduler', ).version + "google-cloud-scheduler" +).version class CloudSchedulerClient(object): @@ -47,12 +50,12 @@ class CloudSchedulerClient(object): schedule asynchronous jobs. """ - SERVICE_ADDRESS = 'cloudscheduler.googleapis.com:443' + SERVICE_ADDRESS = "cloudscheduler.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.scheduler.v1beta1.CloudScheduler' + _INTERFACE_NAME = "google.cloud.scheduler.v1beta1.CloudScheduler" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -68,9 +71,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: CloudSchedulerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -79,15 +81,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -96,18 +97,20 @@ def location_path(cls, project, location): def job_path(cls, project, location, job): """Return a fully-qualified job string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/jobs/{job}', + "projects/{project}/locations/{location}/jobs/{job}", project=project, location=location, job=job, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -141,18 +144,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = cloud_scheduler_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -161,25 +165,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=cloud_scheduler_grpc_transport. - CloudSchedulerGrpcTransport, + default_class=cloud_scheduler_grpc_transport.CloudSchedulerGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = cloud_scheduler_grpc_transport.CloudSchedulerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -189,7 +192,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -198,12 +202,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_jobs(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_jobs( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists jobs. @@ -261,38 +267,39 @@ def list_jobs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_jobs' not in self._inner_api_calls: + if "list_jobs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_jobs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_jobs, - default_retry=self._method_configs['ListJobs'].retry, - default_timeout=self._method_configs['ListJobs'].timeout, - client_info=self._client_info, - ) + "list_jobs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_jobs, + default_retry=self._method_configs["ListJobs"].retry, + default_timeout=self._method_configs["ListJobs"].timeout, + client_info=self._client_info, + ) - request = cloudscheduler_pb2.ListJobsRequest( - parent=parent, - page_size=page_size, - ) + request = cloudscheduler_pb2.ListJobsRequest(parent=parent, page_size=page_size) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_jobs'], + self._inner_api_calls["list_jobs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='jobs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="jobs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_job(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_job( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a job. @@ -330,25 +337,29 @@ def get_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_job' not in self._inner_api_calls: + if "get_job" not in self._inner_api_calls: self._inner_api_calls[ - 'get_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_job, - default_retry=self._method_configs['GetJob'].retry, - default_timeout=self._method_configs['GetJob'].timeout, - client_info=self._client_info, - ) + "get_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_job, + default_retry=self._method_configs["GetJob"].retry, + default_timeout=self._method_configs["GetJob"].timeout, + client_info=self._client_info, + ) - request = cloudscheduler_pb2.GetJobRequest(name=name, ) - return self._inner_api_calls['get_job']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = cloudscheduler_pb2.GetJobRequest(name=name) + return self._inner_api_calls["get_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def create_job(self, - parent, - job, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_job( + self, + parent, + job, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a job. @@ -398,28 +409,29 @@ def create_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_job' not in self._inner_api_calls: + if "create_job" not in self._inner_api_calls: self._inner_api_calls[ - 'create_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_job, - default_retry=self._method_configs['CreateJob'].retry, - default_timeout=self._method_configs['CreateJob'].timeout, - client_info=self._client_info, - ) + "create_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_job, + default_retry=self._method_configs["CreateJob"].retry, + default_timeout=self._method_configs["CreateJob"].timeout, + client_info=self._client_info, + ) - request = cloudscheduler_pb2.CreateJobRequest( - parent=parent, - job=job, + request = cloudscheduler_pb2.CreateJobRequest(parent=parent, job=job) + return self._inner_api_calls["create_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_job(self, - job, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def update_job( + self, + job, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a job. @@ -475,27 +487,28 @@ def update_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_job' not in self._inner_api_calls: + if "update_job" not in self._inner_api_calls: self._inner_api_calls[ - 'update_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_job, - default_retry=self._method_configs['UpdateJob'].retry, - default_timeout=self._method_configs['UpdateJob'].timeout, - client_info=self._client_info, - ) + "update_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_job, + default_retry=self._method_configs["UpdateJob"].retry, + default_timeout=self._method_configs["UpdateJob"].timeout, + client_info=self._client_info, + ) - request = cloudscheduler_pb2.UpdateJobRequest( - job=job, - update_mask=update_mask, + request = cloudscheduler_pb2.UpdateJobRequest(job=job, update_mask=update_mask) + return self._inner_api_calls["update_job"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_job']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_job(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def delete_job( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a job. @@ -530,24 +543,28 @@ def delete_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_job' not in self._inner_api_calls: + if "delete_job" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_job, - default_retry=self._method_configs['DeleteJob'].retry, - default_timeout=self._method_configs['DeleteJob'].timeout, - client_info=self._client_info, - ) + "delete_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_job, + default_retry=self._method_configs["DeleteJob"].retry, + default_timeout=self._method_configs["DeleteJob"].timeout, + client_info=self._client_info, + ) - request = cloudscheduler_pb2.DeleteJobRequest(name=name, ) - self._inner_api_calls['delete_job']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = cloudscheduler_pb2.DeleteJobRequest(name=name) + self._inner_api_calls["delete_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def pause_job(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def pause_job( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Pauses a job. @@ -590,24 +607,28 @@ def pause_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'pause_job' not in self._inner_api_calls: + if "pause_job" not in self._inner_api_calls: self._inner_api_calls[ - 'pause_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.pause_job, - default_retry=self._method_configs['PauseJob'].retry, - default_timeout=self._method_configs['PauseJob'].timeout, - client_info=self._client_info, - ) + "pause_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.pause_job, + default_retry=self._method_configs["PauseJob"].retry, + default_timeout=self._method_configs["PauseJob"].timeout, + client_info=self._client_info, + ) - request = cloudscheduler_pb2.PauseJobRequest(name=name, ) - return self._inner_api_calls['pause_job']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = cloudscheduler_pb2.PauseJobRequest(name=name) + return self._inner_api_calls["pause_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def resume_job(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def resume_job( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Resume a job. @@ -650,24 +671,28 @@ def resume_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'resume_job' not in self._inner_api_calls: + if "resume_job" not in self._inner_api_calls: self._inner_api_calls[ - 'resume_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.resume_job, - default_retry=self._method_configs['ResumeJob'].retry, - default_timeout=self._method_configs['ResumeJob'].timeout, - client_info=self._client_info, - ) + "resume_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.resume_job, + default_retry=self._method_configs["ResumeJob"].retry, + default_timeout=self._method_configs["ResumeJob"].timeout, + client_info=self._client_info, + ) - request = cloudscheduler_pb2.ResumeJobRequest(name=name, ) - return self._inner_api_calls['resume_job']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = cloudscheduler_pb2.ResumeJobRequest(name=name) + return self._inner_api_calls["resume_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def run_job(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def run_job( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Forces a job to run now. @@ -708,15 +733,17 @@ def run_job(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'run_job' not in self._inner_api_calls: + if "run_job" not in self._inner_api_calls: self._inner_api_calls[ - 'run_job'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.run_job, - default_retry=self._method_configs['RunJob'].retry, - default_timeout=self._method_configs['RunJob'].timeout, - client_info=self._client_info, - ) + "run_job" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.run_job, + default_retry=self._method_configs["RunJob"].retry, + default_timeout=self._method_configs["RunJob"].timeout, + client_info=self._client_info, + ) - request = cloudscheduler_pb2.RunJobRequest(name=name, ) - return self._inner_api_calls['run_job']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = cloudscheduler_pb2.RunJobRequest(name=name) + return self._inner_api_calls["run_job"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/scheduler/google/cloud/scheduler_v1beta1/gapic/cloud_scheduler_client_config.py b/scheduler/google/cloud/scheduler_v1beta1/gapic/cloud_scheduler_client_config.py index 8e65e89ff9d1..d972bce85f76 100644 --- a/scheduler/google/cloud/scheduler_v1beta1/gapic/cloud_scheduler_client_config.py +++ b/scheduler/google/cloud/scheduler_v1beta1/gapic/cloud_scheduler_client_config.py @@ -3,7 +3,7 @@ "google.cloud.scheduler.v1beta1.CloudScheduler": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,51 +13,51 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListJobs": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetJob": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateJob": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateJob": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteJob": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "PauseJob": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ResumeJob": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RunJob": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/scheduler/google/cloud/scheduler_v1beta1/gapic/enums.py b/scheduler/google/cloud/scheduler_v1beta1/gapic/enums.py index 0bcdec901af4..8e2130025277 100644 --- a/scheduler/google/cloud/scheduler_v1beta1/gapic/enums.py +++ b/scheduler/google/cloud/scheduler_v1beta1/gapic/enums.py @@ -32,6 +32,7 @@ class HttpMethod(enum.IntEnum): PATCH (int): HTTP PATCH OPTIONS (int): HTTP OPTIONS """ + HTTP_METHOD_UNSPECIFIED = 0 POST = 1 GET = 2 @@ -58,6 +59,7 @@ class State(enum.IntEnum): operation. To recover a job from this state, retry ``CloudScheduler.UpdateJob`` until a successful response is received. """ + STATE_UNSPECIFIED = 0 ENABLED = 1 PAUSED = 2 diff --git a/scheduler/google/cloud/scheduler_v1beta1/gapic/transports/cloud_scheduler_grpc_transport.py b/scheduler/google/cloud/scheduler_v1beta1/gapic/transports/cloud_scheduler_grpc_transport.py index 7a974dd343b2..29ec981d4ab5 100644 --- a/scheduler/google/cloud/scheduler_v1beta1/gapic/transports/cloud_scheduler_grpc_transport.py +++ b/scheduler/google/cloud/scheduler_v1beta1/gapic/transports/cloud_scheduler_grpc_transport.py @@ -27,14 +27,17 @@ class CloudSchedulerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='cloudscheduler.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="cloudscheduler.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -52,29 +55,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'cloud_scheduler_stub': - cloudscheduler_pb2_grpc.CloudSchedulerStub(channel), + "cloud_scheduler_stub": cloudscheduler_pb2_grpc.CloudSchedulerStub(channel) } @classmethod - def create_channel(cls, - address='cloudscheduler.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="cloudscheduler.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -89,9 +88,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,7 +111,7 @@ def list_jobs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_scheduler_stub'].ListJobs + return self._stubs["cloud_scheduler_stub"].ListJobs @property def get_job(self): @@ -127,7 +124,7 @@ def get_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_scheduler_stub'].GetJob + return self._stubs["cloud_scheduler_stub"].GetJob @property def create_job(self): @@ -140,7 +137,7 @@ def create_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_scheduler_stub'].CreateJob + return self._stubs["cloud_scheduler_stub"].CreateJob @property def update_job(self): @@ -161,7 +158,7 @@ def update_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_scheduler_stub'].UpdateJob + return self._stubs["cloud_scheduler_stub"].UpdateJob @property def delete_job(self): @@ -174,7 +171,7 @@ def delete_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_scheduler_stub'].DeleteJob + return self._stubs["cloud_scheduler_stub"].DeleteJob @property def pause_job(self): @@ -192,7 +189,7 @@ def pause_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_scheduler_stub'].PauseJob + return self._stubs["cloud_scheduler_stub"].PauseJob @property def resume_job(self): @@ -210,7 +207,7 @@ def resume_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_scheduler_stub'].ResumeJob + return self._stubs["cloud_scheduler_stub"].ResumeJob @property def run_job(self): @@ -226,4 +223,4 @@ def run_job(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_scheduler_stub'].RunJob + return self._stubs["cloud_scheduler_stub"].RunJob diff --git a/scheduler/google/cloud/scheduler_v1beta1/types.py b/scheduler/google/cloud/scheduler_v1beta1/types.py index 5f2f41c8f063..a72ac9f1ebfe 100644 --- a/scheduler/google/cloud/scheduler_v1beta1/types.py +++ b/scheduler/google/cloud/scheduler_v1beta1/types.py @@ -42,11 +42,7 @@ status_pb2, ] -_local_modules = [ - cloudscheduler_pb2, - job_pb2, - target_pb2, -] +_local_modules = [cloudscheduler_pb2, job_pb2, target_pb2] names = [] @@ -56,7 +52,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.scheduler_v1beta1.types' + message.__module__ = "google.cloud.scheduler_v1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/scheduler/tests/unit/gapic/v1beta1/test_cloud_scheduler_client_v1beta1.py b/scheduler/tests/unit/gapic/v1beta1/test_cloud_scheduler_client_v1beta1.py index 5f7a62a024f9..6beb3582e250 100644 --- a/scheduler/tests/unit/gapic/v1beta1/test_cloud_scheduler_client_v1beta1.py +++ b/scheduler/tests/unit/gapic/v1beta1/test_cloud_scheduler_client_v1beta1.py @@ -52,10 +52,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,22 +63,21 @@ class CustomException(Exception): class TestCloudSchedulerClient(object): def test_list_jobs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" jobs_element = {} jobs = [jobs_element] - expected_response = {'next_page_token': next_page_token, 'jobs': jobs} - expected_response = cloudscheduler_pb2.ListJobsResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "jobs": jobs} + expected_response = cloudscheduler_pb2.ListJobsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_jobs(parent) resources = list(paged_list_response) @@ -96,13 +92,13 @@ def test_list_jobs(self): def test_list_jobs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_jobs(parent) with pytest.raises(CustomException): @@ -110,27 +106,27 @@ def test_list_jobs_exception(self): def test_get_job(self): # Setup Expected Response - name_2 = 'name2-1052831874' - description = 'description-1724546052' - schedule = 'schedule-697920873' - time_zone = 'timeZone36848094' + name_2 = "name2-1052831874" + description = "description-1724546052" + schedule = "schedule-697920873" + time_zone = "timeZone36848094" expected_response = { - 'name': name_2, - 'description': description, - 'schedule': schedule, - 'time_zone': time_zone + "name": name_2, + "description": description, + "schedule": schedule, + "time_zone": time_zone, } expected_response = job_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup Request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") response = client.get_job(name) assert expected_response == response @@ -143,61 +139,60 @@ def test_get_job(self): def test_get_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") with pytest.raises(CustomException): client.get_job(name) def test_create_job(self): # Setup Expected Response - name = 'name3373707' - description = 'description-1724546052' - schedule = 'schedule-697920873' - time_zone = 'timeZone36848094' + name = "name3373707" + description = "description-1724546052" + schedule = "schedule-697920873" + time_zone = "timeZone36848094" expected_response = { - 'name': name, - 'description': description, - 'schedule': schedule, - 'time_zone': time_zone + "name": name, + "description": description, + "schedule": schedule, + "time_zone": time_zone, } expected_response = job_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") job = {} response = client.create_job(parent, job) assert expected_response == response assert len(channel.requests) == 1 - expected_request = cloudscheduler_pb2.CreateJobRequest( - parent=parent, job=job) + expected_request = cloudscheduler_pb2.CreateJobRequest(parent=parent, job=job) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") job = {} with pytest.raises(CustomException): @@ -205,21 +200,21 @@ def test_create_job_exception(self): def test_update_job(self): # Setup Expected Response - name = 'name3373707' - description = 'description-1724546052' - schedule = 'schedule-697920873' - time_zone = 'timeZone36848094' + name = "name3373707" + description = "description-1724546052" + schedule = "schedule-697920873" + time_zone = "timeZone36848094" expected_response = { - 'name': name, - 'description': description, - 'schedule': schedule, - 'time_zone': time_zone + "name": name, + "description": description, + "schedule": schedule, + "time_zone": time_zone, } expected_response = job_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() @@ -238,7 +233,7 @@ def test_update_job(self): def test_update_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() @@ -251,13 +246,13 @@ def test_update_job_exception(self): def test_delete_job(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup Request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") client.delete_job(name) @@ -269,40 +264,40 @@ def test_delete_job(self): def test_delete_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") with pytest.raises(CustomException): client.delete_job(name) def test_pause_job(self): # Setup Expected Response - name_2 = 'name2-1052831874' - description = 'description-1724546052' - schedule = 'schedule-697920873' - time_zone = 'timeZone36848094' + name_2 = "name2-1052831874" + description = "description-1724546052" + schedule = "schedule-697920873" + time_zone = "timeZone36848094" expected_response = { - 'name': name_2, - 'description': description, - 'schedule': schedule, - 'time_zone': time_zone + "name": name_2, + "description": description, + "schedule": schedule, + "time_zone": time_zone, } expected_response = job_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup Request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") response = client.pause_job(name) assert expected_response == response @@ -315,40 +310,40 @@ def test_pause_job(self): def test_pause_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") with pytest.raises(CustomException): client.pause_job(name) def test_resume_job(self): # Setup Expected Response - name_2 = 'name2-1052831874' - description = 'description-1724546052' - schedule = 'schedule-697920873' - time_zone = 'timeZone36848094' + name_2 = "name2-1052831874" + description = "description-1724546052" + schedule = "schedule-697920873" + time_zone = "timeZone36848094" expected_response = { - 'name': name_2, - 'description': description, - 'schedule': schedule, - 'time_zone': time_zone + "name": name_2, + "description": description, + "schedule": schedule, + "time_zone": time_zone, } expected_response = job_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup Request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") response = client.resume_job(name) assert expected_response == response @@ -361,40 +356,40 @@ def test_resume_job(self): def test_resume_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") with pytest.raises(CustomException): client.resume_job(name) def test_run_job(self): # Setup Expected Response - name_2 = 'name2-1052831874' - description = 'description-1724546052' - schedule = 'schedule-697920873' - time_zone = 'timeZone36848094' + name_2 = "name2-1052831874" + description = "description-1724546052" + schedule = "schedule-697920873" + time_zone = "timeZone36848094" expected_response = { - 'name': name_2, - 'description': description, - 'schedule': schedule, - 'time_zone': time_zone + "name": name_2, + "description": description, + "schedule": schedule, + "time_zone": time_zone, } expected_response = job_pb2.Job(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup Request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") response = client.run_job(name) assert expected_response == response @@ -407,13 +402,13 @@ def test_run_job(self): def test_run_job_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = scheduler_v1beta1.CloudSchedulerClient() # Setup request - name = client.job_path('[PROJECT]', '[LOCATION]', '[JOB]') + name = client.job_path("[PROJECT]", "[LOCATION]", "[JOB]") with pytest.raises(CustomException): client.run_job(name) diff --git a/securitycenter/docs/conf.py b/securitycenter/docs/conf.py index f0f50ac8cfbd..60b537aac388 100644 --- a/securitycenter/docs/conf.py +++ b/securitycenter/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-securitycenter' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-securitycenter" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-securitycenter-doc' +htmlhelp_basename = "google-cloud-securitycenter-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-securitycenter.tex', - u'google-cloud-securitycenter Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-securitycenter.tex", + u"google-cloud-securitycenter Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-securitycenter', - u'google-cloud-securitycenter Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-securitycenter", + u"google-cloud-securitycenter Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-securitycenter', - u'google-cloud-securitycenter Documentation', author, - 'google-cloud-securitycenter', - 'GAPIC library for the {metadata.shortName} v1beta1 service', 'APIs'), + ( + master_doc, + "google-cloud-securitycenter", + u"google-cloud-securitycenter Documentation", + author, + "google-cloud-securitycenter", + "GAPIC library for the {metadata.shortName} v1beta1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/securitycenter/google/__init__.py b/securitycenter/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/securitycenter/google/__init__.py +++ b/securitycenter/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/securitycenter/google/cloud/__init__.py b/securitycenter/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/securitycenter/google/cloud/__init__.py +++ b/securitycenter/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/securitycenter/google/cloud/securitycenter.py b/securitycenter/google/cloud/securitycenter.py index 0cdbfc23938d..714a4febb337 100644 --- a/securitycenter/google/cloud/securitycenter.py +++ b/securitycenter/google/cloud/securitycenter.py @@ -20,8 +20,4 @@ from google.cloud.securitycenter_v1beta1 import enums from google.cloud.securitycenter_v1beta1 import types -__all__ = ( - 'enums', - 'types', - 'SecurityCenterClient', -) +__all__ = ("enums", "types", "SecurityCenterClient") diff --git a/securitycenter/google/cloud/securitycenter_v1beta1/__init__.py b/securitycenter/google/cloud/securitycenter_v1beta1/__init__.py index b93174ba6ef1..688612f67132 100644 --- a/securitycenter/google/cloud/securitycenter_v1beta1/__init__.py +++ b/securitycenter/google/cloud/securitycenter_v1beta1/__init__.py @@ -26,8 +26,4 @@ class SecurityCenterClient(security_center_client.SecurityCenterClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'SecurityCenterClient', -) +__all__ = ("enums", "types", "SecurityCenterClient") diff --git a/securitycenter/google/cloud/securitycenter_v1beta1/gapic/enums.py b/securitycenter/google/cloud/securitycenter_v1beta1/gapic/enums.py index 61b213ad97f9..bfe0629cde25 100644 --- a/securitycenter/google/cloud/securitycenter_v1beta1/gapic/enums.py +++ b/securitycenter/google/cloud/securitycenter_v1beta1/gapic/enums.py @@ -28,6 +28,7 @@ class NullValue(enum.IntEnum): Attributes: NULL_VALUE (int): Null value. """ + NULL_VALUE = 0 @@ -42,6 +43,7 @@ class State(enum.IntEnum): INACTIVE (int): The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active. """ + STATE_UNSPECIFIED = 0 ACTIVE = 1 INACTIVE = 2 @@ -67,6 +69,7 @@ class InclusionMode(enum.IntEnum): EXCLUDE (int): Asset Discovery will ignore all resources under the projects specified. All other resources will be retrieved. """ + INCLUSION_MODE_UNSPECIFIED = 0 INCLUDE_ONLY = 1 EXCLUDE = 2 @@ -89,6 +92,7 @@ class State(enum.IntEnum): REMOVED (int): Asset was removed between the points in time. ACTIVE (int): Asset was active at both point(s) in time. """ + STATE_UNSPECIFIED = 0 UNUSED = 1 ADDED = 2 diff --git a/securitycenter/google/cloud/securitycenter_v1beta1/gapic/security_center_client.py b/securitycenter/google/cloud/securitycenter_v1beta1/gapic/security_center_client.py index 6ce62bd4d9b9..82a5d5278e7d 100644 --- a/securitycenter/google/cloud/securitycenter_v1beta1/gapic/security_center_client.py +++ b/securitycenter/google/cloud/securitycenter_v1beta1/gapic/security_center_client.py @@ -32,7 +32,9 @@ from google.cloud.securitycenter_v1beta1.gapic import enums from google.cloud.securitycenter_v1beta1.gapic import security_center_client_config -from google.cloud.securitycenter_v1beta1.gapic.transports import security_center_grpc_transport +from google.cloud.securitycenter_v1beta1.gapic.transports import ( + security_center_grpc_transport, +) from google.cloud.securitycenter_v1beta1.proto import finding_pb2 from google.cloud.securitycenter_v1beta1.proto import organization_settings_pb2 from google.cloud.securitycenter_v1beta1.proto import security_marks_pb2 @@ -48,18 +50,19 @@ from google.protobuf import timestamp_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-securitycenter', ).version + "google-cloud-securitycenter" +).version class SecurityCenterClient(object): """V1 Beta APIs for Security Center service.""" - SERVICE_ADDRESS = 'securitycenter.googleapis.com:443' + SERVICE_ADDRESS = "securitycenter.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.securitycenter.v1beta1.SecurityCenter' + _INTERFACE_NAME = "google.cloud.securitycenter.v1beta1.SecurityCenter" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -75,9 +78,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: SecurityCenterClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -86,15 +88,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def organization_path(cls, organization): """Return a fully-qualified organization string.""" return google.api_core.path_template.expand( - 'organizations/{organization}', - organization=organization, + "organizations/{organization}", organization=organization ) @classmethod def source_path(cls, organization, source): """Return a fully-qualified source string.""" return google.api_core.path_template.expand( - 'organizations/{organization}/sources/{source}', + "organizations/{organization}/sources/{source}", organization=organization, source=source, ) @@ -103,7 +104,7 @@ def source_path(cls, organization, source): def organization_settings_path(cls, organization): """Return a fully-qualified organization_settings string.""" return google.api_core.path_template.expand( - 'organizations/{organization}/organizationSettings', + "organizations/{organization}/organizationSettings", organization=organization, ) @@ -111,7 +112,7 @@ def organization_settings_path(cls, organization): def finding_path(cls, organization, source, finding): """Return a fully-qualified finding string.""" return google.api_core.path_template.expand( - 'organizations/{organization}/sources/{source}/findings/{finding}', + "organizations/{organization}/sources/{source}/findings/{finding}", organization=organization, source=source, finding=finding, @@ -121,17 +122,19 @@ def finding_path(cls, organization, source, finding): def asset_security_marks_path(cls, organization, asset): """Return a fully-qualified asset_security_marks string.""" return google.api_core.path_template.expand( - 'organizations/{organization}/assets/{asset}/securityMarks', + "organizations/{organization}/assets/{asset}/securityMarks", organization=organization, asset=asset, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -165,18 +168,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = security_center_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -185,25 +189,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=security_center_grpc_transport. - SecurityCenterGrpcTransport, + default_class=security_center_grpc_transport.SecurityCenterGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = security_center_grpc_transport.SecurityCenterGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -213,7 +216,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -222,12 +226,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_source(self, - parent, - source, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_source( + self, + parent, + source, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a source. @@ -271,30 +277,32 @@ def create_source(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_source' not in self._inner_api_calls: + if "create_source" not in self._inner_api_calls: self._inner_api_calls[ - 'create_source'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_source, - default_retry=self._method_configs['CreateSource'].retry, - default_timeout=self._method_configs['CreateSource']. - timeout, - client_info=self._client_info, - ) + "create_source" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_source, + default_retry=self._method_configs["CreateSource"].retry, + default_timeout=self._method_configs["CreateSource"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.CreateSourceRequest( - parent=parent, - source=source, + parent=parent, source=source + ) + return self._inner_api_calls["create_source"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_source']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_finding(self, - parent, - finding_id, - finding, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def create_finding( + self, + parent, + finding_id, + finding, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a finding. The corresponding source must exist for finding creation to succeed. @@ -345,29 +353,30 @@ def create_finding(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_finding' not in self._inner_api_calls: + if "create_finding" not in self._inner_api_calls: self._inner_api_calls[ - 'create_finding'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_finding, - default_retry=self._method_configs['CreateFinding'].retry, - default_timeout=self._method_configs['CreateFinding']. - timeout, - client_info=self._client_info, - ) + "create_finding" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_finding, + default_retry=self._method_configs["CreateFinding"].retry, + default_timeout=self._method_configs["CreateFinding"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.CreateFindingRequest( - parent=parent, - finding_id=finding_id, - finding=finding, + parent=parent, finding_id=finding_id, finding=finding ) - return self._inner_api_calls['create_finding']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["create_finding"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy on the specified Source. @@ -404,26 +413,28 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def get_organization_settings( - self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the settings for an organization. @@ -459,27 +470,28 @@ def get_organization_settings( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_organization_settings' not in self._inner_api_calls: + if "get_organization_settings" not in self._inner_api_calls: self._inner_api_calls[ - 'get_organization_settings'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_organization_settings, - default_retry=self. - _method_configs['GetOrganizationSettings'].retry, - default_timeout=self. - _method_configs['GetOrganizationSettings'].timeout, - client_info=self._client_info, - ) + "get_organization_settings" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_organization_settings, + default_retry=self._method_configs["GetOrganizationSettings"].retry, + default_timeout=self._method_configs["GetOrganizationSettings"].timeout, + client_info=self._client_info, + ) - request = securitycenter_service_pb2.GetOrganizationSettingsRequest( - name=name, ) - return self._inner_api_calls['get_organization_settings']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = securitycenter_service_pb2.GetOrganizationSettingsRequest(name=name) + return self._inner_api_calls["get_organization_settings"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_source(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_source( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a source. @@ -515,29 +527,33 @@ def get_source(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_source' not in self._inner_api_calls: + if "get_source" not in self._inner_api_calls: self._inner_api_calls[ - 'get_source'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_source, - default_retry=self._method_configs['GetSource'].retry, - default_timeout=self._method_configs['GetSource'].timeout, - client_info=self._client_info, - ) + "get_source" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_source, + default_retry=self._method_configs["GetSource"].retry, + default_timeout=self._method_configs["GetSource"].timeout, + client_info=self._client_info, + ) + + request = securitycenter_service_pb2.GetSourceRequest(name=name) + return self._inner_api_calls["get_source"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = securitycenter_service_pb2.GetSourceRequest(name=name, ) - return self._inner_api_calls['get_source']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def group_assets(self, - parent, - group_by, - filter_=None, - compare_duration=None, - read_time=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def group_assets( + self, + parent, + group_by, + filter_=None, + compare_duration=None, + read_time=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Filters an organization's assets and groups them by their specified properties. @@ -671,15 +687,15 @@ def group_assets(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'group_assets' not in self._inner_api_calls: + if "group_assets" not in self._inner_api_calls: self._inner_api_calls[ - 'group_assets'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.group_assets, - default_retry=self._method_configs['GroupAssets'].retry, - default_timeout=self._method_configs['GroupAssets']. - timeout, - client_info=self._client_info, - ) + "group_assets" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.group_assets, + default_retry=self._method_configs["GroupAssets"].retry, + default_timeout=self._method_configs["GroupAssets"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.GroupAssetsRequest( parent=parent, @@ -692,26 +708,29 @@ def group_assets(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['group_assets'], + self._inner_api_calls["group_assets"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='group_by_results', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="group_by_results", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def group_findings(self, - parent, - group_by, - filter_=None, - read_time=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def group_findings( + self, + parent, + group_by, + filter_=None, + read_time=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Filters an organization or source's findings and groups them by their specified properties. @@ -818,15 +837,15 @@ def group_findings(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'group_findings' not in self._inner_api_calls: + if "group_findings" not in self._inner_api_calls: self._inner_api_calls[ - 'group_findings'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.group_findings, - default_retry=self._method_configs['GroupFindings'].retry, - default_timeout=self._method_configs['GroupFindings']. - timeout, - client_info=self._client_info, - ) + "group_findings" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.group_findings, + default_retry=self._method_configs["GroupFindings"].retry, + default_timeout=self._method_configs["GroupFindings"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.GroupFindingsRequest( parent=parent, @@ -838,28 +857,31 @@ def group_findings(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['group_findings'], + self._inner_api_calls["group_findings"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='group_by_results', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="group_by_results", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def list_assets(self, - parent, - filter_=None, - order_by=None, - read_time=None, - compare_duration=None, - field_mask=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_assets( + self, + parent, + filter_=None, + order_by=None, + read_time=None, + compare_duration=None, + field_mask=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists an organization's assets. @@ -993,14 +1015,15 @@ def list_assets(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_assets' not in self._inner_api_calls: + if "list_assets" not in self._inner_api_calls: self._inner_api_calls[ - 'list_assets'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_assets, - default_retry=self._method_configs['ListAssets'].retry, - default_timeout=self._method_configs['ListAssets'].timeout, - client_info=self._client_info, - ) + "list_assets" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_assets, + default_retry=self._method_configs["ListAssets"].retry, + default_timeout=self._method_configs["ListAssets"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.ListAssetsRequest( parent=parent, @@ -1014,27 +1037,30 @@ def list_assets(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_assets'], + self._inner_api_calls["list_assets"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='list_assets_results', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="list_assets_results", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def list_findings(self, - parent, - filter_=None, - order_by=None, - read_time=None, - field_mask=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_findings( + self, + parent, + filter_=None, + order_by=None, + read_time=None, + field_mask=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists an organization or source's findings. @@ -1142,15 +1168,15 @@ def list_findings(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_findings' not in self._inner_api_calls: + if "list_findings" not in self._inner_api_calls: self._inner_api_calls[ - 'list_findings'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_findings, - default_retry=self._method_configs['ListFindings'].retry, - default_timeout=self._method_configs['ListFindings']. - timeout, - client_info=self._client_info, - ) + "list_findings" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_findings, + default_retry=self._method_configs["ListFindings"].retry, + default_timeout=self._method_configs["ListFindings"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.ListFindingsRequest( parent=parent, @@ -1163,23 +1189,26 @@ def list_findings(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_findings'], + self._inner_api_calls["list_findings"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='findings', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="findings", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def list_sources(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_sources( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all sources belonging to an organization. @@ -1235,39 +1264,41 @@ def list_sources(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_sources' not in self._inner_api_calls: + if "list_sources" not in self._inner_api_calls: self._inner_api_calls[ - 'list_sources'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_sources, - default_retry=self._method_configs['ListSources'].retry, - default_timeout=self._method_configs['ListSources']. - timeout, - client_info=self._client_info, - ) + "list_sources" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_sources, + default_retry=self._method_configs["ListSources"].retry, + default_timeout=self._method_configs["ListSources"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.ListSourcesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_sources'], + self._inner_api_calls["list_sources"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='sources', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="sources", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def run_asset_discovery(self, - parent, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def run_asset_discovery( + self, + parent, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Runs asset discovery. The discovery is tracked with a long-running operation. @@ -1317,21 +1348,20 @@ def run_asset_discovery(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'run_asset_discovery' not in self._inner_api_calls: + if "run_asset_discovery" not in self._inner_api_calls: self._inner_api_calls[ - 'run_asset_discovery'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.run_asset_discovery, - default_retry=self._method_configs['RunAssetDiscovery']. - retry, - default_timeout=self._method_configs['RunAssetDiscovery']. - timeout, - client_info=self._client_info, - ) + "run_asset_discovery" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.run_asset_discovery, + default_retry=self._method_configs["RunAssetDiscovery"].retry, + default_timeout=self._method_configs["RunAssetDiscovery"].timeout, + client_info=self._client_info, + ) - request = securitycenter_service_pb2.RunAssetDiscoveryRequest( - parent=parent, ) - operation = self._inner_api_calls['run_asset_discovery']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = securitycenter_service_pb2.RunAssetDiscoveryRequest(parent=parent) + operation = self._inner_api_calls["run_asset_discovery"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -1339,13 +1369,15 @@ def run_asset_discovery(self, metadata_type=empty_pb2.Empty, ) - def set_finding_state(self, - name, - state, - start_time, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def set_finding_state( + self, + name, + state, + start_time, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the state of a finding. @@ -1394,31 +1426,31 @@ def set_finding_state(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_finding_state' not in self._inner_api_calls: + if "set_finding_state" not in self._inner_api_calls: self._inner_api_calls[ - 'set_finding_state'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_finding_state, - default_retry=self._method_configs['SetFindingState']. - retry, - default_timeout=self._method_configs['SetFindingState']. - timeout, - client_info=self._client_info, - ) + "set_finding_state" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_finding_state, + default_retry=self._method_configs["SetFindingState"].retry, + default_timeout=self._method_configs["SetFindingState"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.SetFindingStateRequest( - name=name, - state=state, - start_time=start_time, + name=name, state=state, start_time=start_time + ) + return self._inner_api_calls["set_finding_state"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['set_finding_state']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy on the specified Source. @@ -1465,29 +1497,29 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns the permissions that a caller has on the specified source. @@ -1531,30 +1563,31 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions + ) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_finding(self, - finding, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def update_finding( + self, + finding, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates or updates a finding. The corresponding source must exist for a finding creation to succeed. @@ -1604,30 +1637,31 @@ def update_finding(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_finding' not in self._inner_api_calls: + if "update_finding" not in self._inner_api_calls: self._inner_api_calls[ - 'update_finding'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_finding, - default_retry=self._method_configs['UpdateFinding'].retry, - default_timeout=self._method_configs['UpdateFinding']. - timeout, - client_info=self._client_info, - ) + "update_finding" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_finding, + default_retry=self._method_configs["UpdateFinding"].retry, + default_timeout=self._method_configs["UpdateFinding"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.UpdateFindingRequest( - finding=finding, - update_mask=update_mask, + finding=finding, update_mask=update_mask + ) + return self._inner_api_calls["update_finding"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_finding']( - request, retry=retry, timeout=timeout, metadata=metadata) def update_organization_settings( - self, - organization_settings, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + organization_settings, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an organization's settings. @@ -1670,30 +1704,33 @@ def update_organization_settings( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_organization_settings' not in self._inner_api_calls: + if "update_organization_settings" not in self._inner_api_calls: self._inner_api_calls[ - 'update_organization_settings'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_organization_settings, - default_retry=self. - _method_configs['UpdateOrganizationSettings'].retry, - default_timeout=self. - _method_configs['UpdateOrganizationSettings'].timeout, - client_info=self._client_info, - ) + "update_organization_settings" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_organization_settings, + default_retry=self._method_configs["UpdateOrganizationSettings"].retry, + default_timeout=self._method_configs[ + "UpdateOrganizationSettings" + ].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.UpdateOrganizationSettingsRequest( - organization_settings=organization_settings, - update_mask=update_mask, + organization_settings=organization_settings, update_mask=update_mask ) - return self._inner_api_calls['update_organization_settings']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_source(self, - source, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_organization_settings"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def update_source( + self, + source, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a source. @@ -1736,30 +1773,32 @@ def update_source(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_source' not in self._inner_api_calls: + if "update_source" not in self._inner_api_calls: self._inner_api_calls[ - 'update_source'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_source, - default_retry=self._method_configs['UpdateSource'].retry, - default_timeout=self._method_configs['UpdateSource']. - timeout, - client_info=self._client_info, - ) + "update_source" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_source, + default_retry=self._method_configs["UpdateSource"].retry, + default_timeout=self._method_configs["UpdateSource"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.UpdateSourceRequest( - source=source, - update_mask=update_mask, + source=source, update_mask=update_mask + ) + return self._inner_api_calls["update_source"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_source']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_security_marks(self, - security_marks, - update_mask=None, - start_time=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def update_security_marks( + self, + security_marks, + update_mask=None, + start_time=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates security marks. @@ -1806,21 +1845,21 @@ def update_security_marks(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_security_marks' not in self._inner_api_calls: + if "update_security_marks" not in self._inner_api_calls: self._inner_api_calls[ - 'update_security_marks'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_security_marks, - default_retry=self._method_configs['UpdateSecurityMarks']. - retry, - default_timeout=self. - _method_configs['UpdateSecurityMarks'].timeout, - client_info=self._client_info, - ) + "update_security_marks" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_security_marks, + default_retry=self._method_configs["UpdateSecurityMarks"].retry, + default_timeout=self._method_configs["UpdateSecurityMarks"].timeout, + client_info=self._client_info, + ) request = securitycenter_service_pb2.UpdateSecurityMarksRequest( security_marks=security_marks, update_mask=update_mask, start_time=start_time, ) - return self._inner_api_calls['update_security_marks']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_security_marks"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/securitycenter/google/cloud/securitycenter_v1beta1/gapic/security_center_client_config.py b/securitycenter/google/cloud/securitycenter_v1beta1/gapic/security_center_client_config.py index e9444324e9b4..9b5c01a985a6 100644 --- a/securitycenter/google/cloud/securitycenter_v1beta1/gapic/security_center_client_config.py +++ b/securitycenter/google/cloud/securitycenter_v1beta1/gapic/security_center_client_config.py @@ -3,7 +3,7 @@ "google.cloud.securitycenter.v1beta1.SecurityCenter": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,101 +13,101 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "CreateSource": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateFinding": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetOrganizationSettings": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetSource": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GroupAssets": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GroupFindings": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListAssets": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListFindings": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListSources": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RunAssetDiscovery": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetFindingState": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateFinding": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateOrganizationSettings": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateSource": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateSecurityMarks": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/securitycenter/google/cloud/securitycenter_v1beta1/gapic/transports/security_center_grpc_transport.py b/securitycenter/google/cloud/securitycenter_v1beta1/gapic/transports/security_center_grpc_transport.py index f6e1fe349122..9005190edaf4 100644 --- a/securitycenter/google/cloud/securitycenter_v1beta1/gapic/transports/security_center_grpc_transport.py +++ b/securitycenter/google/cloud/securitycenter_v1beta1/gapic/transports/security_center_grpc_transport.py @@ -28,14 +28,17 @@ class SecurityCenterGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='securitycenter.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="securitycenter.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -53,35 +56,34 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'security_center_stub': - securitycenter_service_pb2_grpc.SecurityCenterStub(channel), + "security_center_stub": securitycenter_service_pb2_grpc.SecurityCenterStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='securitycenter.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="securitycenter.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -96,9 +98,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -121,7 +121,7 @@ def create_source(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].CreateSource + return self._stubs["security_center_stub"].CreateSource @property def create_finding(self): @@ -135,7 +135,7 @@ def create_finding(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].CreateFinding + return self._stubs["security_center_stub"].CreateFinding @property def get_iam_policy(self): @@ -148,7 +148,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].GetIamPolicy + return self._stubs["security_center_stub"].GetIamPolicy @property def get_organization_settings(self): @@ -161,7 +161,7 @@ def get_organization_settings(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].GetOrganizationSettings + return self._stubs["security_center_stub"].GetOrganizationSettings @property def get_source(self): @@ -174,7 +174,7 @@ def get_source(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].GetSource + return self._stubs["security_center_stub"].GetSource @property def group_assets(self): @@ -188,7 +188,7 @@ def group_assets(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].GroupAssets + return self._stubs["security_center_stub"].GroupAssets @property def group_findings(self): @@ -205,7 +205,7 @@ def group_findings(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].GroupFindings + return self._stubs["security_center_stub"].GroupFindings @property def list_assets(self): @@ -218,7 +218,7 @@ def list_assets(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].ListAssets + return self._stubs["security_center_stub"].ListAssets @property def list_findings(self): @@ -234,7 +234,7 @@ def list_findings(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].ListFindings + return self._stubs["security_center_stub"].ListFindings @property def list_sources(self): @@ -247,7 +247,7 @@ def list_sources(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].ListSources + return self._stubs["security_center_stub"].ListSources @property def run_asset_discovery(self): @@ -265,7 +265,7 @@ def run_asset_discovery(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].RunAssetDiscovery + return self._stubs["security_center_stub"].RunAssetDiscovery @property def set_finding_state(self): @@ -278,7 +278,7 @@ def set_finding_state(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].SetFindingState + return self._stubs["security_center_stub"].SetFindingState @property def set_iam_policy(self): @@ -291,7 +291,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].SetIamPolicy + return self._stubs["security_center_stub"].SetIamPolicy @property def test_iam_permissions(self): @@ -304,7 +304,7 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].TestIamPermissions + return self._stubs["security_center_stub"].TestIamPermissions @property def update_finding(self): @@ -318,7 +318,7 @@ def update_finding(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].UpdateFinding + return self._stubs["security_center_stub"].UpdateFinding @property def update_organization_settings(self): @@ -331,7 +331,7 @@ def update_organization_settings(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].UpdateOrganizationSettings + return self._stubs["security_center_stub"].UpdateOrganizationSettings @property def update_source(self): @@ -344,7 +344,7 @@ def update_source(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].UpdateSource + return self._stubs["security_center_stub"].UpdateSource @property def update_security_marks(self): @@ -357,4 +357,4 @@ def update_security_marks(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['security_center_stub'].UpdateSecurityMarks + return self._stubs["security_center_stub"].UpdateSecurityMarks diff --git a/securitycenter/google/cloud/securitycenter_v1beta1/types.py b/securitycenter/google/cloud/securitycenter_v1beta1/types.py index 3a249f2b9e61..9e9b4898a39c 100644 --- a/securitycenter/google/cloud/securitycenter_v1beta1/types.py +++ b/securitycenter/google/cloud/securitycenter_v1beta1/types.py @@ -70,7 +70,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.securitycenter_v1beta1.types' + message.__module__ = "google.cloud.securitycenter_v1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/securitycenter/tests/unit/gapic/v1beta1/test_security_center_client_v1beta1.py b/securitycenter/tests/unit/gapic/v1beta1/test_security_center_client_v1beta1.py index 0e8e8c7241f6..d68eaf8e54c4 100644 --- a/securitycenter/tests/unit/gapic/v1beta1/test_security_center_client_v1beta1.py +++ b/securitycenter/tests/unit/gapic/v1beta1/test_security_center_client_v1beta1.py @@ -62,10 +62,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -76,25 +73,25 @@ class CustomException(Exception): class TestSecurityCenterClient(object): def test_create_source(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description + "name": name, + "display_name": display_name, + "description": description, } expected_response = source_pb2.Source(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") source = {} response = client.create_source(parent, source) @@ -102,20 +99,21 @@ def test_create_source(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.CreateSourceRequest( - parent=parent, source=source) + parent=parent, source=source + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_source_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") source = {} with pytest.raises(CustomException): @@ -123,30 +121,30 @@ def test_create_source_exception(self): def test_create_finding(self): # Setup Expected Response - name = 'name3373707' - parent_2 = 'parent21175163357' - resource_name = 'resourceName979421212' - category = 'category50511102' - external_uri = 'externalUri-1385596168' + name = "name3373707" + parent_2 = "parent21175163357" + resource_name = "resourceName979421212" + category = "category50511102" + external_uri = "externalUri-1385596168" expected_response = { - 'name': name, - 'parent': parent_2, - 'resource_name': resource_name, - 'category': category, - 'external_uri': external_uri + "name": name, + "parent": parent_2, + "resource_name": resource_name, + "category": category, + "external_uri": external_uri, } expected_response = finding_pb2.Finding(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.source_path('[ORGANIZATION]', '[SOURCE]') - finding_id = 'findingId728776081' + parent = client.source_path("[ORGANIZATION]", "[SOURCE]") + finding_id = "findingId728776081" finding = {} response = client.create_finding(parent, finding_id, finding) @@ -154,21 +152,22 @@ def test_create_finding(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.CreateFindingRequest( - parent=parent, finding_id=finding_id, finding=finding) + parent=parent, finding_id=finding_id, finding=finding + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_finding_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - parent = client.source_path('[ORGANIZATION]', '[SOURCE]') - finding_id = 'findingId728776081' + parent = client.source_path("[ORGANIZATION]", "[SOURCE]") + finding_id = "findingId728776081" finding = {} with pytest.raises(CustomException): @@ -177,154 +176,155 @@ def test_create_finding_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - resource = client.source_path('[ORGANIZATION]', '[SOURCE]') + resource = client.source_path("[ORGANIZATION]", "[SOURCE]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - resource = client.source_path('[ORGANIZATION]', '[SOURCE]') + resource = client.source_path("[ORGANIZATION]", "[SOURCE]") with pytest.raises(CustomException): client.get_iam_policy(resource) def test_get_organization_settings(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" enable_asset_discovery = False expected_response = { - 'name': name_2, - 'enable_asset_discovery': enable_asset_discovery + "name": name_2, + "enable_asset_discovery": enable_asset_discovery, } expected_response = organization_settings_pb2.OrganizationSettings( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - name = client.organization_settings_path('[ORGANIZATION]') + name = client.organization_settings_path("[ORGANIZATION]") response = client.get_organization_settings(name) assert expected_response == response assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.GetOrganizationSettingsRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_organization_settings_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - name = client.organization_settings_path('[ORGANIZATION]') + name = client.organization_settings_path("[ORGANIZATION]") with pytest.raises(CustomException): client.get_organization_settings(name) def test_get_source(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'description': description + "name": name_2, + "display_name": display_name, + "description": description, } expected_response = source_pb2.Source(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - name = client.source_path('[ORGANIZATION]', '[SOURCE]') + name = client.source_path("[ORGANIZATION]", "[SOURCE]") response = client.get_source(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = securitycenter_service_pb2.GetSourceRequest( - name=name) + expected_request = securitycenter_service_pb2.GetSourceRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_source_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - name = client.source_path('[ORGANIZATION]', '[SOURCE]') + name = client.source_path("[ORGANIZATION]", "[SOURCE]") with pytest.raises(CustomException): client.get_source(name) def test_group_assets(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" group_by_results_element = {} group_by_results = [group_by_results_element] expected_response = { - 'next_page_token': next_page_token, - 'group_by_results': group_by_results + "next_page_token": next_page_token, + "group_by_results": group_by_results, } expected_response = securitycenter_service_pb2.GroupAssetsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') - group_by = 'groupBy506361367' + parent = client.organization_path("[ORGANIZATION]") + group_by = "groupBy506361367" paged_list_response = client.group_assets(parent, group_by) resources = list(paged_list_response) @@ -334,20 +334,21 @@ def test_group_assets(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.GroupAssetsRequest( - parent=parent, group_by=group_by) + parent=parent, group_by=group_by + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_group_assets_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') - group_by = 'groupBy506361367' + parent = client.organization_path("[ORGANIZATION]") + group_by = "groupBy506361367" paged_list_response = client.group_assets(parent, group_by) with pytest.raises(CustomException): @@ -355,26 +356,27 @@ def test_group_assets_exception(self): def test_group_findings(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" group_by_results_element = {} group_by_results = [group_by_results_element] expected_response = { - 'next_page_token': next_page_token, - 'group_by_results': group_by_results + "next_page_token": next_page_token, + "group_by_results": group_by_results, } expected_response = securitycenter_service_pb2.GroupFindingsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.source_path('[ORGANIZATION]', '[SOURCE]') - group_by = 'groupBy506361367' + parent = client.source_path("[ORGANIZATION]", "[SOURCE]") + group_by = "groupBy506361367" paged_list_response = client.group_findings(parent, group_by) resources = list(paged_list_response) @@ -384,20 +386,21 @@ def test_group_findings(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.GroupFindingsRequest( - parent=parent, group_by=group_by) + parent=parent, group_by=group_by + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_group_findings_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - parent = client.source_path('[ORGANIZATION]', '[SOURCE]') - group_by = 'groupBy506361367' + parent = client.source_path("[ORGANIZATION]", "[SOURCE]") + group_by = "groupBy506361367" paged_list_response = client.group_findings(parent, group_by) with pytest.raises(CustomException): @@ -405,27 +408,28 @@ def test_group_findings_exception(self): def test_list_assets(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" total_size = 705419236 list_assets_results_element = {} list_assets_results = [list_assets_results_element] expected_response = { - 'next_page_token': next_page_token, - 'total_size': total_size, - 'list_assets_results': list_assets_results + "next_page_token": next_page_token, + "total_size": total_size, + "list_assets_results": list_assets_results, } expected_response = securitycenter_service_pb2.ListAssetsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_assets(parent) resources = list(paged_list_response) @@ -434,20 +438,19 @@ def test_list_assets(self): assert expected_response.list_assets_results[0] == resources[0] assert len(channel.requests) == 1 - expected_request = securitycenter_service_pb2.ListAssetsRequest( - parent=parent) + expected_request = securitycenter_service_pb2.ListAssetsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_assets_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_assets(parent) with pytest.raises(CustomException): @@ -455,27 +458,28 @@ def test_list_assets_exception(self): def test_list_findings(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" total_size = 705419236 findings_element = {} findings = [findings_element] expected_response = { - 'next_page_token': next_page_token, - 'total_size': total_size, - 'findings': findings + "next_page_token": next_page_token, + "total_size": total_size, + "findings": findings, } expected_response = securitycenter_service_pb2.ListFindingsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.source_path('[ORGANIZATION]', '[SOURCE]') + parent = client.source_path("[ORGANIZATION]", "[SOURCE]") paged_list_response = client.list_findings(parent) resources = list(paged_list_response) @@ -484,20 +488,19 @@ def test_list_findings(self): assert expected_response.findings[0] == resources[0] assert len(channel.requests) == 1 - expected_request = securitycenter_service_pb2.ListFindingsRequest( - parent=parent) + expected_request = securitycenter_service_pb2.ListFindingsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_findings_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - parent = client.source_path('[ORGANIZATION]', '[SOURCE]') + parent = client.source_path("[ORGANIZATION]", "[SOURCE]") paged_list_response = client.list_findings(parent) with pytest.raises(CustomException): @@ -505,25 +508,23 @@ def test_list_findings_exception(self): def test_list_sources(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" sources_element = {} sources = [sources_element] - expected_response = { - 'next_page_token': next_page_token, - 'sources': sources - } + expected_response = {"next_page_token": next_page_token, "sources": sources} expected_response = securitycenter_service_pb2.ListSourcesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_sources(parent) resources = list(paged_list_response) @@ -532,20 +533,19 @@ def test_list_sources(self): assert expected_response.sources[0] == resources[0] assert len(channel.requests) == 1 - expected_request = securitycenter_service_pb2.ListSourcesRequest( - parent=parent) + expected_request = securitycenter_service_pb2.ListSourcesRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_sources_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") paged_list_response = client.list_sources(parent) with pytest.raises(CustomException): @@ -556,18 +556,19 @@ def test_run_asset_discovery(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_run_asset_discovery', done=True) + name="operations/test_run_asset_discovery", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") response = client.run_asset_discovery(parent) result = response.result() @@ -575,7 +576,8 @@ def test_run_asset_discovery(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.RunAssetDiscoveryRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -583,18 +585,19 @@ def test_run_asset_discovery_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_run_asset_discovery_exception', done=True) + name="operations/test_run_asset_discovery_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - parent = client.organization_path('[ORGANIZATION]') + parent = client.organization_path("[ORGANIZATION]") response = client.run_asset_discovery(parent) exception = response.exception() @@ -602,29 +605,29 @@ def test_run_asset_discovery_exception(self): def test_set_finding_state(self): # Setup Expected Response - name_2 = 'name2-1052831874' - parent = 'parent-995424086' - resource_name = 'resourceName979421212' - category = 'category50511102' - external_uri = 'externalUri-1385596168' + name_2 = "name2-1052831874" + parent = "parent-995424086" + resource_name = "resourceName979421212" + category = "category50511102" + external_uri = "externalUri-1385596168" expected_response = { - 'name': name_2, - 'parent': parent, - 'resource_name': resource_name, - 'category': category, - 'external_uri': external_uri + "name": name_2, + "parent": parent, + "resource_name": resource_name, + "category": category, + "external_uri": external_uri, } expected_response = finding_pb2.Finding(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - name = client.finding_path('[ORGANIZATION]', '[SOURCE]', '[FINDING]') + name = client.finding_path("[ORGANIZATION]", "[SOURCE]", "[FINDING]") state = enums.Finding.State.STATE_UNSPECIFIED start_time = {} @@ -633,20 +636,21 @@ def test_set_finding_state(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.SetFindingStateRequest( - name=name, state=state, start_time=start_time) + name=name, state=state, start_time=start_time + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_finding_state_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - name = client.finding_path('[ORGANIZATION]', '[SOURCE]', '[FINDING]') + name = client.finding_path("[ORGANIZATION]", "[SOURCE]", "[FINDING]") state = enums.Finding.State.STATE_UNSPECIFIED start_time = {} @@ -656,19 +660,19 @@ def test_set_finding_state_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - resource = client.source_path('[ORGANIZATION]', '[SOURCE]') + resource = client.source_path("[ORGANIZATION]", "[SOURCE]") policy = {} response = client.set_iam_policy(resource, policy) @@ -676,20 +680,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - resource = client.source_path('[ORGANIZATION]', '[SOURCE]') + resource = client.source_path("[ORGANIZATION]", "[SOURCE]") policy = {} with pytest.raises(CustomException): @@ -699,17 +704,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup Request - resource = client.source_path('[ORGANIZATION]', '[SOURCE]') + resource = client.source_path("[ORGANIZATION]", "[SOURCE]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -717,20 +723,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() # Setup request - resource = client.source_path('[ORGANIZATION]', '[SOURCE]') + resource = client.source_path("[ORGANIZATION]", "[SOURCE]") permissions = [] with pytest.raises(CustomException): @@ -738,23 +745,23 @@ def test_test_iam_permissions_exception(self): def test_update_finding(self): # Setup Expected Response - name = 'name3373707' - parent = 'parent-995424086' - resource_name = 'resourceName979421212' - category = 'category50511102' - external_uri = 'externalUri-1385596168' + name = "name3373707" + parent = "parent-995424086" + resource_name = "resourceName979421212" + category = "category50511102" + external_uri = "externalUri-1385596168" expected_response = { - 'name': name, - 'parent': parent, - 'resource_name': resource_name, - 'category': category, - 'external_uri': external_uri + "name": name, + "parent": parent, + "resource_name": resource_name, + "category": category, + "external_uri": external_uri, } expected_response = finding_pb2.Finding(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() @@ -767,14 +774,15 @@ def test_update_finding(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.UpdateFindingRequest( - finding=finding) + finding=finding + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_finding_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() @@ -787,18 +795,19 @@ def test_update_finding_exception(self): def test_update_organization_settings(self): # Setup Expected Response - name = 'name3373707' + name = "name3373707" enable_asset_discovery = False expected_response = { - 'name': name, - 'enable_asset_discovery': enable_asset_discovery + "name": name, + "enable_asset_discovery": enable_asset_discovery, } expected_response = organization_settings_pb2.OrganizationSettings( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() @@ -811,14 +820,15 @@ def test_update_organization_settings(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.UpdateOrganizationSettingsRequest( - organization_settings=organization_settings) + organization_settings=organization_settings + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_organization_settings_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() @@ -831,19 +841,19 @@ def test_update_organization_settings_exception(self): def test_update_source(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description + "name": name, + "display_name": display_name, + "description": description, } expected_response = source_pb2.Source(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() @@ -855,15 +865,14 @@ def test_update_source(self): assert expected_response == response assert len(channel.requests) == 1 - expected_request = securitycenter_service_pb2.UpdateSourceRequest( - source=source) + expected_request = securitycenter_service_pb2.UpdateSourceRequest(source=source) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_source_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() @@ -876,14 +885,13 @@ def test_update_source_exception(self): def test_update_security_marks(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} - expected_response = security_marks_pb2.SecurityMarks( - **expected_response) + name = "name3373707" + expected_response = {"name": name} + expected_response = security_marks_pb2.SecurityMarks(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() @@ -896,14 +904,15 @@ def test_update_security_marks(self): assert len(channel.requests) == 1 expected_request = securitycenter_service_pb2.UpdateSecurityMarksRequest( - security_marks=security_marks) + security_marks=security_marks + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_security_marks_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = securitycenter_v1beta1.SecurityCenterClient() diff --git a/spanner/docs/conf.py b/spanner/docs/conf.py index ab0cc0fa9598..b537f9d639cc 100644 --- a/spanner/docs/conf.py +++ b/spanner/docs/conf.py @@ -18,57 +18,55 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.90.4' +__version__ = "0.90.4" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.doctest', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.doctest", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # Allow markdown includes (so releases.md can include CHANGLEOG.md) # http://www.sphinx-doc.org/en/master/markdown.html -source_parsers = { - '.md': 'recommonmark.parser.CommonMarkParser', -} +source_parsers = {".md": "recommonmark.parser.CommonMarkParser"} # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-spanner' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-spanner" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -77,7 +75,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -88,37 +86,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -127,31 +125,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'alabaster' +html_theme = "alabaster" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -161,78 +159,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-spanner-doc' +htmlhelp_basename = "google-cloud-spanner-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -241,39 +236,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-spanner.tex', - u'google-cloud-spanner Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-spanner.tex", + u"google-cloud-spanner Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-spanner', - u'google-cloud-spanner Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-spanner", + u"google-cloud-spanner Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -281,27 +288,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-spanner', - u'google-cloud-spanner Documentation', author, 'google-cloud-spanner', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-spanner", + u"google-cloud-spanner Documentation", + author, + "google-cloud-spanner", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/spanner/google/__init__.py b/spanner/google/__init__.py index 267f71008dcb..2f4b4738aee1 100644 --- a/spanner/google/__init__.py +++ b/spanner/google/__init__.py @@ -1,6 +1,8 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/spanner/google/cloud/__init__.py b/spanner/google/cloud/__init__.py index 267f71008dcb..2f4b4738aee1 100644 --- a/spanner/google/cloud/__init__.py +++ b/spanner/google/cloud/__init__.py @@ -1,6 +1,8 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/spanner/google/cloud/spanner.py b/spanner/google/cloud/spanner.py index c12f05b80e92..2d11760c9987 100644 --- a/spanner/google/cloud/spanner.py +++ b/spanner/google/cloud/spanner.py @@ -30,15 +30,15 @@ __all__ = ( - '__version__', - 'AbstractSessionPool', - 'BurstyPool', - 'Client', - 'COMMIT_TIMESTAMP', - 'enums', - 'FixedSizePool', - 'KeyRange', - 'KeySet', - 'param_types', - 'types', + "__version__", + "AbstractSessionPool", + "BurstyPool", + "Client", + "COMMIT_TIMESTAMP", + "enums", + "FixedSizePool", + "KeyRange", + "KeySet", + "param_types", + "types", ) diff --git a/spanner/google/cloud/spanner_admin_database_v1/__init__.py b/spanner/google/cloud/spanner_admin_database_v1/__init__.py index 1c8be301fb5b..3a5b42403c0d 100644 --- a/spanner/google/cloud/spanner_admin_database_v1/__init__.py +++ b/spanner/google/cloud/spanner_admin_database_v1/__init__.py @@ -26,8 +26,4 @@ class DatabaseAdminClient(database_admin_client.DatabaseAdminClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'DatabaseAdminClient', -) +__all__ = ("enums", "types", "DatabaseAdminClient") diff --git a/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client.py b/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client.py index dc50cdd01007..a12c8690ba8f 100644 --- a/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client.py +++ b/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client.py @@ -32,7 +32,9 @@ from google.cloud.spanner_admin_database_v1.gapic import database_admin_client_config from google.cloud.spanner_admin_database_v1.gapic import enums -from google.cloud.spanner_admin_database_v1.gapic.transports import database_admin_grpc_transport +from google.cloud.spanner_admin_database_v1.gapic.transports import ( + database_admin_grpc_transport, +) from google.cloud.spanner_admin_database_v1.proto import spanner_database_admin_pb2 from google.cloud.spanner_admin_database_v1.proto import spanner_database_admin_pb2_grpc from google.iam.v1 import iam_policy_pb2 @@ -40,8 +42,7 @@ from google.longrunning import operations_pb2 from google.protobuf import empty_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-spanner', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-spanner").version class DatabaseAdminClient(object): @@ -53,12 +54,12 @@ class DatabaseAdminClient(object): databases. """ - SERVICE_ADDRESS = 'spanner.googleapis.com:443' + SERVICE_ADDRESS = "spanner.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.spanner.admin.database.v1.DatabaseAdmin' + _INTERFACE_NAME = "google.spanner.admin.database.v1.DatabaseAdmin" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -74,9 +75,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: DatabaseAdminClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -85,7 +85,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def instance_path(cls, project, instance): """Return a fully-qualified instance string.""" return google.api_core.path_template.expand( - 'projects/{project}/instances/{instance}', + "projects/{project}/instances/{instance}", project=project, instance=instance, ) @@ -94,18 +94,20 @@ def instance_path(cls, project, instance): def database_path(cls, project, instance, database): """Return a fully-qualified database string.""" return google.api_core.path_template.expand( - 'projects/{project}/instances/{instance}/databases/{database}', + "projects/{project}/instances/{instance}/databases/{database}", project=project, instance=instance, database=database, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -139,18 +141,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = database_admin_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -159,25 +162,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=database_admin_grpc_transport. - DatabaseAdminGrpcTransport, + default_class=database_admin_grpc_transport.DatabaseAdminGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = database_admin_grpc_transport.DatabaseAdminGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -187,7 +189,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -196,12 +199,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_databases(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_databases( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists Cloud Spanner databases. @@ -257,41 +262,43 @@ def list_databases(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_databases' not in self._inner_api_calls: + if "list_databases" not in self._inner_api_calls: self._inner_api_calls[ - 'list_databases'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_databases, - default_retry=self._method_configs['ListDatabases'].retry, - default_timeout=self._method_configs['ListDatabases']. - timeout, - client_info=self._client_info, - ) + "list_databases" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_databases, + default_retry=self._method_configs["ListDatabases"].retry, + default_timeout=self._method_configs["ListDatabases"].timeout, + client_info=self._client_info, + ) request = spanner_database_admin_pb2.ListDatabasesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_databases'], + self._inner_api_calls["list_databases"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='databases', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="databases", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def create_database(self, - parent, - create_statement, - extra_statements=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_database( + self, + parent, + create_statement, + extra_statements=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new Cloud Spanner database and starts to prepare it for serving. The returned ``long-running operation`` will have a name of the @@ -353,23 +360,24 @@ def create_database(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_database' not in self._inner_api_calls: + if "create_database" not in self._inner_api_calls: self._inner_api_calls[ - 'create_database'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_database, - default_retry=self._method_configs['CreateDatabase'].retry, - default_timeout=self._method_configs['CreateDatabase']. - timeout, - client_info=self._client_info, - ) + "create_database" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_database, + default_retry=self._method_configs["CreateDatabase"].retry, + default_timeout=self._method_configs["CreateDatabase"].timeout, + client_info=self._client_info, + ) request = spanner_database_admin_pb2.CreateDatabaseRequest( parent=parent, create_statement=create_statement, extra_statements=extra_statements, ) - operation = self._inner_api_calls['create_database']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["create_database"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -377,11 +385,13 @@ def create_database(self, metadata_type=spanner_database_admin_pb2.CreateDatabaseMetadata, ) - def get_database(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_database( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the state of a Cloud Spanner database. @@ -417,27 +427,30 @@ def get_database(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_database' not in self._inner_api_calls: + if "get_database" not in self._inner_api_calls: self._inner_api_calls[ - 'get_database'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_database, - default_retry=self._method_configs['GetDatabase'].retry, - default_timeout=self._method_configs['GetDatabase']. - timeout, - client_info=self._client_info, - ) + "get_database" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_database, + default_retry=self._method_configs["GetDatabase"].retry, + default_timeout=self._method_configs["GetDatabase"].timeout, + client_info=self._client_info, + ) + + request = spanner_database_admin_pb2.GetDatabaseRequest(name=name) + return self._inner_api_calls["get_database"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = spanner_database_admin_pb2.GetDatabaseRequest(name=name, ) - return self._inner_api_calls['get_database']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def update_database_ddl(self, - database, - statements, - operation_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_database_ddl( + self, + database, + statements, + operation_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates the schema of a Cloud Spanner database by creating/altering/dropping tables, columns, indexes, etc. The returned @@ -505,24 +518,22 @@ def update_database_ddl(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_database_ddl' not in self._inner_api_calls: + if "update_database_ddl" not in self._inner_api_calls: self._inner_api_calls[ - 'update_database_ddl'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_database_ddl, - default_retry=self._method_configs['UpdateDatabaseDdl']. - retry, - default_timeout=self._method_configs['UpdateDatabaseDdl']. - timeout, - client_info=self._client_info, - ) + "update_database_ddl" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_database_ddl, + default_retry=self._method_configs["UpdateDatabaseDdl"].retry, + default_timeout=self._method_configs["UpdateDatabaseDdl"].timeout, + client_info=self._client_info, + ) request = spanner_database_admin_pb2.UpdateDatabaseDdlRequest( - database=database, - statements=statements, - operation_id=operation_id, + database=database, statements=statements, operation_id=operation_id + ) + operation = self._inner_api_calls["update_database_ddl"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['update_database_ddl']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -530,11 +541,13 @@ def update_database_ddl(self, metadata_type=spanner_database_admin_pb2.UpdateDatabaseDdlMetadata, ) - def drop_database(self, - database, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def drop_database( + self, + database, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Drops (aka deletes) a Cloud Spanner database. @@ -566,26 +579,28 @@ def drop_database(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'drop_database' not in self._inner_api_calls: + if "drop_database" not in self._inner_api_calls: self._inner_api_calls[ - 'drop_database'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.drop_database, - default_retry=self._method_configs['DropDatabase'].retry, - default_timeout=self._method_configs['DropDatabase']. - timeout, - client_info=self._client_info, - ) + "drop_database" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.drop_database, + default_retry=self._method_configs["DropDatabase"].retry, + default_timeout=self._method_configs["DropDatabase"].timeout, + client_info=self._client_info, + ) - request = spanner_database_admin_pb2.DropDatabaseRequest( - database=database, ) - self._inner_api_calls['drop_database']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = spanner_database_admin_pb2.DropDatabaseRequest(database=database) + self._inner_api_calls["drop_database"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_database_ddl(self, - database, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_database_ddl( + self, + database, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns the schema of a Cloud Spanner database as a list of formatted DDL statements. This method does not show pending schema updates, those @@ -622,27 +637,29 @@ def get_database_ddl(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_database_ddl' not in self._inner_api_calls: + if "get_database_ddl" not in self._inner_api_calls: self._inner_api_calls[ - 'get_database_ddl'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_database_ddl, - default_retry=self._method_configs['GetDatabaseDdl'].retry, - default_timeout=self._method_configs['GetDatabaseDdl']. - timeout, - client_info=self._client_info, - ) + "get_database_ddl" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_database_ddl, + default_retry=self._method_configs["GetDatabaseDdl"].retry, + default_timeout=self._method_configs["GetDatabaseDdl"].timeout, + client_info=self._client_info, + ) + + request = spanner_database_admin_pb2.GetDatabaseDdlRequest(database=database) + return self._inner_api_calls["get_database_ddl"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = spanner_database_admin_pb2.GetDatabaseDdlRequest( - database=database, ) - return self._inner_api_calls['get_database_ddl']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy on a database resource. Replaces any existing policy. @@ -693,28 +710,28 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy for a database resource. Returns an empty policy if a database exists but does not have a policy set. @@ -755,26 +772,29 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns permissions that the caller has on the specified database resource. @@ -824,20 +844,19 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions + ) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client_config.py b/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client_config.py index b7ed930a9f1d..4e096d1163a9 100644 --- a/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client_config.py +++ b/spanner/google/cloud/spanner_admin_database_v1/gapic/database_admin_client_config.py @@ -3,7 +3,7 @@ "google.spanner.admin.database.v1.DatabaseAdmin": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,56 +13,56 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListDatabases": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateDatabase": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetDatabase": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateDatabaseDdl": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DropDatabase": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetDatabaseDdl": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/spanner/google/cloud/spanner_admin_database_v1/gapic/enums.py b/spanner/google/cloud/spanner_admin_database_v1/gapic/enums.py index a09dcac45922..bb14b759dfe8 100644 --- a/spanner/google/cloud/spanner_admin_database_v1/gapic/enums.py +++ b/spanner/google/cloud/spanner_admin_database_v1/gapic/enums.py @@ -29,6 +29,7 @@ class State(enum.IntEnum): with ``FAILED_PRECONDITION`` in this state. READY (int): The database is fully created and ready for use. """ + STATE_UNSPECIFIED = 0 CREATING = 1 READY = 2 diff --git a/spanner/google/cloud/spanner_admin_database_v1/gapic/transports/database_admin_grpc_transport.py b/spanner/google/cloud/spanner_admin_database_v1/gapic/transports/database_admin_grpc_transport.py index f32d035bcdc3..b352eb9b30b2 100644 --- a/spanner/google/cloud/spanner_admin_database_v1/gapic/transports/database_admin_grpc_transport.py +++ b/spanner/google/cloud/spanner_admin_database_v1/gapic/transports/database_admin_grpc_transport.py @@ -28,17 +28,17 @@ class DatabaseAdminGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/spanner.admin', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin", ) - def __init__(self, - channel=None, - credentials=None, - address='spanner.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="spanner.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,35 +56,32 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'database_admin_stub': - spanner_database_admin_pb2_grpc.DatabaseAdminStub(channel), + "database_admin_stub": spanner_database_admin_pb2_grpc.DatabaseAdminStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='spanner.googleapis.com:443', - credentials=None): + def create_channel(cls, address="spanner.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -99,9 +96,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,7 +119,7 @@ def list_databases(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].ListDatabases + return self._stubs["database_admin_stub"].ListDatabases @property def create_database(self): @@ -142,7 +137,7 @@ def create_database(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].CreateDatabase + return self._stubs["database_admin_stub"].CreateDatabase @property def get_database(self): @@ -155,7 +150,7 @@ def get_database(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].GetDatabase + return self._stubs["database_admin_stub"].GetDatabase @property def update_database_ddl(self): @@ -173,7 +168,7 @@ def update_database_ddl(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].UpdateDatabaseDdl + return self._stubs["database_admin_stub"].UpdateDatabaseDdl @property def drop_database(self): @@ -186,7 +181,7 @@ def drop_database(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].DropDatabase + return self._stubs["database_admin_stub"].DropDatabase @property def get_database_ddl(self): @@ -201,7 +196,7 @@ def get_database_ddl(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].GetDatabaseDdl + return self._stubs["database_admin_stub"].GetDatabaseDdl @property def set_iam_policy(self): @@ -218,7 +213,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].SetIamPolicy + return self._stubs["database_admin_stub"].SetIamPolicy @property def get_iam_policy(self): @@ -235,7 +230,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].GetIamPolicy + return self._stubs["database_admin_stub"].GetIamPolicy @property def test_iam_permissions(self): @@ -254,4 +249,4 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['database_admin_stub'].TestIamPermissions + return self._stubs["database_admin_stub"].TestIamPermissions diff --git a/spanner/google/cloud/spanner_admin_database_v1/types.py b/spanner/google/cloud/spanner_admin_database_v1/types.py index 9214e58cdc46..43103a0b6d9d 100644 --- a/spanner/google/cloud/spanner_admin_database_v1/types.py +++ b/spanner/google/cloud/spanner_admin_database_v1/types.py @@ -29,8 +29,7 @@ from google.rpc import status_pb2 from google.api_core.protobuf_helpers import get_messages -from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2) +from google.cloud.spanner_admin_database_v1.proto import spanner_database_admin_pb2 _shared_modules = [ @@ -46,9 +45,7 @@ status_pb2, ] -_local_modules = [ - spanner_database_admin_pb2, -] +_local_modules = [spanner_database_admin_pb2] names = [] @@ -59,7 +56,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.spanner_admin_database_v1.types' + message.__module__ = "google.cloud.spanner_admin_database_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/spanner/google/cloud/spanner_admin_instance_v1/__init__.py b/spanner/google/cloud/spanner_admin_instance_v1/__init__.py index d40da2651870..53f32d3b4705 100644 --- a/spanner/google/cloud/spanner_admin_instance_v1/__init__.py +++ b/spanner/google/cloud/spanner_admin_instance_v1/__init__.py @@ -26,8 +26,4 @@ class InstanceAdminClient(instance_admin_client.InstanceAdminClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'InstanceAdminClient', -) +__all__ = ("enums", "types", "InstanceAdminClient") diff --git a/spanner/google/cloud/spanner_admin_instance_v1/gapic/enums.py b/spanner/google/cloud/spanner_admin_instance_v1/gapic/enums.py index 9dc8426526ed..132b03862813 100644 --- a/spanner/google/cloud/spanner_admin_instance_v1/gapic/enums.py +++ b/spanner/google/cloud/spanner_admin_instance_v1/gapic/enums.py @@ -31,6 +31,7 @@ class State(enum.IntEnum): READY (int): The instance is fully created and ready to do work such as creating databases. """ + STATE_UNSPECIFIED = 0 CREATING = 1 READY = 2 diff --git a/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client.py b/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client.py index ddddb51e9922..63d3a1631eae 100644 --- a/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client.py +++ b/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client.py @@ -32,7 +32,9 @@ from google.cloud.spanner_admin_instance_v1.gapic import enums from google.cloud.spanner_admin_instance_v1.gapic import instance_admin_client_config -from google.cloud.spanner_admin_instance_v1.gapic.transports import instance_admin_grpc_transport +from google.cloud.spanner_admin_instance_v1.gapic.transports import ( + instance_admin_grpc_transport, +) from google.cloud.spanner_admin_instance_v1.proto import spanner_instance_admin_pb2 from google.cloud.spanner_admin_instance_v1.proto import spanner_instance_admin_pb2_grpc from google.iam.v1 import iam_policy_pb2 @@ -41,8 +43,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-spanner', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-spanner").version class InstanceAdminClient(object): @@ -70,12 +71,12 @@ class InstanceAdminClient(object): databases in that instance, and their performance may suffer. """ - SERVICE_ADDRESS = 'spanner.googleapis.com:443' + SERVICE_ADDRESS = "spanner.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.spanner.admin.instance.v1.InstanceAdmin' + _INTERFACE_NAME = "google.spanner.admin.instance.v1.InstanceAdmin" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -91,9 +92,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: InstanceAdminClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -102,15 +102,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def instance_config_path(cls, project, instance_config): """Return a fully-qualified instance_config string.""" return google.api_core.path_template.expand( - 'projects/{project}/instanceConfigs/{instance_config}', + "projects/{project}/instanceConfigs/{instance_config}", project=project, instance_config=instance_config, ) @@ -119,17 +118,19 @@ def instance_config_path(cls, project, instance_config): def instance_path(cls, project, instance): """Return a fully-qualified instance string.""" return google.api_core.path_template.expand( - 'projects/{project}/instances/{instance}', + "projects/{project}/instances/{instance}", project=project, instance=instance, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -163,18 +164,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = instance_admin_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -183,25 +185,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=instance_admin_grpc_transport. - InstanceAdminGrpcTransport, + default_class=instance_admin_grpc_transport.InstanceAdminGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = instance_admin_grpc_transport.InstanceAdminGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -211,7 +212,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -220,12 +222,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_instance_configs(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_instance_configs( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the supported instance configurations for a given project. @@ -282,40 +286,41 @@ def list_instance_configs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_instance_configs' not in self._inner_api_calls: + if "list_instance_configs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_instance_configs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_instance_configs, - default_retry=self._method_configs['ListInstanceConfigs']. - retry, - default_timeout=self. - _method_configs['ListInstanceConfigs'].timeout, - client_info=self._client_info, - ) + "list_instance_configs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_instance_configs, + default_retry=self._method_configs["ListInstanceConfigs"].retry, + default_timeout=self._method_configs["ListInstanceConfigs"].timeout, + client_info=self._client_info, + ) request = spanner_instance_admin_pb2.ListInstanceConfigsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_instance_configs'], + self._inner_api_calls["list_instance_configs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='instance_configs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="instance_configs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_instance_config(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_instance_config( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets information about a particular instance configuration. @@ -351,29 +356,30 @@ def get_instance_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_instance_config' not in self._inner_api_calls: + if "get_instance_config" not in self._inner_api_calls: self._inner_api_calls[ - 'get_instance_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_instance_config, - default_retry=self._method_configs['GetInstanceConfig']. - retry, - default_timeout=self._method_configs['GetInstanceConfig']. - timeout, - client_info=self._client_info, - ) + "get_instance_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_instance_config, + default_retry=self._method_configs["GetInstanceConfig"].retry, + default_timeout=self._method_configs["GetInstanceConfig"].timeout, + client_info=self._client_info, + ) - request = spanner_instance_admin_pb2.GetInstanceConfigRequest( - name=name, ) - return self._inner_api_calls['get_instance_config']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_instances(self, - parent, - page_size=None, - filter_=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = spanner_instance_admin_pb2.GetInstanceConfigRequest(name=name) + return self._inner_api_calls["get_instance_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_instances( + self, + parent, + page_size=None, + filter_=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all instances in the given project. @@ -447,40 +453,41 @@ def list_instances(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_instances' not in self._inner_api_calls: + if "list_instances" not in self._inner_api_calls: self._inner_api_calls[ - 'list_instances'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_instances, - default_retry=self._method_configs['ListInstances'].retry, - default_timeout=self._method_configs['ListInstances']. - timeout, - client_info=self._client_info, - ) + "list_instances" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_instances, + default_retry=self._method_configs["ListInstances"].retry, + default_timeout=self._method_configs["ListInstances"].timeout, + client_info=self._client_info, + ) request = spanner_instance_admin_pb2.ListInstancesRequest( - parent=parent, - page_size=page_size, - filter=filter_, + parent=parent, page_size=page_size, filter=filter_ ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_instances'], + self._inner_api_calls["list_instances"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='instances', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="instances", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_instance(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_instance( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets information about a particular instance. @@ -516,27 +523,30 @@ def get_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_instance' not in self._inner_api_calls: + if "get_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'get_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_instance, - default_retry=self._method_configs['GetInstance'].retry, - default_timeout=self._method_configs['GetInstance']. - timeout, - client_info=self._client_info, - ) + "get_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_instance, + default_retry=self._method_configs["GetInstance"].retry, + default_timeout=self._method_configs["GetInstance"].timeout, + client_info=self._client_info, + ) - request = spanner_instance_admin_pb2.GetInstanceRequest(name=name, ) - return self._inner_api_calls['get_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_instance(self, - parent, - instance_id, - instance, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = spanner_instance_admin_pb2.GetInstanceRequest(name=name) + return self._inner_api_calls["get_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_instance( + self, + parent, + instance_id, + instance, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates an instance and begins preparing it to begin serving. The returned ``long-running operation`` can be used to track the progress of @@ -625,23 +635,22 @@ def create_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_instance' not in self._inner_api_calls: + if "create_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'create_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_instance, - default_retry=self._method_configs['CreateInstance'].retry, - default_timeout=self._method_configs['CreateInstance']. - timeout, - client_info=self._client_info, - ) + "create_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_instance, + default_retry=self._method_configs["CreateInstance"].retry, + default_timeout=self._method_configs["CreateInstance"].timeout, + client_info=self._client_info, + ) request = spanner_instance_admin_pb2.CreateInstanceRequest( - parent=parent, - instance_id=instance_id, - instance=instance, + parent=parent, instance_id=instance_id, instance=instance + ) + operation = self._inner_api_calls["create_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['create_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -649,12 +658,14 @@ def create_instance(self, metadata_type=spanner_instance_admin_pb2.CreateInstanceMetadata, ) - def update_instance(self, - instance, - field_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_instance( + self, + instance, + field_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates an instance, and begins allocating or releasing resources as requested. The returned ``long-running operation`` can be used to track @@ -752,22 +763,22 @@ def update_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_instance' not in self._inner_api_calls: + if "update_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'update_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_instance, - default_retry=self._method_configs['UpdateInstance'].retry, - default_timeout=self._method_configs['UpdateInstance']. - timeout, - client_info=self._client_info, - ) + "update_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_instance, + default_retry=self._method_configs["UpdateInstance"].retry, + default_timeout=self._method_configs["UpdateInstance"].timeout, + client_info=self._client_info, + ) request = spanner_instance_admin_pb2.UpdateInstanceRequest( - instance=instance, - field_mask=field_mask, + instance=instance, field_mask=field_mask + ) + operation = self._inner_api_calls["update_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['update_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -775,11 +786,13 @@ def update_instance(self, metadata_type=spanner_instance_admin_pb2.UpdateInstanceMetadata, ) - def delete_instance(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_instance( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes an instance. @@ -822,26 +835,29 @@ def delete_instance(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_instance' not in self._inner_api_calls: + if "delete_instance" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_instance'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_instance, - default_retry=self._method_configs['DeleteInstance'].retry, - default_timeout=self._method_configs['DeleteInstance']. - timeout, - client_info=self._client_info, - ) + "delete_instance" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_instance, + default_retry=self._method_configs["DeleteInstance"].retry, + default_timeout=self._method_configs["DeleteInstance"].timeout, + client_info=self._client_info, + ) - request = spanner_instance_admin_pb2.DeleteInstanceRequest(name=name, ) - self._inner_api_calls['delete_instance']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = spanner_instance_admin_pb2.DeleteInstanceRequest(name=name) + self._inner_api_calls["delete_instance"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy on an instance resource. Replaces any existing policy. @@ -892,28 +908,28 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy for an instance resource. Returns an empty policy if an instance exists but does not have a policy set. @@ -954,26 +970,29 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns permissions that the caller has on the specified instance resource. @@ -1023,20 +1042,19 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions + ) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client_config.py b/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client_config.py index eb9e066ac33a..4331f879de11 100644 --- a/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client_config.py +++ b/spanner/google/cloud/spanner_admin_instance_v1/gapic/instance_admin_client_config.py @@ -3,7 +3,7 @@ "google.spanner.admin.instance.v1.InstanceAdmin": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,61 +13,61 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListInstanceConfigs": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetInstanceConfig": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListInstances": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetInstance": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateInstance": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateInstance": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteInstance": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 30000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/spanner/google/cloud/spanner_admin_instance_v1/gapic/transports/instance_admin_grpc_transport.py b/spanner/google/cloud/spanner_admin_instance_v1/gapic/transports/instance_admin_grpc_transport.py index 5f554c2d8c3a..932a34e3788e 100644 --- a/spanner/google/cloud/spanner_admin_instance_v1/gapic/transports/instance_admin_grpc_transport.py +++ b/spanner/google/cloud/spanner_admin_instance_v1/gapic/transports/instance_admin_grpc_transport.py @@ -28,17 +28,17 @@ class InstanceAdminGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/spanner.admin', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin", ) - def __init__(self, - channel=None, - credentials=None, - address='spanner.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="spanner.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,35 +56,32 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'instance_admin_stub': - spanner_instance_admin_pb2_grpc.InstanceAdminStub(channel), + "instance_admin_stub": spanner_instance_admin_pb2_grpc.InstanceAdminStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='spanner.googleapis.com:443', - credentials=None): + def create_channel(cls, address="spanner.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -99,9 +96,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,7 +119,7 @@ def list_instance_configs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].ListInstanceConfigs + return self._stubs["instance_admin_stub"].ListInstanceConfigs @property def get_instance_config(self): @@ -137,7 +132,7 @@ def get_instance_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].GetInstanceConfig + return self._stubs["instance_admin_stub"].GetInstanceConfig @property def list_instances(self): @@ -150,7 +145,7 @@ def list_instances(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].ListInstances + return self._stubs["instance_admin_stub"].ListInstances @property def get_instance(self): @@ -163,7 +158,7 @@ def get_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].GetInstance + return self._stubs["instance_admin_stub"].GetInstance @property def create_instance(self): @@ -206,7 +201,7 @@ def create_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].CreateInstance + return self._stubs["instance_admin_stub"].CreateInstance @property def update_instance(self): @@ -254,7 +249,7 @@ def update_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].UpdateInstance + return self._stubs["instance_admin_stub"].UpdateInstance @property def delete_instance(self): @@ -277,7 +272,7 @@ def delete_instance(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].DeleteInstance + return self._stubs["instance_admin_stub"].DeleteInstance @property def set_iam_policy(self): @@ -294,7 +289,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].SetIamPolicy + return self._stubs["instance_admin_stub"].SetIamPolicy @property def get_iam_policy(self): @@ -311,7 +306,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].GetIamPolicy + return self._stubs["instance_admin_stub"].GetIamPolicy @property def test_iam_permissions(self): @@ -330,4 +325,4 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['instance_admin_stub'].TestIamPermissions + return self._stubs["instance_admin_stub"].TestIamPermissions diff --git a/spanner/google/cloud/spanner_admin_instance_v1/types.py b/spanner/google/cloud/spanner_admin_instance_v1/types.py index fdc6c5495595..a20b479bf04e 100644 --- a/spanner/google/cloud/spanner_admin_instance_v1/types.py +++ b/spanner/google/cloud/spanner_admin_instance_v1/types.py @@ -31,8 +31,7 @@ from google.rpc import status_pb2 from google.api_core.protobuf_helpers import get_messages -from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2) +from google.cloud.spanner_admin_instance_v1.proto import spanner_instance_admin_pb2 _shared_modules = [ @@ -49,9 +48,7 @@ status_pb2, ] -_local_modules = [ - spanner_instance_admin_pb2, -] +_local_modules = [spanner_instance_admin_pb2] names = [] @@ -62,7 +59,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.spanner_admin_instance_v1.types' + message.__module__ = "google.cloud.spanner_admin_instance_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/spanner/google/cloud/spanner_v1/__init__.py b/spanner/google/cloud/spanner_v1/__init__.py index 6ba2b6e9905d..07fd1c517cba 100644 --- a/spanner/google/cloud/spanner_v1/__init__.py +++ b/spanner/google/cloud/spanner_v1/__init__.py @@ -15,7 +15,8 @@ from __future__ import absolute_import import pkg_resources -__version__ = pkg_resources.get_distribution('google-cloud-spanner').version + +__version__ = pkg_resources.get_distribution("google-cloud-spanner").version from google.cloud.spanner_v1 import param_types from google.cloud.spanner_v1 import types @@ -28,7 +29,7 @@ from google.cloud.spanner_v1.pool import FixedSizePool -COMMIT_TIMESTAMP = 'spanner.commit_timestamp()' +COMMIT_TIMESTAMP = "spanner.commit_timestamp()" """Placeholder be used to store commit timestamp of a transaction in a column. This value can only be used for timestamp columns that have set the option @@ -38,25 +39,20 @@ __all__ = ( # google.cloud.spanner_v1 - '__version__', - 'param_types', - 'types', - + "__version__", + "param_types", + "types", # google.cloud.spanner_v1.client - 'Client', - + "Client", # google.cloud.spanner_v1.keyset - 'KeyRange', - 'KeySet', - + "KeyRange", + "KeySet", # google.cloud.spanner_v1.pool - 'AbstractSessionPool', - 'BurstyPool', - 'FixedSizePool', - + "AbstractSessionPool", + "BurstyPool", + "FixedSizePool", # google.cloud.spanner_v1.gapic - 'enums', - + "enums", # local - 'COMMIT_TIMESTAMP', + "COMMIT_TIMESTAMP", ) diff --git a/spanner/google/cloud/spanner_v1/_helpers.py b/spanner/google/cloud/spanner_v1/_helpers.py index e83ddb2732ab..3b7fd586c9a5 100644 --- a/spanner/google/cloud/spanner_v1/_helpers.py +++ b/spanner/google/cloud/spanner_v1/_helpers.py @@ -40,9 +40,11 @@ def _try_to_coerce_bytes(bytestring): Value(string_value=bytestring) return bytestring except ValueError: - raise ValueError('Received a bytes that is not base64 encoded. ' - 'Ensure that you either send a Unicode string or a ' - 'base64-encoded bytes.') + raise ValueError( + "Received a bytes that is not base64 encoded. " + "Ensure that you either send a Unicode string or a " + "base64-encoded bytes." + ) # pylint: disable=too-many-return-statements,too-many-branches @@ -57,7 +59,7 @@ def _make_value_pb(value): :raises ValueError: if value is not of a known scalar type. """ if value is None: - return Value(null_value='NULL_VALUE') + return Value(null_value="NULL_VALUE") if isinstance(value, (list, tuple)): return Value(list_value=_make_list_value_pb(value)) if isinstance(value, bool): @@ -66,12 +68,12 @@ def _make_value_pb(value): return Value(string_value=str(value)) if isinstance(value, float): if math.isnan(value): - return Value(string_value='NaN') + return Value(string_value="NaN") if math.isinf(value): if value > 0: - return Value(string_value='Infinity') + return Value(string_value="Infinity") else: - return Value(string_value='-Infinity') + return Value(string_value="-Infinity") return Value(number_value=value) if isinstance(value, datetime_helpers.DatetimeWithNanoseconds): return Value(string_value=value.rfc3339()) @@ -87,6 +89,8 @@ def _make_value_pb(value): if isinstance(value, ListValue): return Value(list_value=value) raise ValueError("Unknown type: %s" % (value,)) + + # pylint: enable=too-many-return-statements,too-many-branches @@ -128,18 +132,18 @@ def _parse_value_pb(value_pb, field_type): :returns: value extracted from value_pb :raises ValueError: if unknown type is passed """ - if value_pb.HasField('null_value'): + if value_pb.HasField("null_value"): return None if field_type.code == type_pb2.STRING: result = value_pb.string_value elif field_type.code == type_pb2.BYTES: - result = value_pb.string_value.encode('utf8') + result = value_pb.string_value.encode("utf8") elif field_type.code == type_pb2.BOOL: result = value_pb.bool_value elif field_type.code == type_pb2.INT64: result = int(value_pb.string_value) elif field_type.code == type_pb2.FLOAT64: - if value_pb.HasField('string_value'): + if value_pb.HasField("string_value"): result = float(value_pb.string_value) else: result = value_pb.number_value @@ -151,14 +155,18 @@ def _parse_value_pb(value_pb, field_type): elif field_type.code == type_pb2.ARRAY: result = [ _parse_value_pb(item_pb, field_type.array_element_type) - for item_pb in value_pb.list_value.values] + for item_pb in value_pb.list_value.values + ] elif field_type.code == type_pb2.STRUCT: result = [ _parse_value_pb(item_pb, field_type.struct_type.fields[i].type) - for (i, item_pb) in enumerate(value_pb.list_value.values)] + for (i, item_pb) in enumerate(value_pb.list_value.values) + ] else: raise ValueError("Unknown type: %s" % (field_type,)) return result + + # pylint: enable=too-many-branches @@ -189,6 +197,7 @@ class _SessionWrapper(object): :type session: :class:`~google.cloud.spanner_v1.session.Session` :param session: the session used to perform the commit """ + def __init__(self, session): self._session = session @@ -202,4 +211,4 @@ def _metadata_with_prefix(prefix, **kw): Returns: List[Tuple[str, str]]: RPC metadata with supplied prefix """ - return [('google-cloud-resource-prefix', prefix)] + return [("google-cloud-resource-prefix", prefix)] diff --git a/spanner/google/cloud/spanner_v1/batch.py b/spanner/google/cloud/spanner_v1/batch.py index 347e06105ba1..3446416c897e 100644 --- a/spanner/google/cloud/spanner_v1/batch.py +++ b/spanner/google/cloud/spanner_v1/batch.py @@ -22,6 +22,7 @@ from google.cloud.spanner_v1._helpers import _SessionWrapper from google.cloud.spanner_v1._helpers import _make_list_value_pbs from google.cloud.spanner_v1._helpers import _metadata_with_prefix + # pylint: enable=ungrouped-imports @@ -31,6 +32,7 @@ class _BatchBase(_SessionWrapper): :type session: :class:`~google.cloud.spanner_v1.session.Session` :param session: the session used to perform the commit """ + def __init__(self, session): super(_BatchBase, self).__init__(session) self._mutations = [] @@ -57,8 +59,7 @@ def insert(self, table, columns, values): :type values: list of lists :param values: Values to be modified. """ - self._mutations.append(Mutation( - insert=_make_write_pb(table, columns, values))) + self._mutations.append(Mutation(insert=_make_write_pb(table, columns, values))) def update(self, table, columns, values): """Update one or more existing table rows. @@ -72,8 +73,7 @@ def update(self, table, columns, values): :type values: list of lists :param values: Values to be modified. """ - self._mutations.append(Mutation( - update=_make_write_pb(table, columns, values))) + self._mutations.append(Mutation(update=_make_write_pb(table, columns, values))) def insert_or_update(self, table, columns, values): """Insert/update one or more table rows. @@ -87,8 +87,9 @@ def insert_or_update(self, table, columns, values): :type values: list of lists :param values: Values to be modified. """ - self._mutations.append(Mutation( - insert_or_update=_make_write_pb(table, columns, values))) + self._mutations.append( + Mutation(insert_or_update=_make_write_pb(table, columns, values)) + ) def replace(self, table, columns, values): """Replace one or more table rows. @@ -102,8 +103,7 @@ def replace(self, table, columns, values): :type values: list of lists :param values: Values to be modified. """ - self._mutations.append(Mutation( - replace=_make_write_pb(table, columns, values))) + self._mutations.append(Mutation(replace=_make_write_pb(table, columns, values))) def delete(self, table, keyset): """Delete one or more table rows. @@ -114,17 +114,14 @@ def delete(self, table, keyset): :type keyset: :class:`~google.cloud.spanner_v1.keyset.Keyset` :param keyset: Keys/ranges identifying rows to delete. """ - delete = Mutation.Delete( - table=table, - key_set=keyset._to_pb(), - ) - self._mutations.append(Mutation( - delete=delete)) + delete = Mutation.Delete(table=table, key_set=keyset._to_pb()) + self._mutations.append(Mutation(delete=delete)) class Batch(_BatchBase): """Accumulate mutations for transmission during :meth:`commit`. """ + committed = None """Timestamp at which the batch was successfully committed.""" @@ -149,13 +146,14 @@ def commit(self): database = self._session._database api = database.spanner_api metadata = _metadata_with_prefix(database.name) - txn_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite()) - response = api.commit(self._session.name, self._mutations, - single_use_transaction=txn_options, - metadata=metadata) - self.committed = _pb_timestamp_to_datetime( - response.commit_timestamp) + txn_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) + response = api.commit( + self._session.name, + self._mutations, + single_use_transaction=txn_options, + metadata=metadata, + ) + self.committed = _pb_timestamp_to_datetime(response.commit_timestamp) return self.committed def __enter__(self): @@ -186,7 +184,5 @@ def _make_write_pb(table, columns, values): :returns: Write protobuf """ return Mutation.Write( - table=table, - columns=columns, - values=_make_list_value_pbs(values), + table=table, columns=columns, values=_make_list_value_pbs(values) ) diff --git a/spanner/google/cloud/spanner_v1/client.py b/spanner/google/cloud/spanner_v1/client.py index b879e9e16463..2f00eafec06d 100644 --- a/spanner/google/cloud/spanner_v1/client.py +++ b/spanner/google/cloud/spanner_v1/client.py @@ -28,9 +28,12 @@ # pylint: disable=line-too-long from google.cloud.spanner_admin_database_v1.gapic.database_admin_client import ( # noqa - DatabaseAdminClient) + DatabaseAdminClient, +) from google.cloud.spanner_admin_instance_v1.gapic.instance_admin_client import ( # noqa - InstanceAdminClient) + InstanceAdminClient, +) + # pylint: enable=line-too-long from google.cloud._http import DEFAULT_USER_AGENT @@ -40,9 +43,8 @@ from google.cloud.spanner_v1.instance import DEFAULT_NODE_COUNT from google.cloud.spanner_v1.instance import Instance -_CLIENT_INFO = client_info.ClientInfo( - client_library_version=__version__) -SPANNER_ADMIN_SCOPE = 'https://www.googleapis.com/auth/spanner.admin' +_CLIENT_INFO = client_info.ClientInfo(client_library_version=__version__) +SPANNER_ADMIN_SCOPE = "https://www.googleapis.com/auth/spanner.admin" class InstanceConfig(object): @@ -54,6 +56,7 @@ class InstanceConfig(object): :type display_name: str :param display_name: Name of the instance configuration """ + def __init__(self, name, display_name): self.name = name self.display_name = display_name @@ -99,6 +102,7 @@ class Client(ClientWithProject): :raises: :class:`ValueError ` if both ``read_only`` and ``admin`` are :data:`True` """ + _instance_admin_api = None _database_admin_api = None _SET_PROJECT = True # Used by from_service_account_json() @@ -106,13 +110,13 @@ class Client(ClientWithProject): SCOPE = (SPANNER_ADMIN_SCOPE,) """The scopes required for Google Cloud Spanner.""" - def __init__(self, project=None, credentials=None, - user_agent=DEFAULT_USER_AGENT): + def __init__(self, project=None, credentials=None, user_agent=DEFAULT_USER_AGENT): # NOTE: This API has no use for the _http argument, but sending it # will have no impact since the _http() @property only lazily # creates a working HTTP object. super(Client, self).__init__( - project=project, credentials=credentials, _http=None) + project=project, credentials=credentials, _http=None + ) self.user_agent = user_agent @property @@ -142,15 +146,14 @@ def project_name(self): :returns: The project name to be used with the Cloud Spanner Admin API RPC service. """ - return 'projects/' + self.project + return "projects/" + self.project @property def instance_admin_api(self): """Helper for session-related API calls.""" if self._instance_admin_api is None: self._instance_admin_api = InstanceAdminClient( - credentials=self.credentials, - client_info=_CLIENT_INFO, + credentials=self.credentials, client_info=_CLIENT_INFO ) return self._instance_admin_api @@ -159,8 +162,7 @@ def database_admin_api(self): """Helper for session-related API calls.""" if self._database_admin_api is None: self._database_admin_api = DatabaseAdminClient( - credentials=self.credentials, - client_info=_CLIENT_INFO, + credentials=self.credentials, client_info=_CLIENT_INFO ) return self._database_admin_api @@ -201,17 +203,21 @@ def list_instance_configs(self, page_size=None, page_token=None): resources within the client's project. """ metadata = _metadata_with_prefix(self.project_name) - path = 'projects/%s' % (self.project,) + path = "projects/%s" % (self.project,) page_iter = self.instance_admin_api.list_instance_configs( - path, page_size=page_size, metadata=metadata) + path, page_size=page_size, metadata=metadata + ) page_iter.next_page_token = page_token page_iter.item_to_value = _item_to_instance_config return page_iter - def instance(self, instance_id, - configuration_name=None, - display_name=None, - node_count=DEFAULT_NODE_COUNT): + def instance( + self, + instance_id, + configuration_name=None, + display_name=None, + node_count=DEFAULT_NODE_COUNT, + ): """Factory to create a instance associated with this client. :type instance_id: str @@ -237,10 +243,9 @@ def instance(self, instance_id, :rtype: :class:`~google.cloud.spanner_v1.instance.Instance` :returns: an instance owned by this client. """ - return Instance( - instance_id, self, configuration_name, node_count, display_name) + return Instance(instance_id, self, configuration_name, node_count, display_name) - def list_instances(self, filter_='', page_size=None, page_token=None): + def list_instances(self, filter_="", page_size=None, page_token=None): """List instances for the client's project. See @@ -262,9 +267,10 @@ def list_instances(self, filter_='', page_size=None, page_token=None): resources within the client's project. """ metadata = _metadata_with_prefix(self.project_name) - path = 'projects/%s' % (self.project,) + path = "projects/%s" % (self.project,) page_iter = self.instance_admin_api.list_instances( - path, page_size=page_size, metadata=metadata) + path, page_size=page_size, metadata=metadata + ) page_iter.item_to_value = self._item_to_instance page_iter.next_page_token = page_token return page_iter @@ -284,8 +290,7 @@ def _item_to_instance(self, iterator, instance_pb): return Instance.from_pb(instance_pb, self) -def _item_to_instance_config( - iterator, config_pb): # pylint: disable=unused-argument +def _item_to_instance_config(iterator, config_pb): # pylint: disable=unused-argument """Convert an instance config protobuf to the native object. :type iterator: :class:`~google.api_core.page_iterator.Iterator` diff --git a/spanner/google/cloud/spanner_v1/database.py b/spanner/google/cloud/spanner_v1/database.py index 6fb367d3ab87..87c9860312af 100644 --- a/spanner/google/cloud/spanner_v1/database.py +++ b/spanner/google/cloud/spanner_v1/database.py @@ -39,20 +39,22 @@ from google.cloud.spanner_v1.snapshot import Snapshot from google.cloud.spanner_v1.streamed import StreamedResultSet from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionSelector, TransactionOptions) + TransactionSelector, + TransactionOptions, +) + # pylint: enable=ungrouped-imports -_CLIENT_INFO = client_info.ClientInfo( - client_library_version=__version__) -SPANNER_DATA_SCOPE = 'https://www.googleapis.com/auth/spanner.data' +_CLIENT_INFO = client_info.ClientInfo(client_library_version=__version__) +SPANNER_DATA_SCOPE = "https://www.googleapis.com/auth/spanner.data" _DATABASE_NAME_RE = re.compile( - r'^projects/(?P[^/]+)/' - r'instances/(?P[a-z][-a-z0-9]*)/' - r'databases/(?P[a-z][a-z0-9_\-]*[a-z0-9])$' - ) + r"^projects/(?P[^/]+)/" + r"instances/(?P[a-z][-a-z0-9]*)/" + r"databases/(?P[a-z][a-z0-9_\-]*[a-z0-9])$" +) class Database(object): @@ -121,16 +123,22 @@ def from_pb(cls, database_pb, instance, pool=None): """ match = _DATABASE_NAME_RE.match(database_pb.name) if match is None: - raise ValueError('Database protobuf name was not in the ' - 'expected format.', database_pb.name) - if match.group('project') != instance._client.project: - raise ValueError('Project ID on database does not match the ' - 'project ID on the instance\'s client') - instance_id = match.group('instance_id') + raise ValueError( + "Database protobuf name was not in the " "expected format.", + database_pb.name, + ) + if match.group("project") != instance._client.project: + raise ValueError( + "Project ID on database does not match the " + "project ID on the instance's client" + ) + instance_id = match.group("instance_id") if instance_id != instance.instance_id: - raise ValueError('Instance ID on database does not match the ' - 'Instance ID on the instance') - database_id = match.group('database_id') + raise ValueError( + "Instance ID on database does not match the " + "Instance ID on the instance" + ) + database_id = match.group("database_id") return cls(database_id, instance, pool=pool) @@ -150,7 +158,7 @@ def name(self): :rtype: str :returns: The database name. """ - return self._instance.name + '/databases/' + self.database_id + return self._instance.name + "/databases/" + self.database_id @property def ddl_statements(self): @@ -172,16 +180,16 @@ def spanner_api(self): if isinstance(credentials, google.auth.credentials.Scoped): credentials = credentials.with_scopes((SPANNER_DATA_SCOPE,)) self._spanner_api = SpannerClient( - credentials=credentials, - client_info=_CLIENT_INFO, + credentials=credentials, client_info=_CLIENT_INFO ) return self._spanner_api def __eq__(self, other): if not isinstance(other, self.__class__): return NotImplemented - return (other.database_id == self.database_id and - other._instance == self._instance) + return ( + other.database_id == self.database_id and other._instance == self._instance + ) def __ne__(self, other): return not self == other @@ -202,12 +210,12 @@ def create(self): api = self._instance._client.database_admin_api metadata = _metadata_with_prefix(self.name) db_name = self.database_id - if '-' in db_name: - db_name = '`%s`' % (db_name,) + if "-" in db_name: + db_name = "`%s`" % (db_name,) future = api.create_database( parent=self._instance.name, - create_statement='CREATE DATABASE %s' % (db_name,), + create_statement="CREATE DATABASE %s" % (db_name,), extra_statements=list(self._ddl_statements), metadata=metadata, ) @@ -266,7 +274,8 @@ def update_ddl(self, ddl_statements): metadata = _metadata_with_prefix(self.name) future = api.update_database_ddl( - self.name, ddl_statements, '', metadata=metadata) + self.name, ddl_statements, "", metadata=metadata + ) return future def drop(self): @@ -279,8 +288,7 @@ def drop(self): metadata = _metadata_with_prefix(self.name) api.drop_database(self.name, metadata=metadata) - def execute_partitioned_dml( - self, dml, params=None, param_types=None): + def execute_partitioned_dml(self, dml, params=None, param_types=None): """Execute a partitionable DML statement. :type dml: str @@ -300,24 +308,24 @@ def execute_partitioned_dml( """ if params is not None: if param_types is None: - raise ValueError( - "Specify 'param_types' when passing 'params'.") - params_pb = Struct(fields={ - key: _make_value_pb(value) for key, value in params.items()}) + raise ValueError("Specify 'param_types' when passing 'params'.") + params_pb = Struct( + fields={key: _make_value_pb(value) for key, value in params.items()} + ) else: params_pb = None api = self.spanner_api txn_options = TransactionOptions( - partitioned_dml=TransactionOptions.PartitionedDml()) + partitioned_dml=TransactionOptions.PartitionedDml() + ) metadata = _metadata_with_prefix(self.name) with SessionCheckout(self._pool) as session: - txn = api.begin_transaction( - session.name, txn_options, metadata=metadata) + txn = api.begin_transaction(session.name, txn_options, metadata=metadata) txn_selector = TransactionSelector(id=txn.id) @@ -328,7 +336,8 @@ def execute_partitioned_dml( transaction=txn_selector, params=params_pb, param_types=param_types, - metadata=metadata) + metadata=metadata, + ) iterator = _restart_on_unavailable(restart) @@ -392,9 +401,7 @@ def batch_snapshot(self, read_timestamp=None, exact_staleness=None): :returns: new wrapper """ return BatchSnapshot( - self, - read_timestamp=read_timestamp, - exact_staleness=exact_staleness, + self, read_timestamp=read_timestamp, exact_staleness=exact_staleness ) def run_in_transaction(self, func, *args, **kw): @@ -419,8 +426,8 @@ def run_in_transaction(self, func, *args, **kw): # Sanity check: Is there a transaction already running? # If there is, then raise a red flag. Otherwise, mark that this one # is running. - if getattr(self._local, 'transaction_running', False): - raise RuntimeError('Spanner does not support nested transactions.') + if getattr(self._local, "transaction_running", False): + raise RuntimeError("Spanner does not support nested transactions.") self._local.transaction_running = True # Check out a session and run the function in a transaction; once @@ -444,6 +451,7 @@ class BatchCheckout(object): :type database: :class:`~google.cloud.spanner.database.Database` :param database: database to use """ + def __init__(self, database): self._database = database self._session = self._batch = None @@ -480,6 +488,7 @@ class SnapshotCheckout(object): Passed through to :class:`~google.cloud.spanner_v1.snapshot.Snapshot` constructor. """ + def __init__(self, database, **kw): self._database = database self._session = None @@ -508,6 +517,7 @@ class BatchSnapshot(object): :param exact_staleness: Execute all reads at a timestamp that is ``exact_staleness`` old. """ + def __init__(self, database, read_timestamp=None, exact_staleness=None): self._database = database self._session = None @@ -529,9 +539,9 @@ def from_dict(cls, database, mapping): """ instance = cls(database) session = instance._session = database.session() - session._session_id = mapping['session_id'] + session._session_id = mapping["session_id"] snapshot = instance._snapshot = session.snapshot() - snapshot._transaction_id = mapping['transaction_id'] + snapshot._transaction_id = mapping["transaction_id"] return instance def to_dict(self): @@ -545,8 +555,8 @@ def to_dict(self): session = self._get_session() snapshot = self._get_snapshot() return { - 'session_id': session._session_id, - 'transaction_id': snapshot._transaction_id, + "session_id": session._session_id, + "transaction_id": snapshot._transaction_id, } def _get_session(self): @@ -568,7 +578,8 @@ def _get_snapshot(self): self._snapshot = self._get_session().snapshot( read_timestamp=self._read_timestamp, exact_staleness=self._exact_staleness, - multi_use=True) + multi_use=True, + ) self._snapshot.begin() return self._snapshot @@ -587,8 +598,14 @@ def execute_sql(self, *args, **kw): return self._get_snapshot().execute_sql(*args, **kw) def generate_read_batches( - self, table, columns, keyset, - index='', partition_size_bytes=None, max_partitions=None): + self, + table, + columns, + keyset, + index="", + partition_size_bytes=None, + max_partitions=None, + ): """Start a partitioned batch read operation. Uses the ``PartitionRead`` API request to initiate the partitioned @@ -625,18 +642,22 @@ def generate_read_batches( :meth:`process_read_batch`. """ partitions = self._get_snapshot().partition_read( - table=table, columns=columns, keyset=keyset, index=index, + table=table, + columns=columns, + keyset=keyset, + index=index, partition_size_bytes=partition_size_bytes, - max_partitions=max_partitions) + max_partitions=max_partitions, + ) read_info = { - 'table': table, - 'columns': columns, - 'keyset': keyset._to_dict(), - 'index': index, + "table": table, + "columns": columns, + "keyset": keyset._to_dict(), + "index": index, } for partition in partitions: - yield {'partition': partition, 'read': read_info.copy()} + yield {"partition": partition, "read": read_info.copy()} def process_read_batch(self, batch): """Process a single, partitioned read. @@ -649,15 +670,19 @@ def process_read_batch(self, batch): :rtype: :class:`~google.cloud.spanner_v1.streamed.StreamedResultSet` :returns: a result set instance which can be used to consume rows. """ - kwargs = copy.deepcopy(batch['read']) - keyset_dict = kwargs.pop('keyset') - kwargs['keyset'] = KeySet._from_dict(keyset_dict) - return self._get_snapshot().read( - partition=batch['partition'], **kwargs) + kwargs = copy.deepcopy(batch["read"]) + keyset_dict = kwargs.pop("keyset") + kwargs["keyset"] = KeySet._from_dict(keyset_dict) + return self._get_snapshot().read(partition=batch["partition"], **kwargs) def generate_query_batches( - self, sql, params=None, param_types=None, - partition_size_bytes=None, max_partitions=None): + self, + sql, + params=None, + param_types=None, + partition_size_bytes=None, + max_partitions=None, + ): """Start a partitioned query operation. Uses the ``PartitionQuery`` API request to start a partitioned @@ -698,17 +723,20 @@ def generate_query_batches( :meth:`process_read_batch`. """ partitions = self._get_snapshot().partition_query( - sql=sql, params=params, param_types=param_types, + sql=sql, + params=params, + param_types=param_types, partition_size_bytes=partition_size_bytes, - max_partitions=max_partitions) + max_partitions=max_partitions, + ) - query_info = {'sql': sql} + query_info = {"sql": sql} if params: - query_info['params'] = params - query_info['param_types'] = param_types + query_info["params"] = params + query_info["param_types"] = param_types for partition in partitions: - yield {'partition': partition, 'query': query_info} + yield {"partition": partition, "query": query_info} def process_query_batch(self, batch): """Process a single, partitioned query. @@ -722,7 +750,8 @@ def process_query_batch(self, batch): :returns: a result set instance which can be used to consume rows. """ return self._get_snapshot().execute_sql( - partition=batch['partition'], **batch['query']) + partition=batch["partition"], **batch["query"] + ) def process(self, batch): """Process a single, partitioned query or read. @@ -736,9 +765,9 @@ def process(self, batch): :returns: a result set instance which can be used to consume rows. :raises ValueError: if batch does not contain either 'read' or 'query' """ - if 'query' in batch: + if "query" in batch: return self.process_query_batch(batch) - if 'read' in batch: + if "read" in batch: return self.process_read_batch(batch) raise ValueError("Invalid batch") @@ -774,7 +803,7 @@ def _check_ddl_statements(value): if not all(isinstance(line, six.string_types) for line in value): raise ValueError("Pass a list of strings") - if any('create database' in line.lower() for line in value): + if any("create database" in line.lower() for line in value): raise ValueError("Do not pass a 'CREATE DATABASE' statement") return tuple(value) diff --git a/spanner/google/cloud/spanner_v1/gapic/enums.py b/spanner/google/cloud/spanner_v1/gapic/enums.py index 9d4d8ea399dc..079ad09f599b 100644 --- a/spanner/google/cloud/spanner_v1/gapic/enums.py +++ b/spanner/google/cloud/spanner_v1/gapic/enums.py @@ -28,6 +28,7 @@ class NullValue(enum.IntEnum): Attributes: NULL_VALUE (int): Null value. """ + NULL_VALUE = 0 @@ -63,6 +64,7 @@ class TypeCode(enum.IntEnum): STRUCT (int): Encoded as ``list``, where list element ``i`` is represented according to [struct\_type.fields[i]][google.spanner.v1.StructType.fields]. """ + TYPE_CODE_UNSPECIFIED = 0 BOOL = 1 INT64 = 2 @@ -91,6 +93,7 @@ class Kind(enum.IntEnum): arithmetic operators appearing inside predicate expressions or references to column names. """ + KIND_UNSPECIFIED = 0 RELATIONAL = 1 SCALAR = 2 @@ -108,6 +111,7 @@ class QueryMode(enum.IntEnum): PROFILE (int): This mode returns both the query plan and the execution statistics along with the results. """ + NORMAL = 0 PLAN = 1 PROFILE = 2 diff --git a/spanner/google/cloud/spanner_v1/gapic/spanner_client.py b/spanner/google/cloud/spanner_v1/gapic/spanner_client.py index 452eafd318ac..6ff36edd5a18 100644 --- a/spanner/google/cloud/spanner_v1/gapic/spanner_client.py +++ b/spanner/google/cloud/spanner_v1/gapic/spanner_client.py @@ -41,8 +41,7 @@ from google.protobuf import empty_pb2 from google.protobuf import struct_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-spanner', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-spanner").version class SpannerClient(object): @@ -53,12 +52,12 @@ class SpannerClient(object): transactions on data stored in Cloud Spanner databases. """ - SERVICE_ADDRESS = 'spanner.googleapis.com:443' + SERVICE_ADDRESS = "spanner.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.spanner.v1.Spanner' + _INTERFACE_NAME = "google.spanner.v1.Spanner" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -74,9 +73,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: SpannerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -85,7 +83,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def database_path(cls, project, instance, database): """Return a fully-qualified database string.""" return google.api_core.path_template.expand( - 'projects/{project}/instances/{instance}/databases/{database}', + "projects/{project}/instances/{instance}/databases/{database}", project=project, instance=instance, database=database, @@ -95,19 +93,21 @@ def database_path(cls, project, instance, database): def session_path(cls, project, instance, database, session): """Return a fully-qualified session string.""" return google.api_core.path_template.expand( - 'projects/{project}/instances/{instance}/databases/{database}/sessions/{session}', + "projects/{project}/instances/{instance}/databases/{database}/sessions/{session}", project=project, instance=instance, database=database, session=session, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -141,18 +141,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = spanner_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -166,19 +167,19 @@ def __init__(self, else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = spanner_grpc_transport.SpannerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -188,7 +189,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -197,12 +199,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_session(self, - database, - session=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_session( + self, + database, + session=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new session. A session can be used to perform transactions that read and/or modify data in a Cloud Spanner database. Sessions are @@ -257,28 +261,28 @@ def create_session(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_session' not in self._inner_api_calls: + if "create_session" not in self._inner_api_calls: self._inner_api_calls[ - 'create_session'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_session, - default_retry=self._method_configs['CreateSession'].retry, - default_timeout=self._method_configs['CreateSession']. - timeout, - client_info=self._client_info, - ) + "create_session" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_session, + default_retry=self._method_configs["CreateSession"].retry, + default_timeout=self._method_configs["CreateSession"].timeout, + client_info=self._client_info, + ) - request = spanner_pb2.CreateSessionRequest( - database=database, - session=session, + request = spanner_pb2.CreateSessionRequest(database=database, session=session) + return self._inner_api_calls["create_session"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_session']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_session(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_session( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a session. Returns ``NOT_FOUND`` if the session does not exist. This is mainly useful for determining whether a session is still alive. @@ -314,26 +318,30 @@ def get_session(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_session' not in self._inner_api_calls: + if "get_session" not in self._inner_api_calls: self._inner_api_calls[ - 'get_session'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_session, - default_retry=self._method_configs['GetSession'].retry, - default_timeout=self._method_configs['GetSession'].timeout, - client_info=self._client_info, - ) + "get_session" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_session, + default_retry=self._method_configs["GetSession"].retry, + default_timeout=self._method_configs["GetSession"].timeout, + client_info=self._client_info, + ) - request = spanner_pb2.GetSessionRequest(name=name, ) - return self._inner_api_calls['get_session']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_sessions(self, - database, - page_size=None, - filter_=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = spanner_pb2.GetSessionRequest(name=name) + return self._inner_api_calls["get_session"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_sessions( + self, + database, + page_size=None, + filter_=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists all sessions in a given database. @@ -398,40 +406,41 @@ def list_sessions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_sessions' not in self._inner_api_calls: + if "list_sessions" not in self._inner_api_calls: self._inner_api_calls[ - 'list_sessions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_sessions, - default_retry=self._method_configs['ListSessions'].retry, - default_timeout=self._method_configs['ListSessions']. - timeout, - client_info=self._client_info, - ) + "list_sessions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_sessions, + default_retry=self._method_configs["ListSessions"].retry, + default_timeout=self._method_configs["ListSessions"].timeout, + client_info=self._client_info, + ) request = spanner_pb2.ListSessionsRequest( - database=database, - page_size=page_size, - filter=filter_, + database=database, page_size=page_size, filter=filter_ ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_sessions'], + self._inner_api_calls["list_sessions"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='sessions', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="sessions", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def delete_session(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_session( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Ends a session, releasing server resources associated with it. @@ -463,33 +472,36 @@ def delete_session(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_session' not in self._inner_api_calls: + if "delete_session" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_session'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_session, - default_retry=self._method_configs['DeleteSession'].retry, - default_timeout=self._method_configs['DeleteSession']. - timeout, - client_info=self._client_info, - ) + "delete_session" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_session, + default_retry=self._method_configs["DeleteSession"].retry, + default_timeout=self._method_configs["DeleteSession"].timeout, + client_info=self._client_info, + ) + + request = spanner_pb2.DeleteSessionRequest(name=name) + self._inner_api_calls["delete_session"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = spanner_pb2.DeleteSessionRequest(name=name, ) - self._inner_api_calls['delete_session']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def execute_sql(self, - session, - sql, - transaction=None, - params=None, - param_types=None, - resume_token=None, - query_mode=None, - partition_token=None, - seqno=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def execute_sql( + self, + session, + sql, + transaction=None, + params=None, + param_types=None, + resume_token=None, + query_mode=None, + partition_token=None, + seqno=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Executes an SQL statement, returning all results in a single reply. This method cannot be used to return a result set larger than 10 MiB; if the @@ -604,14 +616,15 @@ def execute_sql(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'execute_sql' not in self._inner_api_calls: + if "execute_sql" not in self._inner_api_calls: self._inner_api_calls[ - 'execute_sql'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.execute_sql, - default_retry=self._method_configs['ExecuteSql'].retry, - default_timeout=self._method_configs['ExecuteSql'].timeout, - client_info=self._client_info, - ) + "execute_sql" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.execute_sql, + default_retry=self._method_configs["ExecuteSql"].retry, + default_timeout=self._method_configs["ExecuteSql"].timeout, + client_info=self._client_info, + ) request = spanner_pb2.ExecuteSqlRequest( session=session, @@ -624,22 +637,25 @@ def execute_sql(self, partition_token=partition_token, seqno=seqno, ) - return self._inner_api_calls['execute_sql']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def execute_streaming_sql(self, - session, - sql, - transaction=None, - params=None, - param_types=None, - resume_token=None, - query_mode=None, - partition_token=None, - seqno=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["execute_sql"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def execute_streaming_sql( + self, + session, + sql, + transaction=None, + params=None, + param_types=None, + resume_token=None, + query_mode=None, + partition_token=None, + seqno=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Like ``ExecuteSql``, except returns the result set as a stream. Unlike ``ExecuteSql``, there is no limit on the size of the returned result @@ -749,16 +765,15 @@ def execute_streaming_sql(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'execute_streaming_sql' not in self._inner_api_calls: + if "execute_streaming_sql" not in self._inner_api_calls: self._inner_api_calls[ - 'execute_streaming_sql'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.execute_streaming_sql, - default_retry=self._method_configs['ExecuteStreamingSql']. - retry, - default_timeout=self. - _method_configs['ExecuteStreamingSql'].timeout, - client_info=self._client_info, - ) + "execute_streaming_sql" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.execute_streaming_sql, + default_retry=self._method_configs["ExecuteStreamingSql"].retry, + default_timeout=self._method_configs["ExecuteStreamingSql"].timeout, + client_info=self._client_info, + ) request = spanner_pb2.ExecuteSqlRequest( session=session, @@ -771,22 +786,25 @@ def execute_streaming_sql(self, partition_token=partition_token, seqno=seqno, ) - return self._inner_api_calls['execute_streaming_sql']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def read(self, - session, - table, - columns, - key_set, - transaction=None, - index=None, - limit=None, - resume_token=None, - partition_token=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["execute_streaming_sql"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def read( + self, + session, + table, + columns, + key_set, + transaction=None, + index=None, + limit=None, + resume_token=None, + partition_token=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Reads rows from the database using key lookups and scans, as a simple key/value style alternative to ``ExecuteSql``. This method cannot be @@ -878,14 +896,13 @@ def read(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'read' not in self._inner_api_calls: - self._inner_api_calls[ - 'read'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.read, - default_retry=self._method_configs['Read'].retry, - default_timeout=self._method_configs['Read'].timeout, - client_info=self._client_info, - ) + if "read" not in self._inner_api_calls: + self._inner_api_calls["read"] = google.api_core.gapic_v1.method.wrap_method( + self.transport.read, + default_retry=self._method_configs["Read"].retry, + default_timeout=self._method_configs["Read"].timeout, + client_info=self._client_info, + ) request = spanner_pb2.ReadRequest( session=session, @@ -898,22 +915,25 @@ def read(self, resume_token=resume_token, partition_token=partition_token, ) - return self._inner_api_calls['read']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def streaming_read(self, - session, - table, - columns, - key_set, - transaction=None, - index=None, - limit=None, - resume_token=None, - partition_token=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["read"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def streaming_read( + self, + session, + table, + columns, + key_set, + transaction=None, + index=None, + limit=None, + resume_token=None, + partition_token=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Like ``Read``, except returns the result set as a stream. Unlike ``Read``, there is no limit on the size of the returned result set. @@ -1000,15 +1020,15 @@ def streaming_read(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'streaming_read' not in self._inner_api_calls: + if "streaming_read" not in self._inner_api_calls: self._inner_api_calls[ - 'streaming_read'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.streaming_read, - default_retry=self._method_configs['StreamingRead'].retry, - default_timeout=self._method_configs['StreamingRead']. - timeout, - client_info=self._client_info, - ) + "streaming_read" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.streaming_read, + default_retry=self._method_configs["StreamingRead"].retry, + default_timeout=self._method_configs["StreamingRead"].timeout, + client_info=self._client_info, + ) request = spanner_pb2.ReadRequest( session=session, @@ -1021,15 +1041,18 @@ def streaming_read(self, resume_token=resume_token, partition_token=partition_token, ) - return self._inner_api_calls['streaming_read']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def begin_transaction(self, - session, - options_, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["streaming_read"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def begin_transaction( + self, + session, + options_, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Begins a new transaction. This step can often be skipped: ``Read``, ``ExecuteSql`` and ``Commit`` can begin a new transaction as a @@ -1073,32 +1096,31 @@ def begin_transaction(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'begin_transaction' not in self._inner_api_calls: + if "begin_transaction" not in self._inner_api_calls: self._inner_api_calls[ - 'begin_transaction'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.begin_transaction, - default_retry=self._method_configs['BeginTransaction']. - retry, - default_timeout=self._method_configs['BeginTransaction']. - timeout, - client_info=self._client_info, - ) + "begin_transaction" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.begin_transaction, + default_retry=self._method_configs["BeginTransaction"].retry, + default_timeout=self._method_configs["BeginTransaction"].timeout, + client_info=self._client_info, + ) - request = spanner_pb2.BeginTransactionRequest( - session=session, - options=options_, + request = spanner_pb2.BeginTransactionRequest(session=session, options=options_) + return self._inner_api_calls["begin_transaction"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['begin_transaction']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def commit(self, - session, - mutations, - transaction_id=None, - single_use_transaction=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def commit( + self, + session, + mutations, + transaction_id=None, + single_use_transaction=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Commits a transaction. The request includes the mutations to be applied to rows in the database. @@ -1160,20 +1182,20 @@ def commit(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'commit' not in self._inner_api_calls: + if "commit" not in self._inner_api_calls: self._inner_api_calls[ - 'commit'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.commit, - default_retry=self._method_configs['Commit'].retry, - default_timeout=self._method_configs['Commit'].timeout, - client_info=self._client_info, - ) + "commit" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.commit, + default_retry=self._method_configs["Commit"].retry, + default_timeout=self._method_configs["Commit"].timeout, + client_info=self._client_info, + ) # Sanity check: We have some fields which are mutually exclusive; # raise ValueError if more than one is sent. google.api_core.protobuf_helpers.check_oneof( - transaction_id=transaction_id, - single_use_transaction=single_use_transaction, + transaction_id=transaction_id, single_use_transaction=single_use_transaction ) request = spanner_pb2.CommitRequest( @@ -1182,15 +1204,18 @@ def commit(self, transaction_id=transaction_id, single_use_transaction=single_use_transaction, ) - return self._inner_api_calls['commit']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def rollback(self, - session, - transaction_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["commit"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def rollback( + self, + session, + transaction_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Rolls back a transaction, releasing any locks it holds. It is a good idea to call this for any transaction that includes one or more ``Read`` @@ -1232,32 +1257,35 @@ def rollback(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'rollback' not in self._inner_api_calls: + if "rollback" not in self._inner_api_calls: self._inner_api_calls[ - 'rollback'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.rollback, - default_retry=self._method_configs['Rollback'].retry, - default_timeout=self._method_configs['Rollback'].timeout, - client_info=self._client_info, - ) + "rollback" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.rollback, + default_retry=self._method_configs["Rollback"].retry, + default_timeout=self._method_configs["Rollback"].timeout, + client_info=self._client_info, + ) request = spanner_pb2.RollbackRequest( - session=session, - transaction_id=transaction_id, + session=session, transaction_id=transaction_id ) - self._inner_api_calls['rollback']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def partition_query(self, - session, - sql, - transaction=None, - params=None, - param_types=None, - partition_options=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self._inner_api_calls["rollback"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def partition_query( + self, + session, + sql, + transaction=None, + params=None, + param_types=None, + partition_options=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a set of partition tokens that can be used to execute a query operation in parallel. Each of the returned partition tokens can be used @@ -1351,15 +1379,15 @@ def partition_query(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'partition_query' not in self._inner_api_calls: + if "partition_query" not in self._inner_api_calls: self._inner_api_calls[ - 'partition_query'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.partition_query, - default_retry=self._method_configs['PartitionQuery'].retry, - default_timeout=self._method_configs['PartitionQuery']. - timeout, - client_info=self._client_info, - ) + "partition_query" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.partition_query, + default_retry=self._method_configs["PartitionQuery"].retry, + default_timeout=self._method_configs["PartitionQuery"].timeout, + client_info=self._client_info, + ) request = spanner_pb2.PartitionQueryRequest( session=session, @@ -1369,20 +1397,23 @@ def partition_query(self, param_types=param_types, partition_options=partition_options, ) - return self._inner_api_calls['partition_query']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def partition_read(self, - session, - table, - key_set, - transaction=None, - index=None, - columns=None, - partition_options=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["partition_query"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def partition_read( + self, + session, + table, + key_set, + transaction=None, + index=None, + columns=None, + partition_options=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a set of partition tokens that can be used to execute a read operation in parallel. Each of the returned partition tokens can be used @@ -1461,15 +1492,15 @@ def partition_read(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'partition_read' not in self._inner_api_calls: + if "partition_read" not in self._inner_api_calls: self._inner_api_calls[ - 'partition_read'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.partition_read, - default_retry=self._method_configs['PartitionRead'].retry, - default_timeout=self._method_configs['PartitionRead']. - timeout, - client_info=self._client_info, - ) + "partition_read" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.partition_read, + default_retry=self._method_configs["PartitionRead"].retry, + default_timeout=self._method_configs["PartitionRead"].timeout, + client_info=self._client_info, + ) request = spanner_pb2.PartitionReadRequest( session=session, @@ -1480,5 +1511,6 @@ def partition_read(self, columns=columns, partition_options=partition_options, ) - return self._inner_api_calls['partition_read']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["partition_read"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/spanner/google/cloud/spanner_v1/gapic/spanner_client_config.py b/spanner/google/cloud/spanner_v1/gapic/spanner_client_config.py index 66c19b029111..90e885d61151 100644 --- a/spanner/google/cloud/spanner_v1/gapic/spanner_client_config.py +++ b/spanner/google/cloud/spanner_v1/gapic/spanner_client_config.py @@ -4,7 +4,7 @@ "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], "non_idempotent": [], - "long_running": ["UNAVAILABLE"] + "long_running": ["UNAVAILABLE"], }, "retry_params": { "default": { @@ -14,7 +14,7 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, }, "streaming": { "initial_retry_delay_millis": 1000, @@ -23,7 +23,7 @@ "initial_rpc_timeout_millis": 120000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 120000, - "total_timeout_millis": 1200000 + "total_timeout_millis": 1200000, }, "long_running": { "initial_retry_delay_millis": 1000, @@ -32,76 +32,76 @@ "initial_rpc_timeout_millis": 3600000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 3600000, - "total_timeout_millis": 3600000 - } + "total_timeout_millis": 3600000, + }, }, "methods": { "CreateSession": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetSession": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListSessions": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteSession": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ExecuteSql": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ExecuteStreamingSql": { "timeout_millis": 3600000, "retry_codes_name": "non_idempotent", - "retry_params_name": "streaming" + "retry_params_name": "streaming", }, "Read": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "StreamingRead": { "timeout_millis": 3600000, "retry_codes_name": "non_idempotent", - "retry_params_name": "streaming" + "retry_params_name": "streaming", }, "BeginTransaction": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "Commit": { "timeout_millis": 3600000, "retry_codes_name": "long_running", - "retry_params_name": "long_running" + "retry_params_name": "long_running", }, "Rollback": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "PartitionQuery": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "PartitionRead": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/spanner/google/cloud/spanner_v1/gapic/transports/spanner_grpc_transport.py b/spanner/google/cloud/spanner_v1/gapic/transports/spanner_grpc_transport.py index c4c180d24d25..30a20d7ad66b 100644 --- a/spanner/google/cloud/spanner_v1/gapic/transports/spanner_grpc_transport.py +++ b/spanner/google/cloud/spanner_v1/gapic/transports/spanner_grpc_transport.py @@ -22,7 +22,7 @@ from google.cloud.spanner_v1.proto import spanner_pb2_grpc -_SPANNER_GRPC_CONFIG = 'spanner.grpc.config' +_SPANNER_GRPC_CONFIG = "spanner.grpc.config" class SpannerGrpcTransport(object): @@ -33,17 +33,17 @@ class SpannerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/spanner.data', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.data", ) - def __init__(self, - channel=None, - credentials=None, - address='spanner.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="spanner.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -61,28 +61,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'spanner_stub': spanner_pb2_grpc.SpannerStub(channel), - } + self._stubs = {"spanner_stub": spanner_pb2_grpc.SpannerStub(channel)} @classmethod - def create_channel(cls, - address='spanner.googleapis.com:443', - credentials=None): + def create_channel(cls, address="spanner.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -97,12 +90,11 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ grpc_gcp_config = grpc_gcp.api_config_from_text_pb( - pkg_resources.resource_string(__name__, _SPANNER_GRPC_CONFIG)) + pkg_resources.resource_string(__name__, _SPANNER_GRPC_CONFIG) + ) options = [(grpc_gcp.API_CONFIG_CHANNEL_ARG, grpc_gcp_config)] return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -141,7 +133,7 @@ def create_session(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].CreateSession + return self._stubs["spanner_stub"].CreateSession @property def get_session(self): @@ -155,7 +147,7 @@ def get_session(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].GetSession + return self._stubs["spanner_stub"].GetSession @property def list_sessions(self): @@ -168,7 +160,7 @@ def list_sessions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].ListSessions + return self._stubs["spanner_stub"].ListSessions @property def delete_session(self): @@ -181,7 +173,7 @@ def delete_session(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].DeleteSession + return self._stubs["spanner_stub"].DeleteSession @property def execute_sql(self): @@ -204,7 +196,7 @@ def execute_sql(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].ExecuteSql + return self._stubs["spanner_stub"].ExecuteSql @property def execute_streaming_sql(self): @@ -220,7 +212,7 @@ def execute_streaming_sql(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].ExecuteStreamingSql + return self._stubs["spanner_stub"].ExecuteStreamingSql @property def read(self): @@ -243,7 +235,7 @@ def read(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].Read + return self._stubs["spanner_stub"].Read @property def streaming_read(self): @@ -259,7 +251,7 @@ def streaming_read(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].StreamingRead + return self._stubs["spanner_stub"].StreamingRead @property def begin_transaction(self): @@ -274,7 +266,7 @@ def begin_transaction(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].BeginTransaction + return self._stubs["spanner_stub"].BeginTransaction @property def commit(self): @@ -294,7 +286,7 @@ def commit(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].Commit + return self._stubs["spanner_stub"].Commit @property def rollback(self): @@ -313,7 +305,7 @@ def rollback(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].Rollback + return self._stubs["spanner_stub"].Rollback @property def partition_query(self): @@ -336,7 +328,7 @@ def partition_query(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].PartitionQuery + return self._stubs["spanner_stub"].PartitionQuery @property def partition_read(self): @@ -362,4 +354,4 @@ def partition_read(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['spanner_stub'].PartitionRead + return self._stubs["spanner_stub"].PartitionRead diff --git a/spanner/google/cloud/spanner_v1/instance.py b/spanner/google/cloud/spanner_v1/instance.py index 6f20704874fd..3f54c508c6cf 100644 --- a/spanner/google/cloud/spanner_v1/instance.py +++ b/spanner/google/cloud/spanner_v1/instance.py @@ -17,7 +17,8 @@ import re from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2 as admin_v1_pb2) + spanner_instance_admin_pb2 as admin_v1_pb2, +) from google.protobuf.field_mask_pb2 import FieldMask # pylint: disable=ungrouped-imports @@ -25,12 +26,13 @@ from google.cloud.spanner_v1._helpers import _metadata_with_prefix from google.cloud.spanner_v1.database import Database from google.cloud.spanner_v1.pool import BurstyPool + # pylint: enable=ungrouped-imports _INSTANCE_NAME_RE = re.compile( - r'^projects/(?P[^/]+)/' - r'instances/(?P[a-z][-a-z0-9]*)$') + r"^projects/(?P[^/]+)/" r"instances/(?P[a-z][-a-z0-9]*)$" +) DEFAULT_NODE_COUNT = 1 @@ -67,12 +69,14 @@ class Instance(object): constructor, will fall back to the instance ID. """ - def __init__(self, - instance_id, - client, - configuration_name=None, - node_count=DEFAULT_NODE_COUNT, - display_name=None): + def __init__( + self, + instance_id, + client, + configuration_name=None, + node_count=DEFAULT_NODE_COUNT, + display_name=None, + ): self.instance_id = instance_id self._client = client self.configuration_name = configuration_name @@ -85,7 +89,7 @@ def _update_from_pb(self, instance_pb): Helper for :meth:`from_pb` and :meth:`reload`. """ if not instance_pb.display_name: # Simple field (string) - raise ValueError('Instance protobuf does not contain display_name') + raise ValueError("Instance protobuf does not contain display_name") self.display_name = instance_pb.display_name self.configuration_name = instance_pb.config self.node_count = instance_pb.node_count @@ -110,12 +114,15 @@ def from_pb(cls, instance_pb, client): """ match = _INSTANCE_NAME_RE.match(instance_pb.name) if match is None: - raise ValueError('Instance protobuf name was not in the ' - 'expected format.', instance_pb.name) - if match.group('project') != client.project: - raise ValueError('Project ID on instance does not match the ' - 'project ID on the client') - instance_id = match.group('instance_id') + raise ValueError( + "Instance protobuf name was not in the " "expected format.", + instance_pb.name, + ) + if match.group("project") != client.project: + raise ValueError( + "Project ID on instance does not match the " "project ID on the client" + ) + instance_id = match.group("instance_id") configuration_name = instance_pb.config result = cls(instance_id, client, configuration_name) @@ -138,7 +145,7 @@ def name(self): :rtype: str :returns: The instance name. """ - return self._client.project_name + '/instances/' + self.instance_id + return self._client.project_name + "/instances/" + self.instance_id def __eq__(self, other): if not isinstance(other, self.__class__): @@ -149,8 +156,7 @@ def __eq__(self, other): # intentional, since the same instance can be in different states # if not synchronized. Instances with similar instance # settings but different clients can't be used in the same way. - return (other.instance_id == self.instance_id and - other._client == self._client) + return other.instance_id == self.instance_id and other._client == self._client def __ne__(self, other): return not self == other @@ -202,7 +208,7 @@ def create(self): config=self.configuration_name, display_name=self.display_name, node_count=self.node_count, - ) + ) metadata = _metadata_with_prefix(self.name) future = api.create_instance( @@ -276,14 +282,12 @@ def update(self): config=self.configuration_name, display_name=self.display_name, node_count=self.node_count, - ) - field_mask = FieldMask(paths=['config', 'display_name', 'node_count']) + ) + field_mask = FieldMask(paths=["config", "display_name", "node_count"]) metadata = _metadata_with_prefix(self.name) future = api.update_instance( - instance=instance_pb, - field_mask=field_mask, - metadata=metadata, + instance=instance_pb, field_mask=field_mask, metadata=metadata ) return future @@ -325,8 +329,7 @@ def database(self, database_id, ddl_statements=(), pool=None): :rtype: :class:`~google.cloud.spanner_v1.database.Database` :returns: a database owned by this instance. """ - return Database( - database_id, self, ddl_statements=ddl_statements, pool=pool) + return Database(database_id, self, ddl_statements=ddl_statements, pool=pool) def list_databases(self, page_size=None, page_token=None): """List databases for the instance. @@ -347,7 +350,8 @@ def list_databases(self, page_size=None, page_token=None): """ metadata = _metadata_with_prefix(self.name) page_iter = self._client.database_admin_api.list_databases( - self.name, page_size=page_size, metadata=metadata) + self.name, page_size=page_size, metadata=metadata + ) page_iter.next_page_token = page_token page_iter.item_to_value = self._item_to_database return page_iter diff --git a/spanner/google/cloud/spanner_v1/keyset.py b/spanner/google/cloud/spanner_v1/keyset.py index 5a21eb64e571..fb45882bec21 100644 --- a/spanner/google/cloud/spanner_v1/keyset.py +++ b/spanner/google/cloud/spanner_v1/keyset.py @@ -43,8 +43,10 @@ class KeyRange(object): :raises ValueError: if no keys are specified """ - def __init__(self, start_open=None, start_closed=None, - end_open=None, end_closed=None): + + def __init__( + self, start_open=None, start_closed=None, end_open=None, end_closed=None + ): if not any([start_open, start_closed, end_open, end_closed]): raise ValueError("Must specify at least a start or end row.") @@ -72,16 +74,16 @@ def _to_pb(self): kwargs = {} if self.start_open is not None: - kwargs['start_open'] = _make_list_value_pb(self.start_open) + kwargs["start_open"] = _make_list_value_pb(self.start_open) if self.start_closed is not None: - kwargs['start_closed'] = _make_list_value_pb(self.start_closed) + kwargs["start_closed"] = _make_list_value_pb(self.start_closed) if self.end_open is not None: - kwargs['end_open'] = _make_list_value_pb(self.end_open) + kwargs["end_open"] = _make_list_value_pb(self.end_open) if self.end_closed is not None: - kwargs['end_closed'] = _make_list_value_pb(self.end_closed) + kwargs["end_closed"] = _make_list_value_pb(self.end_closed) return KeyRangePB(**kwargs) @@ -94,16 +96,16 @@ def _to_dict(self): mapping = {} if self.start_open: - mapping['start_open'] = self.start_open + mapping["start_open"] = self.start_open if self.start_closed: - mapping['start_closed'] = self.start_closed + mapping["start_closed"] = self.start_closed if self.end_open: - mapping['end_open'] = self.end_open + mapping["end_open"] = self.end_open if self.end_closed: - mapping['end_closed'] = self.end_closed + mapping["end_closed"] = self.end_closed return mapping @@ -126,6 +128,7 @@ class KeySet(object): :type all_: boolean :param all_: if True, identify all rows within a table """ + def __init__(self, keys=(), ranges=(), all_=False): if all_ and (keys or ranges): raise ValueError("'all_' is exclusive of 'keys' / 'ranges'.") @@ -144,10 +147,10 @@ def _to_pb(self): kwargs = {} if self.keys: - kwargs['keys'] = _make_list_value_pbs(self.keys) + kwargs["keys"] = _make_list_value_pbs(self.keys) if self.ranges: - kwargs['ranges'] = [krange._to_pb() for krange in self.ranges] + kwargs["ranges"] = [krange._to_pb() for krange in self.ranges] return KeySetPB(**kwargs) @@ -161,11 +164,11 @@ def _to_dict(self): :returns: state of this instance. """ if self.all_: - return {'all': True} + return {"all": True} return { - 'keys': self.keys, - 'ranges': [keyrange._to_dict() for keyrange in self.ranges], + "keys": self.keys, + "ranges": [keyrange._to_dict() for keyrange in self.ranges], } def __eq__(self, other): @@ -181,10 +184,10 @@ def _from_dict(cls, mapping): :type mapping: dict :param mapping: the instance state. """ - if mapping.get('all'): + if mapping.get("all"): return cls(all_=True) - r_mappings = mapping.get('ranges', ()) + r_mappings = mapping.get("ranges", ()) ranges = [KeyRange(**r_mapping) for r_mapping in r_mappings] - return cls(keys=mapping.get('keys', ()), ranges=ranges) + return cls(keys=mapping.get("keys", ()), ranges=ranges) diff --git a/spanner/google/cloud/spanner_v1/param_types.py b/spanner/google/cloud/spanner_v1/param_types.py index 651e929c9f4b..4af8e02d67a7 100644 --- a/spanner/google/cloud/spanner_v1/param_types.py +++ b/spanner/google/cloud/spanner_v1/param_types.py @@ -64,6 +64,5 @@ def Struct(fields): # pylint: disable=invalid-name :returns: the appropriate struct-type protobuf """ return type_pb2.Type( - code=type_pb2.STRUCT, - struct_type=type_pb2.StructType(fields=fields), + code=type_pb2.STRUCT, struct_type=type_pb2.StructType(fields=fields) ) diff --git a/spanner/google/cloud/spanner_v1/pool.py b/spanner/google/cloud/spanner_v1/pool.py index 34ccd76ee8f0..5a7dcaa5562d 100644 --- a/spanner/google/cloud/spanner_v1/pool.py +++ b/spanner/google/cloud/spanner_v1/pool.py @@ -32,6 +32,7 @@ class AbstractSessionPool(object): :param labels: (Optional) user-assigned labels for sessions created by the pool. """ + _database = None def __init__(self, labels=None): @@ -148,11 +149,11 @@ class FixedSizePool(AbstractSessionPool): :param labels: (Optional) user-assigned labels for sessions created by the pool. """ + DEFAULT_SIZE = 10 DEFAULT_TIMEOUT = 10 - def __init__(self, size=DEFAULT_SIZE, default_timeout=DEFAULT_TIMEOUT, - labels=None): + def __init__(self, size=DEFAULT_SIZE, default_timeout=DEFAULT_TIMEOUT, labels=None): super(FixedSizePool, self).__init__(labels=labels) self.size = size self.default_timeout = default_timeout @@ -335,8 +336,7 @@ class PingingPool(AbstractSessionPool): by the pool. """ - def __init__(self, size=10, default_timeout=10, ping_interval=3000, - labels=None): + def __init__(self, size=10, default_timeout=10, ping_interval=3000, labels=None): super(PingingPool, self).__init__(labels=labels) self.size = size self.default_timeout = default_timeout @@ -451,12 +451,12 @@ class TransactionPingingPool(PingingPool): by the pool. """ - def __init__(self, size=10, default_timeout=10, ping_interval=3000, - labels=None): + def __init__(self, size=10, default_timeout=10, ping_interval=3000, labels=None): self._pending_sessions = queue.Queue() super(TransactionPingingPool, self).__init__( - size, default_timeout, ping_interval, labels=labels) + size, default_timeout, ping_interval, labels=labels + ) self.begin_pending_transactions() @@ -508,6 +508,7 @@ class SessionCheckout(object): :type kwargs: dict :param kwargs: extra keyword arguments to be passed to :meth:`pool.get`. """ + _session = None # Not checked out until '__enter__'. def __init__(self, pool, **kwargs): diff --git a/spanner/google/cloud/spanner_v1/session.py b/spanner/google/cloud/spanner_v1/session.py index d8c32d2eb651..786812d415b5 100644 --- a/spanner/google/cloud/spanner_v1/session.py +++ b/spanner/google/cloud/spanner_v1/session.py @@ -26,6 +26,7 @@ from google.cloud.spanner_v1.batch import Batch from google.cloud.spanner_v1.snapshot import Snapshot from google.cloud.spanner_v1.transaction import Transaction + # pylint: enable=ungrouped-imports @@ -94,8 +95,8 @@ def name(self): :raises ValueError: if session is not yet created """ if self._session_id is None: - raise ValueError('No session ID set by back-end') - return self._database.name + '/sessions/' + self._session_id + raise ValueError("No session ID set by back-end") + return self._database.name + "/sessions/" + self._session_id def create(self): """Create this session, bound to its database. @@ -106,18 +107,14 @@ def create(self): :raises: :exc:`ValueError` if :attr:`session_id` is already set. """ if self._session_id is not None: - raise ValueError('Session ID already set by back-end') + raise ValueError("Session ID already set by back-end") api = self._database.spanner_api metadata = _metadata_with_prefix(self._database.name) kw = {} if self._labels: - kw = {'session': {'labels': self._labels}} - session_pb = api.create_session( - self._database.name, - metadata=metadata, - **kw - ) - self._session_id = session_pb.name.split('/')[-1] + kw = {"session": {"labels": self._labels}} + session_pb = api.create_session(self._database.name, metadata=metadata, **kw) + self._session_id = session_pb.name.split("/")[-1] def exists(self): """Test for the existence of this session. @@ -149,7 +146,7 @@ def delete(self): :raises NotFound: if the session does not exist """ if self._session_id is None: - raise ValueError('Session ID not set by back-end') + raise ValueError("Session ID not set by back-end") api = self._database.spanner_api metadata = _metadata_with_prefix(self._database.name) @@ -174,7 +171,7 @@ def snapshot(self, **kw): return Snapshot(self, **kw) - def read(self, table, columns, keyset, index='', limit=0): + def read(self, table, columns, keyset, index="", limit=0): """Perform a ``StreamingRead`` API request for rows in a table. :type table: str @@ -198,9 +195,15 @@ def read(self, table, columns, keyset, index='', limit=0): """ return self.snapshot().read(table, columns, keyset, index, limit) - def execute_sql(self, sql, params=None, param_types=None, query_mode=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT): + def execute_sql( + self, + sql, + params=None, + param_types=None, + query_mode=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + ): """Perform an ``ExecuteStreamingSql`` API request. :type sql: str @@ -225,7 +228,8 @@ def execute_sql(self, sql, params=None, param_types=None, query_mode=None, :returns: a result set instance which can be used to consume rows. """ return self.snapshot().execute_sql( - sql, params, param_types, query_mode, retry=retry, timeout=timeout) + sql, params, param_types, query_mode, retry=retry, timeout=timeout + ) def batch(self): """Factory to create a batch for this session. @@ -278,8 +282,7 @@ def run_in_transaction(self, func, *args, **kw): :raises Exception: reraises any non-ABORT execptions raised by ``func``. """ - deadline = time.time() + kw.pop( - 'timeout_secs', DEFAULT_RETRY_TIMEOUT_SECS) + deadline = time.time() + kw.pop("timeout_secs", DEFAULT_RETRY_TIMEOUT_SECS) while True: if self._transaction is None: @@ -342,6 +345,8 @@ def _delay_until_retry(exc, deadline): raise time.sleep(delay) + + # pylint: enable=misplaced-bare-raise @@ -355,7 +360,7 @@ def _get_retry_delay(cause): :returns: seconds to wait before retrying the transaction. """ metadata = dict(cause.trailing_metadata()) - retry_info_pb = metadata.get('google.rpc.retryinfo-bin') + retry_info_pb = metadata.get("google.rpc.retryinfo-bin") if retry_info_pb is not None: retry_info = RetryInfo() retry_info.ParseFromString(retry_info_pb) diff --git a/spanner/google/cloud/spanner_v1/snapshot.py b/spanner/google/cloud/spanner_v1/snapshot.py index f80e89a25c67..ec7008fb7516 100644 --- a/spanner/google/cloud/spanner_v1/snapshot.py +++ b/spanner/google/cloud/spanner_v1/snapshot.py @@ -37,7 +37,7 @@ def _restart_on_unavailable(restart): :type restart: callable :param restart: curried function returning iterator """ - resume_token = b'' + resume_token = b"" item_buffer = [] iterator = restart() while True: @@ -69,6 +69,7 @@ class _SnapshotBase(_SessionWrapper): :type session: :class:`~google.cloud.spanner_v1.session.Session` :param session: the session used to perform the commit """ + _multi_use = False _transaction_id = None _read_request_count = 0 @@ -85,7 +86,7 @@ def _make_txn_selector(self): # pylint: disable=redundant-returns-doc """ raise NotImplementedError - def read(self, table, columns, keyset, index='', limit=0, partition=None): + def read(self, table, columns, keyset, index="", limit=0, partition=None): """Perform a ``StreamingRead`` API request for rows in a table. :type table: str @@ -130,9 +131,16 @@ def read(self, table, columns, keyset, index='', limit=0, partition=None): restart = functools.partial( api.streaming_read, - self._session.name, table, columns, keyset._to_pb(), - transaction=transaction, index=index, limit=limit, - partition_token=partition, metadata=metadata) + self._session.name, + table, + columns, + keyset._to_pb(), + transaction=transaction, + index=index, + limit=limit, + partition_token=partition, + metadata=metadata, + ) iterator = _restart_on_unavailable(restart) @@ -143,10 +151,16 @@ def read(self, table, columns, keyset, index='', limit=0, partition=None): else: return StreamedResultSet(iterator) - def execute_sql(self, sql, params=None, param_types=None, - query_mode=None, partition=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT): + def execute_sql( + self, + sql, + params=None, + param_types=None, + query_mode=None, + partition=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + ): """Perform an ``ExecuteStreamingSql`` API request. :type sql: str @@ -185,10 +199,10 @@ def execute_sql(self, sql, params=None, param_types=None, if params is not None: if param_types is None: - raise ValueError( - "Specify 'param_types' when passing 'params'.") - params_pb = Struct(fields={ - key: _make_value_pb(value) for key, value in params.items()}) + raise ValueError("Specify 'param_types' when passing 'params'.") + params_pb = Struct( + fields={key: _make_value_pb(value) for key, value in params.items()} + ) else: params_pb = None @@ -209,7 +223,8 @@ def execute_sql(self, sql, params=None, param_types=None, seqno=self._execute_sql_count, metadata=metadata, retry=retry, - timeout=timeout) + timeout=timeout, + ) iterator = _restart_on_unavailable(restart) @@ -221,8 +236,15 @@ def execute_sql(self, sql, params=None, param_types=None, else: return StreamedResultSet(iterator) - def partition_read(self, table, columns, keyset, index='', - partition_size_bytes=None, max_partitions=None): + def partition_read( + self, + table, + columns, + keyset, + index="", + partition_size_bytes=None, + max_partitions=None, + ): """Perform a ``ParitionRead`` API request for rows in a table. :type table: str @@ -267,8 +289,7 @@ def partition_read(self, table, columns, keyset, index='', metadata = _metadata_with_prefix(database.name) transaction = self._make_txn_selector() partition_options = PartitionOptions( - partition_size_bytes=partition_size_bytes, - max_partitions=max_partitions, + partition_size_bytes=partition_size_bytes, max_partitions=max_partitions ) response = api.partition_read( @@ -284,8 +305,14 @@ def partition_read(self, table, columns, keyset, index='', return [partition.partition_token for partition in response.partitions] - def partition_query(self, sql, params=None, param_types=None, - partition_size_bytes=None, max_partitions=None): + def partition_query( + self, + sql, + params=None, + param_types=None, + partition_size_bytes=None, + max_partitions=None, + ): """Perform a ``ParitionQuery`` API request. :type sql: str @@ -326,10 +353,10 @@ def partition_query(self, sql, params=None, param_types=None, if params is not None: if param_types is None: - raise ValueError( - "Specify 'param_types' when passing 'params'.") - params_pb = Struct(fields={ - key: _make_value_pb(value) for key, value in params.items()}) + raise ValueError("Specify 'param_types' when passing 'params'.") + params_pb = Struct( + fields={key: _make_value_pb(value) for key, value in params.items()} + ) else: params_pb = None @@ -338,8 +365,7 @@ def partition_query(self, sql, params=None, param_types=None, metadata = _metadata_with_prefix(database.name) transaction = self._make_txn_selector() partition_options = PartitionOptions( - partition_size_bytes=partition_size_bytes, - max_partitions=max_partitions, + partition_size_bytes=partition_size_bytes, max_partitions=max_partitions ) response = api.partition_query( @@ -389,11 +415,18 @@ class Snapshot(_SnapshotBase): isolation / consistency. Incompatible with ``max_staleness`` and ``min_read_timestamp``. """ - def __init__(self, session, read_timestamp=None, min_read_timestamp=None, - max_staleness=None, exact_staleness=None, multi_use=False): + + def __init__( + self, + session, + read_timestamp=None, + min_read_timestamp=None, + max_staleness=None, + exact_staleness=None, + multi_use=False, + ): super(Snapshot, self).__init__(session) - opts = [ - read_timestamp, min_read_timestamp, max_staleness, exact_staleness] + opts = [read_timestamp, min_read_timestamp, max_staleness, exact_staleness] flagged = [opt for opt in opts if opt is not None] if len(flagged) > 1: @@ -403,7 +436,8 @@ def __init__(self, session, read_timestamp=None, min_read_timestamp=None, if min_read_timestamp is not None or max_staleness is not None: raise ValueError( "'multi_use' is incompatible with " - "'min_read_timestamp' / 'max_staleness'") + "'min_read_timestamp' / 'max_staleness'" + ) self._strong = len(flagged) == 0 self._read_timestamp = read_timestamp @@ -418,23 +452,24 @@ def _make_txn_selector(self): return TransactionSelector(id=self._transaction_id) if self._read_timestamp: - key = 'read_timestamp' + key = "read_timestamp" value = _datetime_to_pb_timestamp(self._read_timestamp) elif self._min_read_timestamp: - key = 'min_read_timestamp' + key = "min_read_timestamp" value = _datetime_to_pb_timestamp(self._min_read_timestamp) elif self._max_staleness: - key = 'max_staleness' + key = "max_staleness" value = _timedelta_to_duration_pb(self._max_staleness) elif self._exact_staleness: - key = 'exact_staleness' + key = "exact_staleness" value = _timedelta_to_duration_pb(self._exact_staleness) else: - key = 'strong' + key = "strong" value = True options = TransactionOptions( - read_only=TransactionOptions.ReadOnly(**{key: value})) + read_only=TransactionOptions.ReadOnly(**{key: value}) + ) if self._multi_use: return TransactionSelector(begin=options) @@ -464,6 +499,7 @@ def begin(self): metadata = _metadata_with_prefix(database.name) txn_selector = self._make_txn_selector() response = api.begin_transaction( - self._session.name, txn_selector.begin, metadata=metadata) + self._session.name, txn_selector.begin, metadata=metadata + ) self._transaction_id = response.id return self._transaction_id diff --git a/spanner/google/cloud/spanner_v1/streamed.py b/spanner/google/cloud/spanner_v1/streamed.py index 786a96810b21..ddb240a68a91 100644 --- a/spanner/google/cloud/spanner_v1/streamed.py +++ b/spanner/google/cloud/spanner_v1/streamed.py @@ -22,6 +22,7 @@ # pylint: disable=ungrouped-imports from google.cloud.spanner_v1._helpers import _parse_value_pb + # pylint: enable=ungrouped-imports @@ -37,15 +38,16 @@ class StreamedResultSet(object): :type source: :class:`~google.cloud.spanner_v1.snapshot.Snapshot` :param source: Snapshot from which the result set was fetched. """ + def __init__(self, response_iterator, source=None): self._response_iterator = response_iterator - self._rows = [] # Fully-processed rows - self._counter = 0 # Counter for processed responses - self._metadata = None # Until set from first PRS - self._stats = None # Until set from last PRS - self._current_row = [] # Accumulated values for incomplete row + self._rows = [] # Fully-processed rows + self._counter = 0 # Counter for processed responses + self._metadata = None # Until set from first PRS + self._stats = None # Until set from last PRS + self._current_row = [] # Accumulated values for incomplete row self._pending_chunk = None # Incomplete value - self._source = source # Source snapshot + self._source = source # Source snapshot @property def fields(self): @@ -121,7 +123,7 @@ def _consume_next(self): if source is not None and source._transaction_id is None: source._transaction_id = metadata.transaction.id - if response.HasField('stats'): # last response + if response.HasField("stats"): # last response self._stats = response.stats values = list(response.values) @@ -155,7 +157,7 @@ def one(self): """ answer = self.one_or_none() if answer is None: - raise exceptions.NotFound('No rows matched the given query.') + raise exceptions.NotFound("No rows matched the given query.") return answer def one_or_none(self): @@ -168,8 +170,10 @@ def one_or_none(self): # Sanity check: Has consumption of this query already started? # If it has, then this is an exception. if self._metadata is not None: - raise RuntimeError('Can not call `.one` or `.one_or_none` after ' - 'stream consumption has already started.') + raise RuntimeError( + "Can not call `.one` or `.one_or_none` after " + "stream consumption has already started." + ) # Consume the first result of the stream. # If there is no first result, then return None. @@ -183,7 +187,7 @@ def one_or_none(self): # rows, then this is an error case. try: next(iterator) - raise ValueError('Expected one result; got more.') + raise ValueError("Expected one result; got more.") except StopIteration: return answer @@ -200,9 +204,13 @@ class Unmergeable(ValueError): :type type_: :class:`google.cloud.spanner_v1.proto.type_pb2.Type` :param type_: field type of values being merged """ + def __init__(self, lhs, rhs, type_): message = "Cannot merge %s values: %s %s" % ( - type_pb2.TypeCode.Name(type_.code), lhs, rhs) + type_pb2.TypeCode.Name(type_.code), + lhs, + rhs, + ) super(Unmergeable, self).__init__(message) @@ -213,14 +221,15 @@ def _unmergeable(lhs, rhs, type_): def _merge_float64(lhs, rhs, type_): # pylint: disable=unused-argument """Helper for '_merge_by_type'.""" - lhs_kind = lhs.WhichOneof('kind') - if lhs_kind == 'string_value': + lhs_kind = lhs.WhichOneof("kind") + if lhs_kind == "string_value": return Value(string_value=lhs.string_value + rhs.string_value) - rhs_kind = rhs.WhichOneof('kind') + rhs_kind = rhs.WhichOneof("kind") array_continuation = ( - lhs_kind == 'number_value' and - rhs_kind == 'string_value' and - rhs.string_value == '') + lhs_kind == "number_value" + and rhs_kind == "string_value" + and rhs.string_value == "" + ) if array_continuation: return lhs raise Unmergeable(lhs, rhs, type_) @@ -249,7 +258,7 @@ def _merge_array(lhs, rhs, type_): return Value(list_value=ListValue(values=(lhs + rhs))) first = rhs.pop(0) - if first.HasField('null_value'): # can't merge + if first.HasField("null_value"): # can't merge lhs.append(first) else: last = lhs.pop() @@ -269,8 +278,7 @@ def _merge_struct(lhs, rhs, type_): lhs, rhs = list(lhs.list_value.values), list(rhs.list_value.values) candidate_type = fields[len(lhs) - 1].type first = rhs.pop(0) - if (first.HasField('null_value') or - candidate_type.code in _UNMERGEABLE_TYPES): + if first.HasField("null_value") or candidate_type.code in _UNMERGEABLE_TYPES: lhs.append(first) else: last = lhs.pop() diff --git a/spanner/google/cloud/spanner_v1/transaction.py b/spanner/google/cloud/spanner_v1/transaction.py index cc2f06cee54d..853dafeb8c1a 100644 --- a/spanner/google/cloud/spanner_v1/transaction.py +++ b/spanner/google/cloud/spanner_v1/transaction.py @@ -33,6 +33,7 @@ class Transaction(_SnapshotBase, _BatchBase): :raises ValueError: if session has an existing transaction """ + committed = None """Timestamp at which the transaction was successfully committed.""" _rolled_back = False @@ -90,10 +91,10 @@ def begin(self): database = self._session._database api = database.spanner_api metadata = _metadata_with_prefix(database.name) - txn_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite()) + txn_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) response = api.begin_transaction( - self._session.name, txn_options, metadata=metadata) + self._session.name, txn_options, metadata=metadata + ) self._transaction_id = response.id return self._transaction_id @@ -103,8 +104,7 @@ def rollback(self): database = self._session._database api = database.spanner_api metadata = _metadata_with_prefix(database.name) - api.rollback( - self._session.name, self._transaction_id, metadata=metadata) + api.rollback(self._session.name, self._transaction_id, metadata=metadata) self._rolled_back = True del self._session._transaction @@ -121,15 +121,16 @@ def commit(self): api = database.spanner_api metadata = _metadata_with_prefix(database.name) response = api.commit( - self._session.name, self._mutations, - transaction_id=self._transaction_id, metadata=metadata) - self.committed = _pb_timestamp_to_datetime( - response.commit_timestamp) + self._session.name, + self._mutations, + transaction_id=self._transaction_id, + metadata=metadata, + ) + self.committed = _pb_timestamp_to_datetime(response.commit_timestamp) del self._session._transaction return self.committed - def execute_update(self, dml, params=None, param_types=None, - query_mode=None): + def execute_update(self, dml, params=None, param_types=None, query_mode=None): """Perform an ``ExecuteSql`` API request with DML. :type dml: str @@ -154,10 +155,10 @@ def execute_update(self, dml, params=None, param_types=None, """ if params is not None: if param_types is None: - raise ValueError( - "Specify 'param_types' when passing 'params'.") - params_pb = Struct(fields={ - key: _make_value_pb(value) for key, value in params.items()}) + raise ValueError("Specify 'param_types' when passing 'params'.") + params_pb = Struct( + fields={key: _make_value_pb(value) for key, value in params.items()} + ) else: params_pb = None diff --git a/spanner/google/cloud/spanner_v1/types.py b/spanner/google/cloud/spanner_v1/types.py index 256308b3692a..07c94ba871e3 100644 --- a/spanner/google/cloud/spanner_v1/types.py +++ b/spanner/google/cloud/spanner_v1/types.py @@ -60,7 +60,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.spanner_v1.types' + message.__module__ = "google.cloud.spanner_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/spanner/tests/_fixtures.py b/spanner/tests/_fixtures.py index 459c1a4f29d7..d0b78c0ba506 100644 --- a/spanner/tests/_fixtures.py +++ b/spanner/tests/_fixtures.py @@ -65,4 +65,4 @@ PRIMARY KEY(id, commit_ts DESC); """ -DDL_STATEMENTS = [stmt.strip() for stmt in DDL.split(';') if stmt.strip()] +DDL_STATEMENTS = [stmt.strip() for stmt in DDL.split(";") if stmt.strip()] diff --git a/spanner/tests/system/test_system.py b/spanner/tests/system/test_system.py index 9a04a02a6f9c..2ae3bd53c24c 100644 --- a/spanner/tests/system/test_system.py +++ b/spanner/tests/system/test_system.py @@ -51,17 +51,17 @@ from tests._fixtures import DDL_STATEMENTS -CREATE_INSTANCE = os.getenv( - 'GOOGLE_CLOUD_TESTS_CREATE_SPANNER_INSTANCE') is not None +CREATE_INSTANCE = os.getenv("GOOGLE_CLOUD_TESTS_CREATE_SPANNER_INSTANCE") is not None if CREATE_INSTANCE: - INSTANCE_ID = 'google-cloud' + unique_resource_id('-') + INSTANCE_ID = "google-cloud" + unique_resource_id("-") else: - INSTANCE_ID = os.environ.get('GOOGLE_CLOUD_TESTS_SPANNER_INSTANCE', - 'google-cloud-python-systest') + INSTANCE_ID = os.environ.get( + "GOOGLE_CLOUD_TESTS_SPANNER_INSTANCE", "google-cloud-python-systest" + ) EXISTING_INSTANCES = [] -COUNTERS_TABLE = 'counters' -COUNTERS_COLUMNS = ('name', 'value') +COUNTERS_TABLE = "counters" +COUNTERS_COLUMNS = ("name", "value") class Config(object): @@ -70,6 +70,7 @@ class Config(object): This is a mutable stand-in to allow test set-up to modify global state. """ + CLIENT = None INSTANCE_CONFIG = None INSTANCE = None @@ -96,10 +97,10 @@ def setUpModule(): # Defend against back-end returning configs for regions we aren't # actually allowed to use. - configs = [config for config in configs if '-us-' in config.name] + configs = [config for config in configs if "-us-" in config.name] if not configs: - raise ValueError('List instance configs failed in module set up.') + raise ValueError("List instance configs failed in module set up.") Config.INSTANCE_CONFIG = configs[0] config_name = configs[0].name @@ -119,7 +120,6 @@ def tearDownModule(): class TestInstanceAdminAPI(unittest.TestCase): - def setUp(self): self.instances_to_delete = [] @@ -133,8 +133,9 @@ def test_list_instances(self): if CREATE_INSTANCE: self.assertEqual(len(instances), len(EXISTING_INSTANCES) + 1) for instance in instances: - instance_existence = (instance in EXISTING_INSTANCES or - instance == Config.INSTANCE) + instance_existence = ( + instance in EXISTING_INSTANCES or instance == Config.INSTANCE + ) self.assertTrue(instance_existence) def test_reload_instance(self): @@ -147,11 +148,10 @@ def test_reload_instance(self): instance.reload() self.assertEqual(instance.display_name, Config.INSTANCE.display_name) - @unittest.skipUnless(CREATE_INSTANCE, 'Skipping instance creation') + @unittest.skipUnless(CREATE_INSTANCE, "Skipping instance creation") def test_create_instance(self): - ALT_INSTANCE_ID = 'new' + unique_resource_id('-') - instance = Config.CLIENT.instance( - ALT_INSTANCE_ID, Config.INSTANCE_CONFIG.name) + ALT_INSTANCE_ID = "new" + unique_resource_id("-") + instance = Config.CLIENT.instance(ALT_INSTANCE_ID, Config.INSTANCE_CONFIG.name) operation = instance.create() # Make sure this instance gets deleted after the test case. self.instances_to_delete.append(instance) @@ -161,7 +161,8 @@ def test_create_instance(self): # Create a new instance instance and make sure it is the same. instance_alt = Config.CLIENT.instance( - ALT_INSTANCE_ID, Config.INSTANCE_CONFIG.name) + ALT_INSTANCE_ID, Config.INSTANCE_CONFIG.name + ) instance_alt.reload() self.assertEqual(instance, instance_alt) @@ -169,7 +170,7 @@ def test_create_instance(self): def test_update_instance(self): OLD_DISPLAY_NAME = Config.INSTANCE.display_name - NEW_DISPLAY_NAME = 'Foo Bar Baz' + NEW_DISPLAY_NAME = "Foo Bar Baz" Config.INSTANCE.display_name = NEW_DISPLAY_NAME operation = Config.INSTANCE.update() @@ -189,15 +190,15 @@ def test_update_instance(self): class _TestData(object): - TABLE = 'contacts' - COLUMNS = ('contact_id', 'first_name', 'last_name', 'email') + TABLE = "contacts" + COLUMNS = ("contact_id", "first_name", "last_name", "email") ROW_DATA = ( - (1, u'Phred', u'Phlyntstone', u'phred@example.com'), - (2, u'Bharney', u'Rhubble', u'bharney@example.com'), - (3, u'Wylma', u'Phlyntstone', u'wylma@example.com'), + (1, u"Phred", u"Phlyntstone", u"phred@example.com"), + (2, u"Bharney", u"Rhubble", u"bharney@example.com"), + (3, u"Wylma", u"Phlyntstone", u"wylma@example.com"), ) ALL = KeySet(all_=True) - SQL = 'SELECT * FROM contacts ORDER BY contact_id' + SQL = "SELECT * FROM contacts ORDER BY contact_id" _recurse_into_lists = True @@ -245,13 +246,14 @@ def _check_cell_data(self, found_cell, expected_cell): class TestDatabaseAPI(unittest.TestCase, _TestData): - DATABASE_NAME = 'test_database' + unique_resource_id('_') + DATABASE_NAME = "test_database" + unique_resource_id("_") @classmethod def setUpClass(cls): - pool = BurstyPool(labels={'testcase': 'database_api'}) + pool = BurstyPool(labels={"testcase": "database_api"}) cls._db = Config.INSTANCE.database( - cls.DATABASE_NAME, ddl_statements=DDL_STATEMENTS, pool=pool) + cls.DATABASE_NAME, ddl_statements=DDL_STATEMENTS, pool=pool + ) operation = cls._db.create() operation.result(30) # raises on failure / timeout. @@ -270,12 +272,13 @@ def test_list_databases(self): # Since `Config.INSTANCE` is newly created in `setUpModule`, the # database created in `setUpClass` here will be the only one. database_names = [ - database.name for database in Config.INSTANCE.list_databases()] + database.name for database in Config.INSTANCE.list_databases() + ] self.assertTrue(self._db.name in database_names) def test_create_database(self): - pool = BurstyPool(labels={'testcase': 'create_database'}) - temp_db_id = 'temp_db' + unique_resource_id('_') + pool = BurstyPool(labels={"testcase": "create_database"}) + temp_db_id = "temp_db" + unique_resource_id("_") temp_db = Config.INSTANCE.database(temp_db_id, pool=pool) operation = temp_db.create() self.to_delete.append(temp_db) @@ -284,45 +287,45 @@ def test_create_database(self): operation.result(30) # raises on failure / timeout. database_ids = [ - database.database_id - for database in Config.INSTANCE.list_databases()] + database.database_id for database in Config.INSTANCE.list_databases() + ] self.assertIn(temp_db_id, database_ids) def test_table_not_found(self): - temp_db_id = 'temp_db' + unique_resource_id('_') + temp_db_id = "temp_db" + unique_resource_id("_") - correct_table = 'MyTable' - incorrect_table = 'NotMyTable' + correct_table = "MyTable" + incorrect_table = "NotMyTable" self.assertNotEqual(correct_table, incorrect_table) create_table = ( - 'CREATE TABLE {} (\n' - ' Id STRING(36) NOT NULL,\n' - ' Field1 STRING(36) NOT NULL\n' - ') PRIMARY KEY (Id)').format(correct_table) - index = 'CREATE INDEX IDX ON {} (Field1)'.format(incorrect_table) + "CREATE TABLE {} (\n" + " Id STRING(36) NOT NULL,\n" + " Field1 STRING(36) NOT NULL\n" + ") PRIMARY KEY (Id)" + ).format(correct_table) + index = "CREATE INDEX IDX ON {} (Field1)".format(incorrect_table) temp_db = Config.INSTANCE.database( - temp_db_id, - ddl_statements=[ - create_table, - index, - ], + temp_db_id, ddl_statements=[create_table, index] ) self.to_delete.append(temp_db) with self.assertRaises(exceptions.NotFound) as exc_info: temp_db.create() - expected = 'Table not found: {0}'.format(incorrect_table) + expected = "Table not found: {0}".format(incorrect_table) self.assertEqual(exc_info.exception.args, (expected,)) - @pytest.mark.skip(reason=( - 'update_dataset_ddl() has a flaky timeout' - 'https://github.com/GoogleCloudPlatform/google-cloud-python/issues/' - '5629')) + @pytest.mark.skip( + reason=( + "update_dataset_ddl() has a flaky timeout" + "https://github.com/GoogleCloudPlatform/google-cloud-python/issues/" + "5629" + ) + ) def test_update_database_ddl(self): - pool = BurstyPool(labels={'testcase': 'update_database_ddl'}) - temp_db_id = 'temp_db' + unique_resource_id('_') + pool = BurstyPool(labels={"testcase": "update_database_ddl"}) + temp_db_id = "temp_db" + unique_resource_id("_") temp_db = Config.INSTANCE.database(temp_db_id, pool=pool) create_op = temp_db.create() self.to_delete.append(temp_db) @@ -363,8 +366,7 @@ def _unit_of_work(transaction, test): rows = list(transaction.read(test.TABLE, test.COLUMNS, self.ALL)) test.assertEqual(rows, []) - transaction.insert_or_update( - test.TABLE, test.COLUMNS, test.ROW_DATA) + transaction.insert_or_update(test.TABLE, test.COLUMNS, test.ROW_DATA) self._db.run_in_transaction(_unit_of_work, test=self) @@ -380,8 +382,7 @@ def test_db_run_in_transaction_twice(self): batch.delete(self.TABLE, self.ALL) def _unit_of_work(transaction, test): - transaction.insert_or_update( - test.TABLE, test.COLUMNS, test.ROW_DATA) + transaction.insert_or_update(test.TABLE, test.COLUMNS, test.ROW_DATA) self._db.run_in_transaction(_unit_of_work, test=self) self._db.run_in_transaction(_unit_of_work, test=self) @@ -400,48 +401,46 @@ def test_db_run_in_transaction_twice_4181(self): def _unit_of_work(transaction, name): transaction.insert(COUNTERS_TABLE, COUNTERS_COLUMNS, [[name, 0]]) - self._db.run_in_transaction(_unit_of_work, name='id_1') + self._db.run_in_transaction(_unit_of_work, name="id_1") with self.assertRaises(exceptions.AlreadyExists): - self._db.run_in_transaction(_unit_of_work, name='id_1') + self._db.run_in_transaction(_unit_of_work, name="id_1") - self._db.run_in_transaction(_unit_of_work, name='id_2') + self._db.run_in_transaction(_unit_of_work, name="id_2") with self._db.snapshot() as after: - rows = list(after.read( - COUNTERS_TABLE, COUNTERS_COLUMNS, self.ALL)) + rows = list(after.read(COUNTERS_TABLE, COUNTERS_COLUMNS, self.ALL)) self.assertEqual(len(rows), 2) SOME_DATE = datetime.date(2011, 1, 17) SOME_TIME = datetime.datetime(1989, 1, 17, 17, 59, 12, 345612) NANO_TIME = DatetimeWithNanoseconds(1995, 8, 31, nanosecond=987654321) -POS_INF = float('+inf') -NEG_INF = float('-inf') -OTHER_NAN, = struct.unpack(' self._check_sql_results( self._db, - sql='SELECT @v', - params={'v': single_value}, - param_types={'v': Type(code=type_name)}, + sql="SELECT @v", + params={"v": single_value}, + param_types={"v": Type(code=type_name)}, expected=[(single_value,)], order=False, ) @@ -1674,25 +1546,24 @@ def _bind_test_helper( # Bind a null self._check_sql_results( self._db, - sql='SELECT @v', - params={'v': None}, - param_types={'v': Type(code=type_name)}, + sql="SELECT @v", + params={"v": None}, + param_types={"v": Type(code=type_name)}, expected=[(None,)], order=False, ) # Bind an array of - array_type = Type( - code=ARRAY, array_element_type=Type(code=type_name)) + array_type = Type(code=ARRAY, array_element_type=Type(code=type_name)) if expected_array_value is None: expected_array_value = array_value self._check_sql_results( self._db, - sql='SELECT @v', - params={'v': array_value}, - param_types={'v': array_type}, + sql="SELECT @v", + params={"v": array_value}, + param_types={"v": array_type}, expected=[(expected_array_value,)], order=False, ) @@ -1700,9 +1571,9 @@ def _bind_test_helper( # Bind an empty array of self._check_sql_results( self._db, - sql='SELECT @v', - params={'v': []}, - param_types={'v': array_type}, + sql="SELECT @v", + params={"v": []}, + param_types={"v": array_type}, expected=[([],)], order=False, ) @@ -1710,15 +1581,15 @@ def _bind_test_helper( # Bind a null array of self._check_sql_results( self._db, - sql='SELECT @v', - params={'v': None}, - param_types={'v': array_type}, + sql="SELECT @v", + params={"v": None}, + param_types={"v": array_type}, expected=[(None,)], order=False, ) def test_execute_sql_w_string_bindings(self): - self._bind_test_helper(STRING, 'Phred', ['Phred', 'Bharney']) + self._bind_test_helper(STRING, "Phred", ["Phred", "Bharney"]) def test_execute_sql_w_bool_bindings(self): self._bind_test_helper(BOOL, True, [True, False, True]) @@ -1734,9 +1605,9 @@ def test_execute_sql_w_float_bindings_transfinite(self): # Find -inf self._check_sql_results( self._db, - sql='SELECT @neg_inf', - params={'neg_inf': NEG_INF}, - param_types={'neg_inf': Type(code=FLOAT64)}, + sql="SELECT @neg_inf", + params={"neg_inf": NEG_INF}, + param_types={"neg_inf": Type(code=FLOAT64)}, expected=[(NEG_INF,)], order=False, ) @@ -1744,68 +1615,74 @@ def test_execute_sql_w_float_bindings_transfinite(self): # Find +inf self._check_sql_results( self._db, - sql='SELECT @pos_inf', - params={'pos_inf': POS_INF}, - param_types={'pos_inf': Type(code=FLOAT64)}, + sql="SELECT @pos_inf", + params={"pos_inf": POS_INF}, + param_types={"pos_inf": Type(code=FLOAT64)}, expected=[(POS_INF,)], order=False, ) def test_execute_sql_w_bytes_bindings(self): - self._bind_test_helper(BYTES, b'DEADBEEF', [b'FACEDACE', b'DEADBEEF']) + self._bind_test_helper(BYTES, b"DEADBEEF", [b"FACEDACE", b"DEADBEEF"]) def test_execute_sql_w_timestamp_bindings(self): import pytz from google.api_core.datetime_helpers import DatetimeWithNanoseconds timestamp_1 = DatetimeWithNanoseconds( - 1989, 1, 17, 17, 59, 12, nanosecond=345612789) + 1989, 1, 17, 17, 59, 12, nanosecond=345612789 + ) timestamp_2 = DatetimeWithNanoseconds( - 1989, 1, 17, 17, 59, 13, nanosecond=456127893) + 1989, 1, 17, 17, 59, 13, nanosecond=456127893 + ) timestamps = [timestamp_1, timestamp_2] # In round-trip, timestamps acquire a timezone value. expected_timestamps = [ - timestamp.replace(tzinfo=pytz.UTC) for timestamp in timestamps] + timestamp.replace(tzinfo=pytz.UTC) for timestamp in timestamps + ] self._recurse_into_lists = False - self._bind_test_helper( - TIMESTAMP, timestamp_1, timestamps, expected_timestamps) + self._bind_test_helper(TIMESTAMP, timestamp_1, timestamps, expected_timestamps) def test_execute_sql_w_date_bindings(self): import datetime - dates = [ - SOME_DATE, - SOME_DATE + datetime.timedelta(days=1), - ] + dates = [SOME_DATE, SOME_DATE + datetime.timedelta(days=1)] self._bind_test_helper(DATE, SOME_DATE, dates) def test_execute_sql_w_query_param_struct(self): - NAME = 'Phred' + NAME = "Phred" COUNT = 123 SIZE = 23.456 HEIGHT = 188.0 WEIGHT = 97.6 - record_type = param_types.Struct([ - param_types.StructField('name', param_types.STRING), - param_types.StructField('count', param_types.INT64), - param_types.StructField('size', param_types.FLOAT64), - param_types.StructField('nested', param_types.Struct([ - param_types.StructField('height', param_types.FLOAT64), - param_types.StructField('weight', param_types.FLOAT64), - ])), - ]) + record_type = param_types.Struct( + [ + param_types.StructField("name", param_types.STRING), + param_types.StructField("count", param_types.INT64), + param_types.StructField("size", param_types.FLOAT64), + param_types.StructField( + "nested", + param_types.Struct( + [ + param_types.StructField("height", param_types.FLOAT64), + param_types.StructField("weight", param_types.FLOAT64), + ] + ), + ), + ] + ) # Query with null struct, explicit type self._check_sql_results( self._db, - sql='SELECT @r.name, @r.count, @r.size, @r.nested.weight', - params={'r': None}, - param_types={'r': record_type}, + sql="SELECT @r.name, @r.count, @r.size, @r.nested.weight", + params={"r": None}, + param_types={"r": record_type}, expected=[(None, None, None, None)], order=False, ) @@ -1813,9 +1690,9 @@ def test_execute_sql_w_query_param_struct(self): # Query with non-null struct, explicit type, NULL values self._check_sql_results( self._db, - sql='SELECT @r.name, @r.count, @r.size, @r.nested.weight', - params={'r': (None, None, None, None)}, - param_types={'r': record_type}, + sql="SELECT @r.name, @r.count, @r.size, @r.nested.weight", + params={"r": (None, None, None, None)}, + param_types={"r": record_type}, expected=[(None, None, None, None)], order=False, ) @@ -1823,9 +1700,9 @@ def test_execute_sql_w_query_param_struct(self): # Query with non-null struct, explicit type, nested NULL values self._check_sql_results( self._db, - sql='SELECT @r.nested.weight', - params={'r': (None, None, None, (None, None))}, - param_types={'r': record_type}, + sql="SELECT @r.nested.weight", + params={"r": (None, None, None, (None, None))}, + param_types={"r": record_type}, expected=[(None,)], order=False, ) @@ -1833,9 +1710,9 @@ def test_execute_sql_w_query_param_struct(self): # Query with non-null struct, explicit type self._check_sql_results( self._db, - sql='SELECT @r.name, @r.count, @r.size, @r.nested.weight', - params={'r': (NAME, COUNT, SIZE, (HEIGHT, WEIGHT))}, - param_types={'r': record_type}, + sql="SELECT @r.name, @r.count, @r.size, @r.nested.weight", + params={"r": (NAME, COUNT, SIZE, (HEIGHT, WEIGHT))}, + param_types={"r": record_type}, expected=[(NAME, COUNT, SIZE, WEIGHT)], order=False, ) @@ -1844,9 +1721,9 @@ def test_execute_sql_w_query_param_struct(self): empty_type = param_types.Struct([]) self._check_sql_results( self._db, - sql='SELECT @r IS NULL', - params={'r': ()}, - param_types={'r': empty_type}, + sql="SELECT @r IS NULL", + params={"r": ()}, + param_types={"r": empty_type}, expected=[(False,)], order=False, ) @@ -1854,27 +1731,28 @@ def test_execute_sql_w_query_param_struct(self): # Query with null struct, explicitly empty type self._check_sql_results( self._db, - sql='SELECT @r IS NULL', - params={'r': None}, - param_types={'r': empty_type}, + sql="SELECT @r IS NULL", + params={"r": None}, + param_types={"r": empty_type}, expected=[(True,)], order=False, ) # Query with equality check for struct value struct_equality_query = ( - 'SELECT ' - '@struct_param=STRUCT(1,"bob")' + "SELECT " '@struct_param=STRUCT(1,"bob")' + ) + struct_type = param_types.Struct( + [ + param_types.StructField("threadf", param_types.INT64), + param_types.StructField("userf", param_types.STRING), + ] ) - struct_type = param_types.Struct([ - param_types.StructField('threadf', param_types.INT64), - param_types.StructField('userf', param_types.STRING), - ]) self._check_sql_results( self._db, sql=struct_equality_query, - params={'struct_param': (1, 'bob')}, - param_types={'struct_param': struct_type}, + params={"struct_param": (1, "bob")}, + param_types={"struct_param": struct_type}, expected=[(True,)], order=False, ) @@ -1882,23 +1760,23 @@ def test_execute_sql_w_query_param_struct(self): # Query with nullness test for struct self._check_sql_results( self._db, - sql='SELECT @struct_param IS NULL', - params={'struct_param': None}, - param_types={'struct_param': struct_type}, + sql="SELECT @struct_param IS NULL", + params={"struct_param": None}, + param_types={"struct_param": struct_type}, expected=[(True,)], order=False, ) # Query with null array-of-struct - array_elem_type = param_types.Struct([ - param_types.StructField('threadid', param_types.INT64), - ]) + array_elem_type = param_types.Struct( + [param_types.StructField("threadid", param_types.INT64)] + ) array_type = param_types.Array(array_elem_type) self._check_sql_results( self._db, - sql='SELECT a.threadid FROM UNNEST(@struct_arr_param) a', - params={'struct_arr_param': None}, - param_types={'struct_arr_param': array_type}, + sql="SELECT a.threadid FROM UNNEST(@struct_arr_param) a", + params={"struct_arr_param": None}, + param_types={"struct_arr_param": array_type}, expected=[], order=False, ) @@ -1906,23 +1784,25 @@ def test_execute_sql_w_query_param_struct(self): # Query with non-null array-of-struct self._check_sql_results( self._db, - sql='SELECT a.threadid FROM UNNEST(@struct_arr_param) a', - params={'struct_arr_param': [(123,), (456,)]}, - param_types={'struct_arr_param': array_type}, + sql="SELECT a.threadid FROM UNNEST(@struct_arr_param) a", + params={"struct_arr_param": [(123,), (456,)]}, + param_types={"struct_arr_param": array_type}, expected=[(123,), (456,)], order=False, ) # Query with null array-of-struct field - struct_type_with_array_field = param_types.Struct([ - param_types.StructField('intf', param_types.INT64), - param_types.StructField('arraysf', array_type), - ]) + struct_type_with_array_field = param_types.Struct( + [ + param_types.StructField("intf", param_types.INT64), + param_types.StructField("arraysf", array_type), + ] + ) self._check_sql_results( self._db, - sql='SELECT a.threadid FROM UNNEST(@struct_param.arraysf) a', - params={'struct_param': (123, None)}, - param_types={'struct_param': struct_type_with_array_field}, + sql="SELECT a.threadid FROM UNNEST(@struct_param.arraysf) a", + params={"struct_param": (123, None)}, + param_types={"struct_param": struct_type_with_array_field}, expected=[], order=False, ) @@ -1930,46 +1810,49 @@ def test_execute_sql_w_query_param_struct(self): # Query with non-null array-of-struct field self._check_sql_results( self._db, - sql='SELECT a.threadid FROM UNNEST(@struct_param.arraysf) a', - params={'struct_param': (123, ((456,), (789,)))}, - param_types={'struct_param': struct_type_with_array_field}, + sql="SELECT a.threadid FROM UNNEST(@struct_param.arraysf) a", + params={"struct_param": (123, ((456,), (789,)))}, + param_types={"struct_param": struct_type_with_array_field}, expected=[(456,), (789,)], order=False, ) # Query with anonymous / repeated-name fields - anon_repeated_array_elem_type = param_types.Struct([ - param_types.StructField('', param_types.INT64), - param_types.StructField('', param_types.STRING), - ]) - anon_repeated_array_type = param_types.Array( - anon_repeated_array_elem_type) + anon_repeated_array_elem_type = param_types.Struct( + [ + param_types.StructField("", param_types.INT64), + param_types.StructField("", param_types.STRING), + ] + ) + anon_repeated_array_type = param_types.Array(anon_repeated_array_elem_type) self._check_sql_results( self._db, - sql='SELECT CAST(t as STRUCT).* ' - 'FROM UNNEST(@struct_param) t', - params={'struct_param': [(123, 'abcdef')]}, - param_types={'struct_param': anon_repeated_array_type}, - expected=[(123, 'abcdef')], + sql="SELECT CAST(t as STRUCT).* " + "FROM UNNEST(@struct_param) t", + params={"struct_param": [(123, "abcdef")]}, + param_types={"struct_param": anon_repeated_array_type}, + expected=[(123, "abcdef")], order=False, ) # Query and return a struct parameter - value_type = param_types.Struct([ - param_types.StructField('message', param_types.STRING), - param_types.StructField('repeat', param_types.INT64), - ]) + value_type = param_types.Struct( + [ + param_types.StructField("message", param_types.STRING), + param_types.StructField("repeat", param_types.INT64), + ] + ) value_query = ( - 'SELECT ARRAY(SELECT AS STRUCT message, repeat ' - 'FROM (SELECT @value.message AS message, ' - '@value.repeat AS repeat)) AS value' + "SELECT ARRAY(SELECT AS STRUCT message, repeat " + "FROM (SELECT @value.message AS message, " + "@value.repeat AS repeat)) AS value" ) self._check_sql_results( self._db, sql=value_query, - params={'value': ('hello', 1)}, - param_types={'value': value_type}, - expected=[([['hello', 1]],)], + params={"value": ("hello", 1)}, + param_types={"value": value_type}, + expected=[([["hello", 1]],)], order=False, ) @@ -1977,33 +1860,39 @@ def test_execute_sql_returning_transfinite_floats(self): with self._db.snapshot(multi_use=True) as snapshot: # Query returning -inf, +inf, NaN as column values - rows = list(snapshot.execute_sql( - 'SELECT ' - 'CAST("-inf" AS FLOAT64), ' - 'CAST("+inf" AS FLOAT64), ' - 'CAST("NaN" AS FLOAT64)')) + rows = list( + snapshot.execute_sql( + "SELECT " + 'CAST("-inf" AS FLOAT64), ' + 'CAST("+inf" AS FLOAT64), ' + 'CAST("NaN" AS FLOAT64)' + ) + ) self.assertEqual(len(rows), 1) - self.assertEqual(rows[0][0], float('-inf')) - self.assertEqual(rows[0][1], float('+inf')) + self.assertEqual(rows[0][0], float("-inf")) + self.assertEqual(rows[0][1], float("+inf")) # NaNs cannot be compared by equality. self.assertTrue(math.isnan(rows[0][2])) # Query returning array of -inf, +inf, NaN as one column - rows = list(snapshot.execute_sql( - 'SELECT' - ' [CAST("-inf" AS FLOAT64),' - ' CAST("+inf" AS FLOAT64),' - ' CAST("NaN" AS FLOAT64)]')) + rows = list( + snapshot.execute_sql( + "SELECT" + ' [CAST("-inf" AS FLOAT64),' + ' CAST("+inf" AS FLOAT64),' + ' CAST("NaN" AS FLOAT64)]' + ) + ) self.assertEqual(len(rows), 1) float_array, = rows[0] - self.assertEqual(float_array[0], float('-inf')) - self.assertEqual(float_array[1], float('+inf')) + self.assertEqual(float_array[0], float("-inf")) + self.assertEqual(float_array[1], float("+inf")) # NaNs cannot be searched for by equality. self.assertTrue(math.isnan(float_array[2])) def test_partition_query(self): row_count = 40 - sql = 'SELECT * FROM {}'.format(self.TABLE) + sql = "SELECT * FROM {}".format(self.TABLE) committed = self._set_up_table(row_count) all_data_rows = list(self._row_data(row_count)) @@ -2018,7 +1907,6 @@ def test_partition_query(self): class TestStreamingChunking(unittest.TestCase, _TestData): - @classmethod def setUpClass(cls): from tests.system.utils.streaming_utils import INSTANCE_NAME @@ -2027,17 +1915,19 @@ def setUpClass(cls): instance = Config.CLIENT.instance(INSTANCE_NAME) if not instance.exists(): raise unittest.SkipTest( - "Run 'tests/system/utils/populate_streaming.py' to enable.") + "Run 'tests/system/utils/populate_streaming.py' to enable." + ) database = instance.database(DATABASE_NAME) if not instance.exists(): raise unittest.SkipTest( - "Run 'tests/system/utils/populate_streaming.py' to enable.") + "Run 'tests/system/utils/populate_streaming.py' to enable." + ) cls._db = database def _verify_one_column(self, table_desc): - sql = 'SELECT chunk_me FROM {}'.format(table_desc.table) + sql = "SELECT chunk_me FROM {}".format(table_desc.table) with self._db.snapshot() as snapshot: rows = list(snapshot.execute_sql(sql)) self.assertEqual(len(rows), table_desc.row_count) @@ -2046,7 +1936,7 @@ def _verify_one_column(self, table_desc): self.assertEqual(row[0], expected) def _verify_two_columns(self, table_desc): - sql = 'SELECT chunk_me, chunk_me_2 FROM {}'.format(table_desc.table) + sql = "SELECT chunk_me, chunk_me_2 FROM {}".format(table_desc.table) with self._db.snapshot() as snapshot: rows = list(snapshot.execute_sql(sql)) self.assertEqual(len(rows), table_desc.row_count) @@ -2057,18 +1947,22 @@ def _verify_two_columns(self, table_desc): def test_four_kay(self): from tests.system.utils.streaming_utils import FOUR_KAY + self._verify_one_column(FOUR_KAY) def test_forty_kay(self): from tests.system.utils.streaming_utils import FORTY_KAY + self._verify_one_column(FORTY_KAY) def test_four_hundred_kay(self): from tests.system.utils.streaming_utils import FOUR_HUNDRED_KAY + self._verify_one_column(FOUR_HUNDRED_KAY) def test_four_meg(self): from tests.system.utils.streaming_utils import FOUR_MEG + self._verify_two_columns(FOUR_MEG) @@ -2089,8 +1983,8 @@ def delete(self): class _ReadAbortTrigger(object): """Helper for tests provoking abort-during-read.""" - KEY1 = 'key1' - KEY2 = 'key2' + KEY1 = "key1" + KEY2 = "key2" def __init__(self): self.provoker_started = threading.Event() @@ -2100,8 +1994,7 @@ def __init__(self): def _provoke_abort_unit_of_work(self, transaction): keyset = KeySet(keys=[(self.KEY1,)]) - rows = list( - transaction.read(COUNTERS_TABLE, COUNTERS_COLUMNS, keyset)) + rows = list(transaction.read(COUNTERS_TABLE, COUNTERS_COLUMNS, keyset)) assert len(rows) == 1 row = rows[0] @@ -2111,8 +2004,7 @@ def _provoke_abort_unit_of_work(self, transaction): self.handler_running.wait() - transaction.update( - COUNTERS_TABLE, COUNTERS_COLUMNS, [[self.KEY1, value + 1]]) + transaction.update(COUNTERS_TABLE, COUNTERS_COLUMNS, [[self.KEY1, value + 1]]) def provoke_abort(self, database): database.run_in_transaction(self._provoke_abort_unit_of_work) @@ -2120,8 +2012,7 @@ def provoke_abort(self, database): def _handle_abort_unit_of_work(self, transaction): keyset_1 = KeySet(keys=[(self.KEY1,)]) - rows_1 = list( - transaction.read(COUNTERS_TABLE, COUNTERS_COLUMNS, keyset_1)) + rows_1 = list(transaction.read(COUNTERS_TABLE, COUNTERS_COLUMNS, keyset_1)) assert len(rows_1) == 1 row_1 = rows_1[0] @@ -2132,15 +2023,15 @@ def _handle_abort_unit_of_work(self, transaction): self.provoker_done.wait() keyset_2 = KeySet(keys=[(self.KEY2,)]) - rows_2 = list( - transaction.read(COUNTERS_TABLE, COUNTERS_COLUMNS, keyset_2)) + rows_2 = list(transaction.read(COUNTERS_TABLE, COUNTERS_COLUMNS, keyset_2)) assert len(rows_2) == 1 row_2 = rows_2[0] value_2 = row_2[1] transaction.update( - COUNTERS_TABLE, COUNTERS_COLUMNS, [[self.KEY2, value_1 + value_2]]) + COUNTERS_TABLE, COUNTERS_COLUMNS, [[self.KEY2, value_1 + value_2]] + ) def handle_abort(self, database): database.run_in_transaction(self._handle_abort_unit_of_work) diff --git a/spanner/tests/system/utils/clear_streaming.py b/spanner/tests/system/utils/clear_streaming.py index 7a5c8302e5dd..6c9dee29f5a8 100644 --- a/spanner/tests/system/utils/clear_streaming.py +++ b/spanner/tests/system/utils/clear_streaming.py @@ -41,6 +41,6 @@ def remove_database(client): database.drop() -if __name__ == '__main__': +if __name__ == "__main__": client = Client() remove_database(client) diff --git a/spanner/tests/system/utils/populate_streaming.py b/spanner/tests/system/utils/populate_streaming.py index 638fa8a95afc..a336228a15a4 100644 --- a/spanner/tests/system/utils/populate_streaming.py +++ b/spanner/tests/system/utils/populate_streaming.py @@ -46,10 +46,12 @@ chunk_me STRING({3.value_size}), chunk_me_2 STRING({3.value_size}) ) PRIMARY KEY (pkey); -""".format(FOUR_KAY, FORTY_KAY, FOUR_HUNDRED_KAY, FOUR_MEG) +""".format( + FOUR_KAY, FORTY_KAY, FOUR_HUNDRED_KAY, FOUR_MEG +) -DDL_STATEMENTS = [stmt.strip() for stmt in DDL.split(';') if stmt.strip()] +DDL_STATEMENTS = [stmt.strip() for stmt in DDL.split(";") if stmt.strip()] def ensure_database(client): @@ -68,7 +70,8 @@ def ensure_database(client): pool = BurstyPool() database = instance.database( - DATABASE_NAME, ddl_statements=DDL_STATEMENTS, pool=pool) + DATABASE_NAME, ddl_statements=DDL_STATEMENTS, pool=pool + ) if not database.exists(): print_func("Creating database: {}".format(DATABASE_NAME)) @@ -83,10 +86,11 @@ def ensure_database(client): def populate_table(database, table_desc): all_ = KeySet(all_=True) - columns = ('pkey', 'chunk_me') + columns = ("pkey", "chunk_me") with database.snapshot() as snapshot: - rows = list(snapshot.execute_sql( - 'SELECT COUNT(*) FROM {}'.format(table_desc.table))) + rows = list( + snapshot.execute_sql("SELECT COUNT(*) FROM {}".format(table_desc.table)) + ) assert len(rows) == 1 count = rows[0][0] if count != table_desc.row_count: @@ -102,18 +106,19 @@ def populate_table(database, table_desc): def populate_table_2_columns(database, table_desc): all_ = KeySet(all_=True) - columns = ('pkey', 'chunk_me', 'chunk_me_2') + columns = ("pkey", "chunk_me", "chunk_me_2") with database.snapshot() as snapshot: - rows = list(snapshot.execute_sql( - 'SELECT COUNT(*) FROM {}'.format(table_desc.table))) + rows = list( + snapshot.execute_sql("SELECT COUNT(*) FROM {}".format(table_desc.table)) + ) assert len(rows) == 1 count = rows[0][0] if count != table_desc.row_count: print_func("Repopulating table: {}".format(table_desc.table)) chunk_me = table_desc.value() row_data = [ - (index, chunk_me, chunk_me) - for index in range(table_desc.row_count)] + (index, chunk_me, chunk_me) for index in range(table_desc.row_count) + ] with database.batch() as batch: batch.delete(table_desc.table, all_) batch.insert(table_desc.table, columns, row_data) @@ -130,6 +135,6 @@ def populate_streaming(client): populate_table_2_columns(database, FOUR_MEG) -if __name__ == '__main__': +if __name__ == "__main__": client = Client() populate_streaming(client) diff --git a/spanner/tests/system/utils/scrub_instances.py b/spanner/tests/system/utils/scrub_instances.py index f7fe83299a66..79cd51fdfc94 100644 --- a/spanner/tests/system/utils/scrub_instances.py +++ b/spanner/tests/system/utils/scrub_instances.py @@ -15,23 +15,21 @@ from google.cloud.spanner import Client from .streaming_utils import INSTANCE_NAME as STREAMING_INSTANCE -STANDARD_INSTANCE = 'google-cloud-python-systest' +STANDARD_INSTANCE = "google-cloud-python-systest" def scrub_instances(client): for instance in client.list_instances(): if instance.name == STREAMING_INSTANCE: - print('Not deleting streaming instance: {}'.format( - STREAMING_INSTANCE)) + print("Not deleting streaming instance: {}".format(STREAMING_INSTANCE)) continue elif instance.name == STANDARD_INSTANCE: - print('Not deleting standard instance: {}'.format( - STANDARD_INSTANCE)) + print("Not deleting standard instance: {}".format(STANDARD_INSTANCE)) else: print("deleting instance: {}".format(instance.name)) instance.delete() -if __name__ == '__main__': +if __name__ == "__main__": client = Client() scrub_instances(client) diff --git a/spanner/tests/system/utils/streaming_utils.py b/spanner/tests/system/utils/streaming_utils.py index c2c8095f42e3..a39637bf0f44 100644 --- a/spanner/tests/system/utils/streaming_utils.py +++ b/spanner/tests/system/utils/streaming_utils.py @@ -15,22 +15,24 @@ import collections import os -INSTANCE_NAME = 'gcp-streaming-systests' -DATABASE_NAME = 'testing' -_SHOULD_PRINT = os.getenv('GOOGLE_CLOUD_NO_PRINT') != 'true' +INSTANCE_NAME = "gcp-streaming-systests" +DATABASE_NAME = "testing" +_SHOULD_PRINT = os.getenv("GOOGLE_CLOUD_NO_PRINT") != "true" -class _TableDesc(collections.namedtuple( - 'TableDesc', ('table', 'row_count', 'value_size', 'column_count'))): - +class _TableDesc( + collections.namedtuple( + "TableDesc", ("table", "row_count", "value_size", "column_count") + ) +): def value(self): - return u'X' * self.value_size + return u"X" * self.value_size -FOUR_KAY = _TableDesc('four_kay', 1000, 4096, 1) -FORTY_KAY = _TableDesc('forty_kay', 100, 4096 * 10, 1) -FOUR_HUNDRED_KAY = _TableDesc('four_hundred_kay', 25, 4096 * 100, 1) -FOUR_MEG = _TableDesc('four_meg', 10, 2048 * 1024, 2) +FOUR_KAY = _TableDesc("four_kay", 1000, 4096, 1) +FORTY_KAY = _TableDesc("forty_kay", 100, 4096 * 10, 1) +FOUR_HUNDRED_KAY = _TableDesc("four_hundred_kay", 25, 4096 * 100, 1) +FOUR_MEG = _TableDesc("four_meg", 10, 2048 * 1024, 2) def print_func(message): diff --git a/spanner/tests/unit/gapic/v1/test_database_admin_client_v1.py b/spanner/tests/unit/gapic/v1/test_database_admin_client_v1.py index 68166a94c4b6..875a195f234c 100644 --- a/spanner/tests/unit/gapic/v1/test_database_admin_client_v1.py +++ b/spanner/tests/unit/gapic/v1/test_database_admin_client_v1.py @@ -56,10 +56,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,25 +67,23 @@ class CustomException(Exception): class TestDatabaseAdminClient(object): def test_list_databases(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" databases_element = {} databases = [databases_element] - expected_response = { - 'next_page_token': next_page_token, - 'databases': databases - } + expected_response = {"next_page_token": next_page_token, "databases": databases} expected_response = spanner_database_admin_pb2.ListDatabasesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - parent = client.instance_path('[PROJECT]', '[INSTANCE]') + parent = client.instance_path("[PROJECT]", "[INSTANCE]") paged_list_response = client.list_databases(parent) resources = list(paged_list_response) @@ -98,19 +93,20 @@ def test_list_databases(self): assert len(channel.requests) == 1 expected_request = spanner_database_admin_pb2.ListDatabasesRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_databases_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup request - parent = client.instance_path('[PROJECT]', '[INSTANCE]') + parent = client.instance_path("[PROJECT]", "[INSTANCE]") paged_list_response = client.list_databases(parent) with pytest.raises(CustomException): @@ -118,24 +114,24 @@ def test_list_databases_exception(self): def test_create_database(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} - expected_response = spanner_database_admin_pb2.Database( - **expected_response) + name = "name3373707" + expected_response = {"name": name} + expected_response = spanner_database_admin_pb2.Database(**expected_response) operation = operations_pb2.Operation( - name='operations/test_create_database', done=True) + name="operations/test_create_database", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - parent = client.instance_path('[PROJECT]', '[INSTANCE]') - create_statement = 'createStatement552974828' + parent = client.instance_path("[PROJECT]", "[INSTANCE]") + create_statement = "createStatement552974828" response = client.create_database(parent, create_statement) result = response.result() @@ -143,7 +139,8 @@ def test_create_database(self): assert len(channel.requests) == 1 expected_request = spanner_database_admin_pb2.CreateDatabaseRequest( - parent=parent, create_statement=create_statement) + parent=parent, create_statement=create_statement + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -151,19 +148,20 @@ def test_create_database_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_create_database_exception', done=True) + name="operations/test_create_database_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - parent = client.instance_path('[PROJECT]', '[INSTANCE]') - create_statement = 'createStatement552974828' + parent = client.instance_path("[PROJECT]", "[INSTANCE]") + create_statement = "createStatement552974828" response = client.create_database(parent, create_statement) exception = response.exception() @@ -171,40 +169,38 @@ def test_create_database_exception(self): def test_get_database(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} - expected_response = spanner_database_admin_pb2.Database( - **expected_response) + name_2 = "name2-1052831874" + expected_response = {"name": name_2} + expected_response = spanner_database_admin_pb2.Database(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - name = client.database_path('[PROJECT]', '[INSTANCE]', '[DATABASE]') + name = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") response = client.get_database(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = spanner_database_admin_pb2.GetDatabaseRequest( - name=name) + expected_request = spanner_database_admin_pb2.GetDatabaseRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_database_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup request - name = client.database_path('[PROJECT]', '[INSTANCE]', '[DATABASE]') + name = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") with pytest.raises(CustomException): client.get_database(name) @@ -214,19 +210,19 @@ def test_update_database_ddl(self): expected_response = {} expected_response = empty_pb2.Empty(**expected_response) operation = operations_pb2.Operation( - name='operations/test_update_database_ddl', done=True) + name="operations/test_update_database_ddl", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") statements = [] response = client.update_database_ddl(database, statements) @@ -235,7 +231,8 @@ def test_update_database_ddl(self): assert len(channel.requests) == 1 expected_request = spanner_database_admin_pb2.UpdateDatabaseDdlRequest( - database=database, statements=statements) + database=database, statements=statements + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -243,19 +240,19 @@ def test_update_database_ddl_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_update_database_ddl_exception', done=True) + name="operations/test_update_database_ddl_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") statements = [] response = client.update_database_ddl(database, statements) @@ -264,34 +261,33 @@ def test_update_database_ddl_exception(self): def test_drop_database(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") client.drop_database(database) assert len(channel.requests) == 1 expected_request = spanner_database_admin_pb2.DropDatabaseRequest( - database=database) + database=database + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_drop_database_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") with pytest.raises(CustomException): client.drop_database(database) @@ -300,39 +296,39 @@ def test_get_database_ddl(self): # Setup Expected Response expected_response = {} expected_response = spanner_database_admin_pb2.GetDatabaseDdlResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") response = client.get_database_ddl(database) assert expected_response == response assert len(channel.requests) == 1 expected_request = spanner_database_admin_pb2.GetDatabaseDdlRequest( - database=database) + database=database + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_database_ddl_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") with pytest.raises(CustomException): client.get_database_ddl(database) @@ -340,20 +336,19 @@ def test_get_database_ddl_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - resource = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + resource = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") policy = {} response = client.set_iam_policy(resource, policy) @@ -361,21 +356,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup request - resource = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + resource = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") policy = {} with pytest.raises(CustomException): @@ -384,41 +379,38 @@ def test_set_iam_policy_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - resource = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + resource = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup request - resource = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + resource = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") with pytest.raises(CustomException): client.get_iam_policy(resource) @@ -427,18 +419,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup Request - resource = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + resource = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -446,21 +438,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_database_v1.DatabaseAdminClient() # Setup request - resource = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + resource = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") permissions = [] with pytest.raises(CustomException): diff --git a/spanner/tests/unit/gapic/v1/test_instance_admin_client_v1.py b/spanner/tests/unit/gapic/v1/test_instance_admin_client_v1.py index 7264198162a3..61422f97108c 100644 --- a/spanner/tests/unit/gapic/v1/test_instance_admin_client_v1.py +++ b/spanner/tests/unit/gapic/v1/test_instance_admin_client_v1.py @@ -57,10 +57,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -71,25 +68,26 @@ class CustomException(Exception): class TestInstanceAdminClient(object): def test_list_instance_configs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" instance_configs_element = {} instance_configs = [instance_configs_element] expected_response = { - 'next_page_token': next_page_token, - 'instance_configs': instance_configs + "next_page_token": next_page_token, + "instance_configs": instance_configs, } expected_response = spanner_instance_admin_pb2.ListInstanceConfigsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_instance_configs(parent) resources = list(paged_list_response) @@ -99,19 +97,20 @@ def test_list_instance_configs(self): assert len(channel.requests) == 1 expected_request = spanner_instance_admin_pb2.ListInstanceConfigsRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_instance_configs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_instance_configs(parent) with pytest.raises(CustomException): @@ -119,66 +118,66 @@ def test_list_instance_configs_exception(self): def test_get_instance_config(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - expected_response = {'name': name_2, 'display_name': display_name} + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + expected_response = {"name": name_2, "display_name": display_name} expected_response = spanner_instance_admin_pb2.InstanceConfig( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - name = client.instance_config_path('[PROJECT]', '[INSTANCE_CONFIG]') + name = client.instance_config_path("[PROJECT]", "[INSTANCE_CONFIG]") response = client.get_instance_config(name) assert expected_response == response assert len(channel.requests) == 1 expected_request = spanner_instance_admin_pb2.GetInstanceConfigRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_instance_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup request - name = client.instance_config_path('[PROJECT]', '[INSTANCE_CONFIG]') + name = client.instance_config_path("[PROJECT]", "[INSTANCE_CONFIG]") with pytest.raises(CustomException): client.get_instance_config(name) def test_list_instances(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" instances_element = {} instances = [instances_element] - expected_response = { - 'next_page_token': next_page_token, - 'instances': instances - } + expected_response = {"next_page_token": next_page_token, "instances": instances} expected_response = spanner_instance_admin_pb2.ListInstancesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_instances(parent) resources = list(paged_list_response) @@ -188,19 +187,20 @@ def test_list_instances(self): assert len(channel.requests) == 1 expected_request = spanner_instance_admin_pb2.ListInstancesRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_instances_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_instances(parent) with pytest.raises(CustomException): @@ -208,80 +208,78 @@ def test_list_instances_exception(self): def test_get_instance(self): # Setup Expected Response - name_2 = 'name2-1052831874' - config = 'config-1354792126' - display_name = 'displayName1615086568' + name_2 = "name2-1052831874" + config = "config-1354792126" + display_name = "displayName1615086568" node_count = 1539922066 expected_response = { - 'name': name_2, - 'config': config, - 'display_name': display_name, - 'node_count': node_count + "name": name_2, + "config": config, + "display_name": display_name, + "node_count": node_count, } - expected_response = spanner_instance_admin_pb2.Instance( - **expected_response) + expected_response = spanner_instance_admin_pb2.Instance(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - name = client.instance_path('[PROJECT]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[INSTANCE]") response = client.get_instance(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = spanner_instance_admin_pb2.GetInstanceRequest( - name=name) + expected_request = spanner_instance_admin_pb2.GetInstanceRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_instance_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup request - name = client.instance_path('[PROJECT]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[INSTANCE]") with pytest.raises(CustomException): client.get_instance(name) def test_create_instance(self): # Setup Expected Response - name = 'name3373707' - config = 'config-1354792126' - display_name = 'displayName1615086568' + name = "name3373707" + config = "config-1354792126" + display_name = "displayName1615086568" node_count = 1539922066 expected_response = { - 'name': name, - 'config': config, - 'display_name': display_name, - 'node_count': node_count + "name": name, + "config": config, + "display_name": display_name, + "node_count": node_count, } - expected_response = spanner_instance_admin_pb2.Instance( - **expected_response) + expected_response = spanner_instance_admin_pb2.Instance(**expected_response) operation = operations_pb2.Operation( - name='operations/test_create_instance', done=True) + name="operations/test_create_instance", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - parent = client.project_path('[PROJECT]') - instance_id = 'instanceId-2101995259' + parent = client.project_path("[PROJECT]") + instance_id = "instanceId-2101995259" instance = {} response = client.create_instance(parent, instance_id, instance) @@ -290,7 +288,8 @@ def test_create_instance(self): assert len(channel.requests) == 1 expected_request = spanner_instance_admin_pb2.CreateInstanceRequest( - parent=parent, instance_id=instance_id, instance=instance) + parent=parent, instance_id=instance_id, instance=instance + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -298,19 +297,20 @@ def test_create_instance_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_create_instance_exception', done=True) + name="operations/test_create_instance_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - parent = client.project_path('[PROJECT]') - instance_id = 'instanceId-2101995259' + parent = client.project_path("[PROJECT]") + instance_id = "instanceId-2101995259" instance = {} response = client.create_instance(parent, instance_id, instance) @@ -319,25 +319,25 @@ def test_create_instance_exception(self): def test_update_instance(self): # Setup Expected Response - name = 'name3373707' - config = 'config-1354792126' - display_name = 'displayName1615086568' + name = "name3373707" + config = "config-1354792126" + display_name = "displayName1615086568" node_count = 1539922066 expected_response = { - 'name': name, - 'config': config, - 'display_name': display_name, - 'node_count': node_count + "name": name, + "config": config, + "display_name": display_name, + "node_count": node_count, } - expected_response = spanner_instance_admin_pb2.Instance( - **expected_response) + expected_response = spanner_instance_admin_pb2.Instance(**expected_response) operation = operations_pb2.Operation( - name='operations/test_update_instance', done=True) + name="operations/test_update_instance", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() @@ -352,7 +352,8 @@ def test_update_instance(self): assert len(channel.requests) == 1 expected_request = spanner_instance_admin_pb2.UpdateInstanceRequest( - instance=instance, field_mask=field_mask) + instance=instance, field_mask=field_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -360,12 +361,13 @@ def test_update_instance_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_update_instance_exception', done=True) + name="operations/test_update_instance_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() @@ -380,32 +382,31 @@ def test_update_instance_exception(self): def test_delete_instance(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - name = client.instance_path('[PROJECT]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[INSTANCE]") client.delete_instance(name) assert len(channel.requests) == 1 - expected_request = spanner_instance_admin_pb2.DeleteInstanceRequest( - name=name) + expected_request = spanner_instance_admin_pb2.DeleteInstanceRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_instance_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup request - name = client.instance_path('[PROJECT]', '[INSTANCE]') + name = client.instance_path("[PROJECT]", "[INSTANCE]") with pytest.raises(CustomException): client.delete_instance(name) @@ -413,19 +414,19 @@ def test_delete_instance_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - resource = client.instance_path('[PROJECT]', '[INSTANCE]') + resource = client.instance_path("[PROJECT]", "[INSTANCE]") policy = {} response = client.set_iam_policy(resource, policy) @@ -433,20 +434,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup request - resource = client.instance_path('[PROJECT]', '[INSTANCE]') + resource = client.instance_path("[PROJECT]", "[INSTANCE]") policy = {} with pytest.raises(CustomException): @@ -455,39 +457,38 @@ def test_set_iam_policy_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - resource = client.instance_path('[PROJECT]', '[INSTANCE]') + resource = client.instance_path("[PROJECT]", "[INSTANCE]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup request - resource = client.instance_path('[PROJECT]', '[INSTANCE]') + resource = client.instance_path("[PROJECT]", "[INSTANCE]") with pytest.raises(CustomException): client.get_iam_policy(resource) @@ -496,17 +497,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup Request - resource = client.instance_path('[PROJECT]', '[INSTANCE]') + resource = client.instance_path("[PROJECT]", "[INSTANCE]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -514,20 +516,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_admin_instance_v1.InstanceAdminClient() # Setup request - resource = client.instance_path('[PROJECT]', '[INSTANCE]') + resource = client.instance_path("[PROJECT]", "[INSTANCE]") permissions = [] with pytest.raises(CustomException): diff --git a/spanner/tests/unit/gapic/v1/test_spanner_client_v1.py b/spanner/tests/unit/gapic/v1/test_spanner_client_v1.py index 335eb99889f4..c1a19fe793f9 100644 --- a/spanner/tests/unit/gapic/v1/test_spanner_client_v1.py +++ b/spanner/tests/unit/gapic/v1/test_spanner_client_v1.py @@ -54,16 +54,10 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) - def unary_stream(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_stream(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -74,20 +68,19 @@ class CustomException(Exception): class TestSpannerClient(object): def test_create_session(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = spanner_pb2.Session(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") response = client.create_session(database) assert expected_response == response @@ -100,34 +93,32 @@ def test_create_session(self): def test_create_session_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") with pytest.raises(CustomException): client.create_session(database) def test_get_session(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = spanner_pb2.Session(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - name = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') + name = client.session_path("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]") response = client.get_session(name) assert expected_response == response @@ -140,40 +131,34 @@ def test_get_session(self): def test_get_session_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - name = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') + name = client.session_path("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]") with pytest.raises(CustomException): client.get_session(name) def test_list_sessions(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" sessions_element = {} sessions = [sessions_element] - expected_response = { - 'next_page_token': next_page_token, - 'sessions': sessions - } - expected_response = spanner_pb2.ListSessionsResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "sessions": sessions} + expected_response = spanner_pb2.ListSessionsResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") paged_list_response = client.list_sessions(database) resources = list(paged_list_response) @@ -188,14 +173,13 @@ def test_list_sessions(self): def test_list_sessions_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - database = client.database_path('[PROJECT]', '[INSTANCE]', - '[DATABASE]') + database = client.database_path("[PROJECT]", "[INSTANCE]", "[DATABASE]") paged_list_response = client.list_sessions(database) with pytest.raises(CustomException): @@ -203,14 +187,13 @@ def test_list_sessions_exception(self): def test_delete_session(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - name = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') + name = client.session_path("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]") client.delete_session(name) @@ -222,14 +205,13 @@ def test_delete_session(self): def test_delete_session_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - name = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') + name = client.session_path("[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]") with pytest.raises(CustomException): client.delete_session(name) @@ -241,37 +223,38 @@ def test_execute_sql(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - sql = 'sql114126' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + sql = "sql114126" response = client.execute_sql(session, sql) assert expected_response == response assert len(channel.requests) == 1 - expected_request = spanner_pb2.ExecuteSqlRequest( - session=session, sql=sql) + expected_request = spanner_pb2.ExecuteSqlRequest(session=session, sql=sql) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_execute_sql_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - sql = 'sql114126' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + sql = "sql114126" with pytest.raises(CustomException): client.execute_sql(session, sql) @@ -279,25 +262,25 @@ def test_execute_sql_exception(self): def test_execute_streaming_sql(self): # Setup Expected Response chunked_value = True - resume_token = b'103' + resume_token = b"103" expected_response = { - 'chunked_value': chunked_value, - 'resume_token': resume_token + "chunked_value": chunked_value, + "resume_token": resume_token, } - expected_response = result_set_pb2.PartialResultSet( - **expected_response) + expected_response = result_set_pb2.PartialResultSet(**expected_response) # Mock the API response channel = ChannelStub(responses=[iter([expected_response])]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - sql = 'sql114126' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + sql = "sql114126" response = client.execute_streaming_sql(session, sql) resources = list(response) @@ -305,23 +288,23 @@ def test_execute_streaming_sql(self): assert expected_response == resources[0] assert len(channel.requests) == 1 - expected_request = spanner_pb2.ExecuteSqlRequest( - session=session, sql=sql) + expected_request = spanner_pb2.ExecuteSqlRequest(session=session, sql=sql) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_execute_streaming_sql_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - sql = 'sql114126' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + sql = "sql114126" with pytest.raises(CustomException): client.execute_streaming_sql(session, sql) @@ -333,15 +316,16 @@ def test_read(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - table = 'table110115790' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + table = "table110115790" columns = [] key_set = {} @@ -350,22 +334,24 @@ def test_read(self): assert len(channel.requests) == 1 expected_request = spanner_pb2.ReadRequest( - session=session, table=table, columns=columns, key_set=key_set) + session=session, table=table, columns=columns, key_set=key_set + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_read_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - table = 'table110115790' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + table = "table110115790" columns = [] key_set = {} @@ -375,25 +361,25 @@ def test_read_exception(self): def test_streaming_read(self): # Setup Expected Response chunked_value = True - resume_token = b'103' + resume_token = b"103" expected_response = { - 'chunked_value': chunked_value, - 'resume_token': resume_token + "chunked_value": chunked_value, + "resume_token": resume_token, } - expected_response = result_set_pb2.PartialResultSet( - **expected_response) + expected_response = result_set_pb2.PartialResultSet(**expected_response) # Mock the API response channel = ChannelStub(responses=[iter([expected_response])]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - table = 'table110115790' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + table = "table110115790" columns = [] key_set = {} @@ -404,22 +390,24 @@ def test_streaming_read(self): assert len(channel.requests) == 1 expected_request = spanner_pb2.ReadRequest( - session=session, table=table, columns=columns, key_set=key_set) + session=session, table=table, columns=columns, key_set=key_set + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_streaming_read_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - table = 'table110115790' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + table = "table110115790" columns = [] key_set = {} @@ -428,20 +416,21 @@ def test_streaming_read_exception(self): def test_begin_transaction(self): # Setup Expected Response - id_ = b'27' - expected_response = {'id': id_} + id_ = b"27" + expected_response = {"id": id_} expected_response = transaction_pb2.Transaction(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) options_ = {} response = client.begin_transaction(session, options_) @@ -449,21 +438,23 @@ def test_begin_transaction(self): assert len(channel.requests) == 1 expected_request = spanner_pb2.BeginTransactionRequest( - session=session, options=options_) + session=session, options=options_ + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_begin_transaction_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) options_ = {} with pytest.raises(CustomException): @@ -476,14 +467,15 @@ def test_commit(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) mutations = [] response = client.commit(session, mutations) @@ -491,21 +483,23 @@ def test_commit(self): assert len(channel.requests) == 1 expected_request = spanner_pb2.CommitRequest( - session=session, mutations=mutations) + session=session, mutations=mutations + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_commit_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) mutations = [] with pytest.raises(CustomException): @@ -513,36 +507,39 @@ def test_commit_exception(self): def test_rollback(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - transaction_id = b'28' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + transaction_id = b"28" client.rollback(session, transaction_id) assert len(channel.requests) == 1 expected_request = spanner_pb2.RollbackRequest( - session=session, transaction_id=transaction_id) + session=session, transaction_id=transaction_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_rollback_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - transaction_id = b'28' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + transaction_id = b"28" with pytest.raises(CustomException): client.rollback(session, transaction_id) @@ -554,37 +551,38 @@ def test_partition_query(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - sql = 'sql114126' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + sql = "sql114126" response = client.partition_query(session, sql) assert expected_response == response assert len(channel.requests) == 1 - expected_request = spanner_pb2.PartitionQueryRequest( - session=session, sql=sql) + expected_request = spanner_pb2.PartitionQueryRequest(session=session, sql=sql) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_partition_query_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - sql = 'sql114126' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + sql = "sql114126" with pytest.raises(CustomException): client.partition_query(session, sql) @@ -596,15 +594,16 @@ def test_partition_read(self): # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup Request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - table = 'table110115790' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + table = "table110115790" key_set = {} response = client.partition_read(session, table, key_set) @@ -612,22 +611,24 @@ def test_partition_read(self): assert len(channel.requests) == 1 expected_request = spanner_pb2.PartitionReadRequest( - session=session, table=table, key_set=key_set) + session=session, table=table, key_set=key_set + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_partition_read_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = spanner_v1.SpannerClient() # Setup request - session = client.session_path('[PROJECT]', '[INSTANCE]', '[DATABASE]', - '[SESSION]') - table = 'table110115790' + session = client.session_path( + "[PROJECT]", "[INSTANCE]", "[DATABASE]", "[SESSION]" + ) + table = "table110115790" key_set = {} with pytest.raises(CustomException): diff --git a/spanner/tests/unit/test__helpers.py b/spanner/tests/unit/test__helpers.py index 5549e52ea131..86ce78727b46 100644 --- a/spanner/tests/unit/test__helpers.py +++ b/spanner/tests/unit/test__helpers.py @@ -17,7 +17,6 @@ class Test_make_value_pb(unittest.TestCase): - def _callFUT(self, *args, **kw): from google.cloud.spanner_v1._helpers import _make_value_pb @@ -25,26 +24,26 @@ def _callFUT(self, *args, **kw): def test_w_None(self): value_pb = self._callFUT(None) - self.assertTrue(value_pb.HasField('null_value')) + self.assertTrue(value_pb.HasField("null_value")) def test_w_bytes(self): from google.protobuf.struct_pb2 import Value - BYTES = b'BYTES' + BYTES = b"BYTES" expected = Value(string_value=BYTES) value_pb = self._callFUT(BYTES) self.assertIsInstance(value_pb, Value) self.assertEqual(value_pb, expected) def test_w_invalid_bytes(self): - BYTES = b'\xff\xfe\x03&' + BYTES = b"\xff\xfe\x03&" with self.assertRaises(ValueError): self._callFUT(BYTES) def test_w_explicit_unicode(self): from google.protobuf.struct_pb2 import Value - TEXT = u'TEXT' + TEXT = u"TEXT" value_pb = self._callFUT(TEXT) self.assertIsInstance(value_pb, Value) self.assertEqual(value_pb.string_value, TEXT) @@ -53,23 +52,21 @@ def test_w_list(self): from google.protobuf.struct_pb2 import Value from google.protobuf.struct_pb2 import ListValue - value_pb = self._callFUT([u'a', u'b', u'c']) + value_pb = self._callFUT([u"a", u"b", u"c"]) self.assertIsInstance(value_pb, Value) self.assertIsInstance(value_pb.list_value, ListValue) values = value_pb.list_value.values - self.assertEqual([value.string_value for value in values], - [u'a', u'b', u'c']) + self.assertEqual([value.string_value for value in values], [u"a", u"b", u"c"]) def test_w_tuple(self): from google.protobuf.struct_pb2 import Value from google.protobuf.struct_pb2 import ListValue - value_pb = self._callFUT((u'a', u'b', u'c')) + value_pb = self._callFUT((u"a", u"b", u"c")) self.assertIsInstance(value_pb, Value) self.assertIsInstance(value_pb.list_value, ListValue) values = value_pb.list_value.values - self.assertEqual([value.string_value for value in values], - [u'a', u'b', u'c']) + self.assertEqual([value.string_value for value in values], [u"a", u"b", u"c"]) def test_w_bool(self): from google.protobuf.struct_pb2 import Value @@ -85,7 +82,7 @@ def test_w_int(self): for int_type in six.integer_types: # include 'long' on Python 2 value_pb = self._callFUT(int_type(42)) self.assertIsInstance(value_pb, Value) - self.assertEqual(value_pb.string_value, '42') + self.assertEqual(value_pb.string_value, "42") def test_w_float(self): from google.protobuf.struct_pb2 import Value @@ -97,23 +94,23 @@ def test_w_float(self): def test_w_float_nan(self): from google.protobuf.struct_pb2 import Value - value_pb = self._callFUT(float('nan')) + value_pb = self._callFUT(float("nan")) self.assertIsInstance(value_pb, Value) - self.assertEqual(value_pb.string_value, 'NaN') + self.assertEqual(value_pb.string_value, "NaN") def test_w_float_neg_inf(self): from google.protobuf.struct_pb2 import Value - value_pb = self._callFUT(float('-inf')) + value_pb = self._callFUT(float("-inf")) self.assertIsInstance(value_pb, Value) - self.assertEqual(value_pb.string_value, '-Infinity') + self.assertEqual(value_pb.string_value, "-Infinity") def test_w_float_pos_inf(self): from google.protobuf.struct_pb2 import Value - value_pb = self._callFUT(float('inf')) + value_pb = self._callFUT(float("inf")) self.assertIsInstance(value_pb, Value) - self.assertEqual(value_pb.string_value, 'Infinity') + self.assertEqual(value_pb.string_value, "Infinity") def test_w_date(self): import datetime @@ -130,7 +127,8 @@ def test_w_timestamp_w_nanos(self): from google.api_core import datetime_helpers when = datetime_helpers.DatetimeWithNanoseconds( - 2016, 12, 20, 21, 13, 47, nanosecond=123456789, tzinfo=pytz.UTC) + 2016, 12, 20, 21, 13, 47, nanosecond=123456789, tzinfo=pytz.UTC + ) value_pb = self._callFUT(when) self.assertIsInstance(value_pb, Value) self.assertEqual(value_pb.string_value, when.rfc3339()) @@ -153,9 +151,7 @@ def test_w_datetime(self): now = datetime.datetime.utcnow().replace(tzinfo=pytz.UTC) value_pb = self._callFUT(now) self.assertIsInstance(value_pb, Value) - self.assertEqual( - value_pb.string_value, - datetime_helpers.to_rfc3339(now)) + self.assertEqual(value_pb.string_value, datetime_helpers.to_rfc3339(now)) def test_w_unknown_type(self): with self.assertRaises(ValueError): @@ -163,7 +159,6 @@ def test_w_unknown_type(self): class Test_make_list_value_pb(unittest.TestCase): - def _callFUT(self, *args, **kw): from google.cloud.spanner_v1._helpers import _make_list_value_pb @@ -179,7 +174,7 @@ def test_empty(self): def test_w_single_value(self): from google.protobuf.struct_pb2 import ListValue - VALUE = u'value' + VALUE = u"value" result = self._callFUT(values=[VALUE]) self.assertIsInstance(result, ListValue) self.assertEqual(len(result.values), 1) @@ -188,7 +183,7 @@ def test_w_single_value(self): def test_w_multiple_values(self): from google.protobuf.struct_pb2 import ListValue - VALUE_1 = u'value' + VALUE_1 = u"value" VALUE_2 = 42 result = self._callFUT(values=[VALUE_1, VALUE_2]) self.assertIsInstance(result, ListValue) @@ -198,7 +193,6 @@ def test_w_multiple_values(self): class Test_make_list_value_pbs(unittest.TestCase): - def _callFUT(self, *args, **kw): from google.cloud.spanner_v1._helpers import _make_list_value_pbs @@ -222,7 +216,7 @@ def test_w_single_values(self): def test_w_multiple_values(self): from google.protobuf.struct_pb2 import ListValue - values = [[0, u'A'], [1, u'B']] + values = [[0, u"A"], [1, u"B"]] result = self._callFUT(values=values) self.assertEqual(len(result), len(values)) for found, expected in zip(result, values): @@ -233,7 +227,6 @@ def test_w_multiple_values(self): class Test_parse_value_pb(unittest.TestCase): - def _callFUT(self, *args, **kw): from google.cloud.spanner_v1._helpers import _parse_value_pb @@ -252,7 +245,7 @@ def test_w_string(self): from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.type_pb2 import Type, STRING - VALUE = u'Value' + VALUE = u"Value" field_type = Type(code=STRING) value_pb = Value(string_value=VALUE) @@ -262,7 +255,7 @@ def test_w_bytes(self): from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.type_pb2 import Type, BYTES - VALUE = b'Value' + VALUE = b"Value" field_type = Type(code=BYTES) value_pb = Value(string_value=VALUE) @@ -317,17 +310,13 @@ def test_w_timestamp_wo_nanos(self): from google.cloud.spanner_v1.proto.type_pb2 import Type value = datetime_helpers.DatetimeWithNanoseconds( - 2016, 12, 20, 21, 13, 47, - microsecond=123456, - tzinfo=pytz.UTC) + 2016, 12, 20, 21, 13, 47, microsecond=123456, tzinfo=pytz.UTC + ) field_type = Type(code=TIMESTAMP) - value_pb = Value( - string_value=datetime_helpers.to_rfc3339(value)) + value_pb = Value(string_value=datetime_helpers.to_rfc3339(value)) parsed = self._callFUT(value_pb, field_type) - self.assertIsInstance( - parsed, - datetime_helpers.DatetimeWithNanoseconds) + self.assertIsInstance(parsed, datetime_helpers.DatetimeWithNanoseconds) self.assertEqual(parsed, value) def test_w_timestamp_w_nanos(self): @@ -338,17 +327,13 @@ def test_w_timestamp_w_nanos(self): from google.cloud.spanner_v1.proto.type_pb2 import Type value = datetime_helpers.DatetimeWithNanoseconds( - 2016, 12, 20, 21, 13, 47, - nanosecond=123456789, - tzinfo=pytz.UTC) + 2016, 12, 20, 21, 13, 47, nanosecond=123456789, tzinfo=pytz.UTC + ) field_type = Type(code=TIMESTAMP) - value_pb = Value( - string_value=datetime_helpers.to_rfc3339(value)) + value_pb = Value(string_value=datetime_helpers.to_rfc3339(value)) parsed = self._callFUT(value_pb, field_type) - self.assertIsInstance( - parsed, - datetime_helpers.DatetimeWithNanoseconds) + self.assertIsInstance(parsed, datetime_helpers.DatetimeWithNanoseconds) self.assertEqual(parsed, value) def test_w_array_empty(self): @@ -367,7 +352,8 @@ def test_w_array_non_empty(self): field_type = Type(code=ARRAY, array_element_type=Type(code=INT64)) VALUES = [32, 19, 5] values_pb = ListValue( - values=[Value(string_value=str(value)) for value in VALUES]) + values=[Value(string_value=str(value)) for value in VALUES] + ) value_pb = Value(list_value=values_pb) self.assertEqual(self._callFUT(value_pb, field_type), VALUES) @@ -375,15 +361,16 @@ def test_w_array_non_empty(self): def test_w_struct(self): from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.type_pb2 import Type, StructType - from google.cloud.spanner_v1.proto.type_pb2 import ( - STRUCT, STRING, INT64) + from google.cloud.spanner_v1.proto.type_pb2 import STRUCT, STRING, INT64 from google.cloud.spanner_v1._helpers import _make_list_value_pb - VALUES = [u'phred', 32] - struct_type_pb = StructType(fields=[ - StructType.Field(name='name', type=Type(code=STRING)), - StructType.Field(name='age', type=Type(code=INT64)), - ]) + VALUES = [u"phred", 32] + struct_type_pb = StructType( + fields=[ + StructType.Field(name="name", type=Type(code=STRING)), + StructType.Field(name="age", type=Type(code=INT64)), + ] + ) field_type = Type(code=STRUCT, struct_type=struct_type_pb) value_pb = Value(list_value=_make_list_value_pb(VALUES)) @@ -392,18 +379,16 @@ def test_w_struct(self): def test_w_unknown_type(self): from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.type_pb2 import Type - from google.cloud.spanner_v1.proto.type_pb2 import ( - TYPE_CODE_UNSPECIFIED) + from google.cloud.spanner_v1.proto.type_pb2 import TYPE_CODE_UNSPECIFIED field_type = Type(code=TYPE_CODE_UNSPECIFIED) - value_pb = Value(string_value='Borked') + value_pb = Value(string_value="Borked") with self.assertRaises(ValueError): self._callFUT(value_pb, field_type) class Test_parse_list_value_pbs(unittest.TestCase): - def _callFUT(self, *args, **kw): from google.cloud.spanner_v1._helpers import _parse_list_value_pbs @@ -413,10 +398,12 @@ def test_empty(self): from google.cloud.spanner_v1.proto.type_pb2 import Type, StructType from google.cloud.spanner_v1.proto.type_pb2 import STRING, INT64 - struct_type_pb = StructType(fields=[ - StructType.Field(name='name', type=Type(code=STRING)), - StructType.Field(name='age', type=Type(code=INT64)), - ]) + struct_type_pb = StructType( + fields=[ + StructType.Field(name="name", type=Type(code=STRING)), + StructType.Field(name="age", type=Type(code=INT64)), + ] + ) self.assertEqual(self._callFUT(rows=[], row_type=struct_type_pb), []) @@ -425,22 +412,21 @@ def test_non_empty(self): from google.cloud.spanner_v1.proto.type_pb2 import STRING, INT64 from google.cloud.spanner_v1._helpers import _make_list_value_pbs - VALUES = [ - [u'phred', 32], - [u'bharney', 31], - ] - struct_type_pb = StructType(fields=[ - StructType.Field(name='name', type=Type(code=STRING)), - StructType.Field(name='age', type=Type(code=INT64)), - ]) + VALUES = [[u"phred", 32], [u"bharney", 31]] + struct_type_pb = StructType( + fields=[ + StructType.Field(name="name", type=Type(code=STRING)), + StructType.Field(name="age", type=Type(code=INT64)), + ] + ) values_pbs = _make_list_value_pbs(VALUES) self.assertEqual( - self._callFUT(rows=values_pbs, row_type=struct_type_pb), VALUES) + self._callFUT(rows=values_pbs, row_type=struct_type_pb), VALUES + ) class Test_SessionWrapper(unittest.TestCase): - def _getTargetClass(self): from google.cloud.spanner_v1._helpers import _SessionWrapper @@ -456,14 +442,12 @@ def test_ctor(self): class Test_metadata_with_prefix(unittest.TestCase): - def _call_fut(self, *args, **kw): from google.cloud.spanner_v1._helpers import _metadata_with_prefix return _metadata_with_prefix(*args, **kw) def test(self): - prefix = 'prefix' + prefix = "prefix" metadata = self._call_fut(prefix) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', prefix)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", prefix)]) diff --git a/spanner/tests/unit/test_batch.py b/spanner/tests/unit/test_batch.py index 63659bb73551..f4fd9d12ab3d 100644 --- a/spanner/tests/unit/test_batch.py +++ b/spanner/tests/unit/test_batch.py @@ -16,30 +16,29 @@ import unittest -TABLE_NAME = 'citizens' -COLUMNS = ['email', 'first_name', 'last_name', 'age'] +TABLE_NAME = "citizens" +COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - [u'phred@exammple.com', u'Phred', u'Phlyntstone', 32], - [u'bharney@example.com', u'Bharney', u'Rhubble', 31], + [u"phred@exammple.com", u"Phred", u"Phlyntstone", 32], + [u"bharney@example.com", u"Bharney", u"Rhubble", 31], ] class _BaseTest(unittest.TestCase): - PROJECT_ID = 'project-id' - INSTANCE_ID = 'instance-id' - INSTANCE_NAME = 'projects/' + PROJECT_ID + '/instances/' + INSTANCE_ID - DATABASE_ID = 'database-id' - DATABASE_NAME = INSTANCE_NAME + '/databases/' + DATABASE_ID - SESSION_ID = 'session-id' - SESSION_NAME = DATABASE_NAME + '/sessions/' + SESSION_ID + PROJECT_ID = "project-id" + INSTANCE_ID = "instance-id" + INSTANCE_NAME = "projects/" + PROJECT_ID + "/instances/" + INSTANCE_ID + DATABASE_ID = "database-id" + DATABASE_NAME = INSTANCE_NAME + "/databases/" + DATABASE_ID + SESSION_ID = "session-id" + SESSION_NAME = DATABASE_NAME + "/sessions/" + SESSION_ID def _make_one(self, *args, **kwargs): return self._getTargetClass()(*args, **kwargs) class Test_BatchBase(_BaseTest): - def _getTargetClass(self): from google.cloud.spanner_v1.batch import _BatchBase @@ -55,8 +54,7 @@ def _compare_values(self, result, source): for found_cell, expected_cell in zip(found.values, expected): self.assertIsInstance(found_cell, Value) if isinstance(expected_cell, int): - self.assertEqual( - int(found_cell.string_value), expected_cell) + self.assertEqual(int(found_cell.string_value), expected_cell) else: self.assertEqual(found_cell.string_value, expected_cell) @@ -162,11 +160,11 @@ def test_delete(self): self.assertEqual(len(key_set_pb.keys), len(keys)) for found, expected in zip(key_set_pb.keys, keys): self.assertEqual( - [int(value.string_value) for value in found.values], expected) + [int(value.string_value) for value in found.values], expected + ) class TestBatch(_BaseTest): - def _getTargetClass(self): from google.cloud.spanner_v1.batch import Batch @@ -209,8 +207,7 @@ def test_commit_grpc_error(self): def test_commit_ok(self): import datetime from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse - from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionOptions) + from google.cloud.spanner_v1.proto.transaction_pb2 import TransactionOptions from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp @@ -218,8 +215,7 @@ def test_commit_ok(self): now_pb = _datetime_to_pb_timestamp(now) response = CommitResponse(commit_timestamp=now_pb) database = _Database() - api = database.spanner_api = _FauxSpannerAPI( - _commit_response=response) + api = database.spanner_api = _FauxSpannerAPI(_commit_response=response) session = _Session(database) batch = self._make_one(session) batch.insert(TABLE_NAME, COLUMNS, VALUES) @@ -233,9 +229,8 @@ def test_commit_ok(self): self.assertEqual(session, self.SESSION_NAME) self.assertEqual(mutations, batch._mutations) self.assertIsInstance(single_use_txn, TransactionOptions) - self.assertTrue(single_use_txn.HasField('read_write')) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', database.name)]) + self.assertTrue(single_use_txn.HasField("read_write")) + self.assertEqual(metadata, [("google-cloud-resource-prefix", database.name)]) def test_context_mgr_already_committed(self): import datetime @@ -257,8 +252,7 @@ def test_context_mgr_already_committed(self): def test_context_mgr_success(self): import datetime from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse - from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionOptions) + from google.cloud.spanner_v1.proto.transaction_pb2 import TransactionOptions from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp @@ -266,8 +260,7 @@ def test_context_mgr_success(self): now_pb = _datetime_to_pb_timestamp(now) response = CommitResponse(commit_timestamp=now_pb) database = _Database() - api = database.spanner_api = _FauxSpannerAPI( - _commit_response=response) + api = database.spanner_api = _FauxSpannerAPI(_commit_response=response) session = _Session(database) batch = self._make_one(session) @@ -280,9 +273,8 @@ def test_context_mgr_success(self): self.assertEqual(session, self.SESSION_NAME) self.assertEqual(mutations, batch._mutations) self.assertIsInstance(single_use_txn, TransactionOptions) - self.assertTrue(single_use_txn.HasField('read_write')) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', database.name)]) + self.assertTrue(single_use_txn.HasField("read_write")) + self.assertEqual(metadata, [("google-cloud-resource-prefix", database.name)]) def test_context_mgr_failure(self): import datetime @@ -294,8 +286,7 @@ def test_context_mgr_failure(self): now_pb = _datetime_to_pb_timestamp(now) response = CommitResponse(commit_timestamp=now_pb) database = _Database() - api = database.spanner_api = _FauxSpannerAPI( - _commit_response=response) + api = database.spanner_api = _FauxSpannerAPI(_commit_response=response) session = _Session(database) batch = self._make_one(session) @@ -313,17 +304,16 @@ class _BailOut(Exception): class _Session(object): - def __init__(self, database=None, name=TestBatch.SESSION_NAME): self._database = database self.name = name class _Database(object): - name = 'testing' + name = "testing" -class _FauxSpannerAPI(): +class _FauxSpannerAPI: _create_instance_conflict = False _instance_not_found = False @@ -333,13 +323,18 @@ class _FauxSpannerAPI(): def __init__(self, **kwargs): self.__dict__.update(**kwargs) - def commit(self, session, mutations, - transaction_id='', single_use_transaction=None, metadata=None): + def commit( + self, + session, + mutations, + transaction_id="", + single_use_transaction=None, + metadata=None, + ): from google.api_core.exceptions import Unknown - assert transaction_id == '' - self._committed = ( - session, mutations, single_use_transaction, metadata) + assert transaction_id == "" + self._committed = (session, mutations, single_use_transaction, metadata) if self._rpc_error: - raise Unknown('error') + raise Unknown("error") return self._commit_response diff --git a/spanner/tests/unit/test_client.py b/spanner/tests/unit/test_client.py index 354fead25b0d..b37e2848eb7e 100644 --- a/spanner/tests/unit/test_client.py +++ b/spanner/tests/unit/test_client.py @@ -21,8 +21,8 @@ def _make_credentials(): import google.auth.credentials class _CredentialsWithScopes( - google.auth.credentials.Credentials, - google.auth.credentials.Scoped): + google.auth.credentials.Credentials, google.auth.credentials.Scoped + ): pass return mock.Mock(spec=_CredentialsWithScopes) @@ -30,15 +30,15 @@ class _CredentialsWithScopes( class TestClient(unittest.TestCase): - PROJECT = 'PROJECT' - PATH = 'projects/%s' % (PROJECT,) - CONFIGURATION_NAME = 'config-name' - INSTANCE_ID = 'instance-id' - INSTANCE_NAME = '%s/instances/%s' % (PATH, INSTANCE_ID) - DISPLAY_NAME = 'display-name' + PROJECT = "PROJECT" + PATH = "projects/%s" % (PROJECT,) + CONFIGURATION_NAME = "config-name" + INSTANCE_ID = "instance-id" + INSTANCE_NAME = "%s/instances/%s" % (PATH, INSTANCE_ID) + DISPLAY_NAME = "display-name" NODE_COUNT = 5 TIMEOUT_SECONDS = 80 - USER_AGENT = 'you-sir-age-int' + USER_AGENT = "you-sir-age-int" def _get_target_class(self): from google.cloud import spanner @@ -48,14 +48,15 @@ def _get_target_class(self): def _make_one(self, *args, **kwargs): return self._get_target_class()(*args, **kwargs) - def _constructor_test_helper(self, expected_scopes, creds, - user_agent=None, - expected_creds=None): + def _constructor_test_helper( + self, expected_scopes, creds, user_agent=None, expected_creds=None + ): from google.cloud.spanner_v1 import client as MUT user_agent = user_agent or MUT.DEFAULT_USER_AGENT - client = self._make_one(project=self.PROJECT, credentials=creds, - user_agent=user_agent) + client = self._make_one( + project=self.PROJECT, credentials=creds, user_agent=user_agent + ) expected_creds = expected_creds or creds.with_scopes.return_value self.assertIs(client._credentials, expected_creds) @@ -70,32 +71,28 @@ def _constructor_test_helper(self, expected_scopes, creds, def test_constructor_default_scopes(self): from google.cloud.spanner_v1 import client as MUT - expected_scopes = ( - MUT.SPANNER_ADMIN_SCOPE, - ) + expected_scopes = (MUT.SPANNER_ADMIN_SCOPE,) creds = _make_credentials() self._constructor_test_helper(expected_scopes, creds) def test_constructor_custom_user_agent_and_timeout(self): from google.cloud.spanner_v1 import client as MUT - CUSTOM_USER_AGENT = 'custom-application' - expected_scopes = ( - MUT.SPANNER_ADMIN_SCOPE, - ) + CUSTOM_USER_AGENT = "custom-application" + expected_scopes = (MUT.SPANNER_ADMIN_SCOPE,) creds = _make_credentials() - self._constructor_test_helper(expected_scopes, creds, - user_agent=CUSTOM_USER_AGENT) + self._constructor_test_helper( + expected_scopes, creds, user_agent=CUSTOM_USER_AGENT + ) def test_constructor_implicit_credentials(self): creds = _make_credentials() - patch = mock.patch( - 'google.auth.default', return_value=(creds, None)) + patch = mock.patch("google.auth.default", return_value=(creds, None)) with patch as default: self._constructor_test_helper( - None, None, - expected_creds=creds.with_scopes.return_value) + None, None, expected_creds=creds.with_scopes.return_value + ) default.assert_called_once_with() @@ -105,14 +102,13 @@ def test_constructor_credentials_wo_create_scoped(self): self._constructor_test_helper(expected_scopes, creds) def test_instance_admin_api(self): - from google.cloud.spanner_v1.client import ( - _CLIENT_INFO, SPANNER_ADMIN_SCOPE) + from google.cloud.spanner_v1.client import _CLIENT_INFO, SPANNER_ADMIN_SCOPE credentials = _make_credentials() client = self._make_one(project=self.PROJECT, credentials=credentials) expected_scopes = (SPANNER_ADMIN_SCOPE,) - inst_module = 'google.cloud.spanner_v1.client.InstanceAdminClient' + inst_module = "google.cloud.spanner_v1.client.InstanceAdminClient" with mock.patch(inst_module) as instance_admin_client: api = client.instance_admin_api @@ -123,20 +119,19 @@ def test_instance_admin_api(self): self.assertIs(again, api) instance_admin_client.assert_called_once_with( - credentials=credentials.with_scopes.return_value, - client_info=_CLIENT_INFO) + credentials=credentials.with_scopes.return_value, client_info=_CLIENT_INFO + ) credentials.with_scopes.assert_called_once_with(expected_scopes) def test_database_admin_api(self): - from google.cloud.spanner_v1.client import ( - _CLIENT_INFO, SPANNER_ADMIN_SCOPE) + from google.cloud.spanner_v1.client import _CLIENT_INFO, SPANNER_ADMIN_SCOPE credentials = _make_credentials() client = self._make_one(project=self.PROJECT, credentials=credentials) expected_scopes = (SPANNER_ADMIN_SCOPE,) - db_module = 'google.cloud.spanner_v1.client.DatabaseAdminClient' + db_module = "google.cloud.spanner_v1.client.DatabaseAdminClient" with mock.patch(db_module) as database_admin_client: api = client.database_admin_api @@ -147,8 +142,8 @@ def test_database_admin_api(self): self.assertIs(again, api) database_admin_client.assert_called_once_with( - credentials=credentials.with_scopes.return_value, - client_info=_CLIENT_INFO) + credentials=credentials.with_scopes.return_value, client_info=_CLIENT_INFO + ) credentials.with_scopes.assert_called_once_with(expected_scopes) @@ -158,9 +153,8 @@ def test_copy(self): credentials.requires_scopes = False client = self._make_one( - project=self.PROJECT, - credentials=credentials, - user_agent=self.USER_AGENT) + project=self.PROJECT, credentials=credentials, user_agent=self.USER_AGENT + ) new_client = client.copy() self.assertIs(new_client._credentials, client._credentials) @@ -175,14 +169,14 @@ def test_credentials_property(self): def test_project_name_property(self): credentials = _make_credentials() client = self._make_one(project=self.PROJECT, credentials=credentials) - project_name = 'projects/' + self.PROJECT + project_name = "projects/" + self.PROJECT self.assertEqual(client.project_name, project_name) def test_list_instance_configs(self): - from google.cloud.spanner_admin_instance_v1.gapic import ( - instance_admin_client) + from google.cloud.spanner_admin_instance_v1.gapic import instance_admin_client from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2) + spanner_instance_admin_pb2, + ) from google.cloud.spanner_v1.client import InstanceConfig api = instance_admin_client.InstanceAdminClient(mock.Mock()) @@ -190,18 +184,17 @@ def test_list_instance_configs(self): client = self._make_one(project=self.PROJECT, credentials=credentials) client._instance_admin_api = api - instance_config_pbs = ( - spanner_instance_admin_pb2.ListInstanceConfigsResponse( - instance_configs=[ - spanner_instance_admin_pb2.InstanceConfig( - name=self.CONFIGURATION_NAME, - display_name=self.DISPLAY_NAME), - ] - ) + instance_config_pbs = spanner_instance_admin_pb2.ListInstanceConfigsResponse( + instance_configs=[ + spanner_instance_admin_pb2.InstanceConfig( + name=self.CONFIGURATION_NAME, display_name=self.DISPLAY_NAME + ) + ] ) - lic_api = api._inner_api_calls['list_instance_configs'] = mock.Mock( - return_value=instance_config_pbs) + lic_api = api._inner_api_calls["list_instance_configs"] = mock.Mock( + return_value=instance_config_pbs + ) response = client.list_instance_configs() instance_configs = list(response) @@ -212,48 +205,47 @@ def test_list_instance_configs(self): self.assertEqual(instance_config.display_name, self.DISPLAY_NAME) lic_api.assert_called_once_with( - spanner_instance_admin_pb2.ListInstanceConfigsRequest( - parent=self.PATH), - metadata=[('google-cloud-resource-prefix', client.project_name)], + spanner_instance_admin_pb2.ListInstanceConfigsRequest(parent=self.PATH), + metadata=[("google-cloud-resource-prefix", client.project_name)], retry=mock.ANY, - timeout=mock.ANY) + timeout=mock.ANY, + ) def test_list_instance_configs_w_options(self): - from google.cloud.spanner_admin_instance_v1.gapic import ( - instance_admin_client) + from google.cloud.spanner_admin_instance_v1.gapic import instance_admin_client from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2) + spanner_instance_admin_pb2, + ) api = instance_admin_client.InstanceAdminClient(mock.Mock()) credentials = _make_credentials() client = self._make_one(project=self.PROJECT, credentials=credentials) client._instance_admin_api = api - instance_config_pbs = ( - spanner_instance_admin_pb2.ListInstanceConfigsResponse( - instance_configs=[ - spanner_instance_admin_pb2.InstanceConfig( - name=self.CONFIGURATION_NAME, - display_name=self.DISPLAY_NAME), - ] - ) + instance_config_pbs = spanner_instance_admin_pb2.ListInstanceConfigsResponse( + instance_configs=[ + spanner_instance_admin_pb2.InstanceConfig( + name=self.CONFIGURATION_NAME, display_name=self.DISPLAY_NAME + ) + ] ) - lic_api = api._inner_api_calls['list_instance_configs'] = mock.Mock( - return_value=instance_config_pbs) + lic_api = api._inner_api_calls["list_instance_configs"] = mock.Mock( + return_value=instance_config_pbs + ) - token = 'token' + token = "token" page_size = 42 list(client.list_instance_configs(page_token=token, page_size=42)) lic_api.assert_called_once_with( spanner_instance_admin_pb2.ListInstanceConfigsRequest( - parent=self.PATH, - page_size=page_size, - page_token=token), - metadata=[('google-cloud-resource-prefix', client.project_name)], + parent=self.PATH, page_size=page_size, page_token=token + ), + metadata=[("google-cloud-resource-prefix", client.project_name)], retry=mock.ANY, - timeout=mock.ANY) + timeout=mock.ANY, + ) def test_instance_factory_defaults(self): from google.cloud.spanner_v1.instance import DEFAULT_NODE_COUNT @@ -277,9 +269,12 @@ def test_instance_factory_explicit(self): credentials = _make_credentials() client = self._make_one(project=self.PROJECT, credentials=credentials) - instance = client.instance(self.INSTANCE_ID, self.CONFIGURATION_NAME, - display_name=self.DISPLAY_NAME, - node_count=self.NODE_COUNT) + instance = client.instance( + self.INSTANCE_ID, + self.CONFIGURATION_NAME, + display_name=self.DISPLAY_NAME, + node_count=self.NODE_COUNT, + ) self.assertTrue(isinstance(instance, Instance)) self.assertEqual(instance.instance_id, self.INSTANCE_ID) @@ -289,10 +284,10 @@ def test_instance_factory_explicit(self): self.assertIs(instance._client, client) def test_list_instances(self): - from google.cloud.spanner_admin_instance_v1.gapic import ( - instance_admin_client) + from google.cloud.spanner_admin_instance_v1.gapic import instance_admin_client from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2) + spanner_instance_admin_pb2, + ) from google.cloud.spanner_v1.client import Instance api = instance_admin_client.InstanceAdminClient(mock.Mock()) @@ -300,20 +295,20 @@ def test_list_instances(self): client = self._make_one(project=self.PROJECT, credentials=credentials) client._instance_admin_api = api - instance_pbs = ( - spanner_instance_admin_pb2.ListInstancesResponse( - instances=[ - spanner_instance_admin_pb2.Instance( - name=self.INSTANCE_NAME, - config=self.CONFIGURATION_NAME, - display_name=self.DISPLAY_NAME, - node_count=self.NODE_COUNT), - ] - ) + instance_pbs = spanner_instance_admin_pb2.ListInstancesResponse( + instances=[ + spanner_instance_admin_pb2.Instance( + name=self.INSTANCE_NAME, + config=self.CONFIGURATION_NAME, + display_name=self.DISPLAY_NAME, + node_count=self.NODE_COUNT, + ) + ] ) - li_api = api._inner_api_calls['list_instances'] = mock.Mock( - return_value=instance_pbs) + li_api = api._inner_api_calls["list_instances"] = mock.Mock( + return_value=instance_pbs + ) response = client.list_instances() instances = list(response) @@ -326,41 +321,38 @@ def test_list_instances(self): self.assertEqual(instance.node_count, self.NODE_COUNT) li_api.assert_called_once_with( - spanner_instance_admin_pb2.ListInstancesRequest( - parent=self.PATH), - metadata=[('google-cloud-resource-prefix', client.project_name)], + spanner_instance_admin_pb2.ListInstancesRequest(parent=self.PATH), + metadata=[("google-cloud-resource-prefix", client.project_name)], retry=mock.ANY, - timeout=mock.ANY) + timeout=mock.ANY, + ) def test_list_instances_w_options(self): - from google.cloud.spanner_admin_instance_v1.gapic import ( - instance_admin_client) + from google.cloud.spanner_admin_instance_v1.gapic import instance_admin_client from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2) + spanner_instance_admin_pb2, + ) api = instance_admin_client.InstanceAdminClient(mock.Mock()) credentials = _make_credentials() client = self._make_one(project=self.PROJECT, credentials=credentials) client._instance_admin_api = api - instance_pbs = ( - spanner_instance_admin_pb2.ListInstancesResponse( - instances=[] - ) - ) + instance_pbs = spanner_instance_admin_pb2.ListInstancesResponse(instances=[]) - li_api = api._inner_api_calls['list_instances'] = mock.Mock( - return_value=instance_pbs) + li_api = api._inner_api_calls["list_instances"] = mock.Mock( + return_value=instance_pbs + ) - token = 'token' + token = "token" page_size = 42 list(client.list_instances(page_token=token, page_size=42)) li_api.assert_called_once_with( spanner_instance_admin_pb2.ListInstancesRequest( - parent=self.PATH, - page_size=page_size, - page_token=token), - metadata=[('google-cloud-resource-prefix', client.project_name)], + parent=self.PATH, page_size=page_size, page_token=token + ), + metadata=[("google-cloud-resource-prefix", client.project_name)], retry=mock.ANY, - timeout=mock.ANY) + timeout=mock.ANY, + ) diff --git a/spanner/tests/unit/test_database.py b/spanner/tests/unit/test_database.py index afc358ffc509..1b25d97a4957 100644 --- a/spanner/tests/unit/test_database.py +++ b/spanner/tests/unit/test_database.py @@ -26,8 +26,8 @@ INSERT INTO citizens(first_name, last_name, age) VALUES ("Phred", "Phlyntstone", @age) """ -PARAMS = {'age': 30} -PARAM_TYPES = {'age': 'INT64'} +PARAMS = {"age": 30} +PARAM_TYPES = {"age": "INT64"} MODE = 2 # PROFILE @@ -35,8 +35,8 @@ def _make_credentials(): # pragma: NO COVER import google.auth.credentials class _CredentialsWithScopes( - google.auth.credentials.Credentials, - google.auth.credentials.Scoped): + google.auth.credentials.Credentials, google.auth.credentials.Scoped + ): pass return mock.Mock(spec=_CredentialsWithScopes) @@ -44,15 +44,15 @@ class _CredentialsWithScopes( class _BaseTest(unittest.TestCase): - PROJECT_ID = 'project-id' - PARENT = 'projects/' + PROJECT_ID - INSTANCE_ID = 'instance-id' - INSTANCE_NAME = PARENT + '/instances/' + INSTANCE_ID - DATABASE_ID = 'database_id' - DATABASE_NAME = INSTANCE_NAME + '/databases/' + DATABASE_ID - SESSION_ID = 'session_id' - SESSION_NAME = DATABASE_NAME + '/sessions/' + SESSION_ID - TRANSACTION_ID = b'transaction_id' + PROJECT_ID = "project-id" + PARENT = "projects/" + PROJECT_ID + INSTANCE_ID = "instance-id" + INSTANCE_NAME = PARENT + "/instances/" + INSTANCE_ID + DATABASE_ID = "database_id" + DATABASE_NAME = INSTANCE_NAME + "/databases/" + DATABASE_ID + SESSION_ID = "session_id" + SESSION_NAME = DATABASE_NAME + "/sessions/" + SESSION_ID + TRANSACTION_ID = b"transaction_id" def _make_one(self, *args, **kwargs): return self._get_target_class()(*args, **kwargs) @@ -72,7 +72,6 @@ def _make_duration(seconds=1, microseconds=0): class TestDatabase(_BaseTest): - def _get_target_class(self): from google.cloud.spanner_v1.database import Database @@ -89,8 +88,8 @@ def _make_spanner_api(): import google.cloud.spanner_v1.gapic.spanner_client return mock.create_autospec( - google.cloud.spanner_v1.gapic.spanner_client.SpannerClient, - instance=True) + google.cloud.spanner_v1.gapic.spanner_client.SpannerClient, instance=True + ) def test_ctor_defaults(self): from google.cloud.spanner_v1.pool import BurstyPool @@ -120,15 +119,17 @@ def test_ctor_w_ddl_statements_non_string(self): with self.assertRaises(ValueError): self._make_one( - self.DATABASE_ID, instance=object(), - ddl_statements=[object()]) + self.DATABASE_ID, instance=object(), ddl_statements=[object()] + ) def test_ctor_w_ddl_statements_w_create_database(self): with self.assertRaises(ValueError): self._make_one( - self.DATABASE_ID, instance=object(), - ddl_statements=['CREATE DATABASE foo']) + self.DATABASE_ID, + instance=object(), + ddl_statements=["CREATE DATABASE foo"], + ) def test_ctor_w_ddl_statements_ok(self): from tests._fixtures import DDL_STATEMENTS @@ -136,17 +137,18 @@ def test_ctor_w_ddl_statements_ok(self): instance = _Instance(self.INSTANCE_NAME) pool = _Pool() database = self._make_one( - self.DATABASE_ID, instance, ddl_statements=DDL_STATEMENTS, - pool=pool) + self.DATABASE_ID, instance, ddl_statements=DDL_STATEMENTS, pool=pool + ) self.assertEqual(database.database_id, self.DATABASE_ID) self.assertIs(database._instance, instance) self.assertEqual(list(database.ddl_statements), DDL_STATEMENTS) def test_from_pb_bad_database_name(self): from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2 as admin_v1_pb2) + spanner_database_admin_pb2 as admin_v1_pb2, + ) - database_name = 'INCORRECT_FORMAT' + database_name = "INCORRECT_FORMAT" database_pb = admin_v1_pb2.Database(name=database_name) klass = self._get_target_class() @@ -155,9 +157,10 @@ def test_from_pb_bad_database_name(self): def test_from_pb_project_mistmatch(self): from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2 as admin_v1_pb2) + spanner_database_admin_pb2 as admin_v1_pb2, + ) - ALT_PROJECT = 'ALT_PROJECT' + ALT_PROJECT = "ALT_PROJECT" client = _Client(project=ALT_PROJECT) instance = _Instance(self.INSTANCE_NAME, client) database_pb = admin_v1_pb2.Database(name=self.DATABASE_NAME) @@ -168,10 +171,10 @@ def test_from_pb_project_mistmatch(self): def test_from_pb_instance_mistmatch(self): from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2 as admin_v1_pb2) + spanner_database_admin_pb2 as admin_v1_pb2, + ) - ALT_INSTANCE = '/projects/%s/instances/ALT-INSTANCE' % ( - self.PROJECT_ID,) + ALT_INSTANCE = "/projects/%s/instances/ALT-INSTANCE" % (self.PROJECT_ID,) client = _Client() instance = _Instance(ALT_INSTANCE, client) database_pb = admin_v1_pb2.Database(name=self.DATABASE_NAME) @@ -182,7 +185,8 @@ def test_from_pb_instance_mistmatch(self): def test_from_pb_success_w_explicit_pool(self): from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2 as admin_v1_pb2) + spanner_database_admin_pb2 as admin_v1_pb2, + ) client = _Client() instance = _Instance(self.INSTANCE_NAME, client) @@ -199,12 +203,12 @@ def test_from_pb_success_w_explicit_pool(self): def test_from_pb_success_w_hyphen_w_default_pool(self): from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2 as admin_v1_pb2) + spanner_database_admin_pb2 as admin_v1_pb2, + ) from google.cloud.spanner_v1.pool import BurstyPool - DATABASE_ID_HYPHEN = 'database-id' - DATABASE_NAME_HYPHEN = ( - self.INSTANCE_NAME + '/databases/' + DATABASE_ID_HYPHEN) + DATABASE_ID_HYPHEN = "database-id" + DATABASE_NAME_HYPHEN = self.INSTANCE_NAME + "/databases/" + DATABASE_ID_HYPHEN client = _Client() instance = _Instance(self.INSTANCE_NAME, client) database_pb = admin_v1_pb2.Database(name=DATABASE_NAME_HYPHEN) @@ -235,7 +239,7 @@ def test_spanner_api_property_w_scopeless_creds(self): pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) - patch = mock.patch('google.cloud.spanner_v1.database.SpannerClient') + patch = mock.patch("google.cloud.spanner_v1.database.SpannerClient") with patch as spanner_client: api = database.spanner_api @@ -247,17 +251,14 @@ def test_spanner_api_property_w_scopeless_creds(self): self.assertIs(again, api) spanner_client.assert_called_once_with( - credentials=credentials, - client_info=_CLIENT_INFO) + credentials=credentials, client_info=_CLIENT_INFO + ) def test_spanner_api_w_scoped_creds(self): import google.auth.credentials - from google.cloud.spanner_v1.database import ( - _CLIENT_INFO, SPANNER_DATA_SCOPE) - - class _CredentialsWithScopes( - google.auth.credentials.Scoped): + from google.cloud.spanner_v1.database import _CLIENT_INFO, SPANNER_DATA_SCOPE + class _CredentialsWithScopes(google.auth.credentials.Scoped): def __init__(self, scopes=(), source=None): self._scopes = scopes self._source = source @@ -275,7 +276,7 @@ def with_scopes(self, scopes): pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) - patch = mock.patch('google.cloud.spanner_v1.database.SpannerClient') + patch = mock.patch("google.cloud.spanner_v1.database.SpannerClient") with patch as spanner_client: api = database.spanner_api @@ -289,8 +290,8 @@ def with_scopes(self, scopes): self.assertEqual(len(spanner_client.call_args_list), 1) called_args, called_kw = spanner_client.call_args self.assertEqual(called_args, ()) - self.assertEqual(called_kw['client_info'], _CLIENT_INFO) - scoped = called_kw['credentials'] + self.assertEqual(called_kw["client_info"], _CLIENT_INFO) + scoped = called_kw["credentials"] self.assertEqual(scoped._scopes, expected_scopes) self.assertIs(scoped._source, credentials) @@ -312,13 +313,13 @@ def test___ne__same_value(self): pool1, pool2 = _Pool(), _Pool() database1 = self._make_one(self.DATABASE_ID, instance, pool=pool1) database2 = self._make_one(self.DATABASE_ID, instance, pool=pool2) - comparison_val = (database1 != database2) + comparison_val = database1 != database2 self.assertFalse(comparison_val) def test___ne__(self): pool1, pool2 = _Pool(), _Pool() - database1 = self._make_one('database_id1', 'instance1', pool=pool1) - database2 = self._make_one('database_id2', 'instance2', pool=pool2) + database1 = self._make_one("database_id1", "instance1", pool=pool1) + database2 = self._make_one("database_id2", "instance2", pool=pool2) self.assertNotEqual(database1, database2) def test_create_grpc_error(self): @@ -327,7 +328,7 @@ def test_create_grpc_error(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.create_database.side_effect = Unknown('testing') + api.create_database.side_effect = Unknown("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() @@ -338,18 +339,18 @@ def test_create_grpc_error(self): api.create_database.assert_called_once_with( parent=self.INSTANCE_NAME, - create_statement='CREATE DATABASE {}'.format(self.DATABASE_ID), + create_statement="CREATE DATABASE {}".format(self.DATABASE_ID), extra_statements=[], - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_create_already_exists(self): from google.cloud.exceptions import Conflict - DATABASE_ID_HYPHEN = 'database-id' + DATABASE_ID_HYPHEN = "database-id" client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.create_database.side_effect = Conflict('testing') + api.create_database.side_effect = Conflict("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(DATABASE_ID_HYPHEN, instance, pool=pool) @@ -359,9 +360,9 @@ def test_create_already_exists(self): api.create_database.assert_called_once_with( parent=self.INSTANCE_NAME, - create_statement='CREATE DATABASE `{}`'.format(DATABASE_ID_HYPHEN), + create_statement="CREATE DATABASE `{}`".format(DATABASE_ID_HYPHEN), extra_statements=[], - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_create_instance_not_found(self): @@ -369,7 +370,7 @@ def test_create_instance_not_found(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.create_database.side_effect = NotFound('testing') + api.create_database.side_effect = NotFound("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -379,9 +380,9 @@ def test_create_instance_not_found(self): api.create_database.assert_called_once_with( parent=self.INSTANCE_NAME, - create_statement='CREATE DATABASE {}'.format(self.DATABASE_ID), + create_statement="CREATE DATABASE {}".format(self.DATABASE_ID), extra_statements=[], - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_create_success(self): @@ -394,8 +395,8 @@ def test_create_success(self): instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one( - self.DATABASE_ID, instance, ddl_statements=DDL_STATEMENTS, - pool=pool) + self.DATABASE_ID, instance, ddl_statements=DDL_STATEMENTS, pool=pool + ) future = database.create() @@ -403,9 +404,9 @@ def test_create_success(self): api.create_database.assert_called_once_with( parent=self.INSTANCE_NAME, - create_statement='CREATE DATABASE {}'.format(self.DATABASE_ID), + create_statement="CREATE DATABASE {}".format(self.DATABASE_ID), extra_statements=DDL_STATEMENTS, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_exists_grpc_error(self): @@ -413,7 +414,7 @@ def test_exists_grpc_error(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.get_database_ddl.side_effect = Unknown('testing') + api.get_database_ddl.side_effect = Unknown("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -423,7 +424,7 @@ def test_exists_grpc_error(self): api.get_database_ddl.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_exists_not_found(self): @@ -431,7 +432,7 @@ def test_exists_not_found(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.get_database_ddl.side_effect = NotFound('testing') + api.get_database_ddl.side_effect = NotFound("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -440,17 +441,17 @@ def test_exists_not_found(self): api.get_database_ddl.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_exists_success(self): from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2 as admin_v1_pb2) + spanner_database_admin_pb2 as admin_v1_pb2, + ) from tests._fixtures import DDL_STATEMENTS client = _Client() - ddl_pb = admin_v1_pb2.GetDatabaseDdlResponse( - statements=DDL_STATEMENTS) + ddl_pb = admin_v1_pb2.GetDatabaseDdlResponse(statements=DDL_STATEMENTS) api = client.database_admin_api = self._make_database_admin_api() api.get_database_ddl.return_value = ddl_pb instance = _Instance(self.INSTANCE_NAME, client=client) @@ -461,7 +462,7 @@ def test_exists_success(self): api.get_database_ddl.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_reload_grpc_error(self): @@ -469,7 +470,7 @@ def test_reload_grpc_error(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.get_database_ddl.side_effect = Unknown('testing') + api.get_database_ddl.side_effect = Unknown("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -479,7 +480,7 @@ def test_reload_grpc_error(self): api.get_database_ddl.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_reload_not_found(self): @@ -487,7 +488,7 @@ def test_reload_not_found(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.get_database_ddl.side_effect = NotFound('testing') + api.get_database_ddl.side_effect = NotFound("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -497,17 +498,17 @@ def test_reload_not_found(self): api.get_database_ddl.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_reload_success(self): from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2 as admin_v1_pb2) + spanner_database_admin_pb2 as admin_v1_pb2, + ) from tests._fixtures import DDL_STATEMENTS client = _Client() - ddl_pb = admin_v1_pb2.GetDatabaseDdlResponse( - statements=DDL_STATEMENTS) + ddl_pb = admin_v1_pb2.GetDatabaseDdlResponse(statements=DDL_STATEMENTS) api = client.database_admin_api = self._make_database_admin_api() api.get_database_ddl.return_value = ddl_pb instance = _Instance(self.INSTANCE_NAME, client=client) @@ -520,7 +521,7 @@ def test_reload_success(self): api.get_database_ddl.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_update_ddl_grpc_error(self): @@ -529,7 +530,7 @@ def test_update_ddl_grpc_error(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.update_database_ddl.side_effect = Unknown('testing') + api.update_database_ddl.side_effect = Unknown("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -540,8 +541,8 @@ def test_update_ddl_grpc_error(self): api.update_database_ddl.assert_called_once_with( self.DATABASE_NAME, DDL_STATEMENTS, - '', - metadata=[('google-cloud-resource-prefix', database.name)], + "", + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_update_ddl_not_found(self): @@ -550,7 +551,7 @@ def test_update_ddl_not_found(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.update_database_ddl.side_effect = NotFound('testing') + api.update_database_ddl.side_effect = NotFound("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -561,8 +562,8 @@ def test_update_ddl_not_found(self): api.update_database_ddl.assert_called_once_with( self.DATABASE_NAME, DDL_STATEMENTS, - '', - metadata=[('google-cloud-resource-prefix', database.name)], + "", + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_update_ddl(self): @@ -583,8 +584,8 @@ def test_update_ddl(self): api.update_database_ddl.assert_called_once_with( self.DATABASE_NAME, DDL_STATEMENTS, - '', - metadata=[('google-cloud-resource-prefix', database.name)], + "", + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_drop_grpc_error(self): @@ -592,7 +593,7 @@ def test_drop_grpc_error(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.drop_database.side_effect = Unknown('testing') + api.drop_database.side_effect = Unknown("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -602,7 +603,7 @@ def test_drop_grpc_error(self): api.drop_database.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_drop_not_found(self): @@ -610,7 +611,7 @@ def test_drop_not_found(self): client = _Client() api = client.database_admin_api = self._make_database_admin_api() - api.drop_database.side_effect = NotFound('testing') + api.drop_database.side_effect = NotFound("testing") instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() database = self._make_one(self.DATABASE_ID, instance, pool=pool) @@ -620,7 +621,7 @@ def test_drop_not_found(self): api.drop_database.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_drop_success(self): @@ -637,25 +638,26 @@ def test_drop_success(self): api.drop_database.assert_called_once_with( self.DATABASE_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) - def _execute_partitioned_dml_helper( - self, dml, params=None, param_types=None): + def _execute_partitioned_dml_helper(self, dml, params=None, param_types=None): from google.protobuf.struct_pb2 import Struct from google.cloud.spanner_v1.proto.result_set_pb2 import ( - PartialResultSet, ResultSetStats) + PartialResultSet, + ResultSetStats, + ) from google.cloud.spanner_v1.proto.transaction_pb2 import ( Transaction as TransactionPB, - TransactionSelector, TransactionOptions) + TransactionSelector, + TransactionOptions, + ) from google.cloud.spanner_v1._helpers import _make_value_pb transaction_pb = TransactionPB(id=self.TRANSACTION_ID) stats_pb = ResultSetStats(row_count_lower_bound=2) - result_sets = [ - PartialResultSet(stats=stats_pb), - ] + result_sets = [PartialResultSet(stats=stats_pb)] iterator = _MockIterator(*result_sets) client = _Client() @@ -668,23 +670,24 @@ def _execute_partitioned_dml_helper( api.begin_transaction.return_value = transaction_pb api.execute_streaming_sql.return_value = iterator - row_count = database.execute_partitioned_dml( - dml, params, param_types) + row_count = database.execute_partitioned_dml(dml, params, param_types) self.assertEqual(row_count, 2) txn_options = TransactionOptions( - partitioned_dml=TransactionOptions.PartitionedDml()) + partitioned_dml=TransactionOptions.PartitionedDml() + ) api.begin_transaction.assert_called_once_with( session.name, txn_options, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) if params: - expected_params = Struct(fields={ - key: _make_value_pb(value) for (key, value) in params.items()}) + expected_params = Struct( + fields={key: _make_value_pb(value) for (key, value) in params.items()} + ) else: expected_params = None @@ -696,7 +699,7 @@ def _execute_partitioned_dml_helper( transaction=expected_transaction, params=expected_params, param_types=param_types, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_execute_partitioned_dml_wo_params(self): @@ -704,12 +707,12 @@ def test_execute_partitioned_dml_wo_params(self): def test_execute_partitioned_dml_w_params_wo_param_types(self): with self.assertRaises(ValueError): - self._execute_partitioned_dml_helper( - dml=DML_W_PARAM, params=PARAMS) + self._execute_partitioned_dml_helper(dml=DML_W_PARAM, params=PARAMS) def test_execute_partitioned_dml_w_params_and_param_types(self): self._execute_partitioned_dml_helper( - dml=DML_W_PARAM, params=PARAMS, param_types=PARAM_TYPES) + dml=DML_W_PARAM, params=PARAMS, param_types=PARAM_TYPES + ) def test_session_factory_defaults(self): from google.cloud.spanner_v1.session import Session @@ -732,7 +735,7 @@ def test_session_factory_w_labels(self): client = _Client() instance = _Instance(self.INSTANCE_NAME, client=client) pool = _Pool() - labels = {'foo': 'bar'} + labels = {"foo": "bar"} database = self._make_one(self.DATABASE_ID, instance, pool=pool) session = database.session(labels=labels) @@ -774,8 +777,7 @@ def test_snapshot_w_read_timestamp_and_multi_use(self): self.assertIsInstance(checkout, SnapshotCheckout) self.assertIs(checkout._database, database) - self.assertEqual( - checkout._kw, {'read_timestamp': now, 'multi_use': True}) + self.assertEqual(checkout._kw, {"read_timestamp": now, "multi_use": True}) def test_batch(self): from google.cloud.spanner_v1.database import BatchCheckout @@ -794,8 +796,7 @@ def test_batch(self): def test_batch_snapshot(self): from google.cloud.spanner_v1.database import BatchSnapshot - database = self._make_one( - self.DATABASE_ID, instance=object(), pool=_Pool()) + database = self._make_one(self.DATABASE_ID, instance=object(), pool=_Pool()) batch_txn = database.batch_snapshot() self.assertIsInstance(batch_txn, BatchSnapshot) @@ -806,8 +807,7 @@ def test_batch_snapshot(self): def test_batch_snapshot_w_read_timestamp(self): from google.cloud.spanner_v1.database import BatchSnapshot - database = self._make_one( - self.DATABASE_ID, instance=object(), pool=_Pool()) + database = self._make_one(self.DATABASE_ID, instance=object(), pool=_Pool()) timestamp = self._make_timestamp() batch_txn = database.batch_snapshot(read_timestamp=timestamp) @@ -819,8 +819,7 @@ def test_batch_snapshot_w_read_timestamp(self): def test_batch_snapshot_w_exact_staleness(self): from google.cloud.spanner_v1.database import BatchSnapshot - database = self._make_one( - self.DATABASE_ID, instance=object(), pool=_Pool()) + database = self._make_one(self.DATABASE_ID, instance=object(), pool=_Pool()) duration = self._make_duration() batch_txn = database.batch_snapshot(exact_staleness=duration) @@ -864,12 +863,10 @@ def test_run_in_transaction_w_args(self): _unit_of_work = object() - committed = database.run_in_transaction( - _unit_of_work, SINCE, until=UNTIL) + committed = database.run_in_transaction(_unit_of_work, SINCE, until=UNTIL) self.assertEqual(committed, NOW) - self.assertEqual(session._retried, - (_unit_of_work, (SINCE,), {'until': UNTIL})) + self.assertEqual(session._retried, (_unit_of_work, (SINCE,), {"until": UNTIL})) def test_run_in_transaction_nested(self): from datetime import datetime @@ -896,7 +893,6 @@ def nested_unit_of_work(): class TestBatchCheckout(_BaseTest): - def _get_target_class(self): from google.cloud.spanner_v1.database import BatchCheckout @@ -916,8 +912,7 @@ def test_ctor(self): def test_context_mgr_success(self): import datetime from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse - from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionOptions) + from google.cloud.spanner_v1.proto.transaction_pb2 import TransactionOptions from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp from google.cloud.spanner_v1.batch import Batch @@ -947,7 +942,7 @@ def test_context_mgr_success(self): self.SESSION_NAME, [], single_use_transaction=expected_txn_options, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_context_mgr_failure(self): @@ -974,7 +969,6 @@ class Testing(Exception): class TestSnapshotCheckout(_BaseTest): - def _get_target_class(self): from google.cloud.spanner_v1.database import SnapshotCheckout @@ -1014,8 +1008,7 @@ def test_ctor_w_read_timestamp_and_multi_use(self): checkout = self._make_one(database, read_timestamp=now, multi_use=True) self.assertIs(checkout._database, database) - self.assertEqual(checkout._kw, - {'read_timestamp': now, 'multi_use': True}) + self.assertEqual(checkout._kw, {"read_timestamp": now, "multi_use": True}) with checkout as snapshot: self.assertIsNone(pool._session) @@ -1049,10 +1042,10 @@ class Testing(Exception): class TestBatchSnapshot(_BaseTest): - TABLE = 'table_name' - COLUMNS = ['column_one', 'column_two'] - TOKENS = [b'TOKEN1', b'TOKEN2'] - INDEX = 'index' + TABLE = "table_name" + COLUMNS = ["column_one", "column_two"] + TOKENS = [b"TOKEN1", b"TOKEN2"] + INDEX = "index" def _get_target_class(self): from google.cloud.spanner_v1.database import BatchSnapshot @@ -1128,8 +1121,8 @@ def test_from_dict(self): session = database.session.return_value = self._make_session() snapshot = session.snapshot.return_value = self._make_snapshot() api_repr = { - 'session_id': self.SESSION_ID, - 'transaction_id': self.TRANSACTION_ID, + "session_id": self.SESSION_ID, + "transaction_id": self.TRANSACTION_ID, } batch_txn = klass.from_dict(database, api_repr) @@ -1143,14 +1136,12 @@ def test_from_dict(self): def test_to_dict(self): database = self._make_database() batch_txn = self._make_one(database) - batch_txn._session = self._make_session( - _session_id=self.SESSION_ID) - batch_txn._snapshot = self._make_snapshot( - transaction_id=self.TRANSACTION_ID) + batch_txn._session = self._make_session(_session_id=self.SESSION_ID) + batch_txn._snapshot = self._make_snapshot(transaction_id=self.TRANSACTION_ID) expected = { - 'session_id': self.SESSION_ID, - 'transaction_id': self.TRANSACTION_ID, + "session_id": self.SESSION_ID, + "transaction_id": self.TRANSACTION_ID, } self.assertEqual(batch_txn.to_dict(), expected) @@ -1181,7 +1172,8 @@ def test__get_snapshot_new_wo_staleness(self): snapshot = session.snapshot.return_value = self._make_snapshot() self.assertIs(batch_txn._get_snapshot(), snapshot) session.snapshot.assert_called_once_with( - read_timestamp=None, exact_staleness=None, multi_use=True) + read_timestamp=None, exact_staleness=None, multi_use=True + ) snapshot.begin.assert_called_once_with() def test__get_snapshot_w_read_timestamp(self): @@ -1192,7 +1184,8 @@ def test__get_snapshot_w_read_timestamp(self): snapshot = session.snapshot.return_value = self._make_snapshot() self.assertIs(batch_txn._get_snapshot(), snapshot) session.snapshot.assert_called_once_with( - read_timestamp=timestamp, exact_staleness=None, multi_use=True) + read_timestamp=timestamp, exact_staleness=None, multi_use=True + ) snapshot.begin.assert_called_once_with() def test__get_snapshot_w_exact_staleness(self): @@ -1203,7 +1196,8 @@ def test__get_snapshot_w_exact_staleness(self): snapshot = session.snapshot.return_value = self._make_snapshot() self.assertIs(batch_txn._get_snapshot(), snapshot) session.snapshot.assert_called_once_with( - read_timestamp=None, exact_staleness=duration, multi_use=True) + read_timestamp=None, exact_staleness=duration, multi_use=True + ) snapshot.begin.assert_called_once_with() def test_read(self): @@ -1212,20 +1206,19 @@ def test_read(self): batch_txn = self._make_one(database) snapshot = batch_txn._snapshot = self._make_snapshot() - rows = batch_txn.read( - self.TABLE, self.COLUMNS, keyset, self.INDEX) + rows = batch_txn.read(self.TABLE, self.COLUMNS, keyset, self.INDEX) self.assertIs(rows, snapshot.read.return_value) snapshot.read.assert_called_once_with( - self.TABLE, self.COLUMNS, keyset, self.INDEX) + self.TABLE, self.COLUMNS, keyset, self.INDEX + ) def test_execute_sql(self): sql = ( - "SELECT first_name, last_name, email FROM citizens " - "WHERE age <= @max_age" + "SELECT first_name, last_name, email FROM citizens " "WHERE age <= @max_age" ) - params = {'max_age': 30} - param_types = {'max_age': 'INT64'} + params = {"max_age": 30} + param_types = {"max_age": "INT64"} database = self._make_database() batch_txn = self._make_one(database) snapshot = batch_txn._snapshot = self._make_snapshot() @@ -1233,8 +1226,7 @@ def test_execute_sql(self): rows = batch_txn.execute_sql(sql, params, param_types) self.assertIs(rows, snapshot.execute_sql.return_value) - snapshot.execute_sql.assert_called_once_with( - sql, params, param_types) + snapshot.execute_sql.assert_called_once_with(sql, params, param_types) def test_generate_read_batches_w_max_partitions(self): max_partitions = len(self.TOKENS) @@ -1246,23 +1238,29 @@ def test_generate_read_batches_w_max_partitions(self): batches = list( batch_txn.generate_read_batches( - self.TABLE, self.COLUMNS, keyset, - max_partitions=max_partitions)) + self.TABLE, self.COLUMNS, keyset, max_partitions=max_partitions + ) + ) expected_read = { - 'table': self.TABLE, - 'columns': self.COLUMNS, - 'keyset': {'all': True}, - 'index': '', + "table": self.TABLE, + "columns": self.COLUMNS, + "keyset": {"all": True}, + "index": "", } self.assertEqual(len(batches), len(self.TOKENS)) for batch, token in zip(batches, self.TOKENS): - self.assertEqual(batch['partition'], token) - self.assertEqual(batch['read'], expected_read) + self.assertEqual(batch["partition"], token) + self.assertEqual(batch["read"], expected_read) snapshot.partition_read.assert_called_once_with( - table=self.TABLE, columns=self.COLUMNS, keyset=keyset, - index='', partition_size_bytes=None, max_partitions=max_partitions) + table=self.TABLE, + columns=self.COLUMNS, + keyset=keyset, + index="", + partition_size_bytes=None, + max_partitions=max_partitions, + ) def test_generate_read_batches_w_index_w_partition_size_bytes(self): size = 1 << 20 @@ -1274,34 +1272,44 @@ def test_generate_read_batches_w_index_w_partition_size_bytes(self): batches = list( batch_txn.generate_read_batches( - self.TABLE, self.COLUMNS, keyset, index=self.INDEX, - partition_size_bytes=size)) + self.TABLE, + self.COLUMNS, + keyset, + index=self.INDEX, + partition_size_bytes=size, + ) + ) expected_read = { - 'table': self.TABLE, - 'columns': self.COLUMNS, - 'keyset': {'all': True}, - 'index': self.INDEX, + "table": self.TABLE, + "columns": self.COLUMNS, + "keyset": {"all": True}, + "index": self.INDEX, } self.assertEqual(len(batches), len(self.TOKENS)) for batch, token in zip(batches, self.TOKENS): - self.assertEqual(batch['partition'], token) - self.assertEqual(batch['read'], expected_read) + self.assertEqual(batch["partition"], token) + self.assertEqual(batch["read"], expected_read) snapshot.partition_read.assert_called_once_with( - table=self.TABLE, columns=self.COLUMNS, keyset=keyset, - index=self.INDEX, partition_size_bytes=size, max_partitions=None) + table=self.TABLE, + columns=self.COLUMNS, + keyset=keyset, + index=self.INDEX, + partition_size_bytes=size, + max_partitions=None, + ) def test_process_read_batch(self): keyset = self._make_keyset() - token = b'TOKEN' + token = b"TOKEN" batch = { - 'partition': token, - 'read': { - 'table': self.TABLE, - 'columns': self.COLUMNS, - 'keyset': {'all': True}, - 'index': self.INDEX, + "partition": token, + "read": { + "table": self.TABLE, + "columns": self.COLUMNS, + "keyset": {"all": True}, + "index": self.INDEX, }, } database = self._make_database() @@ -1322,7 +1330,7 @@ def test_process_read_batch(self): ) def test_generate_query_batches_w_max_partitions(self): - sql = 'SELECT COUNT(*) FROM table_name' + sql = "SELECT COUNT(*) FROM table_name" max_partitions = len(self.TOKENS) database = self._make_database() batch_txn = self._make_one(database) @@ -1330,28 +1338,29 @@ def test_generate_query_batches_w_max_partitions(self): snapshot.partition_query.return_value = self.TOKENS batches = list( - batch_txn.generate_query_batches( - sql, max_partitions=max_partitions)) + batch_txn.generate_query_batches(sql, max_partitions=max_partitions) + ) - expected_query = { - 'sql': sql, - } + expected_query = {"sql": sql} self.assertEqual(len(batches), len(self.TOKENS)) for batch, token in zip(batches, self.TOKENS): - self.assertEqual(batch['partition'], token) - self.assertEqual(batch['query'], expected_query) + self.assertEqual(batch["partition"], token) + self.assertEqual(batch["query"], expected_query) snapshot.partition_query.assert_called_once_with( - sql=sql, params=None, param_types=None, - partition_size_bytes=None, max_partitions=max_partitions) + sql=sql, + params=None, + param_types=None, + partition_size_bytes=None, + max_partitions=max_partitions, + ) def test_generate_query_batches_w_params_w_partition_size_bytes(self): sql = ( - "SELECT first_name, last_name, email FROM citizens " - "WHERE age <= @max_age" + "SELECT first_name, last_name, email FROM citizens " "WHERE age <= @max_age" ) - params = {'max_age': 30} - param_types = {'max_age': 'INT64'} + params = {"max_age": 30} + param_types = {"max_age": "INT64"} size = 1 << 20 database = self._make_database() batch_txn = self._make_one(database) @@ -1360,38 +1369,34 @@ def test_generate_query_batches_w_params_w_partition_size_bytes(self): batches = list( batch_txn.generate_query_batches( - sql, params=params, param_types=param_types, - partition_size_bytes=size)) + sql, params=params, param_types=param_types, partition_size_bytes=size + ) + ) - expected_query = { - 'sql': sql, - 'params': params, - 'param_types': param_types, - } + expected_query = {"sql": sql, "params": params, "param_types": param_types} self.assertEqual(len(batches), len(self.TOKENS)) for batch, token in zip(batches, self.TOKENS): - self.assertEqual(batch['partition'], token) - self.assertEqual(batch['query'], expected_query) + self.assertEqual(batch["partition"], token) + self.assertEqual(batch["query"], expected_query) snapshot.partition_query.assert_called_once_with( - sql=sql, params=params, param_types=param_types, - partition_size_bytes=size, max_partitions=None) + sql=sql, + params=params, + param_types=param_types, + partition_size_bytes=size, + max_partitions=None, + ) def test_process_query_batch(self): sql = ( - "SELECT first_name, last_name, email FROM citizens " - "WHERE age <= @max_age" + "SELECT first_name, last_name, email FROM citizens " "WHERE age <= @max_age" ) - params = {'max_age': 30} - param_types = {'max_age': 'INT64'} - token = b'TOKEN' + params = {"max_age": 30} + param_types = {"max_age": "INT64"} + token = b"TOKEN" batch = { - 'partition': token, - 'query': { - 'sql': sql, - 'params': params, - 'param_types': param_types, - }, + "partition": token, + "query": {"sql": sql, "params": params, "param_types": param_types}, } database = self._make_database() batch_txn = self._make_one(database) @@ -1403,10 +1408,7 @@ def test_process_query_batch(self): self.assertIs(found, expected) snapshot.execute_sql.assert_called_once_with( - sql=sql, - params=params, - param_types=param_types, - partition=token, + sql=sql, params=params, param_types=param_types, partition=token ) def test_close_wo_session(self): @@ -1425,11 +1427,8 @@ def test_close_w_session(self): session.delete.assert_called_once_with() def test_process_w_invalid_batch(self): - token = b'TOKEN' - batch = { - 'partition': token, - 'bogus': b'BOGUS', - } + token = b"TOKEN" + batch = {"partition": token, "bogus": b"BOGUS"} database = self._make_database() batch_txn = self._make_one(database) @@ -1438,14 +1437,14 @@ def test_process_w_invalid_batch(self): def test_process_w_read_batch(self): keyset = self._make_keyset() - token = b'TOKEN' + token = b"TOKEN" batch = { - 'partition': token, - 'read': { - 'table': self.TABLE, - 'columns': self.COLUMNS, - 'keyset': {'all': True}, - 'index': self.INDEX, + "partition": token, + "read": { + "table": self.TABLE, + "columns": self.COLUMNS, + "keyset": {"all": True}, + "index": self.INDEX, }, } database = self._make_database() @@ -1467,19 +1466,14 @@ def test_process_w_read_batch(self): def test_process_w_query_batch(self): sql = ( - "SELECT first_name, last_name, email FROM citizens " - "WHERE age <= @max_age" + "SELECT first_name, last_name, email FROM citizens " "WHERE age <= @max_age" ) - params = {'max_age': 30} - param_types = {'max_age': 'INT64'} - token = b'TOKEN' + params = {"max_age": 30} + param_types = {"max_age": "INT64"} + token = b"TOKEN" batch = { - 'partition': token, - 'query': { - 'sql': sql, - 'params': params, - 'param_types': param_types, - }, + "partition": token, + "query": {"sql": sql, "params": params, "param_types": param_types}, } database = self._make_database() batch_txn = self._make_one(database) @@ -1491,33 +1485,27 @@ def test_process_w_query_batch(self): self.assertIs(found, expected) snapshot.execute_sql.assert_called_once_with( - sql=sql, - params=params, - param_types=param_types, - partition=token, + sql=sql, params=params, param_types=param_types, partition=token ) class _Client(object): - def __init__(self, project=TestDatabase.PROJECT_ID): self.project = project - self.project_name = 'projects/' + self.project + self.project_name = "projects/" + self.project class _Instance(object): - def __init__(self, name, client=None): self.name = name - self.instance_id = name.rsplit('/', 1)[1] + self.instance_id = name.rsplit("/", 1)[1] self._client = client class _Database(object): - def __init__(self, name, instance=None): self.name = name - self.database_id = name.rsplit('/', 1)[1] + self.database_id = name.rsplit("/", 1)[1] self._instance = instance @@ -1542,8 +1530,9 @@ class _Session(object): _transaction = None _snapshot = None - def __init__(self, database=None, name=_BaseTest.SESSION_NAME, - run_transaction_function=False): + def __init__( + self, database=None, name=_BaseTest.SESSION_NAME, run_transaction_function=False + ): self._database = database self.name = name self._run_transaction_function = run_transaction_function @@ -1556,10 +1545,9 @@ def run_in_transaction(self, func, *args, **kw): class _MockIterator(object): - def __init__(self, *values, **kw): self._iter_values = iter(values) - self._fail_after = kw.pop('fail_after', False) + self._fail_after = kw.pop("fail_after", False) def __iter__(self): return self diff --git a/spanner/tests/unit/test_instance.py b/spanner/tests/unit/test_instance.py index 78c97967635b..903c54362e33 100644 --- a/spanner/tests/unit/test_instance.py +++ b/spanner/tests/unit/test_instance.py @@ -19,22 +19,25 @@ class TestInstance(unittest.TestCase): - PROJECT = 'project' - PARENT = 'projects/' + PROJECT - INSTANCE_ID = 'instance-id' - INSTANCE_NAME = PARENT + '/instances/' + INSTANCE_ID - CONFIG_NAME = 'configuration-name' - LOCATION = 'projects/' + PROJECT + '/locations/' + CONFIG_NAME - DISPLAY_NAME = 'display_name' + PROJECT = "project" + PARENT = "projects/" + PROJECT + INSTANCE_ID = "instance-id" + INSTANCE_NAME = PARENT + "/instances/" + INSTANCE_ID + CONFIG_NAME = "configuration-name" + LOCATION = "projects/" + PROJECT + "/locations/" + CONFIG_NAME + DISPLAY_NAME = "display_name" NODE_COUNT = 5 OP_ID = 8915 - OP_NAME = ('operations/projects/%s/instances/%soperations/%d' % - (PROJECT, INSTANCE_ID, OP_ID)) - TABLE_ID = 'table_id' - TABLE_NAME = INSTANCE_NAME + '/tables/' + TABLE_ID + OP_NAME = "operations/projects/%s/instances/%soperations/%d" % ( + PROJECT, + INSTANCE_ID, + OP_ID, + ) + TABLE_ID = "table_id" + TABLE_NAME = INSTANCE_NAME + "/tables/" + TABLE_ID TIMEOUT_SECONDS = 1 - DATABASE_ID = 'database_id' - DATABASE_NAME = '%s/databases/%s' % (INSTANCE_NAME, DATABASE_ID) + DATABASE_ID = "database_id" + DATABASE_NAME = "%s/databases/%s" % (INSTANCE_NAME, DATABASE_ID) def _getTargetClass(self): from google.cloud.spanner_v1.instance import Instance @@ -56,13 +59,16 @@ def test_constructor_defaults(self): self.assertEqual(instance.display_name, self.INSTANCE_ID) def test_constructor_non_default(self): - DISPLAY_NAME = 'display_name' + DISPLAY_NAME = "display_name" client = object() - instance = self._make_one(self.INSTANCE_ID, client, - configuration_name=self.CONFIG_NAME, - node_count=self.NODE_COUNT, - display_name=DISPLAY_NAME) + instance = self._make_one( + self.INSTANCE_ID, + client, + configuration_name=self.CONFIG_NAME, + node_count=self.NODE_COUNT, + display_name=DISPLAY_NAME, + ) self.assertEqual(instance.instance_id, self.INSTANCE_ID) self.assertIs(instance._client, client) self.assertEqual(instance.configuration_name, self.CONFIG_NAME) @@ -70,11 +76,12 @@ def test_constructor_non_default(self): self.assertEqual(instance.display_name, DISPLAY_NAME) def test_copy(self): - DISPLAY_NAME = 'display_name' + DISPLAY_NAME = "display_name" client = _Client(self.PROJECT) - instance = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME, - display_name=DISPLAY_NAME) + instance = self._make_one( + self.INSTANCE_ID, client, self.CONFIG_NAME, display_name=DISPLAY_NAME + ) new_instance = instance.copy() # Make sure the client copy succeeded. @@ -86,13 +93,12 @@ def test_copy(self): def test__update_from_pb_success(self): from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2 as admin_v1_pb2) - - display_name = 'display_name' - instance_pb = admin_v1_pb2.Instance( - display_name=display_name, + spanner_instance_admin_pb2 as admin_v1_pb2, ) + display_name = "display_name" + instance_pb = admin_v1_pb2.Instance(display_name=display_name) + instance = self._make_one(None, None, None, None) self.assertEqual(instance.display_name, None) instance._update_from_pb(instance_pb) @@ -100,7 +106,8 @@ def test__update_from_pb_success(self): def test__update_from_pb_no_display_name(self): from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2 as admin_v1_pb2) + spanner_instance_admin_pb2 as admin_v1_pb2, + ) instance_pb = admin_v1_pb2.Instance() instance = self._make_one(None, None, None, None) @@ -111,9 +118,10 @@ def test__update_from_pb_no_display_name(self): def test_from_pb_bad_instance_name(self): from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2 as admin_v1_pb2) + spanner_instance_admin_pb2 as admin_v1_pb2, + ) - instance_name = 'INCORRECT_FORMAT' + instance_name = "INCORRECT_FORMAT" instance_pb = admin_v1_pb2.Instance(name=instance_name) klass = self._getTargetClass() @@ -122,9 +130,10 @@ def test_from_pb_bad_instance_name(self): def test_from_pb_project_mistmatch(self): from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2 as admin_v1_pb2) + spanner_instance_admin_pb2 as admin_v1_pb2, + ) - ALT_PROJECT = 'ALT_PROJECT' + ALT_PROJECT = "ALT_PROJECT" client = _Client(project=ALT_PROJECT) self.assertNotEqual(self.PROJECT, ALT_PROJECT) @@ -137,7 +146,8 @@ def test_from_pb_project_mistmatch(self): def test_from_pb_success(self): from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2 as admin_v1_pb2) + spanner_instance_admin_pb2 as admin_v1_pb2, + ) client = _Client(project=self.PROJECT) @@ -176,22 +186,22 @@ def test___ne__same_value(self): client = object() instance1 = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) instance2 = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) - comparison_val = (instance1 != instance2) + comparison_val = instance1 != instance2 self.assertFalse(comparison_val) def test___ne__(self): - instance1 = self._make_one('instance_id1', 'client1', self.CONFIG_NAME) - instance2 = self._make_one('instance_id2', 'client2', self.CONFIG_NAME) + instance1 = self._make_one("instance_id1", "client1", self.CONFIG_NAME) + instance2 = self._make_one("instance_id2", "client2", self.CONFIG_NAME) self.assertNotEqual(instance1, instance2) def test_create_grpc_error(self): from google.api_core.exceptions import Unknown client = _Client(self.PROJECT) - client.instance_admin_api = _FauxInstanceAdminAPI( - _rpc_error=True) - instance = self._make_one(self.INSTANCE_ID, client, - configuration_name=self.CONFIG_NAME) + client.instance_admin_api = _FauxInstanceAdminAPI(_rpc_error=True) + instance = self._make_one( + self.INSTANCE_ID, client, configuration_name=self.CONFIG_NAME + ) with self.assertRaises(Unknown): instance.create() @@ -201,9 +211,11 @@ def test_create_already_exists(self): client = _Client(self.PROJECT) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _create_instance_conflict=True) - instance = self._make_one(self.INSTANCE_ID, client, - configuration_name=self.CONFIG_NAME) + _create_instance_conflict=True + ) + instance = self._make_one( + self.INSTANCE_ID, client, configuration_name=self.CONFIG_NAME + ) with self.assertRaises(Conflict): instance.create() @@ -215,18 +227,21 @@ def test_create_already_exists(self): self.assertEqual(instance.config, self.CONFIG_NAME) self.assertEqual(instance.display_name, self.INSTANCE_ID) self.assertEqual(instance.node_count, 1) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_create_success(self): op_future = _FauxOperationFuture() client = _Client(self.PROJECT) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _create_instance_response=op_future) - instance = self._make_one(self.INSTANCE_ID, client, - configuration_name=self.CONFIG_NAME, - display_name=self.DISPLAY_NAME, - node_count=self.NODE_COUNT) + _create_instance_response=op_future + ) + instance = self._make_one( + self.INSTANCE_ID, + client, + configuration_name=self.CONFIG_NAME, + display_name=self.DISPLAY_NAME, + node_count=self.NODE_COUNT, + ) future = instance.create() @@ -239,15 +254,13 @@ def test_create_success(self): self.assertEqual(instance.config, self.CONFIG_NAME) self.assertEqual(instance.display_name, self.DISPLAY_NAME) self.assertEqual(instance.node_count, self.NODE_COUNT) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_exists_instance_grpc_error(self): from google.api_core.exceptions import Unknown client = _Client(self.PROJECT) - client.instance_admin_api = _FauxInstanceAdminAPI( - _rpc_error=True) + client.instance_admin_api = _FauxInstanceAdminAPI(_rpc_error=True) instance = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) with self.assertRaises(Unknown): @@ -256,7 +269,8 @@ def test_exists_instance_grpc_error(self): def test_exists_instance_not_found(self): client = _Client(self.PROJECT) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _instance_not_found=True) + _instance_not_found=True + ) api._instance_not_found = True instance = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) @@ -264,12 +278,12 @@ def test_exists_instance_not_found(self): name, metadata = api._got_instance self.assertEqual(name, self.INSTANCE_NAME) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_exists_success(self): from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2 as admin_v1_pb2) + spanner_instance_admin_pb2 as admin_v1_pb2, + ) client = _Client(self.PROJECT) instance_pb = admin_v1_pb2.Instance( @@ -279,22 +293,21 @@ def test_exists_success(self): node_count=self.NODE_COUNT, ) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _get_instance_response=instance_pb) + _get_instance_response=instance_pb + ) instance = self._make_one(self.INSTANCE_ID, client) self.assertTrue(instance.exists()) name, metadata = api._got_instance self.assertEqual(name, self.INSTANCE_NAME) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_reload_instance_grpc_error(self): from google.api_core.exceptions import Unknown client = _Client(self.PROJECT) - client.instance_admin_api = _FauxInstanceAdminAPI( - _rpc_error=True) + client.instance_admin_api = _FauxInstanceAdminAPI(_rpc_error=True) instance = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) with self.assertRaises(Unknown): @@ -305,7 +318,8 @@ def test_reload_instance_not_found(self): client = _Client(self.PROJECT) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _instance_not_found=True) + _instance_not_found=True + ) api._instance_not_found = True instance = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) @@ -314,12 +328,12 @@ def test_reload_instance_not_found(self): name, metadata = api._got_instance self.assertEqual(name, self.INSTANCE_NAME) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_reload_success(self): from google.cloud.spanner_admin_instance_v1.proto import ( - spanner_instance_admin_pb2 as admin_v1_pb2) + spanner_instance_admin_pb2 as admin_v1_pb2, + ) client = _Client(self.PROJECT) instance_pb = admin_v1_pb2.Instance( @@ -329,7 +343,8 @@ def test_reload_success(self): node_count=self.NODE_COUNT, ) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _get_instance_response=instance_pb) + _get_instance_response=instance_pb + ) instance = self._make_one(self.INSTANCE_ID, client) instance.reload() @@ -340,17 +355,16 @@ def test_reload_success(self): name, metadata = api._got_instance self.assertEqual(name, self.INSTANCE_NAME) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_update_grpc_error(self): from google.api_core.exceptions import Unknown client = _Client(self.PROJECT) - client.instance_admin_api = _FauxInstanceAdminAPI( - _rpc_error=True) - instance = self._make_one(self.INSTANCE_ID, client, - configuration_name=self.CONFIG_NAME) + client.instance_admin_api = _FauxInstanceAdminAPI(_rpc_error=True) + instance = self._make_one( + self.INSTANCE_ID, client, configuration_name=self.CONFIG_NAME + ) with self.assertRaises(Unknown): instance.update() @@ -361,53 +375,54 @@ def test_update_not_found(self): client = _Client(self.PROJECT) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _instance_not_found=True) - instance = self._make_one(self.INSTANCE_ID, client, - configuration_name=self.CONFIG_NAME) + _instance_not_found=True + ) + instance = self._make_one( + self.INSTANCE_ID, client, configuration_name=self.CONFIG_NAME + ) with self.assertRaises(NotFound): instance.update() instance, field_mask, metadata = api._updated_instance - self.assertEqual(field_mask.paths, - ['config', 'display_name', 'node_count']) + self.assertEqual(field_mask.paths, ["config", "display_name", "node_count"]) self.assertEqual(instance.name, self.INSTANCE_NAME) self.assertEqual(instance.config, self.CONFIG_NAME) self.assertEqual(instance.display_name, self.INSTANCE_ID) self.assertEqual(instance.node_count, DEFAULT_NODE_COUNT) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_update_success(self): op_future = _FauxOperationFuture() client = _Client(self.PROJECT) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _update_instance_response=op_future) - instance = self._make_one(self.INSTANCE_ID, client, - configuration_name=self.CONFIG_NAME, - node_count=self.NODE_COUNT, - display_name=self.DISPLAY_NAME) + _update_instance_response=op_future + ) + instance = self._make_one( + self.INSTANCE_ID, + client, + configuration_name=self.CONFIG_NAME, + node_count=self.NODE_COUNT, + display_name=self.DISPLAY_NAME, + ) future = instance.update() self.assertIs(future, op_future) instance, field_mask, metadata = api._updated_instance - self.assertEqual(field_mask.paths, - ['config', 'display_name', 'node_count']) + self.assertEqual(field_mask.paths, ["config", "display_name", "node_count"]) self.assertEqual(instance.name, self.INSTANCE_NAME) self.assertEqual(instance.config, self.CONFIG_NAME) self.assertEqual(instance.display_name, self.DISPLAY_NAME) self.assertEqual(instance.node_count, self.NODE_COUNT) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_delete_grpc_error(self): from google.api_core.exceptions import Unknown client = _Client(self.PROJECT) - client.instance_admin_api = _FauxInstanceAdminAPI( - _rpc_error=True) + client.instance_admin_api = _FauxInstanceAdminAPI(_rpc_error=True) instance = self._make_one(self.INSTANCE_ID, client) with self.assertRaises(Unknown): @@ -418,7 +433,8 @@ def test_delete_not_found(self): client = _Client(self.PROJECT) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _instance_not_found=True) + _instance_not_found=True + ) instance = self._make_one(self.INSTANCE_ID, client) with self.assertRaises(NotFound): @@ -426,23 +442,22 @@ def test_delete_not_found(self): name, metadata = api._deleted_instance self.assertEqual(name, self.INSTANCE_NAME) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_delete_success(self): from google.protobuf.empty_pb2 import Empty client = _Client(self.PROJECT) api = client.instance_admin_api = _FauxInstanceAdminAPI( - _delete_instance_response=Empty()) + _delete_instance_response=Empty() + ) instance = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) instance.delete() name, metadata = api._deleted_instance self.assertEqual(name, self.INSTANCE_NAME) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', instance.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", instance.name)]) def test_database_factory_defaults(self): from google.cloud.spanner_v1.database import Database @@ -450,7 +465,7 @@ def test_database_factory_defaults(self): client = _Client(self.PROJECT) instance = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) - DATABASE_ID = 'database-id' + DATABASE_ID = "database-id" database = instance.database(DATABASE_ID) @@ -468,11 +483,12 @@ def test_database_factory_explicit(self): client = _Client(self.PROJECT) instance = self._make_one(self.INSTANCE_ID, client, self.CONFIG_NAME) - DATABASE_ID = 'database-id' + DATABASE_ID = "database-id" pool = _Pool() database = instance.database( - DATABASE_ID, ddl_statements=DDL_STATEMENTS, pool=pool) + DATABASE_ID, ddl_statements=DDL_STATEMENTS, pool=pool + ) self.assertTrue(isinstance(database, Database)) self.assertEqual(database.database_id, DATABASE_ID) @@ -482,10 +498,10 @@ def test_database_factory_explicit(self): self.assertIs(pool._bound, database) def test_list_databases(self): - from google.cloud.spanner_admin_database_v1.gapic import ( - database_admin_client) + from google.cloud.spanner_admin_database_v1.gapic import database_admin_client from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2) + spanner_database_admin_pb2, + ) from google.cloud.spanner_v1.database import Database api = database_admin_client.DatabaseAdminClient(mock.Mock()) @@ -496,70 +512,70 @@ def test_list_databases(self): databases_pb = spanner_database_admin_pb2.ListDatabasesResponse( databases=[ spanner_database_admin_pb2.Database( - name='{}/databases/aa'.format(self.INSTANCE_NAME)), + name="{}/databases/aa".format(self.INSTANCE_NAME) + ), spanner_database_admin_pb2.Database( - name='{}/databases/bb'.format(self.INSTANCE_NAME)) + name="{}/databases/bb".format(self.INSTANCE_NAME) + ), ] ) - ld_api = api._inner_api_calls['list_databases'] = mock.Mock( - return_value=databases_pb) + ld_api = api._inner_api_calls["list_databases"] = mock.Mock( + return_value=databases_pb + ) response = instance.list_databases() databases = list(response) self.assertIsInstance(databases[0], Database) - self.assertTrue(databases[0].name.endswith('/aa')) - self.assertTrue(databases[1].name.endswith('/bb')) + self.assertTrue(databases[0].name.endswith("/aa")) + self.assertTrue(databases[1].name.endswith("/bb")) ld_api.assert_called_once_with( - spanner_database_admin_pb2.ListDatabasesRequest( - parent=self.INSTANCE_NAME), - metadata=[('google-cloud-resource-prefix', instance.name)], + spanner_database_admin_pb2.ListDatabasesRequest(parent=self.INSTANCE_NAME), + metadata=[("google-cloud-resource-prefix", instance.name)], retry=mock.ANY, - timeout=mock.ANY) + timeout=mock.ANY, + ) def test_list_databases_w_options(self): - from google.cloud.spanner_admin_database_v1.gapic import ( - database_admin_client) + from google.cloud.spanner_admin_database_v1.gapic import database_admin_client from google.cloud.spanner_admin_database_v1.proto import ( - spanner_database_admin_pb2) + spanner_database_admin_pb2, + ) api = database_admin_client.DatabaseAdminClient(mock.Mock()) client = _Client(self.PROJECT) client.database_admin_api = api instance = self._make_one(self.INSTANCE_ID, client) - databases_pb = spanner_database_admin_pb2.ListDatabasesResponse( - databases=[] - ) + databases_pb = spanner_database_admin_pb2.ListDatabasesResponse(databases=[]) - ld_api = api._inner_api_calls['list_databases'] = mock.Mock( - return_value=databases_pb) + ld_api = api._inner_api_calls["list_databases"] = mock.Mock( + return_value=databases_pb + ) page_size = 42 - page_token = 'token' - response = instance.list_databases( - page_size=page_size, page_token=page_token) + page_token = "token" + response = instance.list_databases(page_size=page_size, page_token=page_token) databases = list(response) self.assertEqual(databases, []) ld_api.assert_called_once_with( spanner_database_admin_pb2.ListDatabasesRequest( - parent=self.INSTANCE_NAME, - page_size=page_size, - page_token=page_token), - metadata=[('google-cloud-resource-prefix', instance.name)], + parent=self.INSTANCE_NAME, page_size=page_size, page_token=page_token + ), + metadata=[("google-cloud-resource-prefix", instance.name)], retry=mock.ANY, - timeout=mock.ANY) + timeout=mock.ANY, + ) class _Client(object): - def __init__(self, project, timeout_seconds=None): self.project = project - self.project_name = 'projects/' + self.project + self.project_name = "projects/" + self.project self.timeout_seconds = timeout_seconds def copy(self): @@ -568,9 +584,11 @@ def copy(self): return deepcopy(self) def __eq__(self, other): - return (other.project == self.project and - other.project_name == self.project_name and - other.timeout_seconds == self.timeout_seconds) + return ( + other.project == self.project + and other.project_name == self.project_name + and other.timeout_seconds == self.timeout_seconds + ) class _FauxInstanceAdminAPI(object): @@ -587,9 +605,9 @@ def create_instance(self, parent, instance_id, instance, metadata=None): self._created_instance = (parent, instance_id, instance, metadata) if self._rpc_error: - raise Unknown('error') + raise Unknown("error") if self._create_instance_conflict: - raise AlreadyExists('conflict') + raise AlreadyExists("conflict") return self._create_instance_response def get_instance(self, name, metadata=None): @@ -597,9 +615,9 @@ def get_instance(self, name, metadata=None): self._got_instance = (name, metadata) if self._rpc_error: - raise Unknown('error') + raise Unknown("error") if self._instance_not_found: - raise NotFound('error') + raise NotFound("error") return self._get_instance_response def update_instance(self, instance, field_mask, metadata=None): @@ -607,9 +625,9 @@ def update_instance(self, instance, field_mask, metadata=None): self._updated_instance = (instance, field_mask, metadata) if self._rpc_error: - raise Unknown('error') + raise Unknown("error") if self._instance_not_found: - raise NotFound('error') + raise NotFound("error") return self._update_instance_response def delete_instance(self, name, metadata=None): @@ -617,9 +635,9 @@ def delete_instance(self, name, metadata=None): self._deleted_instance = name, metadata if self._rpc_error: - raise Unknown('error') + raise Unknown("error") if self._instance_not_found: - raise NotFound('error') + raise NotFound("error") return self._delete_instance_response diff --git a/spanner/tests/unit/test_keyset.py b/spanner/tests/unit/test_keyset.py index 49e98b784c5b..ed1473bf01e3 100644 --- a/spanner/tests/unit/test_keyset.py +++ b/spanner/tests/unit/test_keyset.py @@ -17,7 +17,6 @@ class TestKeyRange(unittest.TestCase): - def _get_target_class(self): from google.cloud.spanner_v1.keyset import KeyRange @@ -31,19 +30,19 @@ def test_ctor_no_start_no_end(self): self._make_one() def test_ctor_w_start_open_and_start_closed(self): - KEY_1 = [u'key_1'] - KEY_2 = [u'key_2'] + KEY_1 = [u"key_1"] + KEY_2 = [u"key_2"] with self.assertRaises(ValueError): self._make_one(start_open=KEY_1, start_closed=KEY_2) def test_ctor_w_end_open_and_end_closed(self): - KEY_1 = [u'key_1'] - KEY_2 = [u'key_2'] + KEY_1 = [u"key_1"] + KEY_2 = [u"key_2"] with self.assertRaises(ValueError): self._make_one(end_open=KEY_1, end_closed=KEY_2) def test_ctor_w_only_start_open(self): - KEY_1 = [u'key_1'] + KEY_1 = [u"key_1"] krange = self._make_one(start_open=KEY_1) self.assertEqual(krange.start_open, KEY_1) self.assertEqual(krange.start_closed, None) @@ -51,7 +50,7 @@ def test_ctor_w_only_start_open(self): self.assertEqual(krange.end_closed, []) def test_ctor_w_only_start_closed(self): - KEY_1 = [u'key_1'] + KEY_1 = [u"key_1"] krange = self._make_one(start_closed=KEY_1) self.assertEqual(krange.start_open, None) self.assertEqual(krange.start_closed, KEY_1) @@ -59,7 +58,7 @@ def test_ctor_w_only_start_closed(self): self.assertEqual(krange.end_closed, []) def test_ctor_w_only_end_open(self): - KEY_1 = [u'key_1'] + KEY_1 = [u"key_1"] krange = self._make_one(end_open=KEY_1) self.assertEqual(krange.start_open, None) self.assertEqual(krange.start_closed, []) @@ -67,7 +66,7 @@ def test_ctor_w_only_end_open(self): self.assertEqual(krange.end_closed, None) def test_ctor_w_only_end_closed(self): - KEY_1 = [u'key_1'] + KEY_1 = [u"key_1"] krange = self._make_one(end_closed=KEY_1) self.assertEqual(krange.start_open, None) self.assertEqual(krange.start_closed, []) @@ -75,8 +74,8 @@ def test_ctor_w_only_end_closed(self): self.assertEqual(krange.end_closed, KEY_1) def test_ctor_w_start_open_and_end_closed(self): - KEY_1 = [u'key_1'] - KEY_2 = [u'key_2'] + KEY_1 = [u"key_1"] + KEY_2 = [u"key_2"] krange = self._make_one(start_open=KEY_1, end_closed=KEY_2) self.assertEqual(krange.start_open, KEY_1) self.assertEqual(krange.start_closed, None) @@ -84,8 +83,8 @@ def test_ctor_w_start_open_and_end_closed(self): self.assertEqual(krange.end_closed, KEY_2) def test_ctor_w_start_closed_and_end_open(self): - KEY_1 = [u'key_1'] - KEY_2 = [u'key_2'] + KEY_1 = [u"key_1"] + KEY_2 = [u"key_2"] krange = self._make_one(start_closed=KEY_1, end_open=KEY_2) self.assertEqual(krange.start_open, None) self.assertEqual(krange.start_closed, KEY_1) @@ -93,24 +92,24 @@ def test_ctor_w_start_closed_and_end_open(self): self.assertEqual(krange.end_closed, None) def test___eq___self(self): - key_1 = [u'key_1'] + key_1 = [u"key_1"] krange = self._make_one(end_open=key_1) self.assertEqual(krange, krange) def test___eq___other_type(self): - key_1 = [u'key_1'] + key_1 = [u"key_1"] krange = self._make_one(end_open=key_1) self.assertNotEqual(krange, object()) def test___eq___other_hit(self): - key_1 = [u'key_1'] + key_1 = [u"key_1"] krange = self._make_one(end_open=key_1) other = self._make_one(end_open=key_1) self.assertEqual(krange, other) def test___eq___other(self): - key_1 = [u'key_1'] - key_2 = [u'key_2'] + key_1 = [u"key_1"] + key_2 = [u"key_2"] krange = self._make_one(end_open=key_1) other = self._make_one(start_closed=key_2, end_open=key_1) self.assertNotEqual(krange, other) @@ -120,17 +119,13 @@ def test_to_pb_w_start_closed_and_end_open(self): from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.keys_pb2 import KeyRange - key1 = u'key_1' - key2 = u'key_2' + key1 = u"key_1" + key2 = u"key_2" key_range = self._make_one(start_closed=[key1], end_open=[key2]) key_range_pb = key_range._to_pb() expected = KeyRange( - start_closed=ListValue(values=[ - Value(string_value=key1) - ]), - end_open=ListValue(values=[ - Value(string_value=key2) - ]), + start_closed=ListValue(values=[Value(string_value=key1)]), + end_open=ListValue(values=[Value(string_value=key2)]), ) self.assertEqual(key_range_pb, expected) @@ -139,17 +134,13 @@ def test_to_pb_w_start_open_and_end_closed(self): from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.keys_pb2 import KeyRange - key1 = u'key_1' - key2 = u'key_2' + key1 = u"key_1" + key2 = u"key_2" key_range = self._make_one(start_open=[key1], end_closed=[key2]) key_range_pb = key_range._to_pb() expected = KeyRange( - start_open=ListValue(values=[ - Value(string_value=key1) - ]), - end_closed=ListValue(values=[ - Value(string_value=key2) - ]), + start_open=ListValue(values=[Value(string_value=key1)]), + end_closed=ListValue(values=[Value(string_value=key2)]), ) self.assertEqual(key_range_pb, expected) @@ -158,40 +149,37 @@ def test_to_pb_w_empty_list(self): from google.protobuf.struct_pb2 import Value from google.cloud.spanner_v1.proto.keys_pb2 import KeyRange - key = u'key' + key = u"key" key_range = self._make_one(start_closed=[], end_closed=[key]) key_range_pb = key_range._to_pb() expected = KeyRange( start_closed=ListValue(values=[]), - end_closed=ListValue(values=[ - Value(string_value=key) - ]), + end_closed=ListValue(values=[Value(string_value=key)]), ) self.assertEqual(key_range_pb, expected) def test_to_dict_w_start_closed_and_end_open(self): - key1 = u'key_1' - key2 = u'key_2' + key1 = u"key_1" + key2 = u"key_2" key_range = self._make_one(start_closed=[key1], end_open=[key2]) - expected = {'start_closed': [key1], 'end_open': [key2]} + expected = {"start_closed": [key1], "end_open": [key2]} self.assertEqual(key_range._to_dict(), expected) def test_to_dict_w_start_open_and_end_closed(self): - key1 = u'key_1' - key2 = u'key_2' + key1 = u"key_1" + key2 = u"key_2" key_range = self._make_one(start_open=[key1], end_closed=[key2]) - expected = {'start_open': [key1], 'end_closed': [key2]} + expected = {"start_open": [key1], "end_closed": [key2]} self.assertEqual(key_range._to_dict(), expected) def test_to_dict_w_end_closed(self): - key = u'key' + key = u"key" key_range = self._make_one(end_closed=[key]) - expected = {'end_closed': [key]} + expected = {"end_closed": [key]} self.assertEqual(key_range._to_dict(), expected) class TestKeySet(unittest.TestCase): - def _get_target_class(self): from google.cloud.spanner_v1.keyset import KeySet @@ -208,7 +196,7 @@ def test_ctor_w_all(self): self.assertEqual(keyset.ranges, []) def test_ctor_w_keys(self): - KEYS = [[u'key1'], [u'key2']] + KEYS = [[u"key1"], [u"key2"]] keyset = self._make_one(keys=KEYS) @@ -219,8 +207,8 @@ def test_ctor_w_keys(self): def test_ctor_w_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange - range_1 = KeyRange(start_closed=[u'key1'], end_open=[u'key3']) - range_2 = KeyRange(start_open=[u'key5'], end_closed=[u'key6']) + range_1 = KeyRange(start_closed=[u"key1"], end_open=[u"key3"]) + range_2 = KeyRange(start_open=[u"key5"], end_closed=[u"key6"]) keyset = self._make_one(ranges=[range_1, range_2]) @@ -231,13 +219,13 @@ def test_ctor_w_ranges(self): def test_ctor_w_all_and_keys(self): with self.assertRaises(ValueError): - self._make_one(all_=True, keys=[['key1'], ['key2']]) + self._make_one(all_=True, keys=[["key1"], ["key2"]]) def test_ctor_w_all_and_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange - range_1 = KeyRange(start_closed=[u'key1'], end_open=[u'key3']) - range_2 = KeyRange(start_open=[u'key5'], end_closed=[u'key6']) + range_1 = KeyRange(start_closed=[u"key1"], end_open=[u"key3"]) + range_2 = KeyRange(start_open=[u"key5"], end_closed=[u"key6"]) with self.assertRaises(ValueError): self._make_one(all_=True, ranges=[range_1, range_2]) @@ -256,13 +244,13 @@ def test___eq___w_all_hit(self): self.assertEqual(keyset, other) def test___eq___w_all_miss(self): - keys = [[u'key1'], [u'key2']] + keys = [[u"key1"], [u"key2"]] keyset = self._make_one(all_=True) other = self._make_one(keys=keys) self.assertNotEqual(keyset, other) def test___eq___w_keys_hit(self): - keys = [[u'key1'], [u'key2']] + keys = [[u"key1"], [u"key2"]] keyset = self._make_one(keys=keys) other = self._make_one(keys=keys) @@ -270,7 +258,7 @@ def test___eq___w_keys_hit(self): self.assertEqual(keyset, other) def test___eq___w_keys_miss(self): - keys = [[u'key1'], [u'key2']] + keys = [[u"key1"], [u"key2"]] keyset = self._make_one(keys=keys[:1]) other = self._make_one(keys=keys[1:]) @@ -280,8 +268,8 @@ def test___eq___w_keys_miss(self): def test___eq___w_ranges_hit(self): from google.cloud.spanner_v1.keyset import KeyRange - range_1 = KeyRange(start_closed=[u'key1'], end_open=[u'key3']) - range_2 = KeyRange(start_open=[u'key5'], end_closed=[u'key6']) + range_1 = KeyRange(start_closed=[u"key1"], end_open=[u"key3"]) + range_2 = KeyRange(start_open=[u"key5"], end_closed=[u"key6"]) keyset = self._make_one(ranges=[range_1, range_2]) other = self._make_one(ranges=[range_1, range_2]) @@ -291,8 +279,8 @@ def test___eq___w_ranges_hit(self): def test___eq___w_ranges_miss(self): from google.cloud.spanner_v1.keyset import KeyRange - range_1 = KeyRange(start_closed=[u'key1'], end_open=[u'key3']) - range_2 = KeyRange(start_open=[u'key5'], end_closed=[u'key6']) + range_1 = KeyRange(start_closed=[u"key1"], end_open=[u"key3"]) + range_2 = KeyRange(start_open=[u"key5"], end_closed=[u"key6"]) keyset = self._make_one(ranges=[range_1]) other = self._make_one(ranges=[range_2]) @@ -314,7 +302,7 @@ def test_to_pb_w_all(self): def test_to_pb_w_only_keys(self): from google.cloud.spanner_v1.proto.keys_pb2 import KeySet - KEYS = [[u'key1'], [u'key2']] + KEYS = [[u"key1"], [u"key2"]] keyset = self._make_one(keys=KEYS) result = keyset._to_pb() @@ -333,10 +321,10 @@ def test_to_pb_w_only_ranges(self): from google.cloud.spanner_v1.proto.keys_pb2 import KeySet from google.cloud.spanner_v1.keyset import KeyRange - KEY_1 = u'KEY_1' - KEY_2 = u'KEY_2' - KEY_3 = u'KEY_3' - KEY_4 = u'KEY_4' + KEY_1 = u"KEY_1" + KEY_2 = u"KEY_2" + KEY_3 = u"KEY_3" + KEY_4 = u"KEY_4" RANGES = [ KeyRange(start_open=KEY_1, end_closed=KEY_2), KeyRange(start_closed=KEY_3, end_open=KEY_4), @@ -355,26 +343,23 @@ def test_to_pb_w_only_ranges(self): def test_to_dict_w_all(self): keyset = self._make_one(all_=True) - expected = {'all': True} + expected = {"all": True} self.assertEqual(keyset._to_dict(), expected) def test_to_dict_w_only_keys(self): - KEYS = [[u'key1'], [u'key2']] + KEYS = [[u"key1"], [u"key2"]] keyset = self._make_one(keys=KEYS) - expected = { - 'keys': KEYS, - 'ranges': [], - } + expected = {"keys": KEYS, "ranges": []} self.assertEqual(keyset._to_dict(), expected) def test_to_dict_w_only_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange - key_1 = u'KEY_1' - key_2 = u'KEY_2' - key_3 = u'KEY_3' - key_4 = u'KEY_4' + key_1 = u"KEY_1" + key_2 = u"KEY_2" + key_3 = u"KEY_3" + key_4 = u"KEY_4" ranges = [ KeyRange(start_open=[key_1], end_closed=[key_2]), KeyRange(start_closed=[key_3], end_open=[key_4]), @@ -382,19 +367,17 @@ def test_to_dict_w_only_ranges(self): keyset = self._make_one(ranges=ranges) expected = { - 'keys': [], - 'ranges': [ - {'start_open': [key_1], 'end_closed': [key_2]}, - {'start_closed': [key_3], 'end_open': [key_4]}, - ] + "keys": [], + "ranges": [ + {"start_open": [key_1], "end_closed": [key_2]}, + {"start_closed": [key_3], "end_open": [key_4]}, + ], } self.assertEqual(keyset._to_dict(), expected) def test_from_dict_w_all(self): klass = self._get_target_class() - mapping = { - 'all': True, - } + mapping = {"all": True} keyset = klass._from_dict(mapping) @@ -404,10 +387,8 @@ def test_from_dict_w_all(self): def test_from_dict_w_keys(self): klass = self._get_target_class() - keys = [[u'key1'], [u'key2']] - mapping = { - 'keys': keys, - } + keys = [[u"key1"], [u"key2"]] + mapping = {"keys": keys} keyset = klass._from_dict(mapping) @@ -419,15 +400,15 @@ def test_from_dict_w_ranges(self): from google.cloud.spanner_v1.keyset import KeyRange klass = self._get_target_class() - key_1 = u'KEY_1' - key_2 = u'KEY_2' - key_3 = u'KEY_3' - key_4 = u'KEY_4' + key_1 = u"KEY_1" + key_2 = u"KEY_2" + key_3 = u"KEY_3" + key_4 = u"KEY_4" mapping = { - 'ranges': [ - {'start_open': [key_1], 'end_closed': [key_2]}, - {'start_closed': [key_3], 'end_open': [key_4]}, - ], + "ranges": [ + {"start_open": [key_1], "end_closed": [key_2]}, + {"start_closed": [key_3], "end_open": [key_4]}, + ] } keyset = klass._from_dict(mapping) diff --git a/spanner/tests/unit/test_param_types.py b/spanner/tests/unit/test_param_types.py index fc7f0a41f42f..cb1c548af9e7 100644 --- a/spanner/tests/unit/test_param_types.py +++ b/spanner/tests/unit/test_param_types.py @@ -17,14 +17,12 @@ class Test_ArrayParamType(unittest.TestCase): - def test_it(self): from google.cloud.spanner_v1.proto import type_pb2 from google.cloud.spanner_v1 import param_types expected = type_pb2.Type( - code=type_pb2.ARRAY, - array_element_type=type_pb2.Type(code=type_pb2.INT64), + code=type_pb2.ARRAY, array_element_type=type_pb2.Type(code=type_pb2.INT64) ) found = param_types.Array(param_types.INT64) @@ -33,29 +31,27 @@ def test_it(self): class Test_Struct(unittest.TestCase): - def test_it(self): from google.cloud.spanner_v1.proto import type_pb2 from google.cloud.spanner_v1 import param_types - struct_type = type_pb2.StructType(fields=[ - type_pb2.StructType.Field( - name='name', - type=type_pb2.Type(code=type_pb2.STRING), - ), - type_pb2.StructType.Field( - name='count', - type=type_pb2.Type(code=type_pb2.INT64), - ), - ]) - expected = type_pb2.Type( - code=type_pb2.STRUCT, - struct_type=struct_type, + struct_type = type_pb2.StructType( + fields=[ + type_pb2.StructType.Field( + name="name", type=type_pb2.Type(code=type_pb2.STRING) + ), + type_pb2.StructType.Field( + name="count", type=type_pb2.Type(code=type_pb2.INT64) + ), + ] ) + expected = type_pb2.Type(code=type_pb2.STRUCT, struct_type=struct_type) - found = param_types.Struct([ - param_types.StructField('name', param_types.STRING), - param_types.StructField('count', param_types.INT64), - ]) + found = param_types.Struct( + [ + param_types.StructField("name", param_types.STRING), + param_types.StructField("count", param_types.INT64), + ] + ) self.assertEqual(found, expected) diff --git a/spanner/tests/unit/test_pool.py b/spanner/tests/unit/test_pool.py index 03c776a55fed..549044b1f423 100644 --- a/spanner/tests/unit/test_pool.py +++ b/spanner/tests/unit/test_pool.py @@ -19,7 +19,7 @@ import mock -def _make_database(name='name'): +def _make_database(name="name"): from google.cloud.spanner_v1.database import Database return mock.create_autospec(Database, instance=True) @@ -32,7 +32,6 @@ def _make_session(): class TestAbstractSessionPool(unittest.TestCase): - def _getTargetClass(self): from google.cloud.spanner_v1.pool import AbstractSessionPool @@ -47,14 +46,14 @@ def test_ctor_defaults(self): self.assertEqual(pool.labels, {}) def test_ctor_explicit(self): - labels = {'foo': 'bar'} + labels = {"foo": "bar"} pool = self._make_one(labels=labels) self.assertIsNone(pool._database) self.assertEqual(pool.labels, labels) def test_bind_abstract(self): pool = self._make_one() - database = _make_database('name') + database = _make_database("name") with self.assertRaises(NotImplementedError): pool.bind(database) @@ -76,7 +75,7 @@ def test_clear_abstract(self): def test__new_session_wo_labels(self): pool = self._make_one() - database = pool._database = _make_database('name') + database = pool._database = _make_database("name") session = _make_session() database.session.return_value = session @@ -86,18 +85,16 @@ def test__new_session_wo_labels(self): database.session.assert_called_once_with() def test__new_session_w_labels(self): - labels = {'foo': 'bar'} + labels = {"foo": "bar"} pool = self._make_one(labels=labels) - database = pool._database = _make_database('name') + database = pool._database = _make_database("name") session = _make_session() database.session.return_value = session new_session = pool._new_session() self.assertIs(new_session, session) - database.session.assert_called_once_with( - labels=labels, - ) + database.session.assert_called_once_with(labels=labels) def test_session_wo_kwargs(self): from google.cloud.spanner_v1.pool import SessionCheckout @@ -113,15 +110,14 @@ def test_session_w_kwargs(self): from google.cloud.spanner_v1.pool import SessionCheckout pool = self._make_one() - checkout = pool.session(foo='bar') + checkout = pool.session(foo="bar") self.assertIsInstance(checkout, SessionCheckout) self.assertIs(checkout._pool, pool) self.assertIsNone(checkout._session) - self.assertEqual(checkout._kwargs, {'foo': 'bar'}) + self.assertEqual(checkout._kwargs, {"foo": "bar"}) class TestFixedSizePool(unittest.TestCase): - def _getTargetClass(self): from google.cloud.spanner_v1.pool import FixedSizePool @@ -139,7 +135,7 @@ def test_ctor_defaults(self): self.assertEqual(pool.labels, {}) def test_ctor_explicit(self): - labels = {'foo': 'bar'} + labels = {"foo": "bar"} pool = self._make_one(size=4, default_timeout=30, labels=labels) self.assertIsNone(pool._database) self.assertEqual(pool.size, 4) @@ -149,7 +145,7 @@ def test_ctor_explicit(self): def test_bind(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 10 database._sessions.extend(SESSIONS) @@ -165,7 +161,7 @@ def test_bind(self): def test_get_non_expired(self): pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 4 database._sessions.extend(SESSIONS) pool.bind(database) @@ -178,7 +174,7 @@ def test_get_non_expired(self): def test_get_expired(self): pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 5 SESSIONS[0]._exists = False database._sessions.extend(SESSIONS) @@ -200,7 +196,7 @@ def test_get_empty_default_timeout(self): with self.assertRaises(Empty): pool.get() - self.assertEqual(queue._got, {'block': True, 'timeout': 10}) + self.assertEqual(queue._got, {"block": True, "timeout": 10}) def test_get_empty_explicit_timeout(self): from six.moves.queue import Empty @@ -211,13 +207,13 @@ def test_get_empty_explicit_timeout(self): with self.assertRaises(Empty): pool.get(timeout=1) - self.assertEqual(queue._got, {'block': True, 'timeout': 1}) + self.assertEqual(queue._got, {"block": True, "timeout": 1}) def test_put_full(self): from six.moves.queue import Full pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 4 database._sessions.extend(SESSIONS) pool.bind(database) @@ -229,7 +225,7 @@ def test_put_full(self): def test_put_non_full(self): pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 4 database._sessions.extend(SESSIONS) pool.bind(database) @@ -241,7 +237,7 @@ def test_put_non_full(self): def test_clear(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 10 database._sessions.extend(SESSIONS) pool.bind(database) @@ -257,7 +253,6 @@ def test_clear(self): class TestBurstyPool(unittest.TestCase): - def _getTargetClass(self): from google.cloud.spanner_v1.pool import BurstyPool @@ -274,7 +269,7 @@ def test_ctor_defaults(self): self.assertEqual(pool.labels, {}) def test_ctor_explicit(self): - labels = {'foo': 'bar'} + labels = {"foo": "bar"} pool = self._make_one(target_size=4, labels=labels) self.assertIsNone(pool._database) self.assertEqual(pool.target_size, 4) @@ -283,7 +278,7 @@ def test_ctor_explicit(self): def test_get_empty(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") database._sessions.append(_Session(database)) pool.bind(database) @@ -296,7 +291,7 @@ def test_get_empty(self): def test_get_non_empty_session_exists(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") previous = _Session(database) pool.bind(database) pool.put(previous) @@ -310,7 +305,7 @@ def test_get_non_empty_session_exists(self): def test_get_non_empty_session_expired(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") previous = _Session(database, exists=False) newborn = _Session(database) database._sessions.append(newborn) @@ -327,7 +322,7 @@ def test_get_non_empty_session_expired(self): def test_put_empty(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") pool.bind(database) session = _Session(database) @@ -337,7 +332,7 @@ def test_put_empty(self): def test_put_full(self): pool = self._make_one(target_size=1) - database = _Database('name') + database = _Database("name") pool.bind(database) older = _Session(database) pool.put(older) @@ -351,7 +346,7 @@ def test_put_full(self): def test_put_full_expired(self): pool = self._make_one(target_size=1) - database = _Database('name') + database = _Database("name") pool.bind(database) older = _Session(database) pool.put(older) @@ -365,7 +360,7 @@ def test_put_full_expired(self): def test_clear(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") pool.bind(database) previous = _Session(database) pool.put(previous) @@ -376,7 +371,6 @@ def test_clear(self): class TestPingingPool(unittest.TestCase): - def _getTargetClass(self): from google.cloud.spanner_v1.pool import PingingPool @@ -395,9 +389,10 @@ def test_ctor_defaults(self): self.assertEqual(pool.labels, {}) def test_ctor_explicit(self): - labels = {'foo': 'bar'} + labels = {"foo": "bar"} pool = self._make_one( - size=4, default_timeout=30, ping_interval=1800, labels=labels) + size=4, default_timeout=30, ping_interval=1800, labels=labels + ) self.assertIsNone(pool._database) self.assertEqual(pool.size, 4) self.assertEqual(pool.default_timeout, 30) @@ -407,7 +402,7 @@ def test_ctor_explicit(self): def test_bind(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 10 database._sessions.extend(SESSIONS) @@ -424,7 +419,7 @@ def test_bind(self): def test_get_hit_no_ping(self): pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 4 database._sessions.extend(SESSIONS) pool.bind(database) @@ -441,12 +436,11 @@ def test_get_hit_w_ping(self): from google.cloud.spanner_v1 import pool as MUT pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 4 database._sessions.extend(SESSIONS) - sessions_created = ( - datetime.datetime.utcnow() - datetime.timedelta(seconds=4000)) + sessions_created = datetime.datetime.utcnow() - datetime.timedelta(seconds=4000) with _Monkey(MUT, _NOW=lambda: sessions_created): pool.bind(database) @@ -463,13 +457,12 @@ def test_get_hit_w_ping_expired(self): from google.cloud.spanner_v1 import pool as MUT pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 5 SESSIONS[0]._exists = False database._sessions.extend(SESSIONS) - sessions_created = ( - datetime.datetime.utcnow() - datetime.timedelta(seconds=4000)) + sessions_created = datetime.datetime.utcnow() - datetime.timedelta(seconds=4000) with _Monkey(MUT, _NOW=lambda: sessions_created): pool.bind(database) @@ -490,7 +483,7 @@ def test_get_empty_default_timeout(self): with self.assertRaises(Empty): pool.get() - self.assertEqual(queue._got, {'block': True, 'timeout': 10}) + self.assertEqual(queue._got, {"block": True, "timeout": 10}) def test_get_empty_explicit_timeout(self): from six.moves.queue import Empty @@ -501,13 +494,13 @@ def test_get_empty_explicit_timeout(self): with self.assertRaises(Empty): pool.get(timeout=1) - self.assertEqual(queue._got, {'block': True, 'timeout': 1}) + self.assertEqual(queue._got, {"block": True, "timeout": 1}) def test_put_full(self): from six.moves.queue import Full pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 4 database._sessions.extend(SESSIONS) pool.bind(database) @@ -526,7 +519,7 @@ def test_put_non_full(self): queue = pool._sessions = _Queue() now = datetime.datetime.utcnow() - database = _Database('name') + database = _Database("name") session = _Session(database) with _Monkey(MUT, _NOW=lambda: now): @@ -539,7 +532,7 @@ def test_put_non_full(self): def test_clear(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 10 database._sessions.extend(SESSIONS) pool.bind(database) @@ -559,7 +552,7 @@ def test_ping_empty(self): def test_ping_oldest_fresh(self): pool = self._make_one(size=1) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 1 database._sessions.extend(SESSIONS) pool.bind(database) @@ -574,7 +567,7 @@ def test_ping_oldest_stale_but_exists(self): from google.cloud.spanner_v1 import pool as MUT pool = self._make_one(size=1) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 1 database._sessions.extend(SESSIONS) pool.bind(database) @@ -591,7 +584,7 @@ def test_ping_oldest_stale_and_not_exists(self): from google.cloud.spanner_v1 import pool as MUT pool = self._make_one(size=1) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database)] * 2 SESSIONS[0]._exists = False database._sessions.extend(SESSIONS) @@ -606,7 +599,6 @@ def test_ping_oldest_stale_and_not_exists(self): class TestTransactionPingingPool(unittest.TestCase): - def _getTargetClass(self): from google.cloud.spanner_v1.pool import TransactionPingingPool @@ -626,9 +618,10 @@ def test_ctor_defaults(self): self.assertEqual(pool.labels, {}) def test_ctor_explicit(self): - labels = {'foo': 'bar'} + labels = {"foo": "bar"} pool = self._make_one( - size=4, default_timeout=30, ping_interval=1800, labels=labels) + size=4, default_timeout=30, ping_interval=1800, labels=labels + ) self.assertIsNone(pool._database) self.assertEqual(pool.size, 4) self.assertEqual(pool.default_timeout, 30) @@ -639,7 +632,7 @@ def test_ctor_explicit(self): def test_bind(self): pool = self._make_one() - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database) for _ in range(10)] database._sessions.extend(SESSIONS) @@ -662,9 +655,10 @@ def test_bind_w_timestamp_race(self): import datetime from google.cloud._testing import _Monkey from google.cloud.spanner_v1 import pool as MUT + NOW = datetime.datetime.utcnow() pool = self._make_one() - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database) for _ in range(10)] database._sessions.extend(SESSIONS) @@ -688,7 +682,7 @@ def test_put_full(self): from six.moves.queue import Full pool = self._make_one(size=4) - database = _Database('name') + database = _Database("name") SESSIONS = [_Session(database) for _ in range(4)] database._sessions.extend(SESSIONS) pool.bind(database) @@ -702,7 +696,7 @@ def test_put_non_full_w_active_txn(self): pool = self._make_one(size=1) queue = pool._sessions = _Queue() pending = pool._pending_sessions = _Queue() - database = _Database('name') + database = _Database("name") session = _Session(database) txn = session.transaction() @@ -719,7 +713,7 @@ def test_put_non_full_w_committed_txn(self): pool = self._make_one(size=1) queue = pool._sessions = _Queue() pending = pool._pending_sessions = _Queue() - database = _Database('name') + database = _Database("name") session = _Session(database) committed = session.transaction() committed._committed = True @@ -737,7 +731,7 @@ def test_put_non_full(self): pool = self._make_one(size=1) queue = pool._sessions = _Queue() pending = pool._pending_sessions = _Queue() - database = _Database('name') + database = _Database("name") session = _Session(database) pool.put(session) @@ -756,10 +750,9 @@ def test_begin_pending_transactions_non_empty(self): pool = self._make_one(size=1) pool._sessions = _Queue() - database = _Database('name') + database = _Database("name") TRANSACTIONS = [_Transaction()] - PENDING_SESSIONS = [ - _Session(database, transaction=txn) for txn in TRANSACTIONS] + PENDING_SESSIONS = [_Session(database, transaction=txn) for txn in TRANSACTIONS] pending = pool._pending_sessions = _Queue(*PENDING_SESSIONS) self.assertFalse(pending.empty()) @@ -773,7 +766,6 @@ def test_begin_pending_transactions_non_empty(self): class TestSessionCheckout(unittest.TestCase): - def _getTargetClass(self): from google.cloud.spanner_v1.pool import SessionCheckout @@ -791,10 +783,10 @@ def test_ctor_wo_kwargs(self): def test_ctor_w_kwargs(self): pool = _Pool() - checkout = self._make_one(pool, foo='bar') + checkout = self._make_one(pool, foo="bar") self.assertIs(checkout._pool, pool) self.assertIsNone(checkout._session) - self.assertEqual(checkout._kwargs, {'foo': 'bar'}) + self.assertEqual(checkout._kwargs, {"foo": "bar"}) def test_context_manager_wo_kwargs(self): session = object() @@ -815,7 +807,7 @@ def test_context_manager_wo_kwargs(self): def test_context_manager_w_kwargs(self): session = object() pool = _Pool(session) - checkout = self._make_one(pool, foo='bar') + checkout = self._make_one(pool, foo="bar") self.assertEqual(len(pool._items), 1) self.assertIs(pool._items[0], session) @@ -826,7 +818,7 @@ def test_context_manager_w_kwargs(self): self.assertEqual(len(pool._items), 1) self.assertIs(pool._items[0], session) - self.assertEqual(pool._got, {'foo': 'bar'}) + self.assertEqual(pool._got, {"foo": "bar"}) class _Transaction(object): @@ -878,7 +870,6 @@ def transaction(self): class _Database(object): - def __init__(self, name): self.name = name self._sessions = [] diff --git a/spanner/tests/unit/test_session.py b/spanner/tests/unit/test_session.py index fc1b7ae4d2f0..267b20e3aa10 100644 --- a/spanner/tests/unit/test_session.py +++ b/spanner/tests/unit/test_session.py @@ -23,18 +23,18 @@ def _make_rpc_error(error_cls, trailing_metadata=None): grpc_error = mock.create_autospec(grpc.Call, instance=True) grpc_error.trailing_metadata.return_value = trailing_metadata - return error_cls('error', errors=(grpc_error,)) + return error_cls("error", errors=(grpc_error,)) class TestSession(unittest.TestCase): - PROJECT_ID = 'project-id' - INSTANCE_ID = 'instance-id' - INSTANCE_NAME = ('projects/' + PROJECT_ID + '/instances/' + INSTANCE_ID) - DATABASE_ID = 'database-id' - DATABASE_NAME = INSTANCE_NAME + '/databases/' + DATABASE_ID - SESSION_ID = 'session-id' - SESSION_NAME = DATABASE_NAME + '/sessions/' + SESSION_ID + PROJECT_ID = "project-id" + INSTANCE_ID = "instance-id" + INSTANCE_NAME = "projects/" + PROJECT_ID + "/instances/" + INSTANCE_ID + DATABASE_ID = "database-id" + DATABASE_NAME = INSTANCE_NAME + "/databases/" + DATABASE_ID + SESSION_ID = "session-id" + SESSION_NAME = DATABASE_NAME + "/sessions/" + SESSION_ID def _getTargetClass(self): from google.cloud.spanner_v1.session import Session @@ -72,7 +72,7 @@ def test_constructor_wo_labels(self): def test_constructor_w_labels(self): database = self._make_database() - labels = {'foo': 'bar'} + labels = {"foo": "bar"} session = self._make_one(database, labels=labels) self.assertIs(session.session_id, None) self.assertIs(session._database, database) @@ -81,9 +81,9 @@ def test_constructor_w_labels(self): def test___lt___(self): database = self._make_database() lhs = self._make_one(database) - lhs._session_id = b'123' + lhs._session_id = b"123" rhs = self._make_one(database) - rhs._session_id = b'234' + rhs._session_id = b"234" self.assertTrue(lhs < rhs) def test_name_property_wo_session_id(self): @@ -120,12 +120,11 @@ def test_create_ok(self): self.assertEqual(session.session_id, self.SESSION_ID) gax_api.create_session.assert_called_once_with( - database.name, - metadata=[('google-cloud-resource-prefix', database.name)], + database.name, metadata=[("google-cloud-resource-prefix", database.name)] ) def test_create_w_labels(self): - labels = {'foo': 'bar'} + labels = {"foo": "bar"} session_pb = self._make_session_pb(self.SESSION_NAME, labels=labels) gax_api = self._make_spanner_api() gax_api.create_session.return_value = session_pb @@ -139,15 +138,15 @@ def test_create_w_labels(self): gax_api.create_session.assert_called_once_with( database.name, - session={'labels': labels}, - metadata=[('google-cloud-resource-prefix', database.name)], + session={"labels": labels}, + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_create_error(self): from google.api_core.exceptions import Unknown gax_api = self._make_spanner_api() - gax_api.create_session.side_effect = Unknown('error') + gax_api.create_session.side_effect = Unknown("error") database = self._make_database() database.spanner_api = gax_api session = self._make_one(database) @@ -173,14 +172,14 @@ def test_exists_hit(self): gax_api.get_session.assert_called_once_with( self.SESSION_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_exists_miss(self): from google.api_core.exceptions import NotFound gax_api = self._make_spanner_api() - gax_api.get_session.side_effect = NotFound('testing') + gax_api.get_session.side_effect = NotFound("testing") database = self._make_database() database.spanner_api = gax_api session = self._make_one(database) @@ -190,14 +189,14 @@ def test_exists_miss(self): gax_api.get_session.assert_called_once_with( self.SESSION_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_exists_error(self): from google.api_core.exceptions import Unknown gax_api = self._make_spanner_api() - gax_api.get_session.side_effect = Unknown('testing') + gax_api.get_session.side_effect = Unknown("testing") database = self._make_database() database.spanner_api = gax_api session = self._make_one(database) @@ -208,7 +207,7 @@ def test_exists_error(self): gax_api.get_session.assert_called_once_with( self.SESSION_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_delete_wo_session_id(self): @@ -230,14 +229,14 @@ def test_delete_hit(self): gax_api.delete_session.assert_called_once_with( self.SESSION_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_delete_miss(self): from google.cloud.exceptions import NotFound gax_api = self._make_spanner_api() - gax_api.delete_session.side_effect = NotFound('testing') + gax_api.delete_session.side_effect = NotFound("testing") database = self._make_database() database.spanner_api = gax_api session = self._make_one(database) @@ -248,14 +247,14 @@ def test_delete_miss(self): gax_api.delete_session.assert_called_once_with( self.SESSION_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_delete_error(self): from google.api_core.exceptions import Unknown gax_api = self._make_spanner_api() - gax_api.delete_session.side_effect = Unknown('testing') + gax_api.delete_session.side_effect = Unknown("testing") database = self._make_database() database.spanner_api = gax_api session = self._make_one(database) @@ -266,7 +265,7 @@ def test_delete_error(self): gax_api.delete_session.assert_called_once_with( self.SESSION_NAME, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_snapshot_not_created(self): @@ -281,7 +280,7 @@ def test_snapshot_created(self): database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' # emulate 'session.create()' + session._session_id = "DEADBEEF" # emulate 'session.create()' snapshot = session.snapshot() @@ -295,7 +294,7 @@ def test_snapshot_created_w_multi_use(self): database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' # emulate 'session.create()' + session._session_id = "DEADBEEF" # emulate 'session.create()' snapshot = session.snapshot(multi_use=True) @@ -307,9 +306,9 @@ def test_snapshot_created_w_multi_use(self): def test_read_not_created(self): from google.cloud.spanner_v1.keyset import KeySet - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] - KEYS = ['bharney@example.com', 'phred@example.com'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] + KEYS = ["bharney@example.com", "phred@example.com"] KEYSET = KeySet(keys=KEYS) database = self._make_database() session = self._make_one(database) @@ -320,34 +319,27 @@ def test_read_not_created(self): def test_read(self): from google.cloud.spanner_v1.keyset import KeySet - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] - KEYS = ['bharney@example.com', 'phred@example.com'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] + KEYS = ["bharney@example.com", "phred@example.com"] KEYSET = KeySet(keys=KEYS) - INDEX = 'email-address-index' + INDEX = "email-address-index" LIMIT = 20 database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' + session._session_id = "DEADBEEF" - with mock.patch( - 'google.cloud.spanner_v1.session.Snapshot') as snapshot: - found = session.read( - TABLE_NAME, COLUMNS, KEYSET, - index=INDEX, limit=LIMIT) + with mock.patch("google.cloud.spanner_v1.session.Snapshot") as snapshot: + found = session.read(TABLE_NAME, COLUMNS, KEYSET, index=INDEX, limit=LIMIT) self.assertIs(found, snapshot().read.return_value) snapshot().read.assert_called_once_with( - TABLE_NAME, - COLUMNS, - KEYSET, - INDEX, - LIMIT, + TABLE_NAME, COLUMNS, KEYSET, INDEX, LIMIT ) def test_execute_sql_not_created(self): - SQL = 'SELECT first_name, age FROM citizens' + SQL = "SELECT first_name, age FROM citizens" database = self._make_database() session = self._make_one(database) @@ -355,13 +347,12 @@ def test_execute_sql_not_created(self): session.execute_sql(SQL) def test_execute_sql_defaults(self): - SQL = 'SELECT first_name, age FROM citizens' + SQL = "SELECT first_name, age FROM citizens" database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' + session._session_id = "DEADBEEF" - with mock.patch( - 'google.cloud.spanner_v1.session.Snapshot') as snapshot: + with mock.patch("google.cloud.spanner_v1.session.Snapshot") as snapshot: found = session.execute_sql(SQL) self.assertIs(found, snapshot().execute_sql.return_value) @@ -379,46 +370,39 @@ def test_execute_sql_non_default_retry(self): from google.protobuf.struct_pb2 import Struct, Value from google.cloud.spanner_v1.proto.type_pb2 import STRING - SQL = 'SELECT first_name, age FROM citizens' + SQL = "SELECT first_name, age FROM citizens" database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' + session._session_id = "DEADBEEF" - params = Struct(fields={'foo': Value(string_value='bar')}) - param_types = {'foo': STRING} + params = Struct(fields={"foo": Value(string_value="bar")}) + param_types = {"foo": STRING} - with mock.patch( - 'google.cloud.spanner_v1.session.Snapshot') as snapshot: + with mock.patch("google.cloud.spanner_v1.session.Snapshot") as snapshot: found = session.execute_sql( - SQL, params, param_types, 'PLAN', retry=None, timeout=None) + SQL, params, param_types, "PLAN", retry=None, timeout=None + ) self.assertIs(found, snapshot().execute_sql.return_value) snapshot().execute_sql.assert_called_once_with( - SQL, - params, - param_types, - 'PLAN', - timeout=None, - retry=None + SQL, params, param_types, "PLAN", timeout=None, retry=None ) def test_execute_sql_explicit(self): from google.protobuf.struct_pb2 import Struct, Value from google.cloud.spanner_v1.proto.type_pb2 import STRING - SQL = 'SELECT first_name, age FROM citizens' + SQL = "SELECT first_name, age FROM citizens" database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' + session._session_id = "DEADBEEF" - params = Struct(fields={'foo': Value(string_value='bar')}) - param_types = {'foo': STRING} + params = Struct(fields={"foo": Value(string_value="bar")}) + param_types = {"foo": STRING} - with mock.patch( - 'google.cloud.spanner_v1.session.Snapshot') as snapshot: - found = session.execute_sql( - SQL, params, param_types, 'PLAN') + with mock.patch("google.cloud.spanner_v1.session.Snapshot") as snapshot: + found = session.execute_sql(SQL, params, param_types, "PLAN") self.assertIs(found, snapshot().execute_sql.return_value) @@ -426,7 +410,7 @@ def test_execute_sql_explicit(self): SQL, params, param_types, - 'PLAN', + "PLAN", timeout=google.api_core.gapic_v1.method.DEFAULT, retry=google.api_core.gapic_v1.method.DEFAULT, ) @@ -443,7 +427,7 @@ def test_batch_created(self): database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' + session._session_id = "DEADBEEF" batch = session.batch() @@ -462,7 +446,7 @@ def test_transaction_created(self): database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' + session._session_id = "DEADBEEF" transaction = session.transaction() @@ -473,7 +457,7 @@ def test_transaction_created(self): def test_transaction_w_existing_txn(self): database = self._make_database() session = self._make_one(database) - session._session_id = 'DEADBEEF' + session._session_id = "DEADBEEF" existing = session.transaction() another = session.transaction() # invalidates existing txn @@ -483,16 +467,18 @@ def test_transaction_w_existing_txn(self): def test_run_in_transaction_callback_raises_non_gax_error(self): from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) from google.cloud.spanner_v1.transaction import Transaction - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" transaction_pb = TransactionPB(id=TRANSACTION_ID) gax_api = self._make_spanner_api() gax_api.begin_transaction.return_value = transaction_pb @@ -524,33 +510,33 @@ def unit_of_work(txn, *args, **kw): self.assertEqual(args, ()) self.assertEqual(kw, {}) - expected_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite(), - ) + expected_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) gax_api.begin_transaction.assert_called_once_with( self.SESSION_NAME, expected_options, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) gax_api.rollback.assert_called_once_with( self.SESSION_NAME, TRANSACTION_ID, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_run_in_transaction_callback_raises_non_abort_rpc_error(self): from google.api_core.exceptions import Cancelled from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) from google.cloud.spanner_v1.transaction import Transaction - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" transaction_pb = TransactionPB(id=TRANSACTION_ID) gax_api = self._make_spanner_api() gax_api.begin_transaction.return_value = transaction_pb @@ -565,7 +551,7 @@ def test_run_in_transaction_callback_raises_non_abort_rpc_error(self): def unit_of_work(txn, *args, **kw): called_with.append((txn, args, kw)) txn.insert(TABLE_NAME, COLUMNS, VALUES) - raise Cancelled('error') + raise Cancelled("error") with self.assertRaises(Cancelled): session.run_in_transaction(unit_of_work) @@ -579,13 +565,11 @@ def unit_of_work(txn, *args, **kw): self.assertEqual(args, ()) self.assertEqual(kw, {}) - expected_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite(), - ) + expected_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) gax_api.begin_transaction.assert_called_once_with( self.SESSION_NAME, expected_options, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) gax_api.rollback.assert_not_called() @@ -593,18 +577,20 @@ def test_run_in_transaction_w_args_w_kwargs_wo_abort(self): import datetime from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp from google.cloud.spanner_v1.transaction import Transaction - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" transaction_pb = TransactionPB(id=TRANSACTION_ID) now = datetime.datetime.utcnow().replace(tzinfo=UTC) now_pb = _datetime_to_pb_timestamp(now) @@ -624,45 +610,42 @@ def unit_of_work(txn, *args, **kw): txn.insert(TABLE_NAME, COLUMNS, VALUES) return 42 - return_value = session.run_in_transaction( - unit_of_work, 'abc', some_arg='def') + return_value = session.run_in_transaction(unit_of_work, "abc", some_arg="def") self.assertIsNone(session._transaction) self.assertEqual(len(called_with), 1) txn, args, kw = called_with[0] self.assertIsInstance(txn, Transaction) self.assertEqual(return_value, 42) - self.assertEqual(args, ('abc',)) - self.assertEqual(kw, {'some_arg': 'def'}) + self.assertEqual(args, ("abc",)) + self.assertEqual(kw, {"some_arg": "def"}) - expected_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite(), - ) + expected_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) gax_api.begin_transaction.assert_called_once_with( self.SESSION_NAME, expected_options, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) gax_api.commit.assert_called_once_with( self.SESSION_NAME, txn._mutations, transaction_id=TRANSACTION_ID, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_run_in_transaction_w_commit_error(self): from google.api_core.exceptions import Unknown from google.cloud.spanner_v1.transaction import Transaction - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" gax_api = self._make_spanner_api() - gax_api.commit.side_effect = Unknown('error') + gax_api.commit.side_effect = Unknown("error") database = self._make_database() database.spanner_api = gax_api session = self._make_one(database) @@ -694,7 +677,7 @@ def unit_of_work(txn, *args, **kw): self.SESSION_NAME, txn._mutations, transaction_id=TRANSACTION_ID, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_run_in_transaction_w_abort_no_retry_metadata(self): @@ -702,18 +685,20 @@ def test_run_in_transaction_w_abort_no_retry_metadata(self): from google.api_core.exceptions import Aborted from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp from google.cloud.spanner_v1.transaction import Transaction - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" transaction_pb = TransactionPB(id=TRANSACTION_ID) now = datetime.datetime.utcnow().replace(tzinfo=UTC) now_pb = _datetime_to_pb_timestamp(now) @@ -732,36 +717,41 @@ def test_run_in_transaction_w_abort_no_retry_metadata(self): def unit_of_work(txn, *args, **kw): called_with.append((txn, args, kw)) txn.insert(TABLE_NAME, COLUMNS, VALUES) - return 'answer' + return "answer" - return_value = session.run_in_transaction( - unit_of_work, 'abc', some_arg='def') + return_value = session.run_in_transaction(unit_of_work, "abc", some_arg="def") self.assertEqual(len(called_with), 2) for index, (txn, args, kw) in enumerate(called_with): self.assertIsInstance(txn, Transaction) - self.assertEqual(return_value, 'answer') - self.assertEqual(args, ('abc',)) - self.assertEqual(kw, {'some_arg': 'def'}) + self.assertEqual(return_value, "answer") + self.assertEqual(args, ("abc",)) + self.assertEqual(kw, {"some_arg": "def"}) - expected_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite(), - ) + expected_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) self.assertEqual( gax_api.begin_transaction.call_args_list, - [mock.call( - self.SESSION_NAME, - expected_options, - metadata=[('google-cloud-resource-prefix', database.name)], - )] * 2) + [ + mock.call( + self.SESSION_NAME, + expected_options, + metadata=[("google-cloud-resource-prefix", database.name)], + ) + ] + * 2, + ) self.assertEqual( gax_api.commit.call_args_list, - [mock.call( - self.SESSION_NAME, - txn._mutations, - transaction_id=TRANSACTION_ID, - metadata=[('google-cloud-resource-prefix', database.name)], - )] * 2) + [ + mock.call( + self.SESSION_NAME, + txn._mutations, + transaction_id=TRANSACTION_ID, + metadata=[("google-cloud-resource-prefix", database.name)], + ) + ] + * 2, + ) def test_run_in_transaction_w_abort_w_retry_metadata(self): import datetime @@ -770,31 +760,29 @@ def test_run_in_transaction_w_abort_w_retry_metadata(self): from google.rpc.error_details_pb2 import RetryInfo from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp from google.cloud.spanner_v1.transaction import Transaction - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" RETRY_SECONDS = 12 RETRY_NANOS = 3456 retry_info = RetryInfo( - retry_delay=Duration( - seconds=RETRY_SECONDS, - nanos=RETRY_NANOS)) + retry_delay=Duration(seconds=RETRY_SECONDS, nanos=RETRY_NANOS) + ) trailing_metadata = [ - ('google.rpc.retryinfo-bin', retry_info.SerializeToString()), + ("google.rpc.retryinfo-bin", retry_info.SerializeToString()) ] - aborted = _make_rpc_error( - Aborted, - trailing_metadata=trailing_metadata, - ) + aborted = _make_rpc_error(Aborted, trailing_metadata=trailing_metadata) transaction_pb = TransactionPB(id=TRANSACTION_ID) now = datetime.datetime.utcnow().replace(tzinfo=UTC) now_pb = _datetime_to_pb_timestamp(now) @@ -813,8 +801,8 @@ def unit_of_work(txn, *args, **kw): called_with.append((txn, args, kw)) txn.insert(TABLE_NAME, COLUMNS, VALUES) - with mock.patch('time.sleep') as sleep_mock: - session.run_in_transaction(unit_of_work, 'abc', some_arg='def') + with mock.patch("time.sleep") as sleep_mock: + session.run_in_transaction(unit_of_work, "abc", some_arg="def") sleep_mock.assert_called_once_with(RETRY_SECONDS + RETRY_NANOS / 1.0e9) self.assertEqual(len(called_with), 2) @@ -825,27 +813,33 @@ def unit_of_work(txn, *args, **kw): self.assertEqual(txn.committed, now) else: self.assertIsNone(txn.committed) - self.assertEqual(args, ('abc',)) - self.assertEqual(kw, {'some_arg': 'def'}) + self.assertEqual(args, ("abc",)) + self.assertEqual(kw, {"some_arg": "def"}) - expected_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite(), - ) + expected_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) self.assertEqual( gax_api.begin_transaction.call_args_list, - [mock.call( - self.SESSION_NAME, - expected_options, - metadata=[('google-cloud-resource-prefix', database.name)], - )] * 2) + [ + mock.call( + self.SESSION_NAME, + expected_options, + metadata=[("google-cloud-resource-prefix", database.name)], + ) + ] + * 2, + ) self.assertEqual( gax_api.commit.call_args_list, - [mock.call( - self.SESSION_NAME, - txn._mutations, - transaction_id=TRANSACTION_ID, - metadata=[('google-cloud-resource-prefix', database.name)], - )] * 2) + [ + mock.call( + self.SESSION_NAME, + txn._mutations, + transaction_id=TRANSACTION_ID, + metadata=[("google-cloud-resource-prefix", database.name)], + ) + ] + * 2, + ) def test_run_in_transaction_w_callback_raises_abort_wo_metadata(self): import datetime @@ -854,18 +848,20 @@ def test_run_in_transaction_w_callback_raises_abort_wo_metadata(self): from google.rpc.error_details_pb2 import RetryInfo from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp from google.cloud.spanner_v1.transaction import Transaction - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" RETRY_SECONDS = 1 RETRY_NANOS = 3456 transaction_pb = TransactionPB(id=TRANSACTION_ID) @@ -873,11 +869,10 @@ def test_run_in_transaction_w_callback_raises_abort_wo_metadata(self): now_pb = _datetime_to_pb_timestamp(now) response = CommitResponse(commit_timestamp=now_pb) retry_info = RetryInfo( - retry_delay=Duration( - seconds=RETRY_SECONDS, - nanos=RETRY_NANOS)) + retry_delay=Duration(seconds=RETRY_SECONDS, nanos=RETRY_NANOS) + ) trailing_metadata = [ - ('google.rpc.retryinfo-bin', retry_info.SerializeToString()), + ("google.rpc.retryinfo-bin", retry_info.SerializeToString()) ] gax_api = self._make_spanner_api() gax_api.begin_transaction.return_value = transaction_pb @@ -895,7 +890,7 @@ def unit_of_work(txn, *args, **kw): raise _make_rpc_error(Aborted, trailing_metadata) txn.insert(TABLE_NAME, COLUMNS, VALUES) - with mock.patch('time.sleep') as sleep_mock: + with mock.patch("time.sleep") as sleep_mock: session.run_in_transaction(unit_of_work) sleep_mock.assert_called_once_with(RETRY_SECONDS + RETRY_NANOS / 1.0e9) @@ -909,21 +904,23 @@ def unit_of_work(txn, *args, **kw): self.assertEqual(args, ()) self.assertEqual(kw, {}) - expected_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite(), - ) + expected_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) self.assertEqual( gax_api.begin_transaction.call_args_list, - [mock.call( - self.SESSION_NAME, - expected_options, - metadata=[('google-cloud-resource-prefix', database.name)], - )] * 2) + [ + mock.call( + self.SESSION_NAME, + expected_options, + metadata=[("google-cloud-resource-prefix", database.name)], + ) + ] + * 2, + ) gax_api.commit.assert_called_once_with( self.SESSION_NAME, txn._mutations, transaction_id=TRANSACTION_ID, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_run_in_transaction_w_abort_w_retry_metadata_deadline(self): @@ -933,18 +930,20 @@ def test_run_in_transaction_w_abort_w_retry_metadata_deadline(self): from google.rpc.error_details_pb2 import RetryInfo from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) from google.cloud.spanner_v1.transaction import Transaction from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" RETRY_SECONDS = 1 RETRY_NANOS = 3456 transaction_pb = TransactionPB(id=TRANSACTION_ID) @@ -952,16 +951,12 @@ def test_run_in_transaction_w_abort_w_retry_metadata_deadline(self): now_pb = _datetime_to_pb_timestamp(now) response = CommitResponse(commit_timestamp=now_pb) retry_info = RetryInfo( - retry_delay=Duration( - seconds=RETRY_SECONDS, - nanos=RETRY_NANOS)) + retry_delay=Duration(seconds=RETRY_SECONDS, nanos=RETRY_NANOS) + ) trailing_metadata = [ - ('google.rpc.retryinfo-bin', retry_info.SerializeToString()), + ("google.rpc.retryinfo-bin", retry_info.SerializeToString()) ] - aborted = _make_rpc_error( - Aborted, - trailing_metadata=trailing_metadata, - ) + aborted = _make_rpc_error(Aborted, trailing_metadata=trailing_metadata) gax_api = self._make_spanner_api() gax_api.begin_transaction.return_value = transaction_pb gax_api.commit.side_effect = [aborted, response] @@ -980,11 +975,10 @@ def unit_of_work(txn, *args, **kw): def _time(_results=[1, 1.5]): return _results.pop(0) - with mock.patch('time.time', _time): - with mock.patch('time.sleep') as sleep_mock: + with mock.patch("time.time", _time): + with mock.patch("time.sleep") as sleep_mock: with self.assertRaises(Aborted): - session.run_in_transaction( - unit_of_work, 'abc', timeout_secs=1) + session.run_in_transaction(unit_of_work, "abc", timeout_secs=1) sleep_mock.assert_not_called() @@ -992,42 +986,39 @@ def _time(_results=[1, 1.5]): txn, args, kw = called_with[0] self.assertIsInstance(txn, Transaction) self.assertIsNone(txn.committed) - self.assertEqual(args, ('abc',)) + self.assertEqual(args, ("abc",)) self.assertEqual(kw, {}) - expected_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite(), - ) + expected_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) gax_api.begin_transaction.assert_called_once_with( self.SESSION_NAME, expected_options, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) gax_api.commit.assert_called_once_with( self.SESSION_NAME, txn._mutations, transaction_id=TRANSACTION_ID, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_run_in_transaction_w_timeout(self): from google.api_core.exceptions import Aborted from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) from google.cloud.spanner_v1.transaction import Transaction - TABLE_NAME = 'citizens' - COLUMNS = ['email', 'first_name', 'last_name', 'age'] + TABLE_NAME = "citizens" + COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] - TRANSACTION_ID = b'FACEDACE' + TRANSACTION_ID = b"FACEDACE" transaction_pb = TransactionPB(id=TRANSACTION_ID) - aborted = _make_rpc_error( - Aborted, - trailing_metadata=[], - ) + aborted = _make_rpc_error(Aborted, trailing_metadata=[]) gax_api = self._make_spanner_api() gax_api.begin_transaction.return_value = transaction_pb gax_api.commit.side_effect = aborted @@ -1046,8 +1037,8 @@ def unit_of_work(txn, *args, **kw): def _time(_results=[1, 1.5, 2.5]): return _results.pop(0) - with mock.patch('time.time', _time): - with mock.patch('time.sleep') as sleep_mock: + with mock.patch("time.time", _time): + with mock.patch("time.sleep") as sleep_mock: with self.assertRaises(Aborted): session.run_in_transaction(unit_of_work, timeout_secs=1) @@ -1060,21 +1051,27 @@ def _time(_results=[1, 1.5, 2.5]): self.assertEqual(args, ()) self.assertEqual(kw, {}) - expected_options = TransactionOptions( - read_write=TransactionOptions.ReadWrite(), - ) + expected_options = TransactionOptions(read_write=TransactionOptions.ReadWrite()) self.assertEqual( gax_api.begin_transaction.call_args_list, - [mock.call( - self.SESSION_NAME, - expected_options, - metadata=[('google-cloud-resource-prefix', database.name)], - )] * 2) + [ + mock.call( + self.SESSION_NAME, + expected_options, + metadata=[("google-cloud-resource-prefix", database.name)], + ) + ] + * 2, + ) self.assertEqual( gax_api.commit.call_args_list, - [mock.call( - self.SESSION_NAME, - txn._mutations, - transaction_id=TRANSACTION_ID, - metadata=[('google-cloud-resource-prefix', database.name)], - )] * 2) + [ + mock.call( + self.SESSION_NAME, + txn._mutations, + transaction_id=TRANSACTION_ID, + metadata=[("google-cloud-resource-prefix", database.name)], + ) + ] + * 2, + ) diff --git a/spanner/tests/unit/test_snapshot.py b/spanner/tests/unit/test_snapshot.py index e1f972496d22..883ab7325835 100644 --- a/spanner/tests/unit/test_snapshot.py +++ b/spanner/tests/unit/test_snapshot.py @@ -18,34 +18,33 @@ import mock -TABLE_NAME = 'citizens' -COLUMNS = ['email', 'first_name', 'last_name', 'age'] +TABLE_NAME = "citizens" +COLUMNS = ["email", "first_name", "last_name", "age"] SQL_QUERY = """\ SELECT first_name, last_name, age FROM citizens ORDER BY age""" SQL_QUERY_WITH_PARAM = """ SELECT first_name, last_name, email FROM citizens WHERE age <= @max_age""" -PARAMS = {'max_age': 30} -PARAM_TYPES = {'max_age': 'INT64'} +PARAMS = {"max_age": 30} +PARAM_TYPES = {"max_age": "INT64"} SQL_QUERY_WITH_BYTES_PARAM = """\ SELECT image_name FROM images WHERE @bytes IN image_data""" -PARAMS_WITH_BYTES = {'bytes': b'FACEDACE'} -RESUME_TOKEN = b'DEADBEEF' -TXN_ID = b'DEAFBEAD' +PARAMS_WITH_BYTES = {"bytes": b"FACEDACE"} +RESUME_TOKEN = b"DEADBEEF" +TXN_ID = b"DEAFBEAD" SECONDS = 3 MICROS = 123456 class Test_restart_on_unavailable(unittest.TestCase): - def _call_fut(self, restart): from google.cloud.spanner_v1.snapshot import _restart_on_unavailable return _restart_on_unavailable(restart) - def _make_item(self, value, resume_token=b''): + def _make_item(self, value, resume_token=b""): return mock.Mock( - value=value, resume_token=resume_token, - spec=['value', 'resume_token']) + value=value, resume_token=resume_token, spec=["value", "resume_token"] + ) def test_iteration_w_empty_raw(self): raw = _MockIterator() @@ -85,58 +84,43 @@ def test_iteration_w_raw_raising_unavailable_no_token(self): restart = mock.Mock(spec=[], side_effect=[before, after]) resumable = self._call_fut(restart) self.assertEqual(list(resumable), list(ITEMS)) - self.assertEqual( - restart.mock_calls, - [mock.call(), mock.call(resume_token=b'')]) + self.assertEqual(restart.mock_calls, [mock.call(), mock.call(resume_token=b"")]) def test_iteration_w_raw_raising_unavailable(self): - FIRST = ( - self._make_item(0), - self._make_item(1, resume_token=RESUME_TOKEN), - ) - SECOND = ( # discarded after 503 - self._make_item(2), - ) - LAST = ( - self._make_item(3), - ) + FIRST = (self._make_item(0), self._make_item(1, resume_token=RESUME_TOKEN)) + SECOND = (self._make_item(2),) # discarded after 503 + LAST = (self._make_item(3),) before = _MockIterator(*(FIRST + SECOND), fail_after=True) after = _MockIterator(*LAST) restart = mock.Mock(spec=[], side_effect=[before, after]) resumable = self._call_fut(restart) self.assertEqual(list(resumable), list(FIRST + LAST)) self.assertEqual( - restart.mock_calls, - [mock.call(), mock.call(resume_token=RESUME_TOKEN)]) + restart.mock_calls, [mock.call(), mock.call(resume_token=RESUME_TOKEN)] + ) def test_iteration_w_raw_raising_unavailable_after_token(self): - FIRST = ( - self._make_item(0), - self._make_item(1, resume_token=RESUME_TOKEN), - ) - SECOND = ( - self._make_item(2), - self._make_item(3), - ) + FIRST = (self._make_item(0), self._make_item(1, resume_token=RESUME_TOKEN)) + SECOND = (self._make_item(2), self._make_item(3)) before = _MockIterator(*FIRST, fail_after=True) after = _MockIterator(*SECOND) restart = mock.Mock(spec=[], side_effect=[before, after]) resumable = self._call_fut(restart) self.assertEqual(list(resumable), list(FIRST + SECOND)) self.assertEqual( - restart.mock_calls, - [mock.call(), mock.call(resume_token=RESUME_TOKEN)]) + restart.mock_calls, [mock.call(), mock.call(resume_token=RESUME_TOKEN)] + ) class Test_SnapshotBase(unittest.TestCase): - PROJECT_ID = 'project-id' - INSTANCE_ID = 'instance-id' - INSTANCE_NAME = 'projects/' + PROJECT_ID + '/instances/' + INSTANCE_ID - DATABASE_ID = 'database-id' - DATABASE_NAME = INSTANCE_NAME + '/databases/' + DATABASE_ID - SESSION_ID = 'session-id' - SESSION_NAME = DATABASE_NAME + '/sessions/' + SESSION_ID + PROJECT_ID = "project-id" + INSTANCE_ID = "instance-id" + INSTANCE_NAME = "projects/" + PROJECT_ID + "/instances/" + INSTANCE_ID + DATABASE_ID = "database-id" + DATABASE_NAME = INSTANCE_NAME + "/databases/" + DATABASE_ID + SESSION_ID = "session-id" + SESSION_NAME = DATABASE_NAME + "/sessions/" + SESSION_ID def _getTargetClass(self): from google.cloud.spanner_v1.snapshot import _SnapshotBase @@ -147,7 +131,6 @@ def _make_one(self, session): return self._getTargetClass()(session) def _makeDerived(self, session): - class _Derived(self._getTargetClass()): _transaction_id = None @@ -155,12 +138,15 @@ class _Derived(self._getTargetClass()): def _make_txn_selector(self): from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionOptions, TransactionSelector) + TransactionOptions, + TransactionSelector, + ) if self._transaction_id: return TransactionSelector(id=self._transaction_id) options = TransactionOptions( - read_only=TransactionOptions.ReadOnly(strong=True)) + read_only=TransactionOptions.ReadOnly(strong=True) + ) if self._multi_use: return TransactionSelector(begin=options) return TransactionSelector(single_use=options) @@ -171,8 +157,8 @@ def _make_spanner_api(self): import google.cloud.spanner_v1.gapic.spanner_client return mock.create_autospec( - google.cloud.spanner_v1.gapic.spanner_client.SpannerClient, - instance=True) + google.cloud.spanner_v1.gapic.spanner_client.SpannerClient, instance=True + ) def test_ctor(self): session = _Session() @@ -202,38 +188,38 @@ def test_read_other_error(self): def _read_helper(self, multi_use, first=True, count=0, partition=None): from google.protobuf.struct_pb2 import Struct from google.cloud.spanner_v1.proto.result_set_pb2 import ( - PartialResultSet, ResultSetMetadata, ResultSetStats) + PartialResultSet, + ResultSetMetadata, + ResultSetStats, + ) from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionSelector, TransactionOptions) + TransactionSelector, + TransactionOptions, + ) from google.cloud.spanner_v1.proto.type_pb2 import Type, StructType from google.cloud.spanner_v1.proto.type_pb2 import STRING, INT64 from google.cloud.spanner_v1.keyset import KeySet from google.cloud.spanner_v1._helpers import _make_value_pb - VALUES = [ - [u'bharney', 31], - [u'phred', 32], - ] - VALUE_PBS = [ - [_make_value_pb(item) for item in row] - for row in VALUES - ] - struct_type_pb = StructType(fields=[ - StructType.Field(name='name', type=Type(code=STRING)), - StructType.Field(name='age', type=Type(code=INT64)), - ]) + VALUES = [[u"bharney", 31], [u"phred", 32]] + VALUE_PBS = [[_make_value_pb(item) for item in row] for row in VALUES] + struct_type_pb = StructType( + fields=[ + StructType.Field(name="name", type=Type(code=STRING)), + StructType.Field(name="age", type=Type(code=INT64)), + ] + ) metadata_pb = ResultSetMetadata(row_type=struct_type_pb) stats_pb = ResultSetStats( - query_stats=Struct(fields={ - 'rows_returned': _make_value_pb(2), - })) + query_stats=Struct(fields={"rows_returned": _make_value_pb(2)}) + ) result_sets = [ PartialResultSet(values=VALUE_PBS[0], metadata=metadata_pb), PartialResultSet(values=VALUE_PBS[1], stats=stats_pb), ] - KEYS = [['bharney@example.com'], ['phred@example.com']] + KEYS = [["bharney@example.com"], ["phred@example.com"]] keyset = KeySet(keys=KEYS) - INDEX = 'email-address-index' + INDEX = "email-address-index" LIMIT = 20 database = _Database() api = database.spanner_api = self._make_spanner_api() @@ -247,12 +233,12 @@ def _read_helper(self, multi_use, first=True, count=0, partition=None): if partition is not None: # 'limit' and 'partition' incompatible result_set = derived.read( - TABLE_NAME, COLUMNS, keyset, - index=INDEX, partition=partition) + TABLE_NAME, COLUMNS, keyset, index=INDEX, partition=partition + ) else: result_set = derived.read( - TABLE_NAME, COLUMNS, keyset, - index=INDEX, limit=LIMIT) + TABLE_NAME, COLUMNS, keyset, index=INDEX, limit=LIMIT + ) self.assertEqual(derived._read_request_count, count + 1) @@ -266,7 +252,8 @@ def _read_helper(self, multi_use, first=True, count=0, partition=None): self.assertEqual(result_set.stats, stats_pb) txn_options = TransactionOptions( - read_only=TransactionOptions.ReadOnly(strong=True)) + read_only=TransactionOptions.ReadOnly(strong=True) + ) if multi_use: if first: @@ -290,7 +277,7 @@ def _read_helper(self, multi_use, first=True, count=0, partition=None): index=INDEX, limit=expected_limit, partition_token=partition, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_read_wo_multi_use(self): @@ -307,7 +294,7 @@ def test_read_w_multi_use_wo_first_w_count_gt_0(self): self._read_helper(multi_use=True, first=False, count=1) def test_read_w_multi_use_w_first_w_partition(self): - PARTITION = b'FADEABED' + PARTITION = b"FADEABED" self._read_helper(multi_use=True, first=True, partition=PARTITION) def test_read_w_multi_use_w_first_w_count_gt_0(self): @@ -333,37 +320,43 @@ def test_execute_sql_w_params_wo_param_types(self): derived.execute_sql(SQL_QUERY_WITH_PARAM, PARAMS) def _execute_sql_helper( - self, multi_use, first=True, count=0, partition=None, sql_count=0, - timeout=google.api_core.gapic_v1.method.DEFAULT, - retry=google.api_core.gapic_v1.method.DEFAULT): + self, + multi_use, + first=True, + count=0, + partition=None, + sql_count=0, + timeout=google.api_core.gapic_v1.method.DEFAULT, + retry=google.api_core.gapic_v1.method.DEFAULT, + ): from google.protobuf.struct_pb2 import Struct from google.cloud.spanner_v1.proto.result_set_pb2 import ( - PartialResultSet, ResultSetMetadata, ResultSetStats) + PartialResultSet, + ResultSetMetadata, + ResultSetStats, + ) from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionSelector, TransactionOptions) + TransactionSelector, + TransactionOptions, + ) from google.cloud.spanner_v1.proto.type_pb2 import Type, StructType from google.cloud.spanner_v1.proto.type_pb2 import STRING, INT64 from google.cloud.spanner_v1._helpers import _make_value_pb - VALUES = [ - [u'bharney', u'rhubbyl', 31], - [u'phred', u'phlyntstone', 32], - ] - VALUE_PBS = [ - [_make_value_pb(item) for item in row] - for row in VALUES - ] + VALUES = [[u"bharney", u"rhubbyl", 31], [u"phred", u"phlyntstone", 32]] + VALUE_PBS = [[_make_value_pb(item) for item in row] for row in VALUES] MODE = 2 # PROFILE - struct_type_pb = StructType(fields=[ - StructType.Field(name='first_name', type=Type(code=STRING)), - StructType.Field(name='last_name', type=Type(code=STRING)), - StructType.Field(name='age', type=Type(code=INT64)), - ]) + struct_type_pb = StructType( + fields=[ + StructType.Field(name="first_name", type=Type(code=STRING)), + StructType.Field(name="last_name", type=Type(code=STRING)), + StructType.Field(name="age", type=Type(code=INT64)), + ] + ) metadata_pb = ResultSetMetadata(row_type=struct_type_pb) stats_pb = ResultSetStats( - query_stats=Struct(fields={ - 'rows_returned': _make_value_pb(2), - })) + query_stats=Struct(fields={"rows_returned": _make_value_pb(2)}) + ) result_sets = [ PartialResultSet(values=VALUE_PBS[0], metadata=metadata_pb), PartialResultSet(values=VALUE_PBS[1], stats=stats_pb), @@ -381,8 +374,14 @@ def _execute_sql_helper( derived._transaction_id = TXN_ID result_set = derived.execute_sql( - SQL_QUERY_WITH_PARAM, PARAMS, PARAM_TYPES, - query_mode=MODE, partition=partition, retry=retry, timeout=timeout) + SQL_QUERY_WITH_PARAM, + PARAMS, + PARAM_TYPES, + query_mode=MODE, + partition=partition, + retry=retry, + timeout=timeout, + ) self.assertEqual(derived._read_request_count, count + 1) @@ -396,7 +395,8 @@ def _execute_sql_helper( self.assertEqual(result_set.stats, stats_pb) txn_options = TransactionOptions( - read_only=TransactionOptions.ReadOnly(strong=True)) + read_only=TransactionOptions.ReadOnly(strong=True) + ) if multi_use: if first: @@ -406,8 +406,9 @@ def _execute_sql_helper( else: expected_transaction = TransactionSelector(single_use=txn_options) - expected_params = Struct(fields={ - key: _make_value_pb(value) for (key, value) in PARAMS.items()}) + expected_params = Struct( + fields={key: _make_value_pb(value) for (key, value) in PARAMS.items()} + ) api.execute_streaming_sql.assert_called_once_with( self.SESSION_NAME, @@ -418,7 +419,7 @@ def _execute_sql_helper( query_mode=MODE, partition_token=partition, seqno=sql_count, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], timeout=timeout, retry=retry, ) @@ -452,20 +453,19 @@ def test_execute_sql_w_timeout(self): self._execute_sql_helper(multi_use=False, timeout=None) def _partition_read_helper( - self, multi_use, w_txn, - size=None, max_partitions=None, index=None): + self, multi_use, w_txn, size=None, max_partitions=None, index=None + ): from google.cloud.spanner_v1.keyset import KeySet from google.cloud.spanner_v1.types import Partition from google.cloud.spanner_v1.types import PartitionOptions from google.cloud.spanner_v1.types import PartitionResponse from google.cloud.spanner_v1.types import Transaction - from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionSelector) + from google.cloud.spanner_v1.proto.transaction_pb2 import TransactionSelector keyset = KeySet(all_=True) - new_txn_id = b'ABECAB91' - token_1 = b'FACE0FFF' - token_2 = b'BADE8CAF' + new_txn_id = b"ABECAB91" + token_1 = b"FACE0FFF" + token_2 = b"BADE8CAF" response = PartitionResponse( partitions=[ Partition(partition_token=token_1), @@ -482,19 +482,24 @@ def _partition_read_helper( if w_txn: derived._transaction_id = TXN_ID - tokens = list(derived.partition_read( - TABLE_NAME, COLUMNS, keyset, - index=index, - partition_size_bytes=size, - max_partitions=max_partitions, - )) + tokens = list( + derived.partition_read( + TABLE_NAME, + COLUMNS, + keyset, + index=index, + partition_size_bytes=size, + max_partitions=max_partitions, + ) + ) self.assertEqual(tokens, [token_1, token_2]) expected_txn_selector = TransactionSelector(id=TXN_ID) expected_partition_options = PartitionOptions( - partition_size_bytes=size, max_partitions=max_partitions) + partition_size_bytes=size, max_partitions=max_partitions + ) api.partition_read.assert_called_once_with( session=self.SESSION_NAME, @@ -504,7 +509,7 @@ def _partition_read_helper( transaction=expected_txn_selector, index=index, partition_options=expected_partition_options, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_partition_read_single_use_raises(self): @@ -531,29 +536,26 @@ def test_partition_read_other_error(self): list(derived.partition_read(TABLE_NAME, COLUMNS, keyset)) def test_partition_read_ok_w_index_no_options(self): - self._partition_read_helper(multi_use=True, w_txn=True, index='index') + self._partition_read_helper(multi_use=True, w_txn=True, index="index") def test_partition_read_ok_w_size(self): self._partition_read_helper(multi_use=True, w_txn=True, size=2000) def test_partition_read_ok_w_max_partitions(self): - self._partition_read_helper( - multi_use=True, w_txn=True, max_partitions=4) + self._partition_read_helper(multi_use=True, w_txn=True, max_partitions=4) - def _partition_query_helper( - self, multi_use, w_txn, size=None, max_partitions=None): + def _partition_query_helper(self, multi_use, w_txn, size=None, max_partitions=None): from google.protobuf.struct_pb2 import Struct from google.cloud.spanner_v1.types import Partition from google.cloud.spanner_v1.types import PartitionOptions from google.cloud.spanner_v1.types import PartitionResponse from google.cloud.spanner_v1.types import Transaction - from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionSelector) + from google.cloud.spanner_v1.proto.transaction_pb2 import TransactionSelector from google.cloud.spanner_v1._helpers import _make_value_pb - new_txn_id = b'ABECAB91' - token_1 = b'FACE0FFF' - token_2 = b'BADE8CAF' + new_txn_id = b"ABECAB91" + token_1 = b"FACE0FFF" + token_2 = b"BADE8CAF" response = PartitionResponse( partitions=[ Partition(partition_token=token_1), @@ -570,21 +572,27 @@ def _partition_query_helper( if w_txn: derived._transaction_id = TXN_ID - tokens = list(derived.partition_query( - SQL_QUERY_WITH_PARAM, PARAMS, PARAM_TYPES, - partition_size_bytes=size, - max_partitions=max_partitions, - )) + tokens = list( + derived.partition_query( + SQL_QUERY_WITH_PARAM, + PARAMS, + PARAM_TYPES, + partition_size_bytes=size, + max_partitions=max_partitions, + ) + ) self.assertEqual(tokens, [token_1, token_2]) - expected_params = Struct(fields={ - key: _make_value_pb(value) for (key, value) in PARAMS.items()}) + expected_params = Struct( + fields={key: _make_value_pb(value) for (key, value) in PARAMS.items()} + ) expected_txn_selector = TransactionSelector(id=TXN_ID) expected_partition_options = PartitionOptions( - partition_size_bytes=size, max_partitions=max_partitions) + partition_size_bytes=size, max_partitions=max_partitions + ) api.partition_query.assert_called_once_with( session=self.SESSION_NAME, @@ -593,7 +601,7 @@ def _partition_query_helper( params=expected_params, param_types=PARAM_TYPES, partition_options=expected_partition_options, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) def test_partition_query_other_error(self): @@ -633,22 +641,22 @@ def test_partition_query_ok_w_size(self): self._partition_query_helper(multi_use=True, w_txn=True, size=2000) def test_partition_query_ok_w_max_partitions(self): - self._partition_query_helper( - multi_use=True, w_txn=True, max_partitions=4) + self._partition_query_helper(multi_use=True, w_txn=True, max_partitions=4) class TestSnapshot(unittest.TestCase): - PROJECT_ID = 'project-id' - INSTANCE_ID = 'instance-id' - INSTANCE_NAME = 'projects/' + PROJECT_ID + '/instances/' + INSTANCE_ID - DATABASE_ID = 'database-id' - DATABASE_NAME = INSTANCE_NAME + '/databases/' + DATABASE_ID - SESSION_ID = 'session-id' - SESSION_NAME = DATABASE_NAME + '/sessions/' + SESSION_ID + PROJECT_ID = "project-id" + INSTANCE_ID = "instance-id" + INSTANCE_NAME = "projects/" + PROJECT_ID + "/instances/" + INSTANCE_ID + DATABASE_ID = "database-id" + DATABASE_NAME = INSTANCE_NAME + "/databases/" + DATABASE_ID + SESSION_ID = "session-id" + SESSION_NAME = DATABASE_NAME + "/sessions/" + SESSION_ID def _getTargetClass(self): from google.cloud.spanner_v1.snapshot import Snapshot + return Snapshot def _make_one(self, *args, **kwargs): @@ -658,8 +666,8 @@ def _make_spanner_api(self): import google.cloud.spanner_v1.gapic.spanner_client return mock.create_autospec( - google.cloud.spanner_v1.gapic.spanner_client.SpannerClient, - instance=True) + google.cloud.spanner_v1.gapic.spanner_client.SpannerClient, instance=True + ) def _makeTimestamp(self): import datetime @@ -689,8 +697,7 @@ def test_ctor_w_multiple_options(self): session = _Session() with self.assertRaises(ValueError): - self._make_one( - session, read_timestamp=timestamp, max_staleness=duration) + self._make_one(session, read_timestamp=timestamp, max_staleness=duration) def test_ctor_w_read_timestamp(self): timestamp = self._makeTimestamp() @@ -754,8 +761,7 @@ def test_ctor_w_multi_use(self): def test_ctor_w_multi_use_and_read_timestamp(self): timestamp = self._makeTimestamp() session = _Session() - snapshot = self._make_one( - session, read_timestamp=timestamp, multi_use=True) + snapshot = self._make_one(session, read_timestamp=timestamp, multi_use=True) self.assertTrue(snapshot._session is session) self.assertFalse(snapshot._strong) self.assertEqual(snapshot._read_timestamp, timestamp) @@ -769,8 +775,7 @@ def test_ctor_w_multi_use_and_min_read_timestamp(self): session = _Session() with self.assertRaises(ValueError): - self._make_one( - session, min_read_timestamp=timestamp, multi_use=True) + self._make_one(session, min_read_timestamp=timestamp, multi_use=True) def test_ctor_w_multi_use_and_max_staleness(self): duration = self._makeDuration() @@ -782,8 +787,7 @@ def test_ctor_w_multi_use_and_max_staleness(self): def test_ctor_w_multi_use_and_exact_staleness(self): duration = self._makeDuration() session = _Session() - snapshot = self._make_one( - session, exact_staleness=duration, multi_use=True) + snapshot = self._make_one(session, exact_staleness=duration, multi_use=True) self.assertTrue(snapshot._session is session) self.assertFalse(snapshot._strong) self.assertIsNone(snapshot._read_timestamp) @@ -815,8 +819,8 @@ def test__make_txn_selector_w_read_timestamp(self): selector = snapshot._make_txn_selector() options = selector.single_use self.assertEqual( - _pb_timestamp_to_datetime(options.read_only.read_timestamp), - timestamp) + _pb_timestamp_to_datetime(options.read_only.read_timestamp), timestamp + ) def test__make_txn_selector_w_min_read_timestamp(self): from google.cloud._helpers import _pb_timestamp_to_datetime @@ -827,8 +831,8 @@ def test__make_txn_selector_w_min_read_timestamp(self): selector = snapshot._make_txn_selector() options = selector.single_use self.assertEqual( - _pb_timestamp_to_datetime(options.read_only.min_read_timestamp), - timestamp) + _pb_timestamp_to_datetime(options.read_only.min_read_timestamp), timestamp + ) def test__make_txn_selector_w_max_staleness(self): duration = self._makeDuration(seconds=3, microseconds=123456) @@ -860,19 +864,17 @@ def test__make_txn_selector_w_read_timestamp_w_multi_use(self): timestamp = self._makeTimestamp() session = _Session() - snapshot = self._make_one( - session, read_timestamp=timestamp, multi_use=True) + snapshot = self._make_one(session, read_timestamp=timestamp, multi_use=True) selector = snapshot._make_txn_selector() options = selector.begin self.assertEqual( - _pb_timestamp_to_datetime(options.read_only.read_timestamp), - timestamp) + _pb_timestamp_to_datetime(options.read_only.read_timestamp), timestamp + ) def test__make_txn_selector_w_exact_staleness_w_multi_use(self): duration = self._makeDuration(seconds=3, microseconds=123456) session = _Session() - snapshot = self._make_one( - session, exact_staleness=duration, multi_use=True) + snapshot = self._make_one(session, exact_staleness=duration, multi_use=True) selector = snapshot._make_txn_selector() options = selector.begin self.assertEqual(options.read_only.exact_staleness.seconds, 3) @@ -904,8 +906,7 @@ def test_begin_w_other_error(self): database.spanner_api.begin_transaction.side_effect = RuntimeError() timestamp = self._makeTimestamp() session = _Session(database) - snapshot = self._make_one( - session, read_timestamp=timestamp, multi_use=True) + snapshot = self._make_one(session, read_timestamp=timestamp, multi_use=True) with self.assertRaises(RuntimeError): snapshot.begin() @@ -913,7 +914,9 @@ def test_begin_w_other_error(self): def test_begin_ok_exact_staleness(self): from google.protobuf.duration_pb2 import Duration from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) transaction_pb = TransactionPB(id=TXN_ID) database = _Database() @@ -921,28 +924,29 @@ def test_begin_ok_exact_staleness(self): api.begin_transaction.return_value = transaction_pb duration = self._makeDuration(seconds=SECONDS, microseconds=MICROS) session = _Session(database) - snapshot = self._make_one( - session, exact_staleness=duration, multi_use=True) + snapshot = self._make_one(session, exact_staleness=duration, multi_use=True) txn_id = snapshot.begin() self.assertEqual(txn_id, TXN_ID) self.assertEqual(snapshot._transaction_id, TXN_ID) - expected_duration = Duration( - seconds=SECONDS, nanos=MICROS * 1000) + expected_duration = Duration(seconds=SECONDS, nanos=MICROS * 1000) expected_txn_options = TransactionOptions( - read_only=TransactionOptions.ReadOnly( - exact_staleness=expected_duration)) + read_only=TransactionOptions.ReadOnly(exact_staleness=expected_duration) + ) api.begin_transaction.assert_called_once_with( session.name, expected_txn_options, - metadata=[('google-cloud-resource-prefix', database.name)]) + metadata=[("google-cloud-resource-prefix", database.name)], + ) def test_begin_ok_exact_strong(self): from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB, TransactionOptions) + Transaction as TransactionPB, + TransactionOptions, + ) transaction_pb = TransactionPB(id=TXN_ID) database = _Database() @@ -957,30 +961,30 @@ def test_begin_ok_exact_strong(self): self.assertEqual(snapshot._transaction_id, TXN_ID) expected_txn_options = TransactionOptions( - read_only=TransactionOptions.ReadOnly(strong=True)) + read_only=TransactionOptions.ReadOnly(strong=True) + ) api.begin_transaction.assert_called_once_with( session.name, expected_txn_options, - metadata=[('google-cloud-resource-prefix', database.name)]) + metadata=[("google-cloud-resource-prefix", database.name)], + ) class _Session(object): - def __init__(self, database=None, name=TestSnapshot.SESSION_NAME): self._database = database self.name = name class _Database(object): - name = 'testing' + name = "testing" class _MockIterator(object): - def __init__(self, *values, **kw): self._iter_values = iter(values) - self._fail_after = kw.pop('fail_after', False) + self._fail_after = kw.pop("fail_after", False) def __iter__(self): return self @@ -992,7 +996,7 @@ def __next__(self): return next(self._iter_values) except StopIteration: if self._fail_after: - raise ServiceUnavailable('testing') + raise ServiceUnavailable("testing") raise next = __next__ diff --git a/spanner/tests/unit/test_streamed.py b/spanner/tests/unit/test_streamed.py index 6dc03c234acf..64b76b6cb1e2 100644 --- a/spanner/tests/unit/test_streamed.py +++ b/spanner/tests/unit/test_streamed.py @@ -19,7 +19,6 @@ class TestStreamedResultSet(unittest.TestCase): - def _getTargetClass(self): from google.cloud.spanner_v1.streamed import StreamedResultSet @@ -67,8 +66,7 @@ def _make_array_field(name, element_type_code=None, element_type=None): if element_type is None: element_type = Type(code=element_type_code) - array_type = Type( - code='ARRAY', array_element_type=element_type) + array_type = Type(code="ARRAY", array_element_type=element_type) return StructType.Field(name=name, type=array_type) @staticmethod @@ -81,7 +79,7 @@ def _make_struct_type(struct_type_fields): for key, value in struct_type_fields ] struct_type = StructType(fields=fields) - return Type(code='STRUCT', struct_type=struct_type) + return Type(code="STRUCT", struct_type=struct_type) @staticmethod def _make_value(value): @@ -101,8 +99,8 @@ def _make_list_value(values=(), value_pbs=None): @staticmethod def _make_result_set_metadata(fields=(), transaction_id=None): - from google.cloud.spanner_v1.proto.result_set_pb2 import ( - ResultSetMetadata) + from google.cloud.spanner_v1.proto.result_set_pb2 import ResultSetMetadata + metadata = ResultSetMetadata() for field in fields: metadata.row_type.fields.add().CopyFrom(field) @@ -112,36 +110,31 @@ def _make_result_set_metadata(fields=(), transaction_id=None): @staticmethod def _make_result_set_stats(query_plan=None, **kw): - from google.cloud.spanner_v1.proto.result_set_pb2 import ( - ResultSetStats) + from google.cloud.spanner_v1.proto.result_set_pb2 import ResultSetStats from google.protobuf.struct_pb2 import Struct from google.cloud.spanner_v1._helpers import _make_value_pb - query_stats = Struct(fields={ - key: _make_value_pb(value) for key, value in kw.items()}) - return ResultSetStats( - query_plan=query_plan, - query_stats=query_stats, + query_stats = Struct( + fields={key: _make_value_pb(value) for key, value in kw.items()} ) + return ResultSetStats(query_plan=query_plan, query_stats=query_stats) @staticmethod def _make_partial_result_set( - values, metadata=None, stats=None, chunked_value=False): - from google.cloud.spanner_v1.proto.result_set_pb2 import ( - PartialResultSet) + values, metadata=None, stats=None, chunked_value=False + ): + from google.cloud.spanner_v1.proto.result_set_pb2 import PartialResultSet + return PartialResultSet( - values=values, - metadata=metadata, - stats=stats, - chunked_value=chunked_value, + values=values, metadata=metadata, stats=stats, chunked_value=chunked_value ) def test_properties_set(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), ] metadata = streamed._metadata = self._make_result_set_metadata(FIELDS) stats = streamed._stats = self._make_result_set_stats() @@ -154,9 +147,7 @@ def test__merge_chunk_bool(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_scalar_field('registered_voter', 'BOOL'), - ] + FIELDS = [self._make_scalar_field("registered_voter", "BOOL")] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._pending_chunk = self._make_value(True) chunk = self._make_value(False) @@ -167,39 +158,33 @@ def test__merge_chunk_bool(self): def test__merge_chunk_int64(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_scalar_field('age', 'INT64'), - ] + FIELDS = [self._make_scalar_field("age", "INT64")] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._pending_chunk = self._make_value(42) chunk = self._make_value(13) merged = streamed._merge_chunk(chunk) - self.assertEqual(merged.string_value, '4213') + self.assertEqual(merged.string_value, "4213") self.assertIsNone(streamed._pending_chunk) def test__merge_chunk_float64_nan_string(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_scalar_field('weight', 'FLOAT64'), - ] + FIELDS = [self._make_scalar_field("weight", "FLOAT64")] streamed._metadata = self._make_result_set_metadata(FIELDS) - streamed._pending_chunk = self._make_value(u'Na') - chunk = self._make_value(u'N') + streamed._pending_chunk = self._make_value(u"Na") + chunk = self._make_value(u"N") merged = streamed._merge_chunk(chunk) - self.assertEqual(merged.string_value, u'NaN') + self.assertEqual(merged.string_value, u"NaN") def test__merge_chunk_float64_w_empty(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_scalar_field('weight', 'FLOAT64'), - ] + FIELDS = [self._make_scalar_field("weight", "FLOAT64")] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._pending_chunk = self._make_value(3.14159) - chunk = self._make_value('') + chunk = self._make_value("") merged = streamed._merge_chunk(chunk) self.assertEqual(merged.number_value, 3.14159) @@ -209,9 +194,7 @@ def test__merge_chunk_float64_w_float64(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_scalar_field('weight', 'FLOAT64'), - ] + FIELDS = [self._make_scalar_field("weight", "FLOAT64")] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._pending_chunk = self._make_value(3.14159) chunk = self._make_value(2.71828) @@ -222,50 +205,44 @@ def test__merge_chunk_float64_w_float64(self): def test__merge_chunk_string(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_scalar_field('name', 'STRING'), - ] + FIELDS = [self._make_scalar_field("name", "STRING")] streamed._metadata = self._make_result_set_metadata(FIELDS) - streamed._pending_chunk = self._make_value(u'phred') - chunk = self._make_value(u'wylma') + streamed._pending_chunk = self._make_value(u"phred") + chunk = self._make_value(u"wylma") merged = streamed._merge_chunk(chunk) - self.assertEqual(merged.string_value, u'phredwylma') + self.assertEqual(merged.string_value, u"phredwylma") self.assertIsNone(streamed._pending_chunk) def test__merge_chunk_string_w_bytes(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_scalar_field('image', 'BYTES'), - ] + FIELDS = [self._make_scalar_field("image", "BYTES")] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._pending_chunk = self._make_value( - u'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA' - u'6fptVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA\n', + u"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA" + u"6fptVAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA\n" ) chunk = self._make_value( - u'B3RJTUUH4QQGFwsBTL3HMwAAABJpVFh0Q29tbWVudAAAAAAAU0FNUExF' - u'MG3E+AAAAApJREFUCNdj\nYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\n', + u"B3RJTUUH4QQGFwsBTL3HMwAAABJpVFh0Q29tbWVudAAAAAAAU0FNUExF" + u"MG3E+AAAAApJREFUCNdj\nYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\n" ) merged = streamed._merge_chunk(chunk) self.assertEqual( merged.string_value, - u'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAACXBIWXMAAAsTAAAL' - u'EwEAmpwYAAAA\nB3RJTUUH4QQGFwsBTL3HMwAAABJpVFh0Q29tbWVudAAAAAAAU0' - u'FNUExFMG3E+AAAAApJREFUCNdj\nYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\n', + u"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAAACXBIWXMAAAsTAAAL" + u"EwEAmpwYAAAA\nB3RJTUUH4QQGFwsBTL3HMwAAABJpVFh0Q29tbWVudAAAAAAAU0" + u"FNUExFMG3E+AAAAApJREFUCNdj\nYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\n", ) self.assertIsNone(streamed._pending_chunk) def test__merge_chunk_array_of_bool(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_array_field('name', element_type_code='BOOL'), - ] + FIELDS = [self._make_array_field("name", element_type_code="BOOL")] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._pending_chunk = self._make_list_value([True, True]) chunk = self._make_list_value([False, False, False]) @@ -279,9 +256,7 @@ def test__merge_chunk_array_of_bool(self): def test__merge_chunk_array_of_int(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_array_field('name', element_type_code='INT64'), - ] + FIELDS = [self._make_array_field("name", element_type_code="INT64")] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._pending_chunk = self._make_list_value([0, 1, 2]) chunk = self._make_list_value([3, 4, 5]) @@ -301,12 +276,10 @@ def test__merge_chunk_array_of_float(self): LOG_10 = math.log(10) iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_array_field('name', element_type_code='FLOAT64'), - ] + FIELDS = [self._make_array_field("name", element_type_code="FLOAT64")] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._pending_chunk = self._make_list_value([PI, SQRT_2]) - chunk = self._make_list_value(['', EULER, LOG_10]) + chunk = self._make_list_value(["", EULER, LOG_10]) merged = streamed._merge_chunk(chunk) @@ -317,48 +290,42 @@ def test__merge_chunk_array_of_float(self): def test__merge_chunk_array_of_string_with_empty(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_array_field('name', element_type_code='STRING'), - ] + FIELDS = [self._make_array_field("name", element_type_code="STRING")] streamed._metadata = self._make_result_set_metadata(FIELDS) - streamed._pending_chunk = self._make_list_value([u'A', u'B', u'C']) + streamed._pending_chunk = self._make_list_value([u"A", u"B", u"C"]) chunk = self._make_list_value([]) merged = streamed._merge_chunk(chunk) - expected = self._make_list_value([u'A', u'B', u'C']) + expected = self._make_list_value([u"A", u"B", u"C"]) self.assertEqual(merged, expected) self.assertIsNone(streamed._pending_chunk) def test__merge_chunk_array_of_string(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_array_field('name', element_type_code='STRING'), - ] + FIELDS = [self._make_array_field("name", element_type_code="STRING")] streamed._metadata = self._make_result_set_metadata(FIELDS) - streamed._pending_chunk = self._make_list_value([u'A', u'B', u'C']) - chunk = self._make_list_value([None, u'D', u'E']) + streamed._pending_chunk = self._make_list_value([u"A", u"B", u"C"]) + chunk = self._make_list_value([None, u"D", u"E"]) merged = streamed._merge_chunk(chunk) - expected = self._make_list_value([u'A', u'B', u'C', None, u'D', u'E']) + expected = self._make_list_value([u"A", u"B", u"C", None, u"D", u"E"]) self.assertEqual(merged, expected) self.assertIsNone(streamed._pending_chunk) def test__merge_chunk_array_of_string_with_null(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - self._make_array_field('name', element_type_code='STRING'), - ] + FIELDS = [self._make_array_field("name", element_type_code="STRING")] streamed._metadata = self._make_result_set_metadata(FIELDS) - streamed._pending_chunk = self._make_list_value([u'A', u'B', u'C']) - chunk = self._make_list_value([u'D', u'E']) + streamed._pending_chunk = self._make_list_value([u"A", u"B", u"C"]) + chunk = self._make_list_value([u"D", u"E"]) merged = streamed._merge_chunk(chunk) - expected = self._make_list_value([u'A', u'B', u'CD', u'E']) + expected = self._make_list_value([u"A", u"B", u"CD", u"E"]) self.assertEqual(merged, expected) self.assertIsNone(streamed._pending_chunk) @@ -366,31 +333,28 @@ def test__merge_chunk_array_of_array_of_int(self): from google.cloud.spanner_v1.proto.type_pb2 import StructType from google.cloud.spanner_v1.proto.type_pb2 import Type - subarray_type = Type( - code='ARRAY', array_element_type=Type(code='INT64')) - array_type = Type(code='ARRAY', array_element_type=subarray_type) + subarray_type = Type(code="ARRAY", array_element_type=Type(code="INT64")) + array_type = Type(code="ARRAY", array_element_type=subarray_type) iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - StructType.Field(name='loloi', type=array_type) - ] + FIELDS = [StructType.Field(name="loloi", type=array_type)] streamed._metadata = self._make_result_set_metadata(FIELDS) - streamed._pending_chunk = self._make_list_value(value_pbs=[ - self._make_list_value([0, 1]), - self._make_list_value([2]), - ]) - chunk = self._make_list_value(value_pbs=[ - self._make_list_value([3]), - self._make_list_value([4, 5]), - ]) + streamed._pending_chunk = self._make_list_value( + value_pbs=[self._make_list_value([0, 1]), self._make_list_value([2])] + ) + chunk = self._make_list_value( + value_pbs=[self._make_list_value([3]), self._make_list_value([4, 5])] + ) merged = streamed._merge_chunk(chunk) - expected = self._make_list_value(value_pbs=[ - self._make_list_value([0, 1]), - self._make_list_value([23]), - self._make_list_value([4, 5]), - ]) + expected = self._make_list_value( + value_pbs=[ + self._make_list_value([0, 1]), + self._make_list_value([23]), + self._make_list_value([4, 5]), + ] + ) self.assertEqual(merged, expected) self.assertIsNone(streamed._pending_chunk) @@ -398,53 +362,51 @@ def test__merge_chunk_array_of_array_of_string(self): from google.cloud.spanner_v1.proto.type_pb2 import StructType from google.cloud.spanner_v1.proto.type_pb2 import Type - subarray_type = Type( - code='ARRAY', array_element_type=Type(code='STRING')) - array_type = Type(code='ARRAY', array_element_type=subarray_type) + subarray_type = Type(code="ARRAY", array_element_type=Type(code="STRING")) + array_type = Type(code="ARRAY", array_element_type=subarray_type) iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - FIELDS = [ - StructType.Field(name='lolos', type=array_type) - ] + FIELDS = [StructType.Field(name="lolos", type=array_type)] streamed._metadata = self._make_result_set_metadata(FIELDS) - streamed._pending_chunk = self._make_list_value(value_pbs=[ - self._make_list_value([u'A', u'B']), - self._make_list_value([u'C']), - ]) - chunk = self._make_list_value(value_pbs=[ - self._make_list_value([u'D']), - self._make_list_value([u'E', u'F']), - ]) + streamed._pending_chunk = self._make_list_value( + value_pbs=[ + self._make_list_value([u"A", u"B"]), + self._make_list_value([u"C"]), + ] + ) + chunk = self._make_list_value( + value_pbs=[ + self._make_list_value([u"D"]), + self._make_list_value([u"E", u"F"]), + ] + ) merged = streamed._merge_chunk(chunk) - expected = self._make_list_value(value_pbs=[ - self._make_list_value([u'A', u'B']), - self._make_list_value([u'CD']), - self._make_list_value([u'E', u'F']), - ]) + expected = self._make_list_value( + value_pbs=[ + self._make_list_value([u"A", u"B"]), + self._make_list_value([u"CD"]), + self._make_list_value([u"E", u"F"]), + ] + ) self.assertEqual(merged, expected) self.assertIsNone(streamed._pending_chunk) def test__merge_chunk_array_of_struct(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - struct_type = self._make_struct_type([ - ('name', 'STRING'), - ('age', 'INT64'), - ]) - FIELDS = [ - self._make_array_field('test', element_type=struct_type), - ] + struct_type = self._make_struct_type([("name", "STRING"), ("age", "INT64")]) + FIELDS = [self._make_array_field("test", element_type=struct_type)] streamed._metadata = self._make_result_set_metadata(FIELDS) - partial = self._make_list_value([u'Phred ']) + partial = self._make_list_value([u"Phred "]) streamed._pending_chunk = self._make_list_value(value_pbs=[partial]) - rest = self._make_list_value([u'Phlyntstone', 31]) + rest = self._make_list_value([u"Phlyntstone", 31]) chunk = self._make_list_value(value_pbs=[rest]) merged = streamed._merge_chunk(chunk) - struct = self._make_list_value([u'Phred Phlyntstone', 31]) + struct = self._make_list_value([u"Phred Phlyntstone", 31]) expected = self._make_list_value(value_pbs=[struct]) self.assertEqual(merged, expected) self.assertIsNone(streamed._pending_chunk) @@ -452,23 +414,19 @@ def test__merge_chunk_array_of_struct(self): def test__merge_chunk_array_of_struct_unmergeable(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) - struct_type = self._make_struct_type([ - ('name', 'STRING'), - ('registered', 'BOOL'), - ('voted', 'BOOL'), - ]) - FIELDS = [ - self._make_array_field('test', element_type=struct_type), - ] + struct_type = self._make_struct_type( + [("name", "STRING"), ("registered", "BOOL"), ("voted", "BOOL")] + ) + FIELDS = [self._make_array_field("test", element_type=struct_type)] streamed._metadata = self._make_result_set_metadata(FIELDS) - partial = self._make_list_value([u'Phred Phlyntstone', True]) + partial = self._make_list_value([u"Phred Phlyntstone", True]) streamed._pending_chunk = self._make_list_value(value_pbs=[partial]) rest = self._make_list_value([True]) chunk = self._make_list_value(value_pbs=[rest]) merged = streamed._merge_chunk(chunk) - struct = self._make_list_value([u'Phred Phlyntstone', True, True]) + struct = self._make_list_value([u"Phred Phlyntstone", True, True]) expected = self._make_list_value(value_pbs=[struct]) self.assertEqual(merged, expected) self.assertIsNone(streamed._pending_chunk) @@ -477,9 +435,9 @@ def test_merge_values_empty_and_empty(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] streamed._metadata = self._make_result_set_metadata(FIELDS) streamed._current_row = [] @@ -491,12 +449,12 @@ def test_merge_values_empty_and_partial(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] streamed._metadata = self._make_result_set_metadata(FIELDS) - BARE = [u'Phred Phlyntstone', 42] + BARE = [u"Phred Phlyntstone", 42] VALUES = [self._make_value(bare) for bare in BARE] streamed._current_row = [] streamed._merge_values(VALUES) @@ -507,12 +465,12 @@ def test_merge_values_empty_and_filled(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] streamed._metadata = self._make_result_set_metadata(FIELDS) - BARE = [u'Phred Phlyntstone', 42, True] + BARE = [u"Phred Phlyntstone", 42, True] VALUES = [self._make_value(bare) for bare in BARE] streamed._current_row = [] streamed._merge_values(VALUES) @@ -523,15 +481,19 @@ def test_merge_values_empty_and_filled_plus(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] streamed._metadata = self._make_result_set_metadata(FIELDS) BARE = [ - u'Phred Phlyntstone', 42, True, - u'Bharney Rhubble', 39, True, - u'Wylma Phlyntstone', + u"Phred Phlyntstone", + 42, + True, + u"Bharney Rhubble", + 39, + True, + u"Wylma Phlyntstone", ] VALUES = [self._make_value(bare) for bare in BARE] streamed._current_row = [] @@ -543,14 +505,12 @@ def test_merge_values_partial_and_empty(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] streamed._metadata = self._make_result_set_metadata(FIELDS) - BEFORE = [ - u'Phred Phlyntstone' - ] + BEFORE = [u"Phred Phlyntstone"] streamed._current_row[:] = BEFORE streamed._merge_values([]) self.assertEqual(list(streamed), []) @@ -560,12 +520,12 @@ def test_merge_values_partial_and_partial(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] streamed._metadata = self._make_result_set_metadata(FIELDS) - BEFORE = [u'Phred Phlyntstone'] + BEFORE = [u"Phred Phlyntstone"] streamed._current_row[:] = BEFORE MERGED = [42] TO_MERGE = [self._make_value(item) for item in MERGED] @@ -577,14 +537,12 @@ def test_merge_values_partial_and_filled(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] streamed._metadata = self._make_result_set_metadata(FIELDS) - BEFORE = [ - u'Phred Phlyntstone' - ] + BEFORE = [u"Phred Phlyntstone"] streamed._current_row[:] = BEFORE MERGED = [42, True] TO_MERGE = [self._make_value(item) for item in MERGED] @@ -596,20 +554,14 @@ def test_merge_values_partial_and_filled_plus(self): iterator = _MockCancellableIterator() streamed = self._make_one(iterator) FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] streamed._metadata = self._make_result_set_metadata(FIELDS) - BEFORE = [ - self._make_value(u'Phred Phlyntstone') - ] + BEFORE = [self._make_value(u"Phred Phlyntstone")] streamed._current_row[:] = BEFORE - MERGED = [ - 42, True, - u'Bharney Rhubble', 39, True, - u'Wylma Phlyntstone', - ] + MERGED = [42, True, u"Bharney Rhubble", 39, True, u"Wylma Phlyntstone"] TO_MERGE = [self._make_value(item) for item in MERGED] VALUES = BEFORE + MERGED streamed._merge_values(TO_MERGE) @@ -618,20 +570,20 @@ def test_merge_values_partial_and_filled_plus(self): def test_one_or_none_no_value(self): streamed = self._make_one(_MockCancellableIterator()) - with mock.patch.object(streamed, '_consume_next') as consume_next: + with mock.patch.object(streamed, "_consume_next") as consume_next: consume_next.side_effect = StopIteration self.assertIsNone(streamed.one_or_none()) def test_one_or_none_single_value(self): streamed = self._make_one(_MockCancellableIterator()) - streamed._rows = ['foo'] - with mock.patch.object(streamed, '_consume_next') as consume_next: + streamed._rows = ["foo"] + with mock.patch.object(streamed, "_consume_next") as consume_next: consume_next.side_effect = StopIteration - self.assertEqual(streamed.one_or_none(), 'foo') + self.assertEqual(streamed.one_or_none(), "foo") def test_one_or_none_multiple_values(self): streamed = self._make_one(_MockCancellableIterator()) - streamed._rows = ['foo', 'bar'] + streamed._rows = ["foo", "bar"] with self.assertRaises(ValueError): streamed.one_or_none() @@ -643,17 +595,17 @@ def test_one_or_none_consumed_stream(self): def test_one_single_value(self): streamed = self._make_one(_MockCancellableIterator()) - streamed._rows = ['foo'] - with mock.patch.object(streamed, '_consume_next') as consume_next: + streamed._rows = ["foo"] + with mock.patch.object(streamed, "_consume_next") as consume_next: consume_next.side_effect = StopIteration - self.assertEqual(streamed.one(), 'foo') + self.assertEqual(streamed.one(), "foo") def test_one_no_value(self): from google.cloud import exceptions - iterator = _MockCancellableIterator(['foo']) + iterator = _MockCancellableIterator(["foo"]) streamed = self._make_one(iterator) - with mock.patch.object(streamed, '_consume_next') as consume_next: + with mock.patch.object(streamed, "_consume_next") as consume_next: consume_next.side_effect = StopIteration with self.assertRaises(exceptions.NotFound): streamed.one() @@ -665,19 +617,18 @@ def test_consume_next_empty(self): streamed._consume_next() def test_consume_next_first_set_partial(self): - TXN_ID = b'DEADBEEF' + TXN_ID = b"DEADBEEF" FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] - metadata = self._make_result_set_metadata( - FIELDS, transaction_id=TXN_ID) - BARE = [u'Phred Phlyntstone', 42] + metadata = self._make_result_set_metadata(FIELDS, transaction_id=TXN_ID) + BARE = [u"Phred Phlyntstone", 42] VALUES = [self._make_value(bare) for bare in BARE] result_set = self._make_partial_result_set(VALUES, metadata=metadata) iterator = _MockCancellableIterator(result_set) - source = mock.Mock(_transaction_id=None, spec=['_transaction_id']) + source = mock.Mock(_transaction_id=None, spec=["_transaction_id"]) streamed = self._make_one(iterator, source=source) streamed._consume_next() self.assertEqual(list(streamed), []) @@ -686,19 +637,18 @@ def test_consume_next_first_set_partial(self): self.assertEqual(source._transaction_id, TXN_ID) def test_consume_next_first_set_partial_existing_txn_id(self): - TXN_ID = b'DEADBEEF' + TXN_ID = b"DEADBEEF" FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] - metadata = self._make_result_set_metadata( - FIELDS, transaction_id=b'') - BARE = [u'Phred Phlyntstone', 42] + metadata = self._make_result_set_metadata(FIELDS, transaction_id=b"") + BARE = [u"Phred Phlyntstone", 42] VALUES = [self._make_value(bare) for bare in BARE] result_set = self._make_partial_result_set(VALUES, metadata=metadata) iterator = _MockCancellableIterator(result_set) - source = mock.Mock(_transaction_id=TXN_ID, spec=['_transaction_id']) + source = mock.Mock(_transaction_id=TXN_ID, spec=["_transaction_id"]) streamed = self._make_one(iterator, source=source) streamed._consume_next() self.assertEqual(list(streamed), []) @@ -708,13 +658,11 @@ def test_consume_next_first_set_partial_existing_txn_id(self): def test_consume_next_w_partial_result(self): FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), - ] - VALUES = [ - self._make_value(u'Phred '), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] + VALUES = [self._make_value(u"Phred ")] result_set = self._make_partial_result_set(VALUES, chunked_value=True) iterator = _MockCancellableIterator(result_set) streamed = self._make_one(iterator) @@ -726,42 +674,44 @@ def test_consume_next_w_partial_result(self): def test_consume_next_w_pending_chunk(self): FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] BARE = [ - u'Phlyntstone', 42, True, - u'Bharney Rhubble', 39, True, - u'Wylma Phlyntstone', + u"Phlyntstone", + 42, + True, + u"Bharney Rhubble", + 39, + True, + u"Wylma Phlyntstone", ] VALUES = [self._make_value(bare) for bare in BARE] result_set = self._make_partial_result_set(VALUES) iterator = _MockCancellableIterator(result_set) streamed = self._make_one(iterator) streamed._metadata = self._make_result_set_metadata(FIELDS) - streamed._pending_chunk = self._make_value(u'Phred ') + streamed._pending_chunk = self._make_value(u"Phred ") streamed._consume_next() - self.assertEqual(list(streamed), [ - [u'Phred Phlyntstone', BARE[1], BARE[2]], - [BARE[3], BARE[4], BARE[5]], - ]) + self.assertEqual( + list(streamed), + [[u"Phred Phlyntstone", BARE[1], BARE[2]], [BARE[3], BARE[4], BARE[5]]], + ) self.assertEqual(streamed._current_row, [BARE[6]]) self.assertIsNone(streamed._pending_chunk) def test_consume_next_last_set(self): FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] metadata = self._make_result_set_metadata(FIELDS) stats = self._make_result_set_stats( - rows_returned="1", - elapsed_time="1.23 secs", - cpu_time="0.98 secs", + rows_returned="1", elapsed_time="1.23 secs", cpu_time="0.98 secs" ) - BARE = [u'Phred Phlyntstone', 42, True] + BARE = [u"Phred Phlyntstone", 42, True] VALUES = [self._make_value(bare) for bare in BARE] result_set = self._make_partial_result_set(VALUES, stats=stats) iterator = _MockCancellableIterator(result_set) @@ -780,12 +730,12 @@ def test___iter___empty(self): def test___iter___one_result_set_partial(self): FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] metadata = self._make_result_set_metadata(FIELDS) - BARE = [u'Phred Phlyntstone', 42] + BARE = [u"Phred Phlyntstone", 42] VALUES = [self._make_value(bare) for bare in BARE] result_set = self._make_partial_result_set(VALUES, metadata=metadata) iterator = _MockCancellableIterator(result_set) @@ -798,61 +748,75 @@ def test___iter___one_result_set_partial(self): def test___iter___multiple_result_sets_filled(self): FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] metadata = self._make_result_set_metadata(FIELDS) BARE = [ - u'Phred Phlyntstone', 42, True, - u'Bharney Rhubble', 39, True, - u'Wylma Phlyntstone', 41, True, + u"Phred Phlyntstone", + 42, + True, + u"Bharney Rhubble", + 39, + True, + u"Wylma Phlyntstone", + 41, + True, ] VALUES = [self._make_value(bare) for bare in BARE] - result_set1 = self._make_partial_result_set( - VALUES[:4], metadata=metadata) + result_set1 = self._make_partial_result_set(VALUES[:4], metadata=metadata) result_set2 = self._make_partial_result_set(VALUES[4:]) iterator = _MockCancellableIterator(result_set1, result_set2) streamed = self._make_one(iterator) found = list(streamed) - self.assertEqual(found, [ - [BARE[0], BARE[1], BARE[2]], - [BARE[3], BARE[4], BARE[5]], - [BARE[6], BARE[7], BARE[8]], - ]) + self.assertEqual( + found, + [ + [BARE[0], BARE[1], BARE[2]], + [BARE[3], BARE[4], BARE[5]], + [BARE[6], BARE[7], BARE[8]], + ], + ) self.assertEqual(list(streamed), []) self.assertEqual(streamed._current_row, []) self.assertIsNone(streamed._pending_chunk) def test___iter___w_existing_rows_read(self): FIELDS = [ - self._make_scalar_field('full_name', 'STRING'), - self._make_scalar_field('age', 'INT64'), - self._make_scalar_field('married', 'BOOL'), + self._make_scalar_field("full_name", "STRING"), + self._make_scalar_field("age", "INT64"), + self._make_scalar_field("married", "BOOL"), ] metadata = self._make_result_set_metadata(FIELDS) - ALREADY = [ - [u'Pebbylz Phlyntstone', 4, False], - [u'Dino Rhubble', 4, False], - ] + ALREADY = [[u"Pebbylz Phlyntstone", 4, False], [u"Dino Rhubble", 4, False]] BARE = [ - u'Phred Phlyntstone', 42, True, - u'Bharney Rhubble', 39, True, - u'Wylma Phlyntstone', 41, True, + u"Phred Phlyntstone", + 42, + True, + u"Bharney Rhubble", + 39, + True, + u"Wylma Phlyntstone", + 41, + True, ] VALUES = [self._make_value(bare) for bare in BARE] - result_set1 = self._make_partial_result_set( - VALUES[:4], metadata=metadata) + result_set1 = self._make_partial_result_set(VALUES[:4], metadata=metadata) result_set2 = self._make_partial_result_set(VALUES[4:]) iterator = _MockCancellableIterator(result_set1, result_set2) streamed = self._make_one(iterator) streamed._rows[:] = ALREADY found = list(streamed) - self.assertEqual(found, ALREADY + [ - [BARE[0], BARE[1], BARE[2]], - [BARE[3], BARE[4], BARE[5]], - [BARE[6], BARE[7], BARE[8]], - ]) + self.assertEqual( + found, + ALREADY + + [ + [BARE[0], BARE[1], BARE[2]], + [BARE[3], BARE[4], BARE[5]], + [BARE[6], BARE[7], BARE[8]], + ], + ) self.assertEqual(list(streamed), []) self.assertEqual(streamed._current_row, []) self.assertIsNone(streamed._pending_chunk) @@ -889,8 +853,7 @@ def _load_json_test(self, test_name): if self.__class__._json_tests is None: dirname = os.path.dirname(__file__) - filename = os.path.join( - dirname, 'streaming-read-acceptance-test.json') + filename = os.path.join(dirname, "streaming-read-acceptance-test.json") raw = _parse_streaming_read_acceptance_tests(filename) tests = self.__class__._json_tests = {} for (name, partial_result_sets, results) in raw: @@ -909,25 +872,25 @@ def _match_results(self, testcase_name, assert_equality=None): self.assertEqual(list(partial), expected) def test_basic(self): - self._match_results('Basic Test') + self._match_results("Basic Test") def test_string_chunking(self): - self._match_results('String Chunking Test') + self._match_results("String Chunking Test") def test_string_array_chunking(self): - self._match_results('String Array Chunking Test') + self._match_results("String Array Chunking Test") def test_string_array_chunking_with_nulls(self): - self._match_results('String Array Chunking Test With Nulls') + self._match_results("String Array Chunking Test With Nulls") def test_string_array_chunking_with_empty_strings(self): - self._match_results('String Array Chunking Test With Empty Strings') + self._match_results("String Array Chunking Test With Empty Strings") def test_string_array_chunking_with_one_large_string(self): - self._match_results('String Array Chunking Test With One Large String') + self._match_results("String Array Chunking Test With One Large String") def test_int64_array_chunking(self): - self._match_results('INT64 Array Chunking Test') + self._match_results("INT64 Array Chunking Test") def test_float64_array_chunking(self): import math @@ -954,29 +917,28 @@ def assert_rows_equality(lhs, rhs): for l_cell, r_cell in zip(l_row, r_row): assert_float_equality(l_cell, r_cell) - self._match_results( - 'FLOAT64 Array Chunking Test', assert_rows_equality) + self._match_results("FLOAT64 Array Chunking Test", assert_rows_equality) def test_struct_array_chunking(self): - self._match_results('Struct Array Chunking Test') + self._match_results("Struct Array Chunking Test") def test_nested_struct_array(self): - self._match_results('Nested Struct Array Test') + self._match_results("Nested Struct Array Test") def test_nested_struct_array_chunking(self): - self._match_results('Nested Struct Array Chunking Test') + self._match_results("Nested Struct Array Chunking Test") def test_struct_array_and_string_chunking(self): - self._match_results('Struct Array And String Chunking Test') + self._match_results("Struct Array And String Chunking Test") def test_multiple_row_single_chunk(self): - self._match_results('Multiple Row Single Chunk') + self._match_results("Multiple Row Single Chunk") def test_multiple_row_multiple_chunks(self): - self._match_results('Multiple Row Multiple Chunks') + self._match_results("Multiple Row Multiple Chunks") def test_multiple_row_chunks_non_chunks_interleaved(self): - self._match_results('Multiple Row Chunks/Non Chunks Interleaved') + self._match_results("Multiple Row Chunks/Non Chunks Interleaved") def _generate_partial_result_sets(prs_text_pbs): @@ -1002,12 +964,12 @@ def _normalize_int_array(cell): def _normalize_float(cell): - if cell == u'Infinity': - return float('inf') - if cell == u'-Infinity': - return float('-inf') - if cell == u'NaN': - return float('nan') + if cell == u"Infinity": + return float("inf") + if cell == u"-Infinity": + return float("-inf") + if cell == u"NaN": + return float("nan") if cell is not None: return float(cell) @@ -1026,7 +988,7 @@ def _normalize_results(rows_data, fields): if field.type.code == type_pb2.FLOAT64: cell = _normalize_float(cell) elif field.type.code == type_pb2.BYTES: - cell = cell.encode('utf8') + cell = cell.encode("utf8") elif field.type.code == type_pb2.ARRAY: if field.type.array_element_type.code == type_pb2.INT64: cell = _normalize_int_array(cell) @@ -1047,9 +1009,9 @@ def _parse_streaming_read_acceptance_tests(filename): with open(filename) as json_file: test_json = json.load(json_file) - for test in test_json['tests']: - name = test['name'] - partial_result_sets = _generate_partial_result_sets(test['chunks']) + for test in test_json["tests"]: + name = test["name"] + partial_result_sets = _generate_partial_result_sets(test["chunks"]) fields = partial_result_sets[0].metadata.row_type.fields - result = _normalize_results(test['result']['value'], fields) + result = _normalize_results(test["result"]["value"], fields) yield name, partial_result_sets, result diff --git a/spanner/tests/unit/test_transaction.py b/spanner/tests/unit/test_transaction.py index 99c401cc7e10..d46b4a7ada64 100644 --- a/spanner/tests/unit/test_transaction.py +++ b/spanner/tests/unit/test_transaction.py @@ -18,11 +18,11 @@ import mock -TABLE_NAME = 'citizens' -COLUMNS = ['email', 'first_name', 'last_name', 'age'] +TABLE_NAME = "citizens" +COLUMNS = ["email", "first_name", "last_name", "age"] VALUES = [ - ['phred@exammple.com', 'Phred', 'Phlyntstone', 32], - ['bharney@example.com', 'Bharney', 'Rhubble', 31], + ["phred@exammple.com", "Phred", "Phlyntstone", 32], + ["bharney@example.com", "Bharney", "Rhubble", 31], ] DML_QUERY = """\ INSERT INTO citizens(first_name, last_name, age) @@ -32,20 +32,20 @@ INSERT INTO citizens(first_name, last_name, age) VALUES ("Phred", "Phlyntstone", @age) """ -PARAMS = {'age': 30} -PARAM_TYPES = {'age': 'INT64'} +PARAMS = {"age": 30} +PARAM_TYPES = {"age": "INT64"} class TestTransaction(unittest.TestCase): - PROJECT_ID = 'project-id' - INSTANCE_ID = 'instance-id' - INSTANCE_NAME = 'projects/' + PROJECT_ID + '/instances/' + INSTANCE_ID - DATABASE_ID = 'database-id' - DATABASE_NAME = INSTANCE_NAME + '/databases/' + DATABASE_ID - SESSION_ID = 'session-id' - SESSION_NAME = DATABASE_NAME + '/sessions/' + SESSION_ID - TRANSACTION_ID = b'DEADBEEF' + PROJECT_ID = "project-id" + INSTANCE_ID = "instance-id" + INSTANCE_NAME = "projects/" + PROJECT_ID + "/instances/" + INSTANCE_ID + DATABASE_ID = "database-id" + DATABASE_NAME = INSTANCE_NAME + "/databases/" + DATABASE_ID + SESSION_ID = "session-id" + SESSION_NAME = DATABASE_NAME + "/sessions/" + SESSION_ID + TRANSACTION_ID = b"DEADBEEF" def _getTargetClass(self): from google.cloud.spanner_v1.transaction import Transaction @@ -61,8 +61,8 @@ def _make_spanner_api(self): import google.cloud.spanner_v1.gapic.spanner_client return mock.create_autospec( - google.cloud.spanner_v1.gapic.spanner_client.SpannerClient, - instance=True) + google.cloud.spanner_v1.gapic.spanner_client.SpannerClient, instance=True + ) def test_ctor_session_w_existing_txn(self): session = _Session() @@ -148,12 +148,14 @@ def test_begin_w_other_error(self): def test_begin_ok(self): from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB) + Transaction as TransactionPB, + ) transaction_pb = TransactionPB(id=self.TRANSACTION_ID) database = _Database() api = database.spanner_api = _FauxSpannerAPI( - _begin_transaction_response=transaction_pb) + _begin_transaction_response=transaction_pb + ) session = _Session(database) transaction = self._make_one(session) @@ -164,9 +166,8 @@ def test_begin_ok(self): session_id, txn_options, metadata = api._begun self.assertEqual(session_id, session.name) - self.assertTrue(txn_options.HasField('read_write')) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', database.name)]) + self.assertTrue(txn_options.HasField("read_write")) + self.assertEqual(metadata, [("google-cloud-resource-prefix", database.name)]) def test_rollback_not_begun(self): session = _Session() @@ -193,7 +194,7 @@ def test_rollback_already_rolled_back(self): def test_rollback_w_other_error(self): database = _Database() database.spanner_api = self._make_spanner_api() - database.spanner_api.rollback.side_effect = RuntimeError('other error') + database.spanner_api.rollback.side_effect = RuntimeError("other error") session = _Session(database) transaction = self._make_one(session) transaction._transaction_id = self.TRANSACTION_ID @@ -209,8 +210,7 @@ def test_rollback_ok(self): empty_pb = Empty() database = _Database() - api = database.spanner_api = _FauxSpannerAPI( - _rollback_response=empty_pb) + api = database.spanner_api = _FauxSpannerAPI(_rollback_response=empty_pb) session = _Session(database) transaction = self._make_one(session) transaction._transaction_id = self.TRANSACTION_ID @@ -224,8 +224,7 @@ def test_rollback_ok(self): session_id, txn_id, metadata = api._rolled_back self.assertEqual(session_id, session.name) self.assertEqual(txn_id, self.TRANSACTION_ID) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', database.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", database.name)]) def test_commit_not_begun(self): session = _Session() @@ -276,8 +275,7 @@ def _commit_helper(self, mutate=True): keyset = KeySet(keys=keys) response = CommitResponse(commit_timestamp=now_pb) database = _Database() - api = database.spanner_api = _FauxSpannerAPI( - _commit_response=response) + api = database.spanner_api = _FauxSpannerAPI(_commit_response=response) session = _Session(database) transaction = self._make_one(session) transaction._transaction_id = self.TRANSACTION_ID @@ -294,8 +292,7 @@ def _commit_helper(self, mutate=True): self.assertEqual(session_id, session.name) self.assertEqual(txn_id, self.TRANSACTION_ID) self.assertEqual(mutations, transaction._mutations) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', database.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", database.name)]) def test_commit_no_mutations(self): self._commit_helper(mutate=False) @@ -328,9 +325,10 @@ def test_execute_update_w_params_wo_param_types(self): def _execute_update_helper(self, count=0): from google.protobuf.struct_pb2 import Struct from google.cloud.spanner_v1.proto.result_set_pb2 import ( - ResultSet, ResultSetStats) - from google.cloud.spanner_v1.proto.transaction_pb2 import ( - TransactionSelector) + ResultSet, + ResultSetStats, + ) + from google.cloud.spanner_v1.proto.transaction_pb2 import TransactionSelector from google.cloud.spanner_v1._helpers import _make_value_pb MODE = 2 # PROFILE @@ -344,13 +342,15 @@ def _execute_update_helper(self, count=0): transaction._execute_sql_count = count row_count = transaction.execute_update( - DML_QUERY_WITH_PARAM, PARAMS, PARAM_TYPES, query_mode=MODE) + DML_QUERY_WITH_PARAM, PARAMS, PARAM_TYPES, query_mode=MODE + ) self.assertEqual(row_count, 1) expected_transaction = TransactionSelector(id=self.TRANSACTION_ID) - expected_params = Struct(fields={ - key: _make_value_pb(value) for (key, value) in PARAMS.items()}) + expected_params = Struct( + fields={key: _make_value_pb(value) for (key, value) in PARAMS.items()} + ) api.execute_sql.assert_called_once_with( self.SESSION_NAME, @@ -360,7 +360,7 @@ def _execute_update_helper(self, count=0): param_types=PARAM_TYPES, query_mode=MODE, seqno=count, - metadata=[('google-cloud-resource-prefix', database.name)], + metadata=[("google-cloud-resource-prefix", database.name)], ) self.assertEqual(transaction._execute_sql_count, count + 1) @@ -375,7 +375,8 @@ def test_context_mgr_success(self): import datetime from google.cloud.spanner_v1.proto.spanner_pb2 import CommitResponse from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB) + Transaction as TransactionPB, + ) from google.cloud._helpers import UTC from google.cloud._helpers import _datetime_to_pb_timestamp @@ -386,8 +387,8 @@ def test_context_mgr_success(self): response = CommitResponse(commit_timestamp=now_pb) database = _Database() api = database.spanner_api = _FauxSpannerAPI( - _begin_transaction_response=transaction_pb, - _commit_response=response) + _begin_transaction_response=transaction_pb, _commit_response=response + ) session = _Session(database) transaction = self._make_one(session) @@ -400,20 +401,21 @@ def test_context_mgr_success(self): self.assertEqual(session_id, self.SESSION_NAME) self.assertEqual(txn_id, self.TRANSACTION_ID) self.assertEqual(mutations, transaction._mutations) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', database.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", database.name)]) def test_context_mgr_failure(self): from google.protobuf.empty_pb2 import Empty + empty_pb = Empty() from google.cloud.spanner_v1.proto.transaction_pb2 import ( - Transaction as TransactionPB) + Transaction as TransactionPB, + ) transaction_pb = TransactionPB(id=self.TRANSACTION_ID) database = _Database() api = database.spanner_api = _FauxSpannerAPI( - _begin_transaction_response=transaction_pb, - _rollback_response=empty_pb) + _begin_transaction_response=transaction_pb, _rollback_response=empty_pb + ) session = _Session(database) transaction = self._make_one(session) @@ -431,12 +433,11 @@ def test_context_mgr_failure(self): session_id, txn_id, metadata = api._rolled_back self.assertEqual(session_id, session.name) self.assertEqual(txn_id, self.TRANSACTION_ID) - self.assertEqual( - metadata, [('google-cloud-resource-prefix', database.name)]) + self.assertEqual(metadata, [("google-cloud-resource-prefix", database.name)]) class _Database(object): - name = 'testing' + name = "testing" class _Session(object): @@ -463,8 +464,14 @@ def rollback(self, session, transaction_id, metadata=None): self._rolled_back = (session, transaction_id, metadata) return self._rollback_response - def commit(self, session, mutations, - transaction_id='', single_use_transaction=None, metadata=None): + def commit( + self, + session, + mutations, + transaction_id="", + single_use_transaction=None, + metadata=None, + ): assert single_use_transaction is None self._committed = (session, mutations, transaction_id, metadata) return self._commit_response diff --git a/speech/google/__init__.py b/speech/google/__init__.py index 7a9e5a0ef198..dd3a9f485275 100644 --- a/speech/google/__init__.py +++ b/speech/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/speech/google/cloud/__init__.py b/speech/google/cloud/__init__.py index 7a9e5a0ef198..dd3a9f485275 100644 --- a/speech/google/cloud/__init__.py +++ b/speech/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/speech/google/cloud/speech.py b/speech/google/cloud/speech.py index fd511f736ef8..268ab600c713 100644 --- a/speech/google/cloud/speech.py +++ b/speech/google/cloud/speech.py @@ -20,8 +20,4 @@ from google.cloud.speech_v1 import enums from google.cloud.speech_v1 import types -__all__ = ( - 'enums', - 'types', - 'SpeechClient', -) +__all__ = ("enums", "types", "SpeechClient") diff --git a/speech/google/cloud/speech_v1/__init__.py b/speech/google/cloud/speech_v1/__init__.py index 272b623c510d..81314685022a 100644 --- a/speech/google/cloud/speech_v1/__init__.py +++ b/speech/google/cloud/speech_v1/__init__.py @@ -27,8 +27,4 @@ class SpeechClient(SpeechHelpers, speech_client.SpeechClient): types = types -__all__ = ( - 'enums', - 'SpeechClient', - 'types', -) +__all__ = ("enums", "SpeechClient", "types") diff --git a/speech/google/cloud/speech_v1/gapic/enums.py b/speech/google/cloud/speech_v1/gapic/enums.py index b15888d23394..42ed23f6b1f5 100644 --- a/speech/google/cloud/speech_v1/gapic/enums.py +++ b/speech/google/cloud/speech_v1/gapic/enums.py @@ -71,6 +71,7 @@ class AudioEncoding(enum.IntEnum): RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. ``sample_rate_hertz`` must be 16000. """ + ENCODING_UNSPECIFIED = 0 LINEAR16 = 1 FLAC = 2 @@ -97,5 +98,6 @@ class SpeechEventType(enum.IntEnum): sent if ``single_utterance`` was set to ``true``, and is not used otherwise. """ + SPEECH_EVENT_UNSPECIFIED = 0 END_OF_SINGLE_UTTERANCE = 1 diff --git a/speech/google/cloud/speech_v1/gapic/speech_client.py b/speech/google/cloud/speech_v1/gapic/speech_client.py index f68206d2c243..4a584e3920c7 100644 --- a/speech/google/cloud/speech_v1/gapic/speech_client.py +++ b/speech/google/cloud/speech_v1/gapic/speech_client.py @@ -35,19 +35,18 @@ from google.cloud.speech_v1.proto import cloud_speech_pb2_grpc from google.longrunning import operations_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-speech', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-speech").version class SpeechClient(object): """Service that implements Google Cloud Speech API.""" - SERVICE_ADDRESS = 'speech.googleapis.com:443' + SERVICE_ADDRESS = "speech.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.speech.v1.Speech' + _INTERFACE_NAME = "google.cloud.speech.v1.Speech" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -63,19 +62,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: SpeechClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -109,18 +109,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = speech_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -134,19 +135,19 @@ def __init__(self, else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = speech_grpc_transport.SpeechGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +157,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,12 +167,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def recognize(self, - config, - audio, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def recognize( + self, + config, + audio, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs synchronous speech recognition: receive results after all audio has been sent and processed. @@ -220,28 +224,29 @@ def recognize(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'recognize' not in self._inner_api_calls: + if "recognize" not in self._inner_api_calls: self._inner_api_calls[ - 'recognize'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.recognize, - default_retry=self._method_configs['Recognize'].retry, - default_timeout=self._method_configs['Recognize'].timeout, - client_info=self._client_info, - ) + "recognize" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.recognize, + default_retry=self._method_configs["Recognize"].retry, + default_timeout=self._method_configs["Recognize"].timeout, + client_info=self._client_info, + ) - request = cloud_speech_pb2.RecognizeRequest( - config=config, - audio=audio, + request = cloud_speech_pb2.RecognizeRequest(config=config, audio=audio) + return self._inner_api_calls["recognize"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['recognize']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def long_running_recognize(self, - config, - audio, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def long_running_recognize( + self, + config, + audio, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs asynchronous speech recognition: receive results via the google.longrunning.Operations interface. Returns either an @@ -302,23 +307,22 @@ def long_running_recognize(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'long_running_recognize' not in self._inner_api_calls: + if "long_running_recognize" not in self._inner_api_calls: self._inner_api_calls[ - 'long_running_recognize'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.long_running_recognize, - default_retry=self._method_configs['LongRunningRecognize']. - retry, - default_timeout=self. - _method_configs['LongRunningRecognize'].timeout, - client_info=self._client_info, - ) + "long_running_recognize" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.long_running_recognize, + default_retry=self._method_configs["LongRunningRecognize"].retry, + default_timeout=self._method_configs["LongRunningRecognize"].timeout, + client_info=self._client_info, + ) request = cloud_speech_pb2.LongRunningRecognizeRequest( - config=config, - audio=audio, + config=config, audio=audio + ) + operation = self._inner_api_calls["long_running_recognize"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['long_running_recognize']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -326,11 +330,13 @@ def long_running_recognize(self, metadata_type=cloud_speech_pb2.LongRunningRecognizeMetadata, ) - def streaming_recognize(self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def streaming_recognize( + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs bidirectional streaming speech recognition: receive results while sending audio. This method is only available via the gRPC API (not REST). @@ -372,16 +378,16 @@ def streaming_recognize(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'streaming_recognize' not in self._inner_api_calls: + if "streaming_recognize" not in self._inner_api_calls: self._inner_api_calls[ - 'streaming_recognize'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.streaming_recognize, - default_retry=self._method_configs['StreamingRecognize']. - retry, - default_timeout=self._method_configs['StreamingRecognize']. - timeout, - client_info=self._client_info, - ) + "streaming_recognize" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.streaming_recognize, + default_retry=self._method_configs["StreamingRecognize"].retry, + default_timeout=self._method_configs["StreamingRecognize"].timeout, + client_info=self._client_info, + ) - return self._inner_api_calls['streaming_recognize']( - requests, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["streaming_recognize"]( + requests, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/speech/google/cloud/speech_v1/gapic/speech_client_config.py b/speech/google/cloud/speech_v1/gapic/speech_client_config.py index d116c8d0bb78..b54aed26bed8 100644 --- a/speech/google/cloud/speech_v1/gapic/speech_client_config.py +++ b/speech/google/cloud/speech_v1/gapic/speech_client_config.py @@ -3,7 +3,7 @@ "google.cloud.speech.v1.Speech": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,26 +13,26 @@ "initial_rpc_timeout_millis": 1000000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 1000000, - "total_timeout_millis": 5000000 + "total_timeout_millis": 5000000, } }, "methods": { "Recognize": { "timeout_millis": 200000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "LongRunningRecognize": { "timeout_millis": 200000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "StreamingRecognize": { "timeout_millis": 200000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/speech/google/cloud/speech_v1/gapic/transports/speech_grpc_transport.py b/speech/google/cloud/speech_v1/gapic/transports/speech_grpc_transport.py index 53bccbf3fd1d..97d5d0e31d42 100644 --- a/speech/google/cloud/speech_v1/gapic/transports/speech_grpc_transport.py +++ b/speech/google/cloud/speech_v1/gapic/transports/speech_grpc_transport.py @@ -28,14 +28,14 @@ class SpeechGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='speech.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="speech.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,34 +53,28 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'speech_stub': cloud_speech_pb2_grpc.SpeechStub(channel), - } + self._stubs = {"speech_stub": cloud_speech_pb2_grpc.SpeechStub(channel)} # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='speech.googleapis.com:443', - credentials=None): + def create_channel(cls, address="speech.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -95,9 +89,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -121,7 +113,7 @@ def recognize(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['speech_stub'].Recognize + return self._stubs["speech_stub"].Recognize @property def long_running_recognize(self): @@ -137,7 +129,7 @@ def long_running_recognize(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['speech_stub'].LongRunningRecognize + return self._stubs["speech_stub"].LongRunningRecognize @property def streaming_recognize(self): @@ -151,4 +143,4 @@ def streaming_recognize(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['speech_stub'].StreamingRecognize + return self._stubs["speech_stub"].StreamingRecognize diff --git a/speech/google/cloud/speech_v1/helpers.py b/speech/google/cloud/speech_v1/helpers.py index cee59ba052c5..26f17dbe52d3 100644 --- a/speech/google/cloud/speech_v1/helpers.py +++ b/speech/google/cloud/speech_v1/helpers.py @@ -24,10 +24,14 @@ class SpeechHelpers(object): in a multiple-inheritance construction alongside the applicable GAPIC. See the :class:`~google.cloud.speech_v1.SpeechClient`. """ + def streaming_recognize( - self, config, requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT): + self, + config, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + ): """Perform bi-directional speech recognition. This method allows you to receive results while sending audio; @@ -75,7 +79,8 @@ def streaming_recognize( """ return super(SpeechHelpers, self).streaming_recognize( self._streaming_request_iterable(config, requests), - retry=retry, timeout=timeout + retry=retry, + timeout=timeout, ) def _streaming_request_iterable(self, config, requests): diff --git a/speech/google/cloud/speech_v1/types.py b/speech/google/cloud/speech_v1/types.py index c6ea1c9bc04e..eb1831e87294 100644 --- a/speech/google/cloud/speech_v1/types.py +++ b/speech/google/cloud/speech_v1/types.py @@ -40,9 +40,7 @@ status_pb2, ] -_local_modules = [ - cloud_speech_pb2, -] +_local_modules = [cloud_speech_pb2] names = [] @@ -52,7 +50,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.speech_v1.types' + message.__module__ = "google.cloud.speech_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/speech/google/cloud/speech_v1p1beta1/__init__.py b/speech/google/cloud/speech_v1p1beta1/__init__.py index feed0a0cf56b..b68a395372f9 100644 --- a/speech/google/cloud/speech_v1p1beta1/__init__.py +++ b/speech/google/cloud/speech_v1p1beta1/__init__.py @@ -27,8 +27,4 @@ class SpeechClient(SpeechHelpers, speech_client.SpeechClient): types = types -__all__ = ( - 'enums', - 'types', - 'SpeechClient', -) +__all__ = ("enums", "types", "SpeechClient") diff --git a/speech/google/cloud/speech_v1p1beta1/gapic/enums.py b/speech/google/cloud/speech_v1p1beta1/gapic/enums.py index ab530c1cc862..49fd29a64842 100644 --- a/speech/google/cloud/speech_v1p1beta1/gapic/enums.py +++ b/speech/google/cloud/speech_v1p1beta1/gapic/enums.py @@ -71,6 +71,7 @@ class AudioEncoding(enum.IntEnum): RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. ``sample_rate_hertz`` must be 16000. """ + ENCODING_UNSPECIFIED = 0 LINEAR16 = 1 FLAC = 2 @@ -105,6 +106,7 @@ class InteractionType(enum.IntEnum): DICTATION (int): Transcribe speech to text to create a written document, such as a text-message, email or report. """ + INTERACTION_TYPE_UNSPECIFIED = 0 DISCUSSION = 1 PRESENTATION = 2 @@ -127,6 +129,7 @@ class MicrophoneDistance(enum.IntEnum): MIDFIELD (int): The speaker if within 3 meters of the microphone. FARFIELD (int): The speaker is more than 3 meters away from the microphone. """ + MICROPHONE_DISTANCE_UNSPECIFIED = 0 NEARFIELD = 1 MIDFIELD = 2 @@ -141,6 +144,7 @@ class OriginalMediaType(enum.IntEnum): AUDIO (int): The speech data is an audio recording. VIDEO (int): The speech data originally recorded on a video. """ + ORIGINAL_MEDIA_TYPE_UNSPECIFIED = 0 AUDIO = 1 VIDEO = 2 @@ -158,6 +162,7 @@ class RecordingDeviceType(enum.IntEnum): OTHER_OUTDOOR_DEVICE (int): Speech was recorded outdoors. OTHER_INDOOR_DEVICE (int): Speech was recorded indoors. """ + RECORDING_DEVICE_TYPE_UNSPECIFIED = 0 SMARTPHONE = 1 PC = 2 @@ -183,5 +188,6 @@ class SpeechEventType(enum.IntEnum): sent if ``single_utterance`` was set to ``true``, and is not used otherwise. """ + SPEECH_EVENT_UNSPECIFIED = 0 END_OF_SINGLE_UTTERANCE = 1 diff --git a/speech/google/cloud/speech_v1p1beta1/gapic/speech_client.py b/speech/google/cloud/speech_v1p1beta1/gapic/speech_client.py index 037bcd40b9ac..987b98930a28 100644 --- a/speech/google/cloud/speech_v1p1beta1/gapic/speech_client.py +++ b/speech/google/cloud/speech_v1p1beta1/gapic/speech_client.py @@ -35,19 +35,18 @@ from google.cloud.speech_v1p1beta1.proto import cloud_speech_pb2_grpc from google.longrunning import operations_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-speech', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-speech").version class SpeechClient(object): """Service that implements Google Cloud Speech API.""" - SERVICE_ADDRESS = 'speech.googleapis.com:443' + SERVICE_ADDRESS = "speech.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.speech.v1p1beta1.Speech' + _INTERFACE_NAME = "google.cloud.speech.v1p1beta1.Speech" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -63,19 +62,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: SpeechClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -109,18 +109,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = speech_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -134,19 +135,19 @@ def __init__(self, else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = speech_grpc_transport.SpeechGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +157,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,12 +167,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def recognize(self, - config, - audio, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def recognize( + self, + config, + audio, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs synchronous speech recognition: receive results after all audio has been sent and processed. @@ -220,28 +224,29 @@ def recognize(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'recognize' not in self._inner_api_calls: + if "recognize" not in self._inner_api_calls: self._inner_api_calls[ - 'recognize'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.recognize, - default_retry=self._method_configs['Recognize'].retry, - default_timeout=self._method_configs['Recognize'].timeout, - client_info=self._client_info, - ) + "recognize" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.recognize, + default_retry=self._method_configs["Recognize"].retry, + default_timeout=self._method_configs["Recognize"].timeout, + client_info=self._client_info, + ) - request = cloud_speech_pb2.RecognizeRequest( - config=config, - audio=audio, + request = cloud_speech_pb2.RecognizeRequest(config=config, audio=audio) + return self._inner_api_calls["recognize"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['recognize']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def long_running_recognize(self, - config, - audio, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def long_running_recognize( + self, + config, + audio, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs asynchronous speech recognition: receive results via the google.longrunning.Operations interface. Returns either an @@ -302,23 +307,22 @@ def long_running_recognize(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'long_running_recognize' not in self._inner_api_calls: + if "long_running_recognize" not in self._inner_api_calls: self._inner_api_calls[ - 'long_running_recognize'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.long_running_recognize, - default_retry=self._method_configs['LongRunningRecognize']. - retry, - default_timeout=self. - _method_configs['LongRunningRecognize'].timeout, - client_info=self._client_info, - ) + "long_running_recognize" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.long_running_recognize, + default_retry=self._method_configs["LongRunningRecognize"].retry, + default_timeout=self._method_configs["LongRunningRecognize"].timeout, + client_info=self._client_info, + ) request = cloud_speech_pb2.LongRunningRecognizeRequest( - config=config, - audio=audio, + config=config, audio=audio + ) + operation = self._inner_api_calls["long_running_recognize"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['long_running_recognize']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, @@ -326,11 +330,13 @@ def long_running_recognize(self, metadata_type=cloud_speech_pb2.LongRunningRecognizeMetadata, ) - def streaming_recognize(self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def streaming_recognize( + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs bidirectional streaming speech recognition: receive results while sending audio. This method is only available via the gRPC API (not REST). @@ -372,16 +378,16 @@ def streaming_recognize(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'streaming_recognize' not in self._inner_api_calls: + if "streaming_recognize" not in self._inner_api_calls: self._inner_api_calls[ - 'streaming_recognize'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.streaming_recognize, - default_retry=self._method_configs['StreamingRecognize']. - retry, - default_timeout=self._method_configs['StreamingRecognize']. - timeout, - client_info=self._client_info, - ) + "streaming_recognize" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.streaming_recognize, + default_retry=self._method_configs["StreamingRecognize"].retry, + default_timeout=self._method_configs["StreamingRecognize"].timeout, + client_info=self._client_info, + ) - return self._inner_api_calls['streaming_recognize']( - requests, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["streaming_recognize"]( + requests, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/speech/google/cloud/speech_v1p1beta1/gapic/speech_client_config.py b/speech/google/cloud/speech_v1p1beta1/gapic/speech_client_config.py index fd93fde49f27..8360e0273019 100644 --- a/speech/google/cloud/speech_v1p1beta1/gapic/speech_client_config.py +++ b/speech/google/cloud/speech_v1p1beta1/gapic/speech_client_config.py @@ -3,7 +3,7 @@ "google.cloud.speech.v1p1beta1.Speech": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,26 +13,26 @@ "initial_rpc_timeout_millis": 1000000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 1000000, - "total_timeout_millis": 5000000 + "total_timeout_millis": 5000000, } }, "methods": { "Recognize": { "timeout_millis": 200000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "LongRunningRecognize": { "timeout_millis": 200000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "StreamingRecognize": { "timeout_millis": 905000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/speech/google/cloud/speech_v1p1beta1/gapic/transports/speech_grpc_transport.py b/speech/google/cloud/speech_v1p1beta1/gapic/transports/speech_grpc_transport.py index 8c9496d5f84b..2c51663f0ca1 100644 --- a/speech/google/cloud/speech_v1p1beta1/gapic/transports/speech_grpc_transport.py +++ b/speech/google/cloud/speech_v1p1beta1/gapic/transports/speech_grpc_transport.py @@ -28,14 +28,14 @@ class SpeechGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='speech.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="speech.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -53,34 +53,28 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'speech_stub': cloud_speech_pb2_grpc.SpeechStub(channel), - } + self._stubs = {"speech_stub": cloud_speech_pb2_grpc.SpeechStub(channel)} # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='speech.googleapis.com:443', - credentials=None): + def create_channel(cls, address="speech.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -95,9 +89,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -121,7 +113,7 @@ def recognize(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['speech_stub'].Recognize + return self._stubs["speech_stub"].Recognize @property def long_running_recognize(self): @@ -137,7 +129,7 @@ def long_running_recognize(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['speech_stub'].LongRunningRecognize + return self._stubs["speech_stub"].LongRunningRecognize @property def streaming_recognize(self): @@ -151,4 +143,4 @@ def streaming_recognize(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['speech_stub'].StreamingRecognize + return self._stubs["speech_stub"].StreamingRecognize diff --git a/speech/google/cloud/speech_v1p1beta1/types.py b/speech/google/cloud/speech_v1p1beta1/types.py index 083452329a34..07a7faafe162 100644 --- a/speech/google/cloud/speech_v1p1beta1/types.py +++ b/speech/google/cloud/speech_v1p1beta1/types.py @@ -40,9 +40,7 @@ status_pb2, ] -_local_modules = [ - cloud_speech_pb2, -] +_local_modules = [cloud_speech_pb2] names = [] @@ -52,7 +50,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.speech_v1p1beta1.types' + message.__module__ = "google.cloud.speech_v1p1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/speech/tests/system/gapic/v1/test_system_speech_v1.py b/speech/tests/system/gapic/v1/test_system_speech_v1.py index 36728e6cb1ad..080e431ad81d 100644 --- a/speech/tests/system/gapic/v1/test_system_speech_v1.py +++ b/speech/tests/system/gapic/v1/test_system_speech_v1.py @@ -23,14 +23,14 @@ class TestSystemSpeech(object): def test_recognize(self): client = speech_v1.SpeechClient() - language_code = 'en-US' + language_code = "en-US" sample_rate_hertz = 44100 encoding = enums.RecognitionConfig.AudioEncoding.FLAC config = { - 'language_code': language_code, - 'sample_rate_hertz': sample_rate_hertz, - 'encoding': encoding + "language_code": language_code, + "sample_rate_hertz": sample_rate_hertz, + "encoding": encoding, } - uri = 'gs://gapic-toolkit/hello.flac' - audio = {'uri': uri} + uri = "gs://gapic-toolkit/hello.flac" + audio = {"uri": uri} response = client.recognize(config, audio) diff --git a/speech/tests/system/gapic/v1p1beta1/test_system_speech_v1p1beta1.py b/speech/tests/system/gapic/v1p1beta1/test_system_speech_v1p1beta1.py index fb2b47b7fce7..36636c3e2479 100644 --- a/speech/tests/system/gapic/v1p1beta1/test_system_speech_v1p1beta1.py +++ b/speech/tests/system/gapic/v1p1beta1/test_system_speech_v1p1beta1.py @@ -23,14 +23,14 @@ class TestSystemSpeech(object): def test_recognize(self): client = speech_v1p1beta1.SpeechClient() - language_code = 'en-US' + language_code = "en-US" sample_rate_hertz = 44100 encoding = enums.RecognitionConfig.AudioEncoding.FLAC config = { - 'language_code': language_code, - 'sample_rate_hertz': sample_rate_hertz, - 'encoding': encoding + "language_code": language_code, + "sample_rate_hertz": sample_rate_hertz, + "encoding": encoding, } - uri = 'gs://gapic-toolkit/hello.flac' - audio = {'uri': uri} + uri = "gs://gapic-toolkit/hello.flac" + audio = {"uri": uri} response = client.recognize(config, audio) diff --git a/speech/tests/unit/gapic/v1/test_speech_client_v1.py b/speech/tests/unit/gapic/v1/test_speech_client_v1.py index fa4be8099c32..0733e21827fc 100644 --- a/speech/tests/unit/gapic/v1/test_speech_client_v1.py +++ b/speech/tests/unit/gapic/v1/test_speech_client_v1.py @@ -54,16 +54,12 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) - def stream_stream(self, - method, - request_serializer=None, - response_deserializer=None): + def stream_stream( + self, method, request_serializer=None, response_deserializer=None + ): return MultiCallableStub(method, self) @@ -75,12 +71,11 @@ class TestSpeechClient(object): def test_recognize(self): # Setup Expected Response expected_response = {} - expected_response = cloud_speech_pb2.RecognizeResponse( - **expected_response) + expected_response = cloud_speech_pb2.RecognizeResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1.SpeechClient() @@ -88,28 +83,27 @@ def test_recognize(self): # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 - language_code = 'en-US' + language_code = "en-US" config = { - 'encoding': encoding, - 'sample_rate_hertz': sample_rate_hertz, - 'language_code': language_code + "encoding": encoding, + "sample_rate_hertz": sample_rate_hertz, + "language_code": language_code, } - uri = 'gs://bucket_name/file_name.flac' - audio = {'uri': uri} + uri = "gs://bucket_name/file_name.flac" + audio = {"uri": uri} response = client.recognize(config, audio) assert expected_response == response assert len(channel.requests) == 1 - expected_request = cloud_speech_pb2.RecognizeRequest( - config=config, audio=audio) + expected_request = cloud_speech_pb2.RecognizeRequest(config=config, audio=audio) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_recognize_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1.SpeechClient() @@ -117,14 +111,14 @@ def test_recognize_exception(self): # Setup request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 - language_code = 'en-US' + language_code = "en-US" config = { - 'encoding': encoding, - 'sample_rate_hertz': sample_rate_hertz, - 'language_code': language_code + "encoding": encoding, + "sample_rate_hertz": sample_rate_hertz, + "language_code": language_code, } - uri = 'gs://bucket_name/file_name.flac' - audio = {'uri': uri} + uri = "gs://bucket_name/file_name.flac" + audio = {"uri": uri} with pytest.raises(CustomException): client.recognize(config, audio) @@ -133,14 +127,16 @@ def test_long_running_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.LongRunningRecognizeResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_long_running_recognize', done=True) + name="operations/test_long_running_recognize", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1.SpeechClient() @@ -148,14 +144,14 @@ def test_long_running_recognize(self): # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 - language_code = 'en-US' + language_code = "en-US" config = { - 'encoding': encoding, - 'sample_rate_hertz': sample_rate_hertz, - 'language_code': language_code + "encoding": encoding, + "sample_rate_hertz": sample_rate_hertz, + "language_code": language_code, } - uri = 'gs://bucket_name/file_name.flac' - audio = {'uri': uri} + uri = "gs://bucket_name/file_name.flac" + audio = {"uri": uri} response = client.long_running_recognize(config, audio) result = response.result() @@ -163,7 +159,8 @@ def test_long_running_recognize(self): assert len(channel.requests) == 1 expected_request = cloud_speech_pb2.LongRunningRecognizeRequest( - config=config, audio=audio) + config=config, audio=audio + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -171,12 +168,13 @@ def test_long_running_recognize_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_long_running_recognize_exception', done=True) + name="operations/test_long_running_recognize_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1.SpeechClient() @@ -184,14 +182,14 @@ def test_long_running_recognize_exception(self): # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 - language_code = 'en-US' + language_code = "en-US" config = { - 'encoding': encoding, - 'sample_rate_hertz': sample_rate_hertz, - 'language_code': language_code + "encoding": encoding, + "sample_rate_hertz": sample_rate_hertz, + "language_code": language_code, } - uri = 'gs://bucket_name/file_name.flac' - audio = {'uri': uri} + uri = "gs://bucket_name/file_name.flac" + audio = {"uri": uri} response = client.long_running_recognize(config, audio) exception = response.exception() @@ -201,11 +199,12 @@ def test_streaming_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.StreamingRecognizeResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[iter([expected_response])]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1.SpeechClient() @@ -229,7 +228,7 @@ def test_streaming_recognize(self): def test_streaming_recognize_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1.SpeechClient() diff --git a/speech/tests/unit/gapic/v1p1beta1/test_speech_client_v1p1beta1.py b/speech/tests/unit/gapic/v1p1beta1/test_speech_client_v1p1beta1.py index f27c47874f00..fc5e1c2de451 100644 --- a/speech/tests/unit/gapic/v1p1beta1/test_speech_client_v1p1beta1.py +++ b/speech/tests/unit/gapic/v1p1beta1/test_speech_client_v1p1beta1.py @@ -54,16 +54,12 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) - def stream_stream(self, - method, - request_serializer=None, - response_deserializer=None): + def stream_stream( + self, method, request_serializer=None, response_deserializer=None + ): return MultiCallableStub(method, self) @@ -75,12 +71,11 @@ class TestSpeechClient(object): def test_recognize(self): # Setup Expected Response expected_response = {} - expected_response = cloud_speech_pb2.RecognizeResponse( - **expected_response) + expected_response = cloud_speech_pb2.RecognizeResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() @@ -88,28 +83,27 @@ def test_recognize(self): # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 - language_code = 'en-US' + language_code = "en-US" config = { - 'encoding': encoding, - 'sample_rate_hertz': sample_rate_hertz, - 'language_code': language_code + "encoding": encoding, + "sample_rate_hertz": sample_rate_hertz, + "language_code": language_code, } - uri = 'gs://bucket_name/file_name.flac' - audio = {'uri': uri} + uri = "gs://bucket_name/file_name.flac" + audio = {"uri": uri} response = client.recognize(config, audio) assert expected_response == response assert len(channel.requests) == 1 - expected_request = cloud_speech_pb2.RecognizeRequest( - config=config, audio=audio) + expected_request = cloud_speech_pb2.RecognizeRequest(config=config, audio=audio) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_recognize_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() @@ -117,14 +111,14 @@ def test_recognize_exception(self): # Setup request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 - language_code = 'en-US' + language_code = "en-US" config = { - 'encoding': encoding, - 'sample_rate_hertz': sample_rate_hertz, - 'language_code': language_code + "encoding": encoding, + "sample_rate_hertz": sample_rate_hertz, + "language_code": language_code, } - uri = 'gs://bucket_name/file_name.flac' - audio = {'uri': uri} + uri = "gs://bucket_name/file_name.flac" + audio = {"uri": uri} with pytest.raises(CustomException): client.recognize(config, audio) @@ -133,14 +127,16 @@ def test_long_running_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.LongRunningRecognizeResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_long_running_recognize', done=True) + name="operations/test_long_running_recognize", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() @@ -148,14 +144,14 @@ def test_long_running_recognize(self): # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 - language_code = 'en-US' + language_code = "en-US" config = { - 'encoding': encoding, - 'sample_rate_hertz': sample_rate_hertz, - 'language_code': language_code + "encoding": encoding, + "sample_rate_hertz": sample_rate_hertz, + "language_code": language_code, } - uri = 'gs://bucket_name/file_name.flac' - audio = {'uri': uri} + uri = "gs://bucket_name/file_name.flac" + audio = {"uri": uri} response = client.long_running_recognize(config, audio) result = response.result() @@ -163,7 +159,8 @@ def test_long_running_recognize(self): assert len(channel.requests) == 1 expected_request = cloud_speech_pb2.LongRunningRecognizeRequest( - config=config, audio=audio) + config=config, audio=audio + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -171,12 +168,13 @@ def test_long_running_recognize_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_long_running_recognize_exception', done=True) + name="operations/test_long_running_recognize_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() @@ -184,14 +182,14 @@ def test_long_running_recognize_exception(self): # Setup Request encoding = enums.RecognitionConfig.AudioEncoding.FLAC sample_rate_hertz = 44100 - language_code = 'en-US' + language_code = "en-US" config = { - 'encoding': encoding, - 'sample_rate_hertz': sample_rate_hertz, - 'language_code': language_code + "encoding": encoding, + "sample_rate_hertz": sample_rate_hertz, + "language_code": language_code, } - uri = 'gs://bucket_name/file_name.flac' - audio = {'uri': uri} + uri = "gs://bucket_name/file_name.flac" + audio = {"uri": uri} response = client.long_running_recognize(config, audio) exception = response.exception() @@ -201,11 +199,12 @@ def test_streaming_recognize(self): # Setup Expected Response expected_response = {} expected_response = cloud_speech_pb2.StreamingRecognizeResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[iter([expected_response])]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() @@ -229,7 +228,7 @@ def test_streaming_recognize(self): def test_streaming_recognize_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = speech_v1p1beta1.SpeechClient() diff --git a/speech/tests/unit/test_helpers.py b/speech/tests/unit/test_helpers.py index a8199ec8ce5f..366b1821dd4c 100644 --- a/speech/tests/unit/test_helpers.py +++ b/speech/tests/unit/test_helpers.py @@ -31,11 +31,11 @@ def test_streaming_recognize(): client = make_speech_client() config = types.StreamingRecognitionConfig() - requests = [types.StreamingRecognizeRequest(audio_content=b'...')] + requests = [types.StreamingRecognizeRequest(audio_content=b"...")] super_patch = mock.patch( - 'google.cloud.speech_v1.speech_client.SpeechClient.' - 'streaming_recognize', - autospec=True) + "google.cloud.speech_v1.speech_client.SpeechClient." "streaming_recognize", + autospec=True, + ) with super_patch as streaming_recognize: client.streaming_recognize(config, requests) @@ -49,5 +49,5 @@ def test_streaming_recognize(): types.StreamingRecognizeRequest(streaming_config=config), requests[0], ] - assert 'retry' in kwargs - assert 'timeout' in kwargs + assert "retry" in kwargs + assert "timeout" in kwargs diff --git a/tasks/docs/conf.py b/tasks/docs/conf.py index cd822380a59e..01ebee8b73d7 100644 --- a/tasks/docs/conf.py +++ b/tasks/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-tasks' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-tasks" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-tasks-doc' +htmlhelp_basename = "google-cloud-tasks-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,45 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-tasks.tex', u'google-cloud-tasks Documentation', - author, 'manual'), + ( + master_doc, + "google-cloud-tasks.tex", + u"google-cloud-tasks Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-tasks', - u'google-cloud-tasks Documentation', [author], 1)] +man_pages = [ + (master_doc, "google-cloud-tasks", u"google-cloud-tasks Documentation", [author], 1) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +277,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-tasks', u'google-cloud-tasks Documentation', - author, 'google-cloud-tasks', - 'GAPIC library for the {metadata.shortName} service', 'APIs'), + ( + master_doc, + "google-cloud-tasks", + u"google-cloud-tasks Documentation", + author, + "google-cloud-tasks", + "GAPIC library for the {metadata.shortName} service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/tasks/google/__init__.py b/tasks/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/tasks/google/__init__.py +++ b/tasks/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/tasks/google/cloud/__init__.py b/tasks/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/tasks/google/cloud/__init__.py +++ b/tasks/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/tasks/google/cloud/tasks.py b/tasks/google/cloud/tasks.py index 703766b0a86b..42a510b521bd 100644 --- a/tasks/google/cloud/tasks.py +++ b/tasks/google/cloud/tasks.py @@ -20,8 +20,4 @@ from google.cloud.tasks_v2beta3 import enums from google.cloud.tasks_v2beta3 import types -__all__ = ( - 'enums', - 'types', - 'CloudTasksClient', -) +__all__ = ("enums", "types", "CloudTasksClient") diff --git a/tasks/google/cloud/tasks_v2beta2/__init__.py b/tasks/google/cloud/tasks_v2beta2/__init__.py index a1dfc159ed27..833665b4e94e 100644 --- a/tasks/google/cloud/tasks_v2beta2/__init__.py +++ b/tasks/google/cloud/tasks_v2beta2/__init__.py @@ -26,8 +26,4 @@ class CloudTasksClient(cloud_tasks_client.CloudTasksClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'CloudTasksClient', -) +__all__ = ("enums", "types", "CloudTasksClient") diff --git a/tasks/google/cloud/tasks_v2beta2/gapic/cloud_tasks_client.py b/tasks/google/cloud/tasks_v2beta2/gapic/cloud_tasks_client.py index 3199c1a954bc..84773f934461 100644 --- a/tasks/google/cloud/tasks_v2beta2/gapic/cloud_tasks_client.py +++ b/tasks/google/cloud/tasks_v2beta2/gapic/cloud_tasks_client.py @@ -43,8 +43,7 @@ from google.protobuf import field_mask_pb2 from google.protobuf import timestamp_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-tasks', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-tasks").version class CloudTasksClient(object): @@ -53,12 +52,12 @@ class CloudTasksClient(object): work in their applications. """ - SERVICE_ADDRESS = 'cloudtasks.googleapis.com:443' + SERVICE_ADDRESS = "cloudtasks.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.tasks.v2beta2.CloudTasks' + _INTERFACE_NAME = "google.cloud.tasks.v2beta2.CloudTasks" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -74,9 +73,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: CloudTasksClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -85,15 +83,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -102,7 +99,7 @@ def location_path(cls, project, location): def queue_path(cls, project, location, queue): """Return a fully-qualified queue string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/queues/{queue}', + "projects/{project}/locations/{location}/queues/{queue}", project=project, location=location, queue=queue, @@ -112,19 +109,21 @@ def queue_path(cls, project, location, queue): def task_path(cls, project, location, queue, task): """Return a fully-qualified task string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/queues/{queue}/tasks/{task}', + "projects/{project}/locations/{location}/queues/{queue}/tasks/{task}", project=project, location=location, queue=queue, task=task, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -158,18 +157,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = cloud_tasks_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -178,25 +178,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=cloud_tasks_grpc_transport. - CloudTasksGrpcTransport, + default_class=cloud_tasks_grpc_transport.CloudTasksGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = cloud_tasks_grpc_transport.CloudTasksGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -206,7 +205,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -215,13 +215,15 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_queues(self, - parent, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_queues( + self, + parent, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists queues. @@ -291,51 +293,54 @@ def list_queues(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_queues' not in self._inner_api_calls: + if "list_queues" not in self._inner_api_calls: self._inner_api_calls[ - 'list_queues'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_queues, - default_retry=self._method_configs['ListQueues'].retry, - default_timeout=self._method_configs['ListQueues'].timeout, - client_info=self._client_info, - ) + "list_queues" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_queues, + default_retry=self._method_configs["ListQueues"].retry, + default_timeout=self._method_configs["ListQueues"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.ListQueuesRequest( - parent=parent, - filter=filter_, - page_size=page_size, + parent=parent, filter=filter_, page_size=page_size ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_queues'], + self._inner_api_calls["list_queues"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='queues', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="queues", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a queue. @@ -373,37 +378,42 @@ def get_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_queue' not in self._inner_api_calls: + if "get_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'get_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_queue, - default_retry=self._method_configs['GetQueue'].retry, - default_timeout=self._method_configs['GetQueue'].timeout, - client_info=self._client_info, - ) + "get_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_queue, + default_retry=self._method_configs["GetQueue"].retry, + default_timeout=self._method_configs["GetQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.GetQueueRequest(name=name, ) + request = cloudtasks_pb2.GetQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def create_queue(self, - parent, - queue, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_queue( + self, + parent, + queue, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a queue. @@ -465,41 +475,42 @@ def create_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_queue' not in self._inner_api_calls: + if "create_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'create_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_queue, - default_retry=self._method_configs['CreateQueue'].retry, - default_timeout=self._method_configs['CreateQueue']. - timeout, - client_info=self._client_info, - ) + "create_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_queue, + default_retry=self._method_configs["CreateQueue"].retry, + default_timeout=self._method_configs["CreateQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.CreateQueueRequest( - parent=parent, - queue=queue, - ) + request = cloudtasks_pb2.CreateQueueRequest(parent=parent, queue=queue) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_queue(self, - queue, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_queue( + self, + queue, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a queue. @@ -565,40 +576,43 @@ def update_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_queue' not in self._inner_api_calls: + if "update_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'update_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_queue, - default_retry=self._method_configs['UpdateQueue'].retry, - default_timeout=self._method_configs['UpdateQueue']. - timeout, - client_info=self._client_info, - ) + "update_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_queue, + default_retry=self._method_configs["UpdateQueue"].retry, + default_timeout=self._method_configs["UpdateQueue"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.UpdateQueueRequest( - queue=queue, - update_mask=update_mask, + queue=queue, update_mask=update_mask ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('queue.name', queue.name)] + routing_header = [("queue.name", queue.name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['update_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a queue. @@ -644,37 +658,41 @@ def delete_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_queue' not in self._inner_api_calls: + if "delete_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_queue, - default_retry=self._method_configs['DeleteQueue'].retry, - default_timeout=self._method_configs['DeleteQueue']. - timeout, - client_info=self._client_info, - ) + "delete_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_queue, + default_retry=self._method_configs["DeleteQueue"].retry, + default_timeout=self._method_configs["DeleteQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.DeleteQueueRequest(name=name, ) + request = cloudtasks_pb2.DeleteQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['delete_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + self._inner_api_calls["delete_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def purge_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def purge_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Purges a queue by deleting all of its tasks. @@ -717,36 +735,41 @@ def purge_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'purge_queue' not in self._inner_api_calls: + if "purge_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'purge_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.purge_queue, - default_retry=self._method_configs['PurgeQueue'].retry, - default_timeout=self._method_configs['PurgeQueue'].timeout, - client_info=self._client_info, - ) + "purge_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.purge_queue, + default_retry=self._method_configs["PurgeQueue"].retry, + default_timeout=self._method_configs["PurgeQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.PurgeQueueRequest(name=name, ) + request = cloudtasks_pb2.PurgeQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['purge_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["purge_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def pause_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def pause_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Pauses the queue. @@ -788,36 +811,41 @@ def pause_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'pause_queue' not in self._inner_api_calls: + if "pause_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'pause_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.pause_queue, - default_retry=self._method_configs['PauseQueue'].retry, - default_timeout=self._method_configs['PauseQueue'].timeout, - client_info=self._client_info, - ) + "pause_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.pause_queue, + default_retry=self._method_configs["PauseQueue"].retry, + default_timeout=self._method_configs["PauseQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.PauseQueueRequest(name=name, ) + request = cloudtasks_pb2.PauseQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['pause_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["pause_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def resume_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def resume_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Resume a queue. @@ -864,37 +892,41 @@ def resume_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'resume_queue' not in self._inner_api_calls: + if "resume_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'resume_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.resume_queue, - default_retry=self._method_configs['ResumeQueue'].retry, - default_timeout=self._method_configs['ResumeQueue']. - timeout, - client_info=self._client_info, - ) + "resume_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.resume_queue, + default_retry=self._method_configs["ResumeQueue"].retry, + default_timeout=self._method_configs["ResumeQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.ResumeQueueRequest(name=name, ) + request = cloudtasks_pb2.ResumeQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['resume_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["resume_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy for a ``Queue``. Returns an empty policy if the resource exists and does not have a policy set. @@ -938,38 +970,42 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy for a ``Queue``. Replaces any existing policy. @@ -1026,41 +1062,42 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, - ) + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns permissions that a caller has on a ``Queue``. If the resource does not exist, this will return an empty set of permissions, not a @@ -1110,43 +1147,45 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_tasks(self, - parent, - response_view=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_tasks( + self, + parent, + response_view=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the tasks in a queue. @@ -1222,52 +1261,55 @@ def list_tasks(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_tasks' not in self._inner_api_calls: + if "list_tasks" not in self._inner_api_calls: self._inner_api_calls[ - 'list_tasks'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_tasks, - default_retry=self._method_configs['ListTasks'].retry, - default_timeout=self._method_configs['ListTasks'].timeout, - client_info=self._client_info, - ) + "list_tasks" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_tasks, + default_retry=self._method_configs["ListTasks"].retry, + default_timeout=self._method_configs["ListTasks"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.ListTasksRequest( - parent=parent, - response_view=response_view, - page_size=page_size, + parent=parent, response_view=response_view, page_size=page_size ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_tasks'], + self._inner_api_calls["list_tasks"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='tasks', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="tasks", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_task(self, - name, - response_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_task( + self, + name, + response_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a task. @@ -1316,41 +1358,43 @@ def get_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_task' not in self._inner_api_calls: + if "get_task" not in self._inner_api_calls: self._inner_api_calls[ - 'get_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_task, - default_retry=self._method_configs['GetTask'].retry, - default_timeout=self._method_configs['GetTask'].timeout, - client_info=self._client_info, - ) + "get_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_task, + default_retry=self._method_configs["GetTask"].retry, + default_timeout=self._method_configs["GetTask"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.GetTaskRequest( - name=name, - response_view=response_view, - ) + request = cloudtasks_pb2.GetTaskRequest(name=name, response_view=response_view) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_task']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def create_task(self, - parent, - task, - response_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_task( + self, + parent, + task, + response_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a task and adds it to a queue. @@ -1444,40 +1488,43 @@ def create_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_task' not in self._inner_api_calls: + if "create_task" not in self._inner_api_calls: self._inner_api_calls[ - 'create_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_task, - default_retry=self._method_configs['CreateTask'].retry, - default_timeout=self._method_configs['CreateTask'].timeout, - client_info=self._client_info, - ) + "create_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_task, + default_retry=self._method_configs["CreateTask"].retry, + default_timeout=self._method_configs["CreateTask"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.CreateTaskRequest( - parent=parent, - task=task, - response_view=response_view, + parent=parent, task=task, response_view=response_view ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_task']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_task(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_task( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a task. @@ -1516,40 +1563,45 @@ def delete_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_task' not in self._inner_api_calls: + if "delete_task" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_task, - default_retry=self._method_configs['DeleteTask'].retry, - default_timeout=self._method_configs['DeleteTask'].timeout, - client_info=self._client_info, - ) + "delete_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_task, + default_retry=self._method_configs["DeleteTask"].retry, + default_timeout=self._method_configs["DeleteTask"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.DeleteTaskRequest(name=name, ) + request = cloudtasks_pb2.DeleteTaskRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['delete_task']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def lease_tasks(self, - parent, - lease_duration, - max_tasks=None, - response_view=None, - filter_=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self._inner_api_calls["delete_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def lease_tasks( + self, + parent, + lease_duration, + max_tasks=None, + response_view=None, + filter_=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Leases tasks from a pull queue for ``lease_duration``. @@ -1656,14 +1708,15 @@ def lease_tasks(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'lease_tasks' not in self._inner_api_calls: + if "lease_tasks" not in self._inner_api_calls: self._inner_api_calls[ - 'lease_tasks'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.lease_tasks, - default_retry=self._method_configs['LeaseTasks'].retry, - default_timeout=self._method_configs['LeaseTasks'].timeout, - client_info=self._client_info, - ) + "lease_tasks" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.lease_tasks, + default_retry=self._method_configs["LeaseTasks"].retry, + default_timeout=self._method_configs["LeaseTasks"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.LeaseTasksRequest( parent=parent, @@ -1676,23 +1729,27 @@ def lease_tasks(self, metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['lease_tasks']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["lease_tasks"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def acknowledge_task(self, - name, - schedule_time, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def acknowledge_task( + self, + name, + schedule_time, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Acknowledges a pull task. @@ -1746,44 +1803,46 @@ def acknowledge_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'acknowledge_task' not in self._inner_api_calls: + if "acknowledge_task" not in self._inner_api_calls: self._inner_api_calls[ - 'acknowledge_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.acknowledge_task, - default_retry=self._method_configs['AcknowledgeTask']. - retry, - default_timeout=self._method_configs['AcknowledgeTask']. - timeout, - client_info=self._client_info, - ) + "acknowledge_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.acknowledge_task, + default_retry=self._method_configs["AcknowledgeTask"].retry, + default_timeout=self._method_configs["AcknowledgeTask"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.AcknowledgeTaskRequest( - name=name, - schedule_time=schedule_time, + name=name, schedule_time=schedule_time ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['acknowledge_task']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def renew_lease(self, - name, - schedule_time, - lease_duration, - response_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self._inner_api_calls["acknowledge_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def renew_lease( + self, + name, + schedule_time, + lease_duration, + response_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Renew the current lease of a pull task. @@ -1859,14 +1918,15 @@ def renew_lease(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'renew_lease' not in self._inner_api_calls: + if "renew_lease" not in self._inner_api_calls: self._inner_api_calls[ - 'renew_lease'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.renew_lease, - default_retry=self._method_configs['RenewLease'].retry, - default_timeout=self._method_configs['RenewLease'].timeout, - client_info=self._client_info, - ) + "renew_lease" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.renew_lease, + default_retry=self._method_configs["RenewLease"].retry, + default_timeout=self._method_configs["RenewLease"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.RenewLeaseRequest( name=name, @@ -1878,24 +1938,28 @@ def renew_lease(self, metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['renew_lease']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["renew_lease"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def cancel_lease(self, - name, - schedule_time, - response_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def cancel_lease( + self, + name, + schedule_time, + response_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Cancel a pull task's lease. @@ -1959,42 +2023,44 @@ def cancel_lease(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'cancel_lease' not in self._inner_api_calls: + if "cancel_lease" not in self._inner_api_calls: self._inner_api_calls[ - 'cancel_lease'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.cancel_lease, - default_retry=self._method_configs['CancelLease'].retry, - default_timeout=self._method_configs['CancelLease']. - timeout, - client_info=self._client_info, - ) + "cancel_lease" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.cancel_lease, + default_retry=self._method_configs["CancelLease"].retry, + default_timeout=self._method_configs["CancelLease"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.CancelLeaseRequest( - name=name, - schedule_time=schedule_time, - response_view=response_view, + name=name, schedule_time=schedule_time, response_view=response_view ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['cancel_lease']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["cancel_lease"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def run_task(self, - name, - response_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def run_task( + self, + name, + response_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Forces a task to run now. @@ -2065,30 +2131,30 @@ def run_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'run_task' not in self._inner_api_calls: + if "run_task" not in self._inner_api_calls: self._inner_api_calls[ - 'run_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.run_task, - default_retry=self._method_configs['RunTask'].retry, - default_timeout=self._method_configs['RunTask'].timeout, - client_info=self._client_info, - ) + "run_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.run_task, + default_retry=self._method_configs["RunTask"].retry, + default_timeout=self._method_configs["RunTask"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.RunTaskRequest( - name=name, - response_view=response_view, - ) + request = cloudtasks_pb2.RunTaskRequest(name=name, response_view=response_view) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['run_task']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["run_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/tasks/google/cloud/tasks_v2beta2/gapic/cloud_tasks_client_config.py b/tasks/google/cloud/tasks_v2beta2/gapic/cloud_tasks_client_config.py index 6e80ed393674..a04987764427 100644 --- a/tasks/google/cloud/tasks_v2beta2/gapic/cloud_tasks_client_config.py +++ b/tasks/google/cloud/tasks_v2beta2/gapic/cloud_tasks_client_config.py @@ -3,7 +3,7 @@ "google.cloud.tasks.v2beta2.CloudTasks": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,111 +13,111 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListQueues": { "timeout_millis": 15000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetQueue": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteQueue": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "PurgeQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "PauseQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ResumeQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTasks": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetTask": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateTask": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteTask": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "LeaseTasks": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AcknowledgeTask": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RenewLease": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CancelLease": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RunTask": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/tasks/google/cloud/tasks_v2beta2/gapic/enums.py b/tasks/google/cloud/tasks_v2beta2/gapic/enums.py index 41a40a78fb15..5f60e3e88ee7 100644 --- a/tasks/google/cloud/tasks_v2beta2/gapic/enums.py +++ b/tasks/google/cloud/tasks_v2beta2/gapic/enums.py @@ -30,6 +30,7 @@ class HttpMethod(enum.IntEnum): PUT (int): HTTP PUT DELETE (int): HTTP DELETE """ + HTTP_METHOD_UNSPECIFIED = 0 POST = 1 GET = 2 @@ -163,6 +164,7 @@ class Code(enum.IntEnum): HTTP Mapping: 500 Internal Server Error """ + OK = 0 CANCELLED = 1 UNKNOWN = 2 @@ -216,6 +218,7 @@ class State(enum.IntEnum): To permanently delete this queue and all of its tasks, call ``DeleteQueue``. """ + STATE_UNSPECIFIED = 0 RUNNING = 1 PAUSED = 2 @@ -247,6 +250,7 @@ class View(enum.IntEnum): `Google IAM `__ permission on the ``Queue`` resource. """ + VIEW_UNSPECIFIED = 0 BASIC = 1 FULL = 2 diff --git a/tasks/google/cloud/tasks_v2beta2/gapic/transports/cloud_tasks_grpc_transport.py b/tasks/google/cloud/tasks_v2beta2/gapic/transports/cloud_tasks_grpc_transport.py index 48e9819bd635..1bc609c33240 100644 --- a/tasks/google/cloud/tasks_v2beta2/gapic/transports/cloud_tasks_grpc_transport.py +++ b/tasks/google/cloud/tasks_v2beta2/gapic/transports/cloud_tasks_grpc_transport.py @@ -27,14 +27,14 @@ class CloudTasksGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='cloudtasks.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="cloudtasks.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,28 +52,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'cloud_tasks_stub': cloudtasks_pb2_grpc.CloudTasksStub(channel), - } + self._stubs = {"cloud_tasks_stub": cloudtasks_pb2_grpc.CloudTasksStub(channel)} @classmethod - def create_channel(cls, - address='cloudtasks.googleapis.com:443', - credentials=None): + def create_channel(cls, address="cloudtasks.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -88,9 +81,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -115,7 +106,7 @@ def list_queues(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].ListQueues + return self._stubs["cloud_tasks_stub"].ListQueues @property def get_queue(self): @@ -128,7 +119,7 @@ def get_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].GetQueue + return self._stubs["cloud_tasks_stub"].GetQueue @property def create_queue(self): @@ -151,7 +142,7 @@ def create_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].CreateQueue + return self._stubs["cloud_tasks_stub"].CreateQueue @property def update_queue(self): @@ -177,7 +168,7 @@ def update_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].UpdateQueue + return self._stubs["cloud_tasks_stub"].UpdateQueue @property def delete_queue(self): @@ -201,7 +192,7 @@ def delete_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].DeleteQueue + return self._stubs["cloud_tasks_stub"].DeleteQueue @property def purge_queue(self): @@ -219,7 +210,7 @@ def purge_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].PurgeQueue + return self._stubs["cloud_tasks_stub"].PurgeQueue @property def pause_queue(self): @@ -236,7 +227,7 @@ def pause_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].PauseQueue + return self._stubs["cloud_tasks_stub"].PauseQueue @property def resume_queue(self): @@ -258,7 +249,7 @@ def resume_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].ResumeQueue + return self._stubs["cloud_tasks_stub"].ResumeQueue @property def get_iam_policy(self): @@ -278,7 +269,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].GetIamPolicy + return self._stubs["cloud_tasks_stub"].GetIamPolicy @property def set_iam_policy(self): @@ -301,7 +292,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].SetIamPolicy + return self._stubs["cloud_tasks_stub"].SetIamPolicy @property def test_iam_permissions(self): @@ -320,7 +311,7 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].TestIamPermissions + return self._stubs["cloud_tasks_stub"].TestIamPermissions @property def list_tasks(self): @@ -340,7 +331,7 @@ def list_tasks(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].ListTasks + return self._stubs["cloud_tasks_stub"].ListTasks @property def get_task(self): @@ -353,7 +344,7 @@ def get_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].GetTask + return self._stubs["cloud_tasks_stub"].GetTask @property def create_task(self): @@ -371,7 +362,7 @@ def create_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].CreateTask + return self._stubs["cloud_tasks_stub"].CreateTask @property def delete_task(self): @@ -388,7 +379,7 @@ def delete_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].DeleteTask + return self._stubs["cloud_tasks_stub"].DeleteTask @property def lease_tasks(self): @@ -414,7 +405,7 @@ def lease_tasks(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].LeaseTasks + return self._stubs["cloud_tasks_stub"].LeaseTasks @property def acknowledge_task(self): @@ -435,7 +426,7 @@ def acknowledge_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].AcknowledgeTask + return self._stubs["cloud_tasks_stub"].AcknowledgeTask @property def renew_lease(self): @@ -452,7 +443,7 @@ def renew_lease(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].RenewLease + return self._stubs["cloud_tasks_stub"].RenewLease @property def cancel_lease(self): @@ -469,7 +460,7 @@ def cancel_lease(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].CancelLease + return self._stubs["cloud_tasks_stub"].CancelLease @property def run_task(self): @@ -504,4 +495,4 @@ def run_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].RunTask + return self._stubs["cloud_tasks_stub"].RunTask diff --git a/tasks/google/cloud/tasks_v2beta2/types.py b/tasks/google/cloud/tasks_v2beta2/types.py index 723e0865a568..5d05f4e97641 100644 --- a/tasks/google/cloud/tasks_v2beta2/types.py +++ b/tasks/google/cloud/tasks_v2beta2/types.py @@ -47,12 +47,7 @@ status_pb2, ] -_local_modules = [ - cloudtasks_pb2, - queue_pb2, - target_pb2, - task_pb2, -] +_local_modules = [cloudtasks_pb2, queue_pb2, target_pb2, task_pb2] names = [] @@ -62,7 +57,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.tasks_v2beta2.types' + message.__module__ = "google.cloud.tasks_v2beta2.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/tasks/google/cloud/tasks_v2beta3/__init__.py b/tasks/google/cloud/tasks_v2beta3/__init__.py index e83b3b1a3b08..cd83195666f3 100644 --- a/tasks/google/cloud/tasks_v2beta3/__init__.py +++ b/tasks/google/cloud/tasks_v2beta3/__init__.py @@ -26,8 +26,4 @@ class CloudTasksClient(cloud_tasks_client.CloudTasksClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'CloudTasksClient', -) +__all__ = ("enums", "types", "CloudTasksClient") diff --git a/tasks/google/cloud/tasks_v2beta3/gapic/cloud_tasks_client.py b/tasks/google/cloud/tasks_v2beta3/gapic/cloud_tasks_client.py index 94ab7786b4ea..599fe3d12763 100644 --- a/tasks/google/cloud/tasks_v2beta3/gapic/cloud_tasks_client.py +++ b/tasks/google/cloud/tasks_v2beta3/gapic/cloud_tasks_client.py @@ -41,8 +41,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-tasks', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-tasks").version class CloudTasksClient(object): @@ -51,12 +50,12 @@ class CloudTasksClient(object): work in their applications. """ - SERVICE_ADDRESS = 'cloudtasks.googleapis.com:443' + SERVICE_ADDRESS = "cloudtasks.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.tasks.v2beta3.CloudTasks' + _INTERFACE_NAME = "google.cloud.tasks.v2beta3.CloudTasks" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -72,9 +71,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: CloudTasksClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -83,15 +81,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -100,7 +97,7 @@ def location_path(cls, project, location): def queue_path(cls, project, location, queue): """Return a fully-qualified queue string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/queues/{queue}', + "projects/{project}/locations/{location}/queues/{queue}", project=project, location=location, queue=queue, @@ -110,19 +107,21 @@ def queue_path(cls, project, location, queue): def task_path(cls, project, location, queue, task): """Return a fully-qualified task string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/queues/{queue}/tasks/{task}', + "projects/{project}/locations/{location}/queues/{queue}/tasks/{task}", project=project, location=location, queue=queue, task=task, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -156,18 +155,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = cloud_tasks_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -176,25 +176,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=cloud_tasks_grpc_transport. - CloudTasksGrpcTransport, + default_class=cloud_tasks_grpc_transport.CloudTasksGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = cloud_tasks_grpc_transport.CloudTasksGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -204,7 +203,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -213,13 +213,15 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_queues(self, - parent, - filter_=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_queues( + self, + parent, + filter_=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists queues. @@ -289,51 +291,54 @@ def list_queues(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_queues' not in self._inner_api_calls: + if "list_queues" not in self._inner_api_calls: self._inner_api_calls[ - 'list_queues'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_queues, - default_retry=self._method_configs['ListQueues'].retry, - default_timeout=self._method_configs['ListQueues'].timeout, - client_info=self._client_info, - ) + "list_queues" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_queues, + default_retry=self._method_configs["ListQueues"].retry, + default_timeout=self._method_configs["ListQueues"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.ListQueuesRequest( - parent=parent, - filter=filter_, - page_size=page_size, + parent=parent, filter=filter_, page_size=page_size ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_queues'], + self._inner_api_calls["list_queues"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='queues', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="queues", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a queue. @@ -371,37 +376,42 @@ def get_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_queue' not in self._inner_api_calls: + if "get_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'get_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_queue, - default_retry=self._method_configs['GetQueue'].retry, - default_timeout=self._method_configs['GetQueue'].timeout, - client_info=self._client_info, - ) + "get_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_queue, + default_retry=self._method_configs["GetQueue"].retry, + default_timeout=self._method_configs["GetQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.GetQueueRequest(name=name, ) + request = cloudtasks_pb2.GetQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def create_queue(self, - parent, - queue, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_queue( + self, + parent, + queue, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a queue. @@ -463,41 +473,42 @@ def create_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_queue' not in self._inner_api_calls: + if "create_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'create_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_queue, - default_retry=self._method_configs['CreateQueue'].retry, - default_timeout=self._method_configs['CreateQueue']. - timeout, - client_info=self._client_info, - ) + "create_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_queue, + default_retry=self._method_configs["CreateQueue"].retry, + default_timeout=self._method_configs["CreateQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.CreateQueueRequest( - parent=parent, - queue=queue, - ) + request = cloudtasks_pb2.CreateQueueRequest(parent=parent, queue=queue) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_queue(self, - queue, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_queue( + self, + queue, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a queue. @@ -563,40 +574,43 @@ def update_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_queue' not in self._inner_api_calls: + if "update_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'update_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_queue, - default_retry=self._method_configs['UpdateQueue'].retry, - default_timeout=self._method_configs['UpdateQueue']. - timeout, - client_info=self._client_info, - ) + "update_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_queue, + default_retry=self._method_configs["UpdateQueue"].retry, + default_timeout=self._method_configs["UpdateQueue"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.UpdateQueueRequest( - queue=queue, - update_mask=update_mask, + queue=queue, update_mask=update_mask ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('queue.name', queue.name)] + routing_header = [("queue.name", queue.name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['update_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["update_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a queue. @@ -642,37 +656,41 @@ def delete_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_queue' not in self._inner_api_calls: + if "delete_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_queue, - default_retry=self._method_configs['DeleteQueue'].retry, - default_timeout=self._method_configs['DeleteQueue']. - timeout, - client_info=self._client_info, - ) + "delete_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_queue, + default_retry=self._method_configs["DeleteQueue"].retry, + default_timeout=self._method_configs["DeleteQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.DeleteQueueRequest(name=name, ) + request = cloudtasks_pb2.DeleteQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['delete_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + self._inner_api_calls["delete_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def purge_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def purge_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Purges a queue by deleting all of its tasks. @@ -715,36 +733,41 @@ def purge_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'purge_queue' not in self._inner_api_calls: + if "purge_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'purge_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.purge_queue, - default_retry=self._method_configs['PurgeQueue'].retry, - default_timeout=self._method_configs['PurgeQueue'].timeout, - client_info=self._client_info, - ) + "purge_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.purge_queue, + default_retry=self._method_configs["PurgeQueue"].retry, + default_timeout=self._method_configs["PurgeQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.PurgeQueueRequest(name=name, ) + request = cloudtasks_pb2.PurgeQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['purge_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["purge_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def pause_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def pause_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Pauses the queue. @@ -786,36 +809,41 @@ def pause_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'pause_queue' not in self._inner_api_calls: + if "pause_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'pause_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.pause_queue, - default_retry=self._method_configs['PauseQueue'].retry, - default_timeout=self._method_configs['PauseQueue'].timeout, - client_info=self._client_info, - ) + "pause_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.pause_queue, + default_retry=self._method_configs["PauseQueue"].retry, + default_timeout=self._method_configs["PauseQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.PauseQueueRequest(name=name, ) + request = cloudtasks_pb2.PauseQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['pause_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["pause_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def resume_queue(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def resume_queue( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Resume a queue. @@ -862,37 +890,41 @@ def resume_queue(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'resume_queue' not in self._inner_api_calls: + if "resume_queue" not in self._inner_api_calls: self._inner_api_calls[ - 'resume_queue'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.resume_queue, - default_retry=self._method_configs['ResumeQueue'].retry, - default_timeout=self._method_configs['ResumeQueue']. - timeout, - client_info=self._client_info, - ) + "resume_queue" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.resume_queue, + default_retry=self._method_configs["ResumeQueue"].retry, + default_timeout=self._method_configs["ResumeQueue"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.ResumeQueueRequest(name=name, ) + request = cloudtasks_pb2.ResumeQueueRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['resume_queue']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["resume_queue"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_iam_policy(self, - resource, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_iam_policy( + self, + resource, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets the access control policy for a ``Queue``. Returns an empty policy if the resource exists and does not have a policy set. @@ -936,38 +968,42 @@ def get_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_iam_policy' not in self._inner_api_calls: + if "get_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'get_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_iam_policy, - default_retry=self._method_configs['GetIamPolicy'].retry, - default_timeout=self._method_configs['GetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "get_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_iam_policy, + default_retry=self._method_configs["GetIamPolicy"].retry, + default_timeout=self._method_configs["GetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.GetIamPolicyRequest(resource=resource, ) + request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def set_iam_policy(self, - resource, - policy, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def set_iam_policy( + self, + resource, + policy, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sets the access control policy for a ``Queue``. Replaces any existing policy. @@ -1024,41 +1060,42 @@ def set_iam_policy(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'set_iam_policy' not in self._inner_api_calls: + if "set_iam_policy" not in self._inner_api_calls: self._inner_api_calls[ - 'set_iam_policy'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.set_iam_policy, - default_retry=self._method_configs['SetIamPolicy'].retry, - default_timeout=self._method_configs['SetIamPolicy']. - timeout, - client_info=self._client_info, - ) + "set_iam_policy" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.set_iam_policy, + default_retry=self._method_configs["SetIamPolicy"].retry, + default_timeout=self._method_configs["SetIamPolicy"].timeout, + client_info=self._client_info, + ) - request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, - policy=policy, - ) + request = iam_policy_pb2.SetIamPolicyRequest(resource=resource, policy=policy) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['set_iam_policy']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["set_iam_policy"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def test_iam_permissions(self, - resource, - permissions, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def test_iam_permissions( + self, + resource, + permissions, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns permissions that a caller has on a ``Queue``. If the resource does not exist, this will return an empty set of permissions, not a @@ -1108,43 +1145,45 @@ def test_iam_permissions(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'test_iam_permissions' not in self._inner_api_calls: + if "test_iam_permissions" not in self._inner_api_calls: self._inner_api_calls[ - 'test_iam_permissions'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.test_iam_permissions, - default_retry=self._method_configs['TestIamPermissions']. - retry, - default_timeout=self._method_configs['TestIamPermissions']. - timeout, - client_info=self._client_info, - ) + "test_iam_permissions" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.test_iam_permissions, + default_retry=self._method_configs["TestIamPermissions"].retry, + default_timeout=self._method_configs["TestIamPermissions"].timeout, + client_info=self._client_info, + ) request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, - permissions=permissions, + resource=resource, permissions=permissions ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('resource', resource)] + routing_header = [("resource", resource)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['test_iam_permissions']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["test_iam_permissions"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_tasks(self, - parent, - response_view=None, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_tasks( + self, + parent, + response_view=None, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the tasks in a queue. @@ -1220,52 +1259,55 @@ def list_tasks(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_tasks' not in self._inner_api_calls: + if "list_tasks" not in self._inner_api_calls: self._inner_api_calls[ - 'list_tasks'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_tasks, - default_retry=self._method_configs['ListTasks'].retry, - default_timeout=self._method_configs['ListTasks'].timeout, - client_info=self._client_info, - ) + "list_tasks" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_tasks, + default_retry=self._method_configs["ListTasks"].retry, + default_timeout=self._method_configs["ListTasks"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.ListTasksRequest( - parent=parent, - response_view=response_view, - page_size=page_size, + parent=parent, response_view=response_view, page_size=page_size ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_tasks'], + self._inner_api_calls["list_tasks"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='tasks', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="tasks", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_task(self, - name, - response_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_task( + self, + name, + response_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a task. @@ -1314,41 +1356,43 @@ def get_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_task' not in self._inner_api_calls: + if "get_task" not in self._inner_api_calls: self._inner_api_calls[ - 'get_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_task, - default_retry=self._method_configs['GetTask'].retry, - default_timeout=self._method_configs['GetTask'].timeout, - client_info=self._client_info, - ) + "get_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_task, + default_retry=self._method_configs["GetTask"].retry, + default_timeout=self._method_configs["GetTask"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.GetTaskRequest( - name=name, - response_view=response_view, - ) + request = cloudtasks_pb2.GetTaskRequest(name=name, response_view=response_view) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['get_task']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["get_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def create_task(self, - parent, - task, - response_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_task( + self, + parent, + task, + response_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a task and adds it to a queue. @@ -1441,40 +1485,43 @@ def create_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_task' not in self._inner_api_calls: + if "create_task" not in self._inner_api_calls: self._inner_api_calls[ - 'create_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_task, - default_retry=self._method_configs['CreateTask'].retry, - default_timeout=self._method_configs['CreateTask'].timeout, - client_info=self._client_info, - ) + "create_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_task, + default_retry=self._method_configs["CreateTask"].retry, + default_timeout=self._method_configs["CreateTask"].timeout, + client_info=self._client_info, + ) request = cloudtasks_pb2.CreateTaskRequest( - parent=parent, - task=task, - response_view=response_view, + parent=parent, task=task, response_view=response_view ) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('parent', parent)] + routing_header = [("parent", parent)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['create_task']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_task(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_task( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes a task. @@ -1513,37 +1560,42 @@ def delete_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_task' not in self._inner_api_calls: + if "delete_task" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_task, - default_retry=self._method_configs['DeleteTask'].retry, - default_timeout=self._method_configs['DeleteTask'].timeout, - client_info=self._client_info, - ) + "delete_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_task, + default_retry=self._method_configs["DeleteTask"].retry, + default_timeout=self._method_configs["DeleteTask"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.DeleteTaskRequest(name=name, ) + request = cloudtasks_pb2.DeleteTaskRequest(name=name) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - self._inner_api_calls['delete_task']( - request, retry=retry, timeout=timeout, metadata=metadata) + self._inner_api_calls["delete_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def run_task(self, - name, - response_view=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def run_task( + self, + name, + response_view=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Forces a task to run now. @@ -1612,30 +1664,30 @@ def run_task(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'run_task' not in self._inner_api_calls: + if "run_task" not in self._inner_api_calls: self._inner_api_calls[ - 'run_task'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.run_task, - default_retry=self._method_configs['RunTask'].retry, - default_timeout=self._method_configs['RunTask'].timeout, - client_info=self._client_info, - ) + "run_task" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.run_task, + default_retry=self._method_configs["RunTask"].retry, + default_timeout=self._method_configs["RunTask"].timeout, + client_info=self._client_info, + ) - request = cloudtasks_pb2.RunTaskRequest( - name=name, - response_view=response_view, - ) + request = cloudtasks_pb2.RunTaskRequest(name=name, response_view=response_view) if metadata is None: metadata = [] metadata = list(metadata) try: - routing_header = [('name', name)] + routing_header = [("name", name)] except AttributeError: pass else: routing_metadata = google.api_core.gapic_v1.routing_header.to_grpc_metadata( - routing_header) + routing_header + ) metadata.append(routing_metadata) - return self._inner_api_calls['run_task']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["run_task"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/tasks/google/cloud/tasks_v2beta3/gapic/cloud_tasks_client_config.py b/tasks/google/cloud/tasks_v2beta3/gapic/cloud_tasks_client_config.py index 028b137a9331..7773a64356c0 100644 --- a/tasks/google/cloud/tasks_v2beta3/gapic/cloud_tasks_client_config.py +++ b/tasks/google/cloud/tasks_v2beta3/gapic/cloud_tasks_client_config.py @@ -3,7 +3,7 @@ "google.cloud.tasks.v2beta3.CloudTasks": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,91 +13,91 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListQueues": { "timeout_millis": 15000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetQueue": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteQueue": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "PurgeQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "PauseQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ResumeQueue": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetIamPolicy": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SetIamPolicy": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "TestIamPermissions": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTasks": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetTask": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateTask": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteTask": { "timeout_millis": 10000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RunTask": { "timeout_millis": 10000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/tasks/google/cloud/tasks_v2beta3/gapic/enums.py b/tasks/google/cloud/tasks_v2beta3/gapic/enums.py index ffcd4c8a67e8..db71c9be99d7 100644 --- a/tasks/google/cloud/tasks_v2beta3/gapic/enums.py +++ b/tasks/google/cloud/tasks_v2beta3/gapic/enums.py @@ -30,6 +30,7 @@ class HttpMethod(enum.IntEnum): PUT (int): HTTP PUT DELETE (int): HTTP DELETE """ + HTTP_METHOD_UNSPECIFIED = 0 POST = 1 GET = 2 @@ -163,6 +164,7 @@ class Code(enum.IntEnum): HTTP Mapping: 500 Internal Server Error """ + OK = 0 CANCELLED = 1 UNKNOWN = 2 @@ -214,6 +216,7 @@ class State(enum.IntEnum): To permanently delete this queue and all of its tasks, call ``DeleteQueue``. """ + STATE_UNSPECIFIED = 0 RUNNING = 1 PAUSED = 2 @@ -244,6 +247,7 @@ class View(enum.IntEnum): `Google IAM `__ permission on the ``Queue`` resource. """ + VIEW_UNSPECIFIED = 0 BASIC = 1 FULL = 2 diff --git a/tasks/google/cloud/tasks_v2beta3/gapic/transports/cloud_tasks_grpc_transport.py b/tasks/google/cloud/tasks_v2beta3/gapic/transports/cloud_tasks_grpc_transport.py index 6efcb26ec89d..4422873e826e 100644 --- a/tasks/google/cloud/tasks_v2beta3/gapic/transports/cloud_tasks_grpc_transport.py +++ b/tasks/google/cloud/tasks_v2beta3/gapic/transports/cloud_tasks_grpc_transport.py @@ -27,14 +27,14 @@ class CloudTasksGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='cloudtasks.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="cloudtasks.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,28 +52,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'cloud_tasks_stub': cloudtasks_pb2_grpc.CloudTasksStub(channel), - } + self._stubs = {"cloud_tasks_stub": cloudtasks_pb2_grpc.CloudTasksStub(channel)} @classmethod - def create_channel(cls, - address='cloudtasks.googleapis.com:443', - credentials=None): + def create_channel(cls, address="cloudtasks.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -88,9 +81,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -115,7 +106,7 @@ def list_queues(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].ListQueues + return self._stubs["cloud_tasks_stub"].ListQueues @property def get_queue(self): @@ -128,7 +119,7 @@ def get_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].GetQueue + return self._stubs["cloud_tasks_stub"].GetQueue @property def create_queue(self): @@ -151,7 +142,7 @@ def create_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].CreateQueue + return self._stubs["cloud_tasks_stub"].CreateQueue @property def update_queue(self): @@ -177,7 +168,7 @@ def update_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].UpdateQueue + return self._stubs["cloud_tasks_stub"].UpdateQueue @property def delete_queue(self): @@ -201,7 +192,7 @@ def delete_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].DeleteQueue + return self._stubs["cloud_tasks_stub"].DeleteQueue @property def purge_queue(self): @@ -219,7 +210,7 @@ def purge_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].PurgeQueue + return self._stubs["cloud_tasks_stub"].PurgeQueue @property def pause_queue(self): @@ -236,7 +227,7 @@ def pause_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].PauseQueue + return self._stubs["cloud_tasks_stub"].PauseQueue @property def resume_queue(self): @@ -258,7 +249,7 @@ def resume_queue(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].ResumeQueue + return self._stubs["cloud_tasks_stub"].ResumeQueue @property def get_iam_policy(self): @@ -278,7 +269,7 @@ def get_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].GetIamPolicy + return self._stubs["cloud_tasks_stub"].GetIamPolicy @property def set_iam_policy(self): @@ -301,7 +292,7 @@ def set_iam_policy(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].SetIamPolicy + return self._stubs["cloud_tasks_stub"].SetIamPolicy @property def test_iam_permissions(self): @@ -320,7 +311,7 @@ def test_iam_permissions(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].TestIamPermissions + return self._stubs["cloud_tasks_stub"].TestIamPermissions @property def list_tasks(self): @@ -340,7 +331,7 @@ def list_tasks(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].ListTasks + return self._stubs["cloud_tasks_stub"].ListTasks @property def get_task(self): @@ -353,7 +344,7 @@ def get_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].GetTask + return self._stubs["cloud_tasks_stub"].GetTask @property def create_task(self): @@ -370,7 +361,7 @@ def create_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].CreateTask + return self._stubs["cloud_tasks_stub"].CreateTask @property def delete_task(self): @@ -387,7 +378,7 @@ def delete_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].DeleteTask + return self._stubs["cloud_tasks_stub"].DeleteTask @property def run_task(self): @@ -420,4 +411,4 @@ def run_task(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['cloud_tasks_stub'].RunTask + return self._stubs["cloud_tasks_stub"].RunTask diff --git a/tasks/google/cloud/tasks_v2beta3/types.py b/tasks/google/cloud/tasks_v2beta3/types.py index b75a2ef354d7..96a391cfb202 100644 --- a/tasks/google/cloud/tasks_v2beta3/types.py +++ b/tasks/google/cloud/tasks_v2beta3/types.py @@ -47,12 +47,7 @@ status_pb2, ] -_local_modules = [ - cloudtasks_pb2, - queue_pb2, - target_pb2, - task_pb2, -] +_local_modules = [cloudtasks_pb2, queue_pb2, target_pb2, task_pb2] names = [] @@ -62,7 +57,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.tasks_v2beta3.types' + message.__module__ = "google.cloud.tasks_v2beta3.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/tasks/tests/unit/gapic/v2beta2/test_cloud_tasks_client_v2beta2.py b/tasks/tests/unit/gapic/v2beta2/test_cloud_tasks_client_v2beta2.py index 2e2d6d62561f..a6cee1efa1cc 100644 --- a/tasks/tests/unit/gapic/v2beta2/test_cloud_tasks_client_v2beta2.py +++ b/tasks/tests/unit/gapic/v2beta2/test_cloud_tasks_client_v2beta2.py @@ -57,10 +57,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -71,25 +68,21 @@ class CustomException(Exception): class TestCloudTasksClient(object): def test_list_queues(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" queues_element = {} queues = [queues_element] - expected_response = { - 'next_page_token': next_page_token, - 'queues': queues - } - expected_response = cloudtasks_pb2.ListQueuesResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "queues": queues} + expected_response = cloudtasks_pb2.ListQueuesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_queues(parent) resources = list(paged_list_response) @@ -104,13 +97,13 @@ def test_list_queues(self): def test_list_queues_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_queues(parent) with pytest.raises(CustomException): @@ -118,19 +111,19 @@ def test_list_queues_exception(self): def test_get_queue(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.get_queue(name) assert expected_response == response @@ -143,53 +136,52 @@ def test_get_queue(self): def test_get_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.get_queue(name) def test_create_queue(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") queue = {} response = client.create_queue(parent, queue) assert expected_response == response assert len(channel.requests) == 1 - expected_request = cloudtasks_pb2.CreateQueueRequest( - parent=parent, queue=queue) + expected_request = cloudtasks_pb2.CreateQueueRequest(parent=parent, queue=queue) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") queue = {} with pytest.raises(CustomException): @@ -197,13 +189,13 @@ def test_create_queue_exception(self): def test_update_queue(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() @@ -222,7 +214,7 @@ def test_update_queue(self): def test_update_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() @@ -235,13 +227,13 @@ def test_update_queue_exception(self): def test_delete_queue(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") client.delete_queue(name) @@ -253,32 +245,32 @@ def test_delete_queue(self): def test_delete_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.delete_queue(name) def test_purge_queue(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.purge_queue(name) assert expected_response == response @@ -291,32 +283,32 @@ def test_purge_queue(self): def test_purge_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.purge_queue(name) def test_pause_queue(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.pause_queue(name) assert expected_response == response @@ -329,32 +321,32 @@ def test_pause_queue(self): def test_pause_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.pause_queue(name) def test_resume_queue(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.resume_queue(name) assert expected_response == response @@ -367,13 +359,13 @@ def test_resume_queue(self): def test_resume_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.resume_queue(name) @@ -381,39 +373,38 @@ def test_resume_queue_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.get_iam_policy(resource) @@ -421,19 +412,19 @@ def test_get_iam_policy_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") policy = {} response = client.set_iam_policy(resource, policy) @@ -441,20 +432,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") policy = {} with pytest.raises(CustomException): @@ -464,17 +456,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -482,20 +475,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") permissions = [] with pytest.raises(CustomException): @@ -503,25 +497,21 @@ def test_test_iam_permissions_exception(self): def test_list_tasks(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" tasks_element = {} tasks = [tasks_element] - expected_response = { - 'next_page_token': next_page_token, - 'tasks': tasks - } - expected_response = cloudtasks_pb2.ListTasksResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "tasks": tasks} + expected_response = cloudtasks_pb2.ListTasksResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") paged_list_response = client.list_tasks(parent) resources = list(paged_list_response) @@ -536,13 +526,13 @@ def test_list_tasks(self): def test_list_tasks_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") paged_list_response = client.list_tasks(parent) with pytest.raises(CustomException): @@ -550,19 +540,19 @@ def test_list_tasks_exception(self): def test_get_task(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = task_pb2.Task(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") response = client.get_task(name) assert expected_response == response @@ -575,53 +565,52 @@ def test_get_task(self): def test_get_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") with pytest.raises(CustomException): client.get_task(name) def test_create_task(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = task_pb2.Task(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") task = {} response = client.create_task(parent, task) assert expected_response == response assert len(channel.requests) == 1 - expected_request = cloudtasks_pb2.CreateTaskRequest( - parent=parent, task=task) + expected_request = cloudtasks_pb2.CreateTaskRequest(parent=parent, task=task) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") task = {} with pytest.raises(CustomException): @@ -629,13 +618,13 @@ def test_create_task_exception(self): def test_delete_task(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") client.delete_task(name) @@ -647,13 +636,13 @@ def test_delete_task(self): def test_delete_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") with pytest.raises(CustomException): client.delete_task(name) @@ -661,18 +650,17 @@ def test_delete_task_exception(self): def test_lease_tasks(self): # Setup Expected Response expected_response = {} - expected_response = cloudtasks_pb2.LeaseTasksResponse( - **expected_response) + expected_response = cloudtasks_pb2.LeaseTasksResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") lease_duration = {} response = client.lease_tasks(parent, lease_duration) @@ -680,20 +668,21 @@ def test_lease_tasks(self): assert len(channel.requests) == 1 expected_request = cloudtasks_pb2.LeaseTasksRequest( - parent=parent, lease_duration=lease_duration) + parent=parent, lease_duration=lease_duration + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_lease_tasks_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") lease_duration = {} with pytest.raises(CustomException): @@ -701,33 +690,34 @@ def test_lease_tasks_exception(self): def test_acknowledge_task(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") schedule_time = {} client.acknowledge_task(name, schedule_time) assert len(channel.requests) == 1 expected_request = cloudtasks_pb2.AcknowledgeTaskRequest( - name=name, schedule_time=schedule_time) + name=name, schedule_time=schedule_time + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_acknowledge_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") schedule_time = {} with pytest.raises(CustomException): @@ -735,19 +725,19 @@ def test_acknowledge_task_exception(self): def test_renew_lease(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = task_pb2.Task(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") schedule_time = {} lease_duration = {} @@ -756,22 +746,21 @@ def test_renew_lease(self): assert len(channel.requests) == 1 expected_request = cloudtasks_pb2.RenewLeaseRequest( - name=name, - schedule_time=schedule_time, - lease_duration=lease_duration) + name=name, schedule_time=schedule_time, lease_duration=lease_duration + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_renew_lease_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") schedule_time = {} lease_duration = {} @@ -780,19 +769,19 @@ def test_renew_lease_exception(self): def test_cancel_lease(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = task_pb2.Task(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") schedule_time = {} response = client.cancel_lease(name, schedule_time) @@ -800,20 +789,21 @@ def test_cancel_lease(self): assert len(channel.requests) == 1 expected_request = cloudtasks_pb2.CancelLeaseRequest( - name=name, schedule_time=schedule_time) + name=name, schedule_time=schedule_time + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_cancel_lease_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") schedule_time = {} with pytest.raises(CustomException): @@ -821,19 +811,19 @@ def test_cancel_lease_exception(self): def test_run_task(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = task_pb2.Task(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") response = client.run_task(name) assert expected_response == response @@ -846,13 +836,13 @@ def test_run_task(self): def test_run_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta2.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") with pytest.raises(CustomException): client.run_task(name) diff --git a/tasks/tests/unit/gapic/v2beta3/test_cloud_tasks_client_v2beta3.py b/tasks/tests/unit/gapic/v2beta3/test_cloud_tasks_client_v2beta3.py index 5dd598600bde..d7e08a22ea4c 100644 --- a/tasks/tests/unit/gapic/v2beta3/test_cloud_tasks_client_v2beta3.py +++ b/tasks/tests/unit/gapic/v2beta3/test_cloud_tasks_client_v2beta3.py @@ -55,10 +55,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -69,25 +66,21 @@ class CustomException(Exception): class TestCloudTasksClient(object): def test_list_queues(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" queues_element = {} queues = [queues_element] - expected_response = { - 'next_page_token': next_page_token, - 'queues': queues - } - expected_response = cloudtasks_pb2.ListQueuesResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "queues": queues} + expected_response = cloudtasks_pb2.ListQueuesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_queues(parent) resources = list(paged_list_response) @@ -102,13 +95,13 @@ def test_list_queues(self): def test_list_queues_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_queues(parent) with pytest.raises(CustomException): @@ -116,19 +109,19 @@ def test_list_queues_exception(self): def test_get_queue(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.get_queue(name) assert expected_response == response @@ -141,53 +134,52 @@ def test_get_queue(self): def test_get_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.get_queue(name) def test_create_queue(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") queue = {} response = client.create_queue(parent, queue) assert expected_response == response assert len(channel.requests) == 1 - expected_request = cloudtasks_pb2.CreateQueueRequest( - parent=parent, queue=queue) + expected_request = cloudtasks_pb2.CreateQueueRequest(parent=parent, queue=queue) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") queue = {} with pytest.raises(CustomException): @@ -195,13 +187,13 @@ def test_create_queue_exception(self): def test_update_queue(self): # Setup Expected Response - name = 'name3373707' - expected_response = {'name': name} + name = "name3373707" + expected_response = {"name": name} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() @@ -220,7 +212,7 @@ def test_update_queue(self): def test_update_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() @@ -233,13 +225,13 @@ def test_update_queue_exception(self): def test_delete_queue(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") client.delete_queue(name) @@ -251,32 +243,32 @@ def test_delete_queue(self): def test_delete_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.delete_queue(name) def test_purge_queue(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.purge_queue(name) assert expected_response == response @@ -289,32 +281,32 @@ def test_purge_queue(self): def test_purge_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.purge_queue(name) def test_pause_queue(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.pause_queue(name) assert expected_response == response @@ -327,32 +319,32 @@ def test_pause_queue(self): def test_pause_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.pause_queue(name) def test_resume_queue(self): # Setup Expected Response - name_2 = 'name2-1052831874' - expected_response = {'name': name_2} + name_2 = "name2-1052831874" + expected_response = {"name": name_2} expected_response = queue_pb2.Queue(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.resume_queue(name) assert expected_response == response @@ -365,13 +357,13 @@ def test_resume_queue(self): def test_resume_queue_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - name = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + name = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.resume_queue(name) @@ -379,39 +371,38 @@ def test_resume_queue_exception(self): def test_get_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") response = client.get_iam_policy(resource) assert expected_response == response assert len(channel.requests) == 1 - expected_request = iam_policy_pb2.GetIamPolicyRequest( - resource=resource) + expected_request = iam_policy_pb2.GetIamPolicyRequest(resource=resource) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") with pytest.raises(CustomException): client.get_iam_policy(resource) @@ -419,19 +410,19 @@ def test_get_iam_policy_exception(self): def test_set_iam_policy(self): # Setup Expected Response version = 351608024 - etag = b'21' - expected_response = {'version': version, 'etag': etag} + etag = b"21" + expected_response = {"version": version, "etag": etag} expected_response = policy_pb2.Policy(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") policy = {} response = client.set_iam_policy(resource, policy) @@ -439,20 +430,21 @@ def test_set_iam_policy(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.SetIamPolicyRequest( - resource=resource, policy=policy) + resource=resource, policy=policy + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_set_iam_policy_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") policy = {} with pytest.raises(CustomException): @@ -462,17 +454,18 @@ def test_test_iam_permissions(self): # Setup Expected Response expected_response = {} expected_response = iam_policy_pb2.TestIamPermissionsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") permissions = [] response = client.test_iam_permissions(resource, permissions) @@ -480,20 +473,21 @@ def test_test_iam_permissions(self): assert len(channel.requests) == 1 expected_request = iam_policy_pb2.TestIamPermissionsRequest( - resource=resource, permissions=permissions) + resource=resource, permissions=permissions + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_test_iam_permissions_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - resource = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + resource = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") permissions = [] with pytest.raises(CustomException): @@ -501,25 +495,21 @@ def test_test_iam_permissions_exception(self): def test_list_tasks(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" tasks_element = {} tasks = [tasks_element] - expected_response = { - 'next_page_token': next_page_token, - 'tasks': tasks - } - expected_response = cloudtasks_pb2.ListTasksResponse( - **expected_response) + expected_response = {"next_page_token": next_page_token, "tasks": tasks} + expected_response = cloudtasks_pb2.ListTasksResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") paged_list_response = client.list_tasks(parent) resources = list(paged_list_response) @@ -534,13 +524,13 @@ def test_list_tasks(self): def test_list_tasks_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") paged_list_response = client.list_tasks(parent) with pytest.raises(CustomException): @@ -548,25 +538,25 @@ def test_list_tasks_exception(self): def test_get_task(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" dispatch_count = 1217252086 response_count = 424727441 expected_response = { - 'name': name_2, - 'dispatch_count': dispatch_count, - 'response_count': response_count + "name": name_2, + "dispatch_count": dispatch_count, + "response_count": response_count, } expected_response = task_pb2.Task(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") response = client.get_task(name) assert expected_response == response @@ -579,59 +569,58 @@ def test_get_task(self): def test_get_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") with pytest.raises(CustomException): client.get_task(name) def test_create_task(self): # Setup Expected Response - name = 'name3373707' + name = "name3373707" dispatch_count = 1217252086 response_count = 424727441 expected_response = { - 'name': name, - 'dispatch_count': dispatch_count, - 'response_count': response_count + "name": name, + "dispatch_count": dispatch_count, + "response_count": response_count, } expected_response = task_pb2.Task(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") task = {} response = client.create_task(parent, task) assert expected_response == response assert len(channel.requests) == 1 - expected_request = cloudtasks_pb2.CreateTaskRequest( - parent=parent, task=task) + expected_request = cloudtasks_pb2.CreateTaskRequest(parent=parent, task=task) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - parent = client.queue_path('[PROJECT]', '[LOCATION]', '[QUEUE]') + parent = client.queue_path("[PROJECT]", "[LOCATION]", "[QUEUE]") task = {} with pytest.raises(CustomException): @@ -639,13 +628,13 @@ def test_create_task_exception(self): def test_delete_task(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") client.delete_task(name) @@ -657,38 +646,38 @@ def test_delete_task(self): def test_delete_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") with pytest.raises(CustomException): client.delete_task(name) def test_run_task(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" dispatch_count = 1217252086 response_count = 424727441 expected_response = { - 'name': name_2, - 'dispatch_count': dispatch_count, - 'response_count': response_count + "name": name_2, + "dispatch_count": dispatch_count, + "response_count": response_count, } expected_response = task_pb2.Task(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup Request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") response = client.run_task(name) assert expected_response == response @@ -701,13 +690,13 @@ def test_run_task(self): def test_run_task_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = tasks_v2beta3.CloudTasksClient() # Setup request - name = client.task_path('[PROJECT]', '[LOCATION]', '[QUEUE]', '[TASK]') + name = client.task_path("[PROJECT]", "[LOCATION]", "[QUEUE]", "[TASK]") with pytest.raises(CustomException): client.run_task(name) diff --git a/texttospeech/docs/conf.py b/texttospeech/docs/conf.py index 8b7a17e84545..f2652ec631e4 100644 --- a/texttospeech/docs/conf.py +++ b/texttospeech/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-texttospeech' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-texttospeech" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-texttospeech-doc' +htmlhelp_basename = "google-cloud-texttospeech-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-texttospeech.tex', - u'google-cloud-texttospeech Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-texttospeech.tex", + u"google-cloud-texttospeech Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-texttospeech', - u'google-cloud-texttospeech Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-texttospeech", + u"google-cloud-texttospeech Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-texttospeech', - u'google-cloud-texttospeech Documentation', author, - 'google-cloud-texttospeech', - 'GAPIC library for the {metadata.shortName} v1beta1 service', 'APIs'), + ( + master_doc, + "google-cloud-texttospeech", + u"google-cloud-texttospeech Documentation", + author, + "google-cloud-texttospeech", + "GAPIC library for the {metadata.shortName} v1beta1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/texttospeech/google/__init__.py b/texttospeech/google/__init__.py index 855a707300e1..dd3a9f485275 100644 --- a/texttospeech/google/__init__.py +++ b/texttospeech/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) \ No newline at end of file + + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/texttospeech/google/cloud/__init__.py b/texttospeech/google/cloud/__init__.py index 855a707300e1..dd3a9f485275 100644 --- a/texttospeech/google/cloud/__init__.py +++ b/texttospeech/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil - __path__ = pkgutil.extend_path(__path__, __name__) \ No newline at end of file + + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/texttospeech/google/cloud/texttospeech.py b/texttospeech/google/cloud/texttospeech.py index 0beab01cd4b7..b5194269e424 100644 --- a/texttospeech/google/cloud/texttospeech.py +++ b/texttospeech/google/cloud/texttospeech.py @@ -20,8 +20,4 @@ from google.cloud.texttospeech_v1 import enums from google.cloud.texttospeech_v1 import types -__all__ = ( - 'enums', - 'types', - 'TextToSpeechClient', -) +__all__ = ("enums", "types", "TextToSpeechClient") diff --git a/texttospeech/google/cloud/texttospeech_v1/__init__.py b/texttospeech/google/cloud/texttospeech_v1/__init__.py index d7bf69a8fde3..828d1682cc90 100644 --- a/texttospeech/google/cloud/texttospeech_v1/__init__.py +++ b/texttospeech/google/cloud/texttospeech_v1/__init__.py @@ -26,8 +26,4 @@ class TextToSpeechClient(text_to_speech_client.TextToSpeechClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'TextToSpeechClient', -) +__all__ = ("enums", "types", "TextToSpeechClient") diff --git a/texttospeech/google/cloud/texttospeech_v1/gapic/enums.py b/texttospeech/google/cloud/texttospeech_v1/gapic/enums.py index a52a4238c370..d971493bcca0 100644 --- a/texttospeech/google/cloud/texttospeech_v1/gapic/enums.py +++ b/texttospeech/google/cloud/texttospeech_v1/gapic/enums.py @@ -33,6 +33,7 @@ class SsmlVoiceGender(enum.IntEnum): FEMALE (int): A female voice. NEUTRAL (int): A gender-neutral voice. """ + SSML_VOICE_GENDER_UNSPECIFIED = 0 MALE = 1 FEMALE = 2 @@ -54,6 +55,7 @@ class AudioEncoding(enum.IntEnum): Chrome and Firefox). The quality of the encoding is considerably higher than MP3 while using approximately the same bitrate. """ + AUDIO_ENCODING_UNSPECIFIED = 0 LINEAR16 = 1 MP3 = 2 diff --git a/texttospeech/google/cloud/texttospeech_v1/gapic/text_to_speech_client.py b/texttospeech/google/cloud/texttospeech_v1/gapic/text_to_speech_client.py index f01b79b1f03f..3834a68d7f9b 100644 --- a/texttospeech/google/cloud/texttospeech_v1/gapic/text_to_speech_client.py +++ b/texttospeech/google/cloud/texttospeech_v1/gapic/text_to_speech_client.py @@ -32,18 +32,19 @@ from google.cloud.texttospeech_v1.proto import cloud_tts_pb2_grpc _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-texttospeech', ).version + "google-cloud-texttospeech" +).version class TextToSpeechClient(object): """Service that implements Google Cloud Text-to-Speech API.""" - SERVICE_ADDRESS = 'texttospeech.googleapis.com:443' + SERVICE_ADDRESS = "texttospeech.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.texttospeech.v1.TextToSpeech' + _INTERFACE_NAME = "google.cloud.texttospeech.v1.TextToSpeech" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -59,19 +60,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: TextToSpeechClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -105,18 +107,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = text_to_speech_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -125,25 +128,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=text_to_speech_grpc_transport. - TextToSpeechGrpcTransport, + default_class=text_to_speech_grpc_transport.TextToSpeechGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = text_to_speech_grpc_transport.TextToSpeechGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -153,7 +155,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -162,11 +165,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_voices(self, - language_code=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_voices( + self, + language_code=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns a list of ``Voice`` supported for synthesis. @@ -206,27 +211,30 @@ def list_voices(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_voices' not in self._inner_api_calls: + if "list_voices" not in self._inner_api_calls: self._inner_api_calls[ - 'list_voices'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_voices, - default_retry=self._method_configs['ListVoices'].retry, - default_timeout=self._method_configs['ListVoices'].timeout, - client_info=self._client_info, - ) + "list_voices" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_voices, + default_retry=self._method_configs["ListVoices"].retry, + default_timeout=self._method_configs["ListVoices"].timeout, + client_info=self._client_info, + ) - request = cloud_tts_pb2.ListVoicesRequest( - language_code=language_code, ) - return self._inner_api_calls['list_voices']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def synthesize_speech(self, - input_, - voice, - audio_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = cloud_tts_pb2.ListVoicesRequest(language_code=language_code) + return self._inner_api_calls["list_voices"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def synthesize_speech( + self, + input_, + voice, + audio_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Synthesizes speech synchronously: receive results after all text input has been processed. @@ -280,21 +288,19 @@ def synthesize_speech(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'synthesize_speech' not in self._inner_api_calls: + if "synthesize_speech" not in self._inner_api_calls: self._inner_api_calls[ - 'synthesize_speech'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.synthesize_speech, - default_retry=self._method_configs['SynthesizeSpeech']. - retry, - default_timeout=self._method_configs['SynthesizeSpeech']. - timeout, - client_info=self._client_info, - ) + "synthesize_speech" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.synthesize_speech, + default_retry=self._method_configs["SynthesizeSpeech"].retry, + default_timeout=self._method_configs["SynthesizeSpeech"].timeout, + client_info=self._client_info, + ) request = cloud_tts_pb2.SynthesizeSpeechRequest( - input=input_, - voice=voice, - audio_config=audio_config, + input=input_, voice=voice, audio_config=audio_config + ) + return self._inner_api_calls["synthesize_speech"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['synthesize_speech']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/texttospeech/google/cloud/texttospeech_v1/gapic/text_to_speech_client_config.py b/texttospeech/google/cloud/texttospeech_v1/gapic/text_to_speech_client_config.py index a262a658683c..91bb80823f63 100644 --- a/texttospeech/google/cloud/texttospeech_v1/gapic/text_to_speech_client_config.py +++ b/texttospeech/google/cloud/texttospeech_v1/gapic/text_to_speech_client_config.py @@ -3,7 +3,7 @@ "google.cloud.texttospeech.v1.TextToSpeech": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,21 +13,21 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListVoices": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SynthesizeSpeech": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/texttospeech/google/cloud/texttospeech_v1/gapic/transports/text_to_speech_grpc_transport.py b/texttospeech/google/cloud/texttospeech_v1/gapic/transports/text_to_speech_grpc_transport.py index 8293571ad181..531795138908 100644 --- a/texttospeech/google/cloud/texttospeech_v1/gapic/transports/text_to_speech_grpc_transport.py +++ b/texttospeech/google/cloud/texttospeech_v1/gapic/transports/text_to_speech_grpc_transport.py @@ -27,14 +27,14 @@ class TextToSpeechGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='texttospeech.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="texttospeech.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,29 +52,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'text_to_speech_stub': - cloud_tts_pb2_grpc.TextToSpeechStub(channel), + "text_to_speech_stub": cloud_tts_pb2_grpc.TextToSpeechStub(channel) } @classmethod - def create_channel(cls, - address='texttospeech.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="texttospeech.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -89,9 +85,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,7 +108,7 @@ def list_voices(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['text_to_speech_stub'].ListVoices + return self._stubs["text_to_speech_stub"].ListVoices @property def synthesize_speech(self): @@ -128,4 +122,4 @@ def synthesize_speech(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['text_to_speech_stub'].SynthesizeSpeech + return self._stubs["text_to_speech_stub"].SynthesizeSpeech diff --git a/texttospeech/google/cloud/texttospeech_v1/types.py b/texttospeech/google/cloud/texttospeech_v1/types.py index b74547ccbad8..bbdbaa00cd05 100644 --- a/texttospeech/google/cloud/texttospeech_v1/types.py +++ b/texttospeech/google/cloud/texttospeech_v1/types.py @@ -23,14 +23,9 @@ from google.cloud.texttospeech_v1.proto import cloud_tts_pb2 from google.protobuf import descriptor_pb2 -_shared_modules = [ - http_pb2, - descriptor_pb2, -] +_shared_modules = [http_pb2, descriptor_pb2] -_local_modules = [ - cloud_tts_pb2, -] +_local_modules = [cloud_tts_pb2] names = [] @@ -40,7 +35,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.texttospeech_v1.types' + message.__module__ = "google.cloud.texttospeech_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/texttospeech/google/cloud/texttospeech_v1beta1/__init__.py b/texttospeech/google/cloud/texttospeech_v1beta1/__init__.py index a823b747283f..beb06ac11fba 100644 --- a/texttospeech/google/cloud/texttospeech_v1beta1/__init__.py +++ b/texttospeech/google/cloud/texttospeech_v1beta1/__init__.py @@ -26,8 +26,4 @@ class TextToSpeechClient(text_to_speech_client.TextToSpeechClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'TextToSpeechClient', -) +__all__ = ("enums", "types", "TextToSpeechClient") diff --git a/texttospeech/google/cloud/texttospeech_v1beta1/gapic/enums.py b/texttospeech/google/cloud/texttospeech_v1beta1/gapic/enums.py index a52a4238c370..d971493bcca0 100644 --- a/texttospeech/google/cloud/texttospeech_v1beta1/gapic/enums.py +++ b/texttospeech/google/cloud/texttospeech_v1beta1/gapic/enums.py @@ -33,6 +33,7 @@ class SsmlVoiceGender(enum.IntEnum): FEMALE (int): A female voice. NEUTRAL (int): A gender-neutral voice. """ + SSML_VOICE_GENDER_UNSPECIFIED = 0 MALE = 1 FEMALE = 2 @@ -54,6 +55,7 @@ class AudioEncoding(enum.IntEnum): Chrome and Firefox). The quality of the encoding is considerably higher than MP3 while using approximately the same bitrate. """ + AUDIO_ENCODING_UNSPECIFIED = 0 LINEAR16 = 1 MP3 = 2 diff --git a/texttospeech/google/cloud/texttospeech_v1beta1/gapic/text_to_speech_client.py b/texttospeech/google/cloud/texttospeech_v1beta1/gapic/text_to_speech_client.py index 68fa08ea607b..7904808e2822 100644 --- a/texttospeech/google/cloud/texttospeech_v1beta1/gapic/text_to_speech_client.py +++ b/texttospeech/google/cloud/texttospeech_v1beta1/gapic/text_to_speech_client.py @@ -27,23 +27,26 @@ from google.cloud.texttospeech_v1beta1.gapic import enums from google.cloud.texttospeech_v1beta1.gapic import text_to_speech_client_config -from google.cloud.texttospeech_v1beta1.gapic.transports import text_to_speech_grpc_transport +from google.cloud.texttospeech_v1beta1.gapic.transports import ( + text_to_speech_grpc_transport, +) from google.cloud.texttospeech_v1beta1.proto import cloud_tts_pb2 from google.cloud.texttospeech_v1beta1.proto import cloud_tts_pb2_grpc _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-texttospeech', ).version + "google-cloud-texttospeech" +).version class TextToSpeechClient(object): """Service that implements Google Cloud Text-to-Speech API.""" - SERVICE_ADDRESS = 'texttospeech.googleapis.com:443' + SERVICE_ADDRESS = "texttospeech.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.texttospeech.v1beta1.TextToSpeech' + _INTERFACE_NAME = "google.cloud.texttospeech.v1beta1.TextToSpeech" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -59,19 +62,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: TextToSpeechClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -105,18 +109,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = text_to_speech_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -125,25 +130,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=text_to_speech_grpc_transport. - TextToSpeechGrpcTransport, + default_class=text_to_speech_grpc_transport.TextToSpeechGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = text_to_speech_grpc_transport.TextToSpeechGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -153,7 +157,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -162,11 +167,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def list_voices(self, - language_code=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_voices( + self, + language_code=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns a list of ``Voice`` supported for synthesis. @@ -206,27 +213,30 @@ def list_voices(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_voices' not in self._inner_api_calls: + if "list_voices" not in self._inner_api_calls: self._inner_api_calls[ - 'list_voices'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_voices, - default_retry=self._method_configs['ListVoices'].retry, - default_timeout=self._method_configs['ListVoices'].timeout, - client_info=self._client_info, - ) + "list_voices" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_voices, + default_retry=self._method_configs["ListVoices"].retry, + default_timeout=self._method_configs["ListVoices"].timeout, + client_info=self._client_info, + ) - request = cloud_tts_pb2.ListVoicesRequest( - language_code=language_code, ) - return self._inner_api_calls['list_voices']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def synthesize_speech(self, - input_, - voice, - audio_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = cloud_tts_pb2.ListVoicesRequest(language_code=language_code) + return self._inner_api_calls["list_voices"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def synthesize_speech( + self, + input_, + voice, + audio_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Synthesizes speech synchronously: receive results after all text input has been processed. @@ -280,21 +290,19 @@ def synthesize_speech(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'synthesize_speech' not in self._inner_api_calls: + if "synthesize_speech" not in self._inner_api_calls: self._inner_api_calls[ - 'synthesize_speech'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.synthesize_speech, - default_retry=self._method_configs['SynthesizeSpeech']. - retry, - default_timeout=self._method_configs['SynthesizeSpeech']. - timeout, - client_info=self._client_info, - ) + "synthesize_speech" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.synthesize_speech, + default_retry=self._method_configs["SynthesizeSpeech"].retry, + default_timeout=self._method_configs["SynthesizeSpeech"].timeout, + client_info=self._client_info, + ) request = cloud_tts_pb2.SynthesizeSpeechRequest( - input=input_, - voice=voice, - audio_config=audio_config, + input=input_, voice=voice, audio_config=audio_config + ) + return self._inner_api_calls["synthesize_speech"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['synthesize_speech']( - request, retry=retry, timeout=timeout, metadata=metadata) diff --git a/texttospeech/google/cloud/texttospeech_v1beta1/gapic/text_to_speech_client_config.py b/texttospeech/google/cloud/texttospeech_v1beta1/gapic/text_to_speech_client_config.py index 2c96430d9ca5..bec87d4bd398 100644 --- a/texttospeech/google/cloud/texttospeech_v1beta1/gapic/text_to_speech_client_config.py +++ b/texttospeech/google/cloud/texttospeech_v1beta1/gapic/text_to_speech_client_config.py @@ -3,7 +3,7 @@ "google.cloud.texttospeech.v1beta1.TextToSpeech": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,21 +13,21 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "ListVoices": { "timeout_millis": 30000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "SynthesizeSpeech": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/texttospeech/google/cloud/texttospeech_v1beta1/gapic/transports/text_to_speech_grpc_transport.py b/texttospeech/google/cloud/texttospeech_v1beta1/gapic/transports/text_to_speech_grpc_transport.py index c3b654468811..705d4c82f118 100644 --- a/texttospeech/google/cloud/texttospeech_v1beta1/gapic/transports/text_to_speech_grpc_transport.py +++ b/texttospeech/google/cloud/texttospeech_v1beta1/gapic/transports/text_to_speech_grpc_transport.py @@ -27,14 +27,14 @@ class TextToSpeechGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) - def __init__(self, - channel=None, - credentials=None, - address='texttospeech.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="texttospeech.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -52,29 +52,25 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'text_to_speech_stub': - cloud_tts_pb2_grpc.TextToSpeechStub(channel), + "text_to_speech_stub": cloud_tts_pb2_grpc.TextToSpeechStub(channel) } @classmethod - def create_channel(cls, - address='texttospeech.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="texttospeech.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -89,9 +85,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,7 +108,7 @@ def list_voices(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['text_to_speech_stub'].ListVoices + return self._stubs["text_to_speech_stub"].ListVoices @property def synthesize_speech(self): @@ -128,4 +122,4 @@ def synthesize_speech(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['text_to_speech_stub'].SynthesizeSpeech + return self._stubs["text_to_speech_stub"].SynthesizeSpeech diff --git a/texttospeech/google/cloud/texttospeech_v1beta1/types.py b/texttospeech/google/cloud/texttospeech_v1beta1/types.py index b80a2e5606c2..24c745b8ea85 100644 --- a/texttospeech/google/cloud/texttospeech_v1beta1/types.py +++ b/texttospeech/google/cloud/texttospeech_v1beta1/types.py @@ -23,14 +23,9 @@ from google.cloud.texttospeech_v1beta1.proto import cloud_tts_pb2 from google.protobuf import descriptor_pb2 -_shared_modules = [ - http_pb2, - descriptor_pb2, -] +_shared_modules = [http_pb2, descriptor_pb2] -_local_modules = [ - cloud_tts_pb2, -] +_local_modules = [cloud_tts_pb2] names = [] @@ -40,7 +35,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.texttospeech_v1beta1.types' + message.__module__ = "google.cloud.texttospeech_v1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/texttospeech/tests/unit/gapic/v1/test_text_to_speech_client_v1.py b/texttospeech/tests/unit/gapic/v1/test_text_to_speech_client_v1.py index 0b6cba8a7349..db5b566a0325 100644 --- a/texttospeech/tests/unit/gapic/v1/test_text_to_speech_client_v1.py +++ b/texttospeech/tests/unit/gapic/v1/test_text_to_speech_client_v1.py @@ -50,10 +50,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -65,12 +62,11 @@ class TestTextToSpeechClient(object): def test_list_voices(self): # Setup Expected Response expected_response = {} - expected_response = cloud_tts_pb2.ListVoicesResponse( - **expected_response) + expected_response = cloud_tts_pb2.ListVoicesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = texttospeech_v1.TextToSpeechClient() @@ -86,7 +82,7 @@ def test_list_voices(self): def test_list_voices_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = texttospeech_v1.TextToSpeechClient() @@ -96,14 +92,13 @@ def test_list_voices_exception(self): def test_synthesize_speech(self): # Setup Expected Response - audio_content = b'16' - expected_response = {'audio_content': audio_content} - expected_response = cloud_tts_pb2.SynthesizeSpeechResponse( - **expected_response) + audio_content = b"16" + expected_response = {"audio_content": audio_content} + expected_response = cloud_tts_pb2.SynthesizeSpeechResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = texttospeech_v1.TextToSpeechClient() @@ -118,14 +113,15 @@ def test_synthesize_speech(self): assert len(channel.requests) == 1 expected_request = cloud_tts_pb2.SynthesizeSpeechRequest( - input=input_, voice=voice, audio_config=audio_config) + input=input_, voice=voice, audio_config=audio_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_synthesize_speech_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = texttospeech_v1.TextToSpeechClient() diff --git a/texttospeech/tests/unit/gapic/v1beta1/test_text_to_speech_client_v1beta1.py b/texttospeech/tests/unit/gapic/v1beta1/test_text_to_speech_client_v1beta1.py index acedbc25552b..fb164f90bbea 100644 --- a/texttospeech/tests/unit/gapic/v1beta1/test_text_to_speech_client_v1beta1.py +++ b/texttospeech/tests/unit/gapic/v1beta1/test_text_to_speech_client_v1beta1.py @@ -50,10 +50,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -65,12 +62,11 @@ class TestTextToSpeechClient(object): def test_list_voices(self): # Setup Expected Response expected_response = {} - expected_response = cloud_tts_pb2.ListVoicesResponse( - **expected_response) + expected_response = cloud_tts_pb2.ListVoicesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = texttospeech_v1beta1.TextToSpeechClient() @@ -86,7 +82,7 @@ def test_list_voices(self): def test_list_voices_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = texttospeech_v1beta1.TextToSpeechClient() @@ -96,14 +92,13 @@ def test_list_voices_exception(self): def test_synthesize_speech(self): # Setup Expected Response - audio_content = b'16' - expected_response = {'audio_content': audio_content} - expected_response = cloud_tts_pb2.SynthesizeSpeechResponse( - **expected_response) + audio_content = b"16" + expected_response = {"audio_content": audio_content} + expected_response = cloud_tts_pb2.SynthesizeSpeechResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = texttospeech_v1beta1.TextToSpeechClient() @@ -118,14 +113,15 @@ def test_synthesize_speech(self): assert len(channel.requests) == 1 expected_request = cloud_tts_pb2.SynthesizeSpeechRequest( - input=input_, voice=voice, audio_config=audio_config) + input=input_, voice=voice, audio_config=audio_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_synthesize_speech_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = texttospeech_v1beta1.TextToSpeechClient() diff --git a/trace/docs/conf.py b/trace/docs/conf.py index cd93635ce146..a1436f1253fd 100644 --- a/trace/docs/conf.py +++ b/trace/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-trace' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-trace" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-trace-doc' +htmlhelp_basename = "google-cloud-trace-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,45 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-trace.tex', u'google-cloud-trace Documentation', - author, 'manual'), + ( + master_doc, + "google-cloud-trace.tex", + u"google-cloud-trace Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-trace', - u'google-cloud-trace Documentation', [author], 1)] +man_pages = [ + (master_doc, "google-cloud-trace", u"google-cloud-trace Documentation", [author], 1) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +277,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-trace', u'google-cloud-trace Documentation', - author, 'google-cloud-trace', - 'GAPIC library for the {metadata.shortName} v2 service', 'APIs'), + ( + master_doc, + "google-cloud-trace", + u"google-cloud-trace Documentation", + author, + "google-cloud-trace", + "GAPIC library for the {metadata.shortName} v2 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/trace/google/__init__.py b/trace/google/__init__.py index de40ea7ca058..5284146ebf2b 100644 --- a/trace/google/__init__.py +++ b/trace/google/__init__.py @@ -1 +1 @@ -__import__('pkg_resources').declare_namespace(__name__) +__import__("pkg_resources").declare_namespace(__name__) diff --git a/trace/google/cloud/__init__.py b/trace/google/cloud/__init__.py index de40ea7ca058..5284146ebf2b 100644 --- a/trace/google/cloud/__init__.py +++ b/trace/google/cloud/__init__.py @@ -1 +1 @@ -__import__('pkg_resources').declare_namespace(__name__) +__import__("pkg_resources").declare_namespace(__name__) diff --git a/trace/google/cloud/trace.py b/trace/google/cloud/trace.py index 3762bfe2c571..376119a3034a 100644 --- a/trace/google/cloud/trace.py +++ b/trace/google/cloud/trace.py @@ -18,7 +18,4 @@ from google.cloud.trace_v2 import enums from google.cloud.trace_v2 import types -__all__ = ( - 'enums', - 'types', - 'TraceServiceClient', ) +__all__ = ("enums", "types", "TraceServiceClient") diff --git a/trace/google/cloud/trace/__init__.py b/trace/google/cloud/trace/__init__.py index c12a0c408395..697ae1671777 100644 --- a/trace/google/cloud/trace/__init__.py +++ b/trace/google/cloud/trace/__init__.py @@ -15,7 +15,8 @@ from __future__ import absolute_import from pkg_resources import get_distribution -__version__ = get_distribution('google-cloud-trace').version + +__version__ = get_distribution("google-cloud-trace").version from google.cloud.trace.client import Client from google.cloud.trace_v2 import types @@ -28,12 +29,6 @@ class TraceServiceClient(trace_service_client.TraceServiceClient): enums = enums -__all__ = ( - '__version__', - 'enums', - 'types', - 'TraceServiceClient', - 'Client', - 'SCOPE',) +__all__ = ("__version__", "enums", "types", "TraceServiceClient", "Client", "SCOPE") SCOPE = Client.SCOPE diff --git a/trace/google/cloud/trace/_gapic.py b/trace/google/cloud/trace/_gapic.py index 10279879cf5c..dbcbecabdf43 100644 --- a/trace/google/cloud/trace/_gapic.py +++ b/trace/google/cloud/trace/_gapic.py @@ -22,12 +22,10 @@ from google.cloud.trace_v2.proto import trace_pb2 from google.protobuf.json_format import ParseDict from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 -from google.protobuf import wrappers_pb2 as \ - google_dot_protobuf_dot_wrappers__pb2 +from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -_CLIENT_INFO = client_info.ClientInfo( - client_library_version=__version__) +_CLIENT_INFO = client_info.ClientInfo(client_library_version=__version__) class _TraceAPI(object): @@ -50,11 +48,9 @@ def __init__(self, gapic_api, client): self._gapic_api = gapic_api self.client = client - def batch_write_spans(self, - name, - spans, - retry=method.DEFAULT, - timeout=method.DEFAULT): + def batch_write_spans( + self, name, spans, retry=method.DEFAULT, timeout=method.DEFAULT + ): """ Sends new spans to Stackdriver Trace or updates existing traces. If the name of a trace that you send matches that of an existing trace, new @@ -85,32 +81,32 @@ def batch_write_spans(self, """ spans_pb_list = [] - for span_mapping in spans['spans']: - span_pb = _dict_mapping_to_pb(span_mapping, 'Span') + for span_mapping in spans["spans"]: + span_pb = _dict_mapping_to_pb(span_mapping, "Span") spans_pb_list.append(span_pb) self._gapic_api.batch_write_spans( - name=name, - spans=spans_pb_list, - retry=retry, - timeout=timeout) - - def create_span(self, - name, - span_id, - display_name, - start_time, - end_time, - parent_span_id=None, - attributes=None, - stack_trace=None, - time_events=None, - links=None, - status=None, - same_process_as_parent_span=None, - child_span_count=None, - retry=method.DEFAULT, - timeout=method.DEFAULT): + name=name, spans=spans_pb_list, retry=retry, timeout=timeout + ) + + def create_span( + self, + name, + span_id, + display_name, + start_time, + end_time, + parent_span_id=None, + attributes=None, + stack_trace=None, + time_events=None, + links=None, + status=None, + same_process_as_parent_span=None, + child_span_count=None, + retry=method.DEFAULT, + timeout=method.DEFAULT, + ): """ Creates a new Span. @@ -202,33 +198,32 @@ def create_span(self, ValueError: If the parameters are invalid. """ # Convert the dict type parameters to protobuf - display_name = _dict_mapping_to_pb( - display_name, 'TruncatableString') + display_name = _dict_mapping_to_pb(display_name, "TruncatableString") start_time = _datetime_to_pb_timestamp(start_time) end_time = _datetime_to_pb_timestamp(end_time) if attributes is not None: - attributes = _span_attrs_to_pb(attributes, 'Attributes') + attributes = _span_attrs_to_pb(attributes, "Attributes") if stack_trace is not None: - stack_trace = _dict_mapping_to_pb(stack_trace, 'StackTrace') + stack_trace = _dict_mapping_to_pb(stack_trace, "StackTrace") if time_events is not None: - time_events = _span_attrs_to_pb(time_events, 'TimeEvents') + time_events = _span_attrs_to_pb(time_events, "TimeEvents") if links is not None: - links = _span_attrs_to_pb(links, 'Links') + links = _span_attrs_to_pb(links, "Links") if status is not None: status = _status_mapping_to_pb(status) if same_process_as_parent_span is not None: same_process_as_parent_span = _value_to_pb( - same_process_as_parent_span, 'BoolValue') + same_process_as_parent_span, "BoolValue" + ) if child_span_count is not None: - child_span_count = _value_to_pb( - child_span_count, 'Int32Value') + child_span_count = _value_to_pb(child_span_count, "Int32Value") return self._gapic_api.create_span( name=name, @@ -243,7 +238,8 @@ def create_span(self, links=links, status=status, same_process_as_parent_span=same_process_as_parent_span, - child_span_count=child_span_count) + child_span_count=child_span_count, + ) def _dict_mapping_to_pb(mapping, proto_type): @@ -323,5 +319,6 @@ def make_trace_api(client): proper configurations. """ generated = trace_service_client.TraceServiceClient( - credentials=client._credentials, client_info=_CLIENT_INFO) + credentials=client._credentials, client_info=_CLIENT_INFO + ) return _TraceAPI(generated, client) diff --git a/trace/google/cloud/trace/client.py b/trace/google/cloud/trace/client.py index b2fa39450bf8..83be0ea0add0 100644 --- a/trace/google/cloud/trace/client.py +++ b/trace/google/cloud/trace/client.py @@ -30,15 +30,17 @@ class Client(ClientWithProject): The OAuth2 Credentials to use for this client. If not passed, falls back to the default inferred from the environment. """ - SCOPE = ('https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/trace.append',) + + SCOPE = ( + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/trace.append", + ) """The scopes required for authenticating as a Trace consumer.""" _trace_api = None def __init__(self, project=None, credentials=None): - super(Client, self).__init__( - project=project, credentials=credentials) + super(Client, self).__init__(project=project, credentials=credentials) @property def trace_api(self): @@ -52,11 +54,7 @@ def trace_api(self): self._trace_api = make_trace_api(self) return self._trace_api - def batch_write_spans(self, - name, - spans, - retry=None, - timeout=None): + def batch_write_spans(self, name, spans, retry=None, timeout=None): """ Sends new spans to Stackdriver Trace or updates existing traces. If the name of a trace that you send matches that of an existing trace, new @@ -98,27 +96,27 @@ def batch_write_spans(self, ValueError: If the parameters are invalid. """ self.trace_api.batch_write_spans( - name=name, - spans=spans, - retry=retry, - timeout=timeout) - - def create_span(self, - name, - span_id, - display_name, - start_time, - end_time, - parent_span_id=None, - attributes=None, - stack_trace=None, - time_events=None, - links=None, - status=None, - same_process_as_parent_span=None, - child_span_count=None, - retry=None, - timeout=None): + name=name, spans=spans, retry=retry, timeout=timeout + ) + + def create_span( + self, + name, + span_id, + display_name, + start_time, + end_time, + parent_span_id=None, + attributes=None, + stack_trace=None, + time_events=None, + links=None, + status=None, + same_process_as_parent_span=None, + child_span_count=None, + retry=None, + timeout=None, + ): """ Creates a new Span. @@ -223,4 +221,5 @@ def create_span(self, links=links, status=status, same_process_as_parent_span=same_process_as_parent_span, - child_span_count=child_span_count) + child_span_count=child_span_count, + ) diff --git a/trace/google/cloud/trace/v1/__init__.py b/trace/google/cloud/trace/v1/__init__.py index 62d6a50ae6ba..4c6bd18dd38a 100644 --- a/trace/google/cloud/trace/v1/__init__.py +++ b/trace/google/cloud/trace/v1/__init__.py @@ -15,7 +15,7 @@ from google.cloud.trace.v1.client import Client -__all__ = ['Client', 'SCOPE'] +__all__ = ["Client", "SCOPE"] SCOPE = Client.SCOPE diff --git a/trace/google/cloud/trace/v1/_gapic.py b/trace/google/cloud/trace/v1/_gapic.py index 993927f32f7d..3289b95a5d6a 100644 --- a/trace/google/cloud/trace/v1/_gapic.py +++ b/trace/google/cloud/trace/v1/_gapic.py @@ -22,8 +22,7 @@ from google.protobuf.json_format import ParseDict -_CLIENT_INFO = client_info.ClientInfo( - client_library_version=__version__) +_CLIENT_INFO = client_info.ClientInfo(client_library_version=__version__) class _TraceAPI(object): @@ -40,6 +39,7 @@ class _TraceAPI(object): client (~google.cloud.trace.client.Client): The client that owns this API object. """ + def __init__(self, gapic_api, client): self._gapic_api = gapic_api self.client = client @@ -73,15 +73,16 @@ def get_trace(self, project_id, trace_id): return trace_mapping def list_traces( - self, - project_id, - view=None, - page_size=None, - start_time=None, - end_time=None, - filter_=None, - order_by=None, - page_token=None): + self, + project_id, + view=None, + page_size=None, + start_time=None, + end_time=None, + filter_=None, + order_by=None, + page_token=None, + ): """ Returns of a list of traces that match the filter conditions. @@ -125,7 +126,8 @@ def list_traces( start_time=start_time, end_time=end_time, filter_=filter_, - order_by=order_by) + order_by=order_by, + ) page_iter.item_to_value = _item_to_mapping page_iter.next_page_token = page_token return page_iter @@ -176,7 +178,8 @@ def make_trace_api(client): proper configurations. """ generated = trace_service_client.TraceServiceClient( - credentials=client._credentials, client_info=_CLIENT_INFO) + credentials=client._credentials, client_info=_CLIENT_INFO + ) return _TraceAPI(generated, client) diff --git a/trace/google/cloud/trace/v1/client.py b/trace/google/cloud/trace/v1/client.py index 43b406c8793f..bf74f63e4c8e 100644 --- a/trace/google/cloud/trace/v1/client.py +++ b/trace/google/cloud/trace/v1/client.py @@ -33,15 +33,17 @@ class Client(ClientWithProject): passed, falls back to the default inferred from the environment. """ - SCOPE = ('https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/trace.append',) + + SCOPE = ( + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/trace.append", + ) """The scopes required for authenticating as a Trace consumer.""" _trace_api = None def __init__(self, project=None, credentials=None): - super(Client, self).__init__( - project=project, credentials=credentials) + super(Client, self).__init__(project=project, credentials=credentials) @property def trace_api(self): @@ -66,9 +68,7 @@ def patch_traces(self, traces, project_id=None): if project_id is None: project_id = self.project - self.trace_api.patch_traces( - project_id=project_id, - traces=traces) + self.trace_api.patch_traces(project_id=project_id, traces=traces) def get_trace(self, trace_id, project_id=None): """ @@ -86,20 +86,19 @@ def get_trace(self, trace_id, project_id=None): if project_id is None: project_id = self.project - return self.trace_api.get_trace( - project_id=project_id, - trace_id=trace_id) + return self.trace_api.get_trace(project_id=project_id, trace_id=trace_id) def list_traces( - self, - project_id=None, - view=None, - page_size=None, - start_time=None, - end_time=None, - filter_=None, - order_by=None, - page_token=None): + self, + project_id=None, + view=None, + page_size=None, + start_time=None, + end_time=None, + filter_=None, + order_by=None, + page_token=None, + ): """ Returns of a list of traces that match the filter conditions. @@ -153,4 +152,5 @@ def list_traces( end_time=end_time, filter_=filter_, order_by=order_by, - page_token=page_token) + page_token=page_token, + ) diff --git a/trace/google/cloud/trace_v1/__init__.py b/trace/google/cloud/trace_v1/__init__.py index b6722c8888a5..db69b2046bef 100644 --- a/trace/google/cloud/trace_v1/__init__.py +++ b/trace/google/cloud/trace_v1/__init__.py @@ -26,8 +26,4 @@ class TraceServiceClient(trace_service_client.TraceServiceClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'TraceServiceClient', -) +__all__ = ("enums", "types", "TraceServiceClient") diff --git a/trace/google/cloud/trace_v1/gapic/enums.py b/trace/google/cloud/trace_v1/gapic/enums.py index 0f1db6e58ce6..c1003298de0b 100644 --- a/trace/google/cloud/trace_v1/gapic/enums.py +++ b/trace/google/cloud/trace_v1/gapic/enums.py @@ -31,6 +31,7 @@ class SpanKind(enum.IntEnum): RPC_CLIENT (int): Indicates that the span covers the client-side wrapper around an RPC or other remote request. """ + SPAN_KIND_UNSPECIFIED = 0 RPC_SERVER = 1 RPC_CLIENT = 2 @@ -51,6 +52,7 @@ class ViewType(enum.IntEnum): This is equivalent to calling the REST ``get`` or RPC ``GetTrace`` method using the ID of each listed trace. """ + VIEW_TYPE_UNSPECIFIED = 0 MINIMAL = 1 ROOTSPAN = 2 diff --git a/trace/google/cloud/trace_v1/gapic/trace_service_client.py b/trace/google/cloud/trace_v1/gapic/trace_service_client.py index 72b8dad5def2..7e83aa429355 100644 --- a/trace/google/cloud/trace_v1/gapic/trace_service_client.py +++ b/trace/google/cloud/trace_v1/gapic/trace_service_client.py @@ -35,8 +35,7 @@ from google.protobuf import empty_pb2 from google.protobuf import timestamp_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-trace', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-trace").version class TraceServiceClient(object): @@ -48,12 +47,12 @@ class TraceServiceClient(object): may span multiple services. """ - SERVICE_ADDRESS = 'cloudtrace.googleapis.com:443' + SERVICE_ADDRESS = "cloudtrace.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.devtools.cloudtrace.v1.TraceService' + _INTERFACE_NAME = "google.devtools.cloudtrace.v1.TraceService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -69,19 +68,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: TraceServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -115,18 +115,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = trace_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -135,25 +136,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=trace_service_grpc_transport. - TraceServiceGrpcTransport, + default_class=trace_service_grpc_transport.TraceServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = trace_service_grpc_transport.TraceServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -163,7 +163,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -172,12 +173,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def patch_traces(self, - project_id, - traces, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def patch_traces( + self, + project_id, + traces, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sends new traces to Stackdriver Trace or updates existing traces. If the ID of a trace that you send matches that of an existing trace, any fields @@ -221,29 +224,29 @@ def patch_traces(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'patch_traces' not in self._inner_api_calls: + if "patch_traces" not in self._inner_api_calls: self._inner_api_calls[ - 'patch_traces'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.patch_traces, - default_retry=self._method_configs['PatchTraces'].retry, - default_timeout=self._method_configs['PatchTraces']. - timeout, - client_info=self._client_info, - ) + "patch_traces" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.patch_traces, + default_retry=self._method_configs["PatchTraces"].retry, + default_timeout=self._method_configs["PatchTraces"].timeout, + client_info=self._client_info, + ) - request = trace_pb2.PatchTracesRequest( - project_id=project_id, - traces=traces, + request = trace_pb2.PatchTracesRequest(project_id=project_id, traces=traces) + self._inner_api_calls["patch_traces"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['patch_traces']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def get_trace(self, - project_id, - trace_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def get_trace( + self, + project_id, + trace_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a single trace by its ID. @@ -283,33 +286,34 @@ def get_trace(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_trace' not in self._inner_api_calls: + if "get_trace" not in self._inner_api_calls: self._inner_api_calls[ - 'get_trace'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_trace, - default_retry=self._method_configs['GetTrace'].retry, - default_timeout=self._method_configs['GetTrace'].timeout, - client_info=self._client_info, - ) + "get_trace" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_trace, + default_retry=self._method_configs["GetTrace"].retry, + default_timeout=self._method_configs["GetTrace"].timeout, + client_info=self._client_info, + ) - request = trace_pb2.GetTraceRequest( - project_id=project_id, - trace_id=trace_id, + request = trace_pb2.GetTraceRequest(project_id=project_id, trace_id=trace_id) + return self._inner_api_calls["get_trace"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['get_trace']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_traces(self, - project_id, - view=None, - page_size=None, - start_time=None, - end_time=None, - filter_=None, - order_by=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def list_traces( + self, + project_id, + view=None, + page_size=None, + start_time=None, + end_time=None, + filter_=None, + order_by=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Returns of a list of traces that match the specified filter conditions. @@ -418,14 +422,15 @@ def list_traces(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_traces' not in self._inner_api_calls: + if "list_traces" not in self._inner_api_calls: self._inner_api_calls[ - 'list_traces'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_traces, - default_retry=self._method_configs['ListTraces'].retry, - default_timeout=self._method_configs['ListTraces'].timeout, - client_info=self._client_info, - ) + "list_traces" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_traces, + default_retry=self._method_configs["ListTraces"].retry, + default_timeout=self._method_configs["ListTraces"].timeout, + client_info=self._client_info, + ) request = trace_pb2.ListTracesRequest( project_id=project_id, @@ -439,13 +444,14 @@ def list_traces(self, iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_traces'], + self._inner_api_calls["list_traces"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='traces', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="traces", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator diff --git a/trace/google/cloud/trace_v1/gapic/trace_service_client_config.py b/trace/google/cloud/trace_v1/gapic/trace_service_client_config.py index a7cc1924c31f..5982fcd7cbe8 100644 --- a/trace/google/cloud/trace_v1/gapic/trace_service_client_config.py +++ b/trace/google/cloud/trace_v1/gapic/trace_service_client_config.py @@ -3,7 +3,7 @@ "google.devtools.cloudtrace.v1.TraceService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,26 +13,26 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.5, "max_rpc_timeout_millis": 30000, - "total_timeout_millis": 45000 + "total_timeout_millis": 45000, } }, "methods": { "PatchTraces": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetTrace": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListTraces": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/trace/google/cloud/trace_v1/gapic/transports/trace_service_grpc_transport.py b/trace/google/cloud/trace_v1/gapic/transports/trace_service_grpc_transport.py index 9daa39a99e3e..8a572eb072d9 100644 --- a/trace/google/cloud/trace_v1/gapic/transports/trace_service_grpc_transport.py +++ b/trace/google/cloud/trace_v1/gapic/transports/trace_service_grpc_transport.py @@ -27,18 +27,18 @@ class TraceServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/trace.append', - 'https://www.googleapis.com/auth/trace.readonly', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/trace.append", + "https://www.googleapis.com/auth/trace.readonly", ) - def __init__(self, - channel=None, - credentials=None, - address='cloudtrace.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="cloudtrace.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,28 +56,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'trace_service_stub': trace_pb2_grpc.TraceServiceStub(channel), - } + self._stubs = {"trace_service_stub": trace_pb2_grpc.TraceServiceStub(channel)} @classmethod - def create_channel(cls, - address='cloudtrace.googleapis.com:443', - credentials=None): + def create_channel(cls, address="cloudtrace.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -92,9 +85,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -121,7 +112,7 @@ def patch_traces(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['trace_service_stub'].PatchTraces + return self._stubs["trace_service_stub"].PatchTraces @property def get_trace(self): @@ -134,7 +125,7 @@ def get_trace(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['trace_service_stub'].GetTrace + return self._stubs["trace_service_stub"].GetTrace @property def list_traces(self): @@ -147,4 +138,4 @@ def list_traces(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['trace_service_stub'].ListTraces + return self._stubs["trace_service_stub"].ListTraces diff --git a/trace/google/cloud/trace_v1/types.py b/trace/google/cloud/trace_v1/types.py index c2d69b7faf9e..bb7c6a241556 100644 --- a/trace/google/cloud/trace_v1/types.py +++ b/trace/google/cloud/trace_v1/types.py @@ -25,16 +25,9 @@ from google.protobuf import empty_pb2 from google.protobuf import timestamp_pb2 -_shared_modules = [ - http_pb2, - descriptor_pb2, - empty_pb2, - timestamp_pb2, -] +_shared_modules = [http_pb2, descriptor_pb2, empty_pb2, timestamp_pb2] -_local_modules = [ - trace_pb2, -] +_local_modules = [trace_pb2] names = [] @@ -44,7 +37,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.trace_v1.types' + message.__module__ = "google.cloud.trace_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/trace/google/cloud/trace_v2/__init__.py b/trace/google/cloud/trace_v2/__init__.py index 4ad902dd56fe..f93bf3cccf6a 100644 --- a/trace/google/cloud/trace_v2/__init__.py +++ b/trace/google/cloud/trace_v2/__init__.py @@ -26,8 +26,4 @@ class TraceServiceClient(trace_service_client.TraceServiceClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'TraceServiceClient', -) +__all__ = ("enums", "types", "TraceServiceClient") diff --git a/trace/google/cloud/trace_v2/gapic/enums.py b/trace/google/cloud/trace_v2/gapic/enums.py index 75240834c644..bea97d13b232 100644 --- a/trace/google/cloud/trace_v2/gapic/enums.py +++ b/trace/google/cloud/trace_v2/gapic/enums.py @@ -30,6 +30,7 @@ class Type(enum.IntEnum): SENT (int): Indicates a sent message. RECEIVED (int): Indicates a received message. """ + TYPE_UNSPECIFIED = 0 SENT = 1 RECEIVED = 2 @@ -45,6 +46,7 @@ class Type(enum.IntEnum): CHILD_LINKED_SPAN (int): The linked span is a child of the current span. PARENT_LINKED_SPAN (int): The linked span is a parent of the current span. """ + TYPE_UNSPECIFIED = 0 CHILD_LINKED_SPAN = 1 PARENT_LINKED_SPAN = 2 diff --git a/trace/google/cloud/trace_v2/gapic/trace_service_client.py b/trace/google/cloud/trace_v2/gapic/trace_service_client.py index 7afbb864fdfa..9a17b9c731f8 100644 --- a/trace/google/cloud/trace_v2/gapic/trace_service_client.py +++ b/trace/google/cloud/trace_v2/gapic/trace_service_client.py @@ -37,8 +37,7 @@ from google.protobuf import wrappers_pb2 from google.rpc import status_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-trace', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-trace").version class TraceServiceClient(object): @@ -50,12 +49,12 @@ class TraceServiceClient(object): contain span(s) from multiple services. """ - SERVICE_ADDRESS = 'cloudtrace.googleapis.com:443' + SERVICE_ADDRESS = "cloudtrace.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.devtools.cloudtrace.v2.TraceService' + _INTERFACE_NAME = "google.devtools.cloudtrace.v2.TraceService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -71,9 +70,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: TraceServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -82,26 +80,27 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def span_path(cls, project, trace, span): """Return a fully-qualified span string.""" return google.api_core.path_template.expand( - 'projects/{project}/traces/{trace}/spans/{span}', + "projects/{project}/traces/{trace}/spans/{span}", project=project, trace=trace, span=span, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -135,18 +134,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = trace_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -155,25 +155,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=trace_service_grpc_transport. - TraceServiceGrpcTransport, + default_class=trace_service_grpc_transport.TraceServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = trace_service_grpc_transport.TraceServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -183,7 +182,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -192,12 +192,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def batch_write_spans(self, - name, - spans, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def batch_write_spans( + self, + name, + spans, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Sends new spans to new or existing traces. You cannot update existing spans. @@ -239,41 +241,40 @@ def batch_write_spans(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'batch_write_spans' not in self._inner_api_calls: + if "batch_write_spans" not in self._inner_api_calls: self._inner_api_calls[ - 'batch_write_spans'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.batch_write_spans, - default_retry=self._method_configs['BatchWriteSpans']. - retry, - default_timeout=self._method_configs['BatchWriteSpans']. - timeout, - client_info=self._client_info, - ) + "batch_write_spans" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.batch_write_spans, + default_retry=self._method_configs["BatchWriteSpans"].retry, + default_timeout=self._method_configs["BatchWriteSpans"].timeout, + client_info=self._client_info, + ) - request = tracing_pb2.BatchWriteSpansRequest( - name=name, - spans=spans, + request = tracing_pb2.BatchWriteSpansRequest(name=name, spans=spans) + self._inner_api_calls["batch_write_spans"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['batch_write_spans']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_span(self, - name, - span_id, - display_name, - start_time, - end_time, - parent_span_id=None, - attributes=None, - stack_trace=None, - time_events=None, - links=None, - status=None, - same_process_as_parent_span=None, - child_span_count=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def create_span( + self, + name, + span_id, + display_name, + start_time, + end_time, + parent_span_id=None, + attributes=None, + stack_trace=None, + time_events=None, + links=None, + status=None, + same_process_as_parent_span=None, + child_span_count=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new span. @@ -389,14 +390,15 @@ def create_span(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_span' not in self._inner_api_calls: + if "create_span" not in self._inner_api_calls: self._inner_api_calls[ - 'create_span'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_span, - default_retry=self._method_configs['CreateSpan'].retry, - default_timeout=self._method_configs['CreateSpan'].timeout, - client_info=self._client_info, - ) + "create_span" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_span, + default_retry=self._method_configs["CreateSpan"].retry, + default_timeout=self._method_configs["CreateSpan"].timeout, + client_info=self._client_info, + ) request = trace_pb2.Span( name=name, @@ -413,5 +415,6 @@ def create_span(self, same_process_as_parent_span=same_process_as_parent_span, child_span_count=child_span_count, ) - return self._inner_api_calls['create_span']( - request, retry=retry, timeout=timeout, metadata=metadata) + return self._inner_api_calls["create_span"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/trace/google/cloud/trace_v2/gapic/trace_service_client_config.py b/trace/google/cloud/trace_v2/gapic/trace_service_client_config.py index 9e04aa561caa..778912910db8 100644 --- a/trace/google/cloud/trace_v2/gapic/trace_service_client_config.py +++ b/trace/google/cloud/trace_v2/gapic/trace_service_client_config.py @@ -3,7 +3,7 @@ "google.devtools.cloudtrace.v2.TraceService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,21 +13,21 @@ "initial_rpc_timeout_millis": 30000, "rpc_timeout_multiplier": 1.5, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 120000 + "total_timeout_millis": 120000, } }, "methods": { "BatchWriteSpans": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateSpan": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/trace/google/cloud/trace_v2/gapic/transports/trace_service_grpc_transport.py b/trace/google/cloud/trace_v2/gapic/transports/trace_service_grpc_transport.py index e3a4883d51f6..fa58ef066fd2 100644 --- a/trace/google/cloud/trace_v2/gapic/transports/trace_service_grpc_transport.py +++ b/trace/google/cloud/trace_v2/gapic/transports/trace_service_grpc_transport.py @@ -27,17 +27,17 @@ class TraceServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/trace.append', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/trace.append", ) - def __init__(self, - channel=None, - credentials=None, - address='cloudtrace.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="cloudtrace.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -55,28 +55,21 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. - self._stubs = { - 'trace_service_stub': tracing_pb2_grpc.TraceServiceStub(channel), - } + self._stubs = {"trace_service_stub": tracing_pb2_grpc.TraceServiceStub(channel)} @classmethod - def create_channel(cls, - address='cloudtrace.googleapis.com:443', - credentials=None): + def create_channel(cls, address="cloudtrace.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -91,9 +84,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -117,7 +108,7 @@ def batch_write_spans(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['trace_service_stub'].BatchWriteSpans + return self._stubs["trace_service_stub"].BatchWriteSpans @property def create_span(self): @@ -130,4 +121,4 @@ def create_span(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['trace_service_stub'].CreateSpan + return self._stubs["trace_service_stub"].CreateSpan diff --git a/trace/google/cloud/trace_v2/types.py b/trace/google/cloud/trace_v2/types.py index 327955a87b0e..99c4e20ae8df 100644 --- a/trace/google/cloud/trace_v2/types.py +++ b/trace/google/cloud/trace_v2/types.py @@ -39,10 +39,7 @@ status_pb2, ] -_local_modules = [ - trace_pb2, - tracing_pb2, -] +_local_modules = [trace_pb2, tracing_pb2] names = [] @@ -52,7 +49,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.trace_v2.types' + message.__module__ = "google.cloud.trace_v2.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/trace/tests/system/gapic/v1/test_system_trace_service_v1.py b/trace/tests/system/gapic/v1/test_system_trace_service_v1.py index 746028842b55..bfdba136f869 100644 --- a/trace/tests/system/gapic/v1/test_system_trace_service_v1.py +++ b/trace/tests/system/gapic/v1/test_system_trace_service_v1.py @@ -23,7 +23,7 @@ class TestSystemTraceService(object): def test_list_traces(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = trace_v1.TraceServiceClient() project_id_2 = project_id diff --git a/trace/tests/system/gapic/v2/test_system_trace_service_v2.py b/trace/tests/system/gapic/v2/test_system_trace_service_v2.py index 9953fae59d91..fb42ca7ba46a 100644 --- a/trace/tests/system/gapic/v2/test_system_trace_service_v2.py +++ b/trace/tests/system/gapic/v2/test_system_trace_service_v2.py @@ -22,7 +22,7 @@ class TestSystemTraceService(object): def test_batch_write_spans(self): - project_id = os.environ['PROJECT_ID'] + project_id = os.environ["PROJECT_ID"] client = trace_v2.TraceServiceClient() name = client.project_path(project_id) diff --git a/trace/tests/unit/gapic/v1/test_trace_service_client_v1.py b/trace/tests/unit/gapic/v1/test_trace_service_client_v1.py index 28e1fa03ecfd..636646b62c2c 100644 --- a/trace/tests/unit/gapic/v1/test_trace_service_client_v1.py +++ b/trace/tests/unit/gapic/v1/test_trace_service_client_v1.py @@ -51,10 +51,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -65,33 +62,34 @@ class CustomException(Exception): class TestTraceServiceClient(object): def test_patch_traces(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v1.TraceServiceClient() # Setup Request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" traces = {} client.patch_traces(project_id, traces) assert len(channel.requests) == 1 expected_request = trace_pb2.PatchTracesRequest( - project_id=project_id, traces=traces) + project_id=project_id, traces=traces + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_patch_traces_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v1.TraceServiceClient() # Setup request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" traces = {} with pytest.raises(CustomException): @@ -99,69 +97,64 @@ def test_patch_traces_exception(self): def test_get_trace(self): # Setup Expected Response - project_id_2 = 'projectId2939242356' - trace_id_2 = 'traceId2987826376' - expected_response = { - 'project_id': project_id_2, - 'trace_id': trace_id_2 - } + project_id_2 = "projectId2939242356" + trace_id_2 = "traceId2987826376" + expected_response = {"project_id": project_id_2, "trace_id": trace_id_2} expected_response = trace_pb2.Trace(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v1.TraceServiceClient() # Setup Request - project_id = 'projectId-1969970175' - trace_id = 'traceId1270300245' + project_id = "projectId-1969970175" + trace_id = "traceId1270300245" response = client.get_trace(project_id, trace_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = trace_pb2.GetTraceRequest( - project_id=project_id, trace_id=trace_id) + project_id=project_id, trace_id=trace_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_trace_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v1.TraceServiceClient() # Setup request - project_id = 'projectId-1969970175' - trace_id = 'traceId1270300245' + project_id = "projectId-1969970175" + trace_id = "traceId1270300245" with pytest.raises(CustomException): client.get_trace(project_id, trace_id) def test_list_traces(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" traces_element = {} traces = [traces_element] - expected_response = { - 'next_page_token': next_page_token, - 'traces': traces - } + expected_response = {"next_page_token": next_page_token, "traces": traces} expected_response = trace_pb2.ListTracesResponse(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v1.TraceServiceClient() # Setup Request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" paged_list_response = client.list_traces(project_id) resources = list(paged_list_response) @@ -176,13 +169,13 @@ def test_list_traces(self): def test_list_traces_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v1.TraceServiceClient() # Setup request - project_id = 'projectId-1969970175' + project_id = "projectId-1969970175" paged_list_response = client.list_traces(project_id) with pytest.raises(CustomException): diff --git a/trace/tests/unit/gapic/v2/test_trace_service_client_v2.py b/trace/tests/unit/gapic/v2/test_trace_service_client_v2.py index 41de824ba882..558f5e5d78e8 100644 --- a/trace/tests/unit/gapic/v2/test_trace_service_client_v2.py +++ b/trace/tests/unit/gapic/v2/test_trace_service_client_v2.py @@ -53,10 +53,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -67,33 +64,32 @@ class CustomException(Exception): class TestTraceServiceClient(object): def test_batch_write_spans(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v2.TraceServiceClient() # Setup Request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") spans = [] client.batch_write_spans(name, spans) assert len(channel.requests) == 1 - expected_request = tracing_pb2.BatchWriteSpansRequest( - name=name, spans=spans) + expected_request = tracing_pb2.BatchWriteSpansRequest(name=name, spans=spans) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_batch_write_spans_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v2.TraceServiceClient() # Setup request - name = client.project_path('[PROJECT]') + name = client.project_path("[PROJECT]") spans = [] with pytest.raises(CustomException): @@ -101,32 +97,31 @@ def test_batch_write_spans_exception(self): def test_create_span(self): # Setup Expected Response - name_2 = 'name2-1052831874' - span_id_2 = 'spanId2-643891741' - parent_span_id = 'parentSpanId-1757797477' + name_2 = "name2-1052831874" + span_id_2 = "spanId2-643891741" + parent_span_id = "parentSpanId-1757797477" expected_response = { - 'name': name_2, - 'span_id': span_id_2, - 'parent_span_id': parent_span_id + "name": name_2, + "span_id": span_id_2, + "parent_span_id": parent_span_id, } expected_response = trace_pb2.Span(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v2.TraceServiceClient() # Setup Request - name = client.span_path('[PROJECT]', '[TRACE]', '[SPAN]') - span_id = 'spanId-2011840976' + name = client.span_path("[PROJECT]", "[TRACE]", "[SPAN]") + span_id = "spanId-2011840976" display_name = {} start_time = {} end_time = {} - response = client.create_span(name, span_id, display_name, start_time, - end_time) + response = client.create_span(name, span_id, display_name, start_time, end_time) assert expected_response == response assert len(channel.requests) == 1 @@ -135,25 +130,25 @@ def test_create_span(self): span_id=span_id, display_name=display_name, start_time=start_time, - end_time=end_time) + end_time=end_time, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_span_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = trace_v2.TraceServiceClient() # Setup request - name = client.span_path('[PROJECT]', '[TRACE]', '[SPAN]') - span_id = 'spanId-2011840976' + name = client.span_path("[PROJECT]", "[TRACE]", "[SPAN]") + span_id = "spanId-2011840976" display_name = {} start_time = {} end_time = {} with pytest.raises(CustomException): - client.create_span(name, span_id, display_name, start_time, - end_time) + client.create_span(name, span_id, display_name, start_time, end_time) diff --git a/trace/tests/unit/v1/test__gapic_v1.py b/trace/tests/unit/v1/test__gapic_v1.py index 4815517f0d4e..76fdd9593b88 100644 --- a/trace/tests/unit/v1/test__gapic_v1.py +++ b/trace/tests/unit/v1/test__gapic_v1.py @@ -21,14 +21,14 @@ class _Base(object): - project = 'PROJECT' + project = "PROJECT" def _make_one(self, gapic_client=None, handwritten_client=None): from google.cloud.trace_v1.gapic import trace_service_client + channel = grpc_helpers.ChannelStub() if gapic_client is None: - gapic_client = trace_service_client.TraceServiceClient( - channel=channel) + gapic_client = trace_service_client.TraceServiceClient(channel=channel) if handwritten_client is None: handwritten_client = mock.Mock() api = self._get_target_class()(gapic_client, handwritten_client) @@ -36,7 +36,6 @@ def _make_one(self, gapic_client=None, handwritten_client=None): class Test__TraceAPI(_Base, unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.trace.v1._gapic import _TraceAPI @@ -45,6 +44,7 @@ def _get_target_class(): def test_constructor(self): from google.cloud.trace_v1.gapic import trace_service_client + channel = grpc_helpers.ChannelStub() gapic_client = trace_service_client.TraceServiceClient(channel=channel) _, api = self._make_one(gapic_client, mock.sentinel.client) @@ -53,32 +53,31 @@ def test_constructor(self): def test_patch_traces(self): from google.cloud.trace_v1.gapic import trace_service_client - from google.cloud.trace_v1.proto.trace_pb2 import ( - TraceSpan, Trace, Traces) + from google.cloud.trace_v1.proto.trace_pb2 import TraceSpan, Trace, Traces from google.cloud.trace.v1._gapic import _traces_mapping_to_pb from google.cloud._helpers import _datetime_to_pb_timestamp - trace_id = 'test_trace_id' + trace_id = "test_trace_id" span_id = 1234 - span_name = 'test_span_name' + span_name = "test_span_name" start_time = datetime.datetime.utcnow() end_time = datetime.datetime.utcnow() traces = { - 'traces': [ + "traces": [ { - 'projectId': self.project, - 'traceId': trace_id, - 'spans': [ + "projectId": self.project, + "traceId": trace_id, + "spans": [ { - 'spanId': span_id, - 'name': span_name, - 'startTime': start_time.isoformat() + 'Z', - 'endTime': end_time.isoformat() + 'Z', - }, + "spanId": span_id, + "name": span_name, + "startTime": start_time.isoformat() + "Z", + "endTime": end_time.isoformat() + "Z", + } ], - }, - ], + } + ] } traces_pb = _traces_mapping_to_pb(traces) @@ -105,23 +104,21 @@ def test_patch_traces(self): self.assertEqual(span.span_id, span_id) self.assertEqual(span.name, span_name) - self.assertEqual( - span.start_time, - _datetime_to_pb_timestamp(start_time)) - self.assertEqual( - span.end_time, - _datetime_to_pb_timestamp(end_time)) + self.assertEqual(span.start_time, _datetime_to_pb_timestamp(start_time)) + self.assertEqual(span.end_time, _datetime_to_pb_timestamp(end_time)) self.assertIsInstance(span, TraceSpan) def test_get_trace(self): from google.cloud.trace_v1.gapic import trace_service_client - trace_id = 'test_trace_id' + trace_id = "test_trace_id" gapic_api = mock.Mock(spec=trace_service_client.TraceServiceClient) _, api = self._make_one(gapic_api, None) - patch = mock.patch('google.cloud.trace.v1._gapic._parse_trace_pb', - return_value='fake_pb_result') + patch = mock.patch( + "google.cloud.trace.v1._gapic._parse_trace_pb", + return_value="fake_pb_result", + ) with patch: api.get_trace(project_id=self.project, trace_id=trace_id) @@ -129,37 +126,38 @@ def test_get_trace(self): gapic_api.get_trace.assert_called_with(self.project, trace_id) def _make_trace_pb( - self, - project, - trace_id, - span_id, - span_name, - start_time, - end_time, - parent_span_id, - labels): + self, + project, + trace_id, + span_id, + span_name, + start_time, + end_time, + parent_span_id, + labels, + ): from google.cloud.trace.v1._gapic import _traces_mapping_to_pb span_kind = 2 traces = { - 'traces': [ + "traces": [ { - 'projectId': project, - 'traceId': trace_id, - 'spans': [ + "projectId": project, + "traceId": trace_id, + "spans": [ { - 'spanId': span_id, - 'name': span_name, - 'startTime': start_time, - 'endTime': end_time, - 'kind': span_kind, - 'parentSpanId': parent_span_id, - 'labels': labels, - }, + "spanId": span_id, + "name": span_name, + "startTime": start_time, + "endTime": end_time, + "kind": span_kind, + "parentSpanId": parent_span_id, + "labels": labels, + } ], - }, - ], + } + ] } traces_pb = _traces_mapping_to_pb(traces) @@ -173,66 +171,61 @@ def test_list_traces(self): from google.cloud.trace_v1.gapic.enums import ListTracesRequest as Enum from google.cloud.trace_v1.proto import trace_pb2 - trace_id = 'test_trace_id' + trace_id = "test_trace_id" span_id = 1234 - span_name = 'test_span_name' - span_kind = 'RPC_CLIENT' + span_name = "test_span_name" + span_kind = "RPC_CLIENT" parent_span_id = 123 start_ts = datetime.datetime.utcnow() end_ts = datetime.datetime.utcnow() - labels = { - '/http/status_code': '200', - '/component': 'HTTP load balancer', - } + labels = {"/http/status_code": "200", "/component": "HTTP load balancer"} size = 10 view_type = Enum.ViewType.COMPLETE - token = 'TOKEN' + token = "TOKEN" trace_pb = self._make_trace_pb( self.project, trace_id, span_id, span_name, - start_ts.isoformat() + 'Z', - end_ts.isoformat() + 'Z', + start_ts.isoformat() + "Z", + end_ts.isoformat() + "Z", parent_span_id, - labels) + labels, + ) gapic_api = mock.Mock(spec=trace_service_client.TraceServiceClient) gapic_api.list_traces = mock.create_autospec(gapic_api.list_traces) channel, api = self._make_one() - channel.ListTraces.response = trace_pb2.ListTracesResponse( - traces=[trace_pb[0]]) + channel.ListTraces.response = trace_pb2.ListTracesResponse(traces=[trace_pb[0]]) iterator = api.list_traces( - project_id=self.project, - view=view_type, - page_size=size, - page_token=token) + project_id=self.project, view=view_type, page_size=size, page_token=token + ) traces = list(iterator) self.assertEqual(len(traces), 1) trace = traces[0] - self.assertEqual(len(trace['spans']), 1) - span = trace['spans'][0] + self.assertEqual(len(trace["spans"]), 1) + span = trace["spans"][0] - self.assertEqual(trace['projectId'], self.project) - self.assertEqual(trace['traceId'], trace_id) + self.assertEqual(trace["projectId"], self.project) + self.assertEqual(trace["traceId"], trace_id) - self.assertEqual(span['spanId'], str(span_id)) - self.assertEqual(span['name'], span_name) + self.assertEqual(span["spanId"], str(span_id)) + self.assertEqual(span["name"], span_name) self.assertEqual( - _rfc3339_to_datetime(span['startTime']), - start_ts.replace(tzinfo=UTC)) + _rfc3339_to_datetime(span["startTime"]), start_ts.replace(tzinfo=UTC) + ) self.assertEqual( - _rfc3339_to_datetime(span['endTime']), - end_ts.replace(tzinfo=UTC)) - self.assertEqual(span['kind'], span_kind) - self.assertEqual(span['parentSpanId'], str(parent_span_id)) - self.assertEqual(span['labels'], labels) + _rfc3339_to_datetime(span["endTime"]), end_ts.replace(tzinfo=UTC) + ) + self.assertEqual(span["kind"], span_kind) + self.assertEqual(span["parentSpanId"], str(parent_span_id)) + self.assertEqual(span["labels"], labels) self.assertEqual(len(channel.ListTraces.requests), 1) request = channel.ListTraces.requests[0] @@ -241,17 +234,16 @@ def test_list_traces(self): self.assertEqual(request.view, view_type) self.assertEqual(request.page_size, size) self.assertEqual( - request.start_time.ToDatetime(), - datetime.datetime(1970, 1, 1, 0, 0)) + request.start_time.ToDatetime(), datetime.datetime(1970, 1, 1, 0, 0) + ) self.assertEqual( - request.end_time.ToDatetime(), - datetime.datetime(1970, 1, 1, 0, 0)) - self.assertEqual(request.filter, '') - self.assertEqual(request.order_by, '') + request.end_time.ToDatetime(), datetime.datetime(1970, 1, 1, 0, 0) + ) + self.assertEqual(request.filter, "") + self.assertEqual(request.order_by, "") class Test__parse_trace_pb(unittest.TestCase): - @staticmethod def _call_fut(*args, **kwargs): from google.cloud.trace.v1._gapic import _parse_trace_pb @@ -259,16 +251,15 @@ def _call_fut(*args, **kwargs): return _parse_trace_pb(*args, **kwargs) def test_registered_type(self): - from google.cloud.trace_v1.proto.trace_pb2 import ( - TraceSpan, Trace) + from google.cloud.trace_v1.proto.trace_pb2 import TraceSpan, Trace from google.protobuf.timestamp_pb2 import Timestamp - project = u'PROJECT' - trace_id = u'test_trace_id' + project = u"PROJECT" + trace_id = u"test_trace_id" span_id = 1234 - span_name = u'test_span_name' - start_time = '2017-06-24T00:12:50.369990Z' - end_time = '2017-06-24T00:13:39.633255Z' + span_name = u"test_span_name" + start_time = "2017-06-24T00:12:50.369990Z" + end_time = "2017-06-24T00:13:39.633255Z" start_seconds = 1498263170 start_nanos = 369990000 end_seconds = 1498263219 @@ -281,41 +272,37 @@ def test_registered_type(self): span_id=span_id, name=span_name, start_time=start_time_pb, - end_time=end_time_pb) + end_time=end_time_pb, + ) - trace_pb = Trace( - project_id=project, - trace_id=trace_id, - spans=[span_pb]) + trace_pb = Trace(project_id=project, trace_id=trace_id, spans=[span_pb]) parse_result = self._call_fut(trace_pb) expected_result = { - 'projectId': project, - 'traceId': trace_id, - 'spans': [ + "projectId": project, + "traceId": trace_id, + "spans": [ { - 'spanId': str(span_id), - 'name': span_name, - 'startTime': start_time, - 'endTime': end_time, - }, + "spanId": str(span_id), + "name": span_name, + "startTime": start_time, + "endTime": end_time, + } ], } self.assertEqual(parse_result, expected_result) - @mock.patch('google.cloud.trace.v1._gapic.MessageToDict', - side_effect=TypeError) + @mock.patch("google.cloud.trace.v1._gapic.MessageToDict", side_effect=TypeError) def test_unregistered_type(self, msg_to_dict_mock): - trace_pb = mock.Mock(spec=['HasField']) + trace_pb = mock.Mock(spec=["HasField"]) trace_pb.HasField.return_value = False with self.assertRaises(TypeError): self._call_fut(trace_pb) class Test_make_trace_api(unittest.TestCase): - def _call_fut(self, client): from google.cloud.trace.v1._gapic import make_trace_api @@ -325,7 +312,7 @@ def test_it(self): from google.cloud.trace.v1._gapic import _TraceAPI credentials = object() - client = mock.Mock(_credentials=credentials, spec=['_credentials']) + client = mock.Mock(_credentials=credentials, spec=["_credentials"]) generated_api_kwargs = [] generated = object() @@ -333,13 +320,13 @@ def generated_api(**kwargs): generated_api_kwargs.append(kwargs) return generated - host = 'foo.apis.invalid' + host = "foo.apis.invalid" generated_api.SERVICE_ADDRESS = host patch_api = mock.patch( - 'google.cloud.trace.v1._gapic.trace_service_client.' - 'TraceServiceClient', - new=generated_api) + "google.cloud.trace.v1._gapic.trace_service_client." "TraceServiceClient", + new=generated_api, + ) with patch_api: trace_api = self._call_fut(client) diff --git a/trace/tests/unit/v1/test_client_v1.py b/trace/tests/unit/v1/test_client_v1.py index 494e03d75b8d..896bacf55ec7 100644 --- a/trace/tests/unit/v1/test_client_v1.py +++ b/trace/tests/unit/v1/test_client_v1.py @@ -25,7 +25,7 @@ def _make_credentials(): class TestClient(unittest.TestCase): - project = 'PROJECT' + project = "PROJECT" @staticmethod def _get_target_class(): @@ -52,9 +52,7 @@ def make_api(client_obj): credentials = _make_credentials() client = self._make_one(project=self.project, credentials=credentials) - patch = mock.patch( - 'google.cloud.trace.v1.client.make_trace_api', - new=make_api) + patch = mock.patch("google.cloud.trace.v1.client.make_trace_api", new=make_api) with patch: api = client.trace_api @@ -67,42 +65,40 @@ def test_patch_traces_default(self): credentials = _make_credentials() client = self._make_one(project=self.project, credentials=credentials) - traces = 'fake_traces_for_test' + traces = "fake_traces_for_test" mock_trace_api = mock.Mock(spec=_TraceAPI) mock_trace_api.patch_traces = mock.Mock() patch = mock.patch( - 'google.cloud.trace.v1.client.make_trace_api', - return_value=mock_trace_api) + "google.cloud.trace.v1.client.make_trace_api", return_value=mock_trace_api + ) with patch: client.patch_traces(traces=traces) mock_trace_api.patch_traces.assert_called_with( - project_id='PROJECT', - traces='fake_traces_for_test') + project_id="PROJECT", traces="fake_traces_for_test" + ) def test_patch_traces_explicit(self): from google.cloud.trace.v1._gapic import _TraceAPI credentials = _make_credentials() client = self._make_one(project=self.project, credentials=credentials) - traces = 'fake_traces_for_test' + traces = "fake_traces_for_test" mock_trace_api = mock.Mock(spec=_TraceAPI) mock_trace_api.patch_traces = mock.Mock() patch = mock.patch( - 'google.cloud.trace.v1.client.make_trace_api', - return_value=mock_trace_api) + "google.cloud.trace.v1.client.make_trace_api", return_value=mock_trace_api + ) with patch: - client.patch_traces( - project_id=self.project, - traces=traces) + client.patch_traces(project_id=self.project, traces=traces) mock_trace_api.patch_traces.assert_called_with( - project_id='PROJECT', - traces='fake_traces_for_test') + project_id="PROJECT", traces="fake_traces_for_test" + ) def test_get_trace_default(self): from google.cloud.trace.v1._gapic import _TraceAPI @@ -113,18 +109,18 @@ def get_trace(trace_id, project_id=None, options=None): credentials = _make_credentials() client = self._make_one(project=self.project, credentials=credentials) - trace_id = '5e6e73b4131303cb6f5c9dfbaf104e33' + trace_id = "5e6e73b4131303cb6f5c9dfbaf104e33" mock_trace_api = mock.Mock(spec=_TraceAPI) mock_trace_api.get_trace = get_trace - patch = mock.patch('google.cloud.trace.v1.client.make_trace_api', - return_value=mock_trace_api) + patch = mock.patch( + "google.cloud.trace.v1.client.make_trace_api", return_value=mock_trace_api + ) with patch: get_trace_called_with = client.get_trace(trace_id=trace_id) - self.assertEqual(get_trace_called_with, - (trace_id, self.project, None)) + self.assertEqual(get_trace_called_with, (trace_id, self.project, None)) def test_get_trace_explicit(self): from google.cloud.trace.v1._gapic import _TraceAPI @@ -135,33 +131,34 @@ def get_trace(trace_id, project_id=None, options=None): credentials = _make_credentials() client = self._make_one(project=self.project, credentials=credentials) - trace_id = '5e6e73b4131303cb6f5c9dfbaf104e33' + trace_id = "5e6e73b4131303cb6f5c9dfbaf104e33" mock_trace_api = mock.Mock(spec=_TraceAPI) mock_trace_api.get_trace = get_trace - patch = mock.patch('google.cloud.trace.v1.client.make_trace_api', - return_value=mock_trace_api) + patch = mock.patch( + "google.cloud.trace.v1.client.make_trace_api", return_value=mock_trace_api + ) with patch: get_trace_called_with = client.get_trace( - trace_id=trace_id, - project_id=self.project) + trace_id=trace_id, project_id=self.project + ) - self.assertEqual(get_trace_called_with, - (trace_id, self.project, None)) + self.assertEqual(get_trace_called_with, (trace_id, self.project, None)) def test_list_traces_default(self): from google.cloud.trace.v1._gapic import _TraceAPI def list_traces( - project_id, - view=None, - page_size=None, - start_time=None, - end_time=None, - filter_=None, - order_by=None, - page_token=None): + project_id, + view=None, + page_size=None, + start_time=None, + end_time=None, + filter_=None, + order_by=None, + page_token=None, + ): _list_traces_called_with = ( project_id, view, @@ -170,7 +167,8 @@ def list_traces( end_time, filter_, order_by, - page_token) + page_token, + ) return _list_traces_called_with credentials = _make_credentials() @@ -178,15 +176,17 @@ def list_traces( mock_trace_api = mock.Mock(spec=_TraceAPI) mock_trace_api.list_traces = list_traces - patch = mock.patch('google.cloud.trace.v1.client.make_trace_api', - return_value=mock_trace_api) + patch = mock.patch( + "google.cloud.trace.v1.client.make_trace_api", return_value=mock_trace_api + ) with patch: list_traces_called_with = client.list_traces() - self.assertEqual(list_traces_called_with, ( - self.project, - None, None, None, None, None, None, None)) + self.assertEqual( + list_traces_called_with, + (self.project, None, None, None, None, None, None, None), + ) def test_list_traces_explicit(self): from google.cloud._helpers import _datetime_to_pb_timestamp @@ -196,14 +196,15 @@ def test_list_traces_explicit(self): from datetime import datetime def list_traces( - project_id, - view=None, - page_size=None, - start_time=None, - end_time=None, - filter_=None, - order_by=None, - page_token=None): + project_id, + view=None, + page_size=None, + start_time=None, + end_time=None, + filter_=None, + order_by=None, + page_token=None, + ): _list_traces_called_with = ( project_id, view, @@ -212,7 +213,8 @@ def list_traces( end_time, filter_, order_by, - page_token) + page_token, + ) return _list_traces_called_with credentials = _make_credentials() @@ -220,16 +222,17 @@ def list_traces( mock_trace_api = mock.Mock(spec=_TraceAPI) mock_trace_api.list_traces = list_traces - patch = mock.patch('google.cloud.trace.v1.client.make_trace_api', - return_value=mock_trace_api) + patch = mock.patch( + "google.cloud.trace.v1.client.make_trace_api", return_value=mock_trace_api + ) view = Enum.ViewType.COMPLETE page_size = 10 start_time = datetime.utcnow() end_time = datetime.utcnow() - filter_ = '+span:span1' - order_by = 'traceId' - page_token = 'TOKEN' + filter_ = "+span:span1" + order_by = "traceId" + page_token = "TOKEN" with patch: list_traces_called_with = client.list_traces( @@ -240,14 +243,19 @@ def list_traces( end_time=end_time, filter_=filter_, order_by=order_by, - page_token=page_token) - - self.assertEqual(list_traces_called_with, ( - self.project, - view, - page_size, - _datetime_to_pb_timestamp(start_time), - _datetime_to_pb_timestamp(end_time), - filter_, - order_by, - page_token)) + page_token=page_token, + ) + + self.assertEqual( + list_traces_called_with, + ( + self.project, + view, + page_size, + _datetime_to_pb_timestamp(start_time), + _datetime_to_pb_timestamp(end_time), + filter_, + order_by, + page_token, + ), + ) diff --git a/trace/tests/unit/v2/test__gapic_v2.py b/trace/tests/unit/v2/test__gapic_v2.py index 92b3b866ba06..faa9b03ad722 100644 --- a/trace/tests/unit/v2/test__gapic_v2.py +++ b/trace/tests/unit/v2/test__gapic_v2.py @@ -19,10 +19,7 @@ def _str_to_truncatablestr(str_to_convert): - result = { - 'value': str_to_convert, - 'truncated_byte_count': 0, - } + result = {"value": str_to_convert, "truncated_byte_count": 0} return result @@ -30,109 +27,86 @@ class _Base(object): from google.cloud.trace_v2.gapic import enums # Set the constants used for tests - project = 'PROJECT' - trace_id = 'c801e4119a064c659fe052d88f1d461b' - span_id = '1234123412341234' - parent_span_id = '1111000011110000' - span_name = 'projects/{}/traces/{}/spans/{}'.format( - project, trace_id, span_id) + project = "PROJECT" + trace_id = "c801e4119a064c659fe052d88f1d461b" + span_id = "1234123412341234" + parent_span_id = "1111000011110000" + span_name = "projects/{}/traces/{}/spans/{}".format(project, trace_id, span_id) start_time = datetime.datetime.utcnow() end_time = datetime.datetime.utcnow() type = enums.Span.TimeEvent.MessageEvent.Type.SENT - display_name = 'test display name' + display_name = "test display name" attributes = { - 'attributeMap': { - 'test_int_key': { - 'int_value': 123, - }, - 'test_str_key': { - 'string_value': _str_to_truncatablestr('str_value') - }, - 'test_bool_key': { - 'bool_value': True, - } + "attributeMap": { + "test_int_key": {"int_value": 123}, + "test_str_key": {"string_value": _str_to_truncatablestr("str_value")}, + "test_bool_key": {"bool_value": True}, } } - st_function_name = 'test function name' - st_origin_name = 'test original name' - st_file_name = 'test file name' + st_function_name = "test function name" + st_origin_name = "test original name" + st_file_name = "test file name" st_line_number = 12 st_column_number = 2 - st_test_module = 'test module' - st_build_id = 'test build id' - st_source_version = 'test source version' + st_test_module = "test module" + st_build_id = "test build id" + st_source_version = "test source version" stack_trace = { - 'stack_frames': { - 'frame': [ + "stack_frames": { + "frame": [ { - 'function_name': - _str_to_truncatablestr( - st_function_name), - 'original_function_name': - _str_to_truncatablestr(st_origin_name), - 'file_name': - _str_to_truncatablestr(st_file_name), - 'line_number': st_line_number, - 'column_number': st_column_number, - 'load_module': { - 'module': - _str_to_truncatablestr( - st_test_module), - 'build_id': - _str_to_truncatablestr( - st_build_id), - }, - 'source_version': - _str_to_truncatablestr( - st_source_version), - }, + "function_name": _str_to_truncatablestr(st_function_name), + "original_function_name": _str_to_truncatablestr(st_origin_name), + "file_name": _str_to_truncatablestr(st_file_name), + "line_number": st_line_number, + "column_number": st_column_number, + "load_module": { + "module": _str_to_truncatablestr(st_test_module), + "build_id": _str_to_truncatablestr(st_build_id), + }, + "source_version": _str_to_truncatablestr(st_source_version), + } ], - 'dropped_frames_count': 0, + "dropped_frames_count": 0, }, - 'stack_trace_hash_id': 1234, + "stack_trace_hash_id": 1234, } - te_time = datetime.datetime.utcnow().isoformat() + 'Z' - te_description = 'test description' + te_time = datetime.datetime.utcnow().isoformat() + "Z" + te_description = "test description" time_events = { - 'time_event': [ + "time_event": [ { - 'time': te_time, - 'annotation': { - 'description': - _str_to_truncatablestr(te_description), - 'attributes': attributes, + "time": te_time, + "annotation": { + "description": _str_to_truncatablestr(te_description), + "attributes": attributes, }, # TimeEvent can contain either annotation # or message_event } - ], - 'dropped_annotations_count': 0, - 'dropped_message_events_count': 0 + "dropped_annotations_count": 0, + "dropped_message_events_count": 0, } - link_span_id = '1111222211112222' + link_span_id = "1111222211112222" links = { - 'link': [ + "link": [ { - 'trace_id': trace_id, - 'span_id': link_span_id, - 'type': type, - 'attributes': attributes, - }, + "trace_id": trace_id, + "span_id": link_span_id, + "type": type, + "attributes": attributes, + } ], - 'dropped_links_count': 0, + "dropped_links_count": 0, } status_code = 888 - status_message = 'test status message' - status = { - 'code': status_code, - 'message': status_message, - 'details': [], - } + status_message = "test status message" + status = {"code": status_code, "message": status_message, "details": []} same_process_as_parent_span = True child_span_count = 0 @@ -142,7 +116,6 @@ def _make_one(self, *args, **kw): class Test__TraceAPI(_Base, unittest.TestCase): - @staticmethod def _get_target_class(): from google.cloud.trace._gapic import _TraceAPI @@ -161,28 +134,27 @@ def test_batch_write_spans(self): from google.cloud.trace._gapic import _dict_mapping_to_pb spans = { - 'spans': [ + "spans": [ { - 'name': self.span_name, - 'span_id': self.span_id, - 'parent_span_id': self.parent_span_id, - 'display_name': _str_to_truncatablestr(self.display_name), - 'start_time': self.start_time.isoformat() + 'Z', - 'end_time': self.end_time.isoformat() + 'Z', - 'attributes': self.attributes, - 'stack_trace': self.stack_trace, - 'time_events': self.time_events, - 'links': self.links, - 'status': self.status, - 'same_process_as_parent_span': - self.same_process_as_parent_span, - 'child_span_count': self.child_span_count, - }, - ], + "name": self.span_name, + "span_id": self.span_id, + "parent_span_id": self.parent_span_id, + "display_name": _str_to_truncatablestr(self.display_name), + "start_time": self.start_time.isoformat() + "Z", + "end_time": self.end_time.isoformat() + "Z", + "attributes": self.attributes, + "stack_trace": self.stack_trace, + "time_events": self.time_events, + "links": self.links, + "status": self.status, + "same_process_as_parent_span": self.same_process_as_parent_span, + "child_span_count": self.child_span_count, + } + ] } - spans_pb_list = [_dict_mapping_to_pb(spans['spans'][0], 'Span')] - project_name = 'projects/{}'.format(self.project) + spans_pb_list = [_dict_mapping_to_pb(spans["spans"][0], "Span")] + project_name = "projects/{}".format(self.project) gapic_api = mock.Mock(spec=trace_service_client.TraceServiceClient) api = self._make_one(gapic_api, None) @@ -191,10 +163,8 @@ def test_batch_write_spans(self): api.batch_write_spans(project_name, spans, retry, timeout) gapic_api.batch_write_spans.assert_called_with( - name=project_name, - spans=spans_pb_list, - retry=retry, - timeout=timeout) + name=project_name, spans=spans_pb_list, retry=retry, timeout=timeout + ) def test_create_span_default(self): from google.cloud.trace_v2.gapic import trace_service_client @@ -208,10 +178,12 @@ def test_create_span_default(self): span_id=self.span_id, display_name=_str_to_truncatablestr(self.display_name), start_time=self.start_time, - end_time=self.end_time) + end_time=self.end_time, + ) display_name_pb = _dict_mapping_to_pb( - _str_to_truncatablestr(self.display_name), 'TruncatableString') + _str_to_truncatablestr(self.display_name), "TruncatableString" + ) start_time_pb = _datetime_to_pb_timestamp(self.start_time) end_time_pb = _datetime_to_pb_timestamp(self.end_time) @@ -228,7 +200,8 @@ def test_create_span_default(self): links=None, status=None, same_process_as_parent_span=None, - child_span_count=None) + child_span_count=None, + ) def test_create_span_explicit(self): from google.cloud._helpers import _datetime_to_pb_timestamp @@ -236,7 +209,8 @@ def test_create_span_explicit(self): _dict_mapping_to_pb, _span_attrs_to_pb, _status_mapping_to_pb, - _value_to_pb) + _value_to_pb, + ) from google.cloud.trace_v2.gapic import trace_service_client gapic_api = mock.Mock(spec=trace_service_client.TraceServiceClient) @@ -254,21 +228,23 @@ def test_create_span_explicit(self): links=self.links, status=self.status, same_process_as_parent_span=self.same_process_as_parent_span, - child_span_count=self.child_span_count) + child_span_count=self.child_span_count, + ) display_name_pb = _dict_mapping_to_pb( - _str_to_truncatablestr(self.display_name), 'TruncatableString') + _str_to_truncatablestr(self.display_name), "TruncatableString" + ) start_time_pb = _datetime_to_pb_timestamp(self.start_time) end_time_pb = _datetime_to_pb_timestamp(self.end_time) - attributes_pb = _span_attrs_to_pb(self.attributes, 'Attributes') - stack_trace_pb = _dict_mapping_to_pb(self.stack_trace, 'StackTrace') - time_events_pb = _span_attrs_to_pb(self.time_events, 'TimeEvents') - links_pb = _span_attrs_to_pb(self.links, 'Links') + attributes_pb = _span_attrs_to_pb(self.attributes, "Attributes") + stack_trace_pb = _dict_mapping_to_pb(self.stack_trace, "StackTrace") + time_events_pb = _span_attrs_to_pb(self.time_events, "TimeEvents") + links_pb = _span_attrs_to_pb(self.links, "Links") status_pb = _status_mapping_to_pb(self.status) same_process_as_parent_span_pb = _value_to_pb( - self.same_process_as_parent_span, 'BoolValue') - child_span_count_pb = _value_to_pb( - self.child_span_count, 'Int32Value') + self.same_process_as_parent_span, "BoolValue" + ) + child_span_count_pb = _value_to_pb(self.child_span_count, "Int32Value") gapic_api.create_span.assert_called_with( name=self.span_name, @@ -283,11 +259,11 @@ def test_create_span_explicit(self): links=links_pb, status=status_pb, same_process_as_parent_span=same_process_as_parent_span_pb, - child_span_count=child_span_count_pb) + child_span_count=child_span_count_pb, + ) class Test_make_trace_api(unittest.TestCase): - def _call_fut(self, client): from google.cloud.trace._gapic import make_trace_api @@ -297,7 +273,7 @@ def test_it(self): from google.cloud.trace._gapic import _TraceAPI credentials = object() - client = mock.Mock(_credentials=credentials, spec=['_credentials']) + client = mock.Mock(_credentials=credentials, spec=["_credentials"]) generated_api_kwargs = [] generated = object() @@ -305,13 +281,13 @@ def generated_api(**kwargs): generated_api_kwargs.append(kwargs) return generated - host = 'foo.apis.invalid' + host = "foo.apis.invalid" generated_api.SERVICE_ADDRESS = host patch_api = mock.patch( - 'google.cloud.trace._gapic.trace_service_client.' - 'TraceServiceClient', - new=generated_api) + "google.cloud.trace._gapic.trace_service_client." "TraceServiceClient", + new=generated_api, + ) with patch_api: trace_api = self._call_fut(client) diff --git a/trace/tests/unit/v2/test_client_v2.py b/trace/tests/unit/v2/test_client_v2.py index fbbef2c30b68..3fce0bff8739 100644 --- a/trace/tests/unit/v2/test_client_v2.py +++ b/trace/tests/unit/v2/test_client_v2.py @@ -25,7 +25,7 @@ def _make_credentials(): class TestClient(unittest.TestCase): - project = 'PROJECT' + project = "PROJECT" @staticmethod def _get_target_class(): @@ -52,9 +52,7 @@ def make_api(client_obj): credentials = _make_credentials() client = self._make_one(project=self.project, credentials=credentials) - patch = mock.patch( - 'google.cloud.trace.client.make_trace_api', - new=make_api) + patch = mock.patch("google.cloud.trace.client.make_trace_api", new=make_api) with patch: api = client.trace_api @@ -67,48 +65,46 @@ def test_batch_write_spans(self): credentials = _make_credentials() client = self._make_one(project=self.project, credentials=credentials) - name = 'projects/{}'.format(self.project) - spans = 'fake_spans_for_test' + name = "projects/{}".format(self.project) + spans = "fake_spans_for_test" mock_trace_api = mock.Mock(spec=_TraceAPI) mock_trace_api.patch_traces = mock.Mock() patch = mock.patch( - 'google.cloud.trace.client.make_trace_api', - return_value=mock_trace_api) + "google.cloud.trace.client.make_trace_api", return_value=mock_trace_api + ) with patch: client.batch_write_spans(name=name, spans=spans) mock_trace_api.batch_write_spans.assert_called_with( - name=name, - spans=spans, - retry=None, - timeout=None) + name=name, spans=spans, retry=None, timeout=None + ) def test_create_span(self): from google.cloud.trace._gapic import _TraceAPI credentials = _make_credentials() client = self._make_one(project=self.project, credentials=credentials) - name = 'projects/{}'.format(self.project) - span_id = '1111' - display_name = 'test display name' - start_time = 'test start time' - end_time = 'test end time' - parent_span_id = 'test parent span id' - attributes = 'test attributes' - stack_trace = 'test stack trace' - time_events = 'test time events' - links = 'test links' - status = 'test status' - same_process_as_parent_span = 'test same process as parent span' - child_span_count = 'test child span count' + name = "projects/{}".format(self.project) + span_id = "1111" + display_name = "test display name" + start_time = "test start time" + end_time = "test end time" + parent_span_id = "test parent span id" + attributes = "test attributes" + stack_trace = "test stack trace" + time_events = "test time events" + links = "test links" + status = "test status" + same_process_as_parent_span = "test same process as parent span" + child_span_count = "test child span count" mock_trace_api = mock.Mock(spec=_TraceAPI) mock_trace_api.patch_traces = mock.Mock() patch = mock.patch( - 'google.cloud.trace.client.make_trace_api', - return_value=mock_trace_api) + "google.cloud.trace.client.make_trace_api", return_value=mock_trace_api + ) with patch: client.create_span( @@ -124,7 +120,8 @@ def test_create_span(self): links=links, status=status, same_process_as_parent_span=same_process_as_parent_span, - child_span_count=child_span_count) + child_span_count=child_span_count, + ) mock_trace_api.create_span.assert_called_with( name=name, @@ -139,4 +136,5 @@ def test_create_span(self): links=links, status=status, same_process_as_parent_span=same_process_as_parent_span, - child_span_count=child_span_count) + child_span_count=child_span_count, + ) diff --git a/videointelligence/docs/conf.py b/videointelligence/docs/conf.py index 97129ac038c6..afbefb75aa22 100644 --- a/videointelligence/docs/conf.py +++ b/videointelligence/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-video-intelligence' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-video-intelligence" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-video-intelligence-doc' +htmlhelp_basename = "google-cloud-video-intelligence-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-video-intelligence.tex', - u'google-cloud-video-intelligence Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-video-intelligence.tex", + u"google-cloud-video-intelligence Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-video-intelligence', - u'google-cloud-video-intelligence Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-video-intelligence", + u"google-cloud-video-intelligence Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-video-intelligence', - u'google-cloud-video-intelligence Documentation', author, - 'google-cloud-video-intelligence', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-video-intelligence", + u"google-cloud-video-intelligence Documentation", + author, + "google-cloud-video-intelligence", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/videointelligence/google/__init__.py b/videointelligence/google/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/videointelligence/google/__init__.py +++ b/videointelligence/google/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/videointelligence/google/cloud/__init__.py b/videointelligence/google/cloud/__init__.py index f65701dd143f..7aa71bb4e2f1 100644 --- a/videointelligence/google/cloud/__init__.py +++ b/videointelligence/google/cloud/__init__.py @@ -16,7 +16,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/videointelligence/google/cloud/videointelligence.py b/videointelligence/google/cloud/videointelligence.py index cee5803ce00f..b5d92f03279f 100644 --- a/videointelligence/google/cloud/videointelligence.py +++ b/videointelligence/google/cloud/videointelligence.py @@ -20,8 +20,4 @@ from google.cloud.videointelligence_v1 import enums from google.cloud.videointelligence_v1 import types -__all__ = ( - 'enums', - 'types', - 'VideoIntelligenceServiceClient', -) +__all__ = ("enums", "types", "VideoIntelligenceServiceClient") diff --git a/videointelligence/google/cloud/videointelligence_v1/__init__.py b/videointelligence/google/cloud/videointelligence_v1/__init__.py index cfdeee684012..fce3c1e6a5c3 100644 --- a/videointelligence/google/cloud/videointelligence_v1/__init__.py +++ b/videointelligence/google/cloud/videointelligence_v1/__init__.py @@ -22,13 +22,10 @@ class VideoIntelligenceServiceClient( - video_intelligence_service_client.VideoIntelligenceServiceClient): + video_intelligence_service_client.VideoIntelligenceServiceClient +): __doc__ = video_intelligence_service_client.VideoIntelligenceServiceClient.__doc__ enums = enums -__all__ = ( - 'enums', - 'types', - 'VideoIntelligenceServiceClient', -) +__all__ = ("enums", "types", "VideoIntelligenceServiceClient") diff --git a/videointelligence/google/cloud/videointelligence_v1/gapic/enums.py b/videointelligence/google/cloud/videointelligence_v1/gapic/enums.py index 9772d7415029..732578297f97 100644 --- a/videointelligence/google/cloud/videointelligence_v1/gapic/enums.py +++ b/videointelligence/google/cloud/videointelligence_v1/gapic/enums.py @@ -30,6 +30,7 @@ class Feature(enum.IntEnum): FACE_DETECTION (int): Human face detection and tracking. SPEECH_TRANSCRIPTION (int): Speech transcription. """ + FEATURE_UNSPECIFIED = 0 LABEL_DETECTION = 1 SHOT_CHANGE_DETECTION = 2 @@ -48,6 +49,7 @@ class LabelDetectionMode(enum.IntEnum): FRAME_MODE (int): Detect frame-level labels. SHOT_AND_FRAME_MODE (int): Detect both shot-level and frame-level labels. """ + LABEL_DETECTION_MODE_UNSPECIFIED = 0 SHOT_MODE = 1 FRAME_MODE = 2 @@ -66,6 +68,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): Likely. VERY_LIKELY (int): Very likely. """ + LIKELIHOOD_UNSPECIFIED = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 diff --git a/videointelligence/google/cloud/videointelligence_v1/gapic/transports/video_intelligence_service_grpc_transport.py b/videointelligence/google/cloud/videointelligence_v1/gapic/transports/video_intelligence_service_grpc_transport.py index fbebbbe0cd19..58c972db6aba 100644 --- a/videointelligence/google/cloud/videointelligence_v1/gapic/transports/video_intelligence_service_grpc_transport.py +++ b/videointelligence/google/cloud/videointelligence_v1/gapic/transports/video_intelligence_service_grpc_transport.py @@ -28,14 +28,17 @@ class VideoIntelligenceServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='videointelligence.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="videointelligence.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -53,35 +56,34 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'video_intelligence_service_stub': - video_intelligence_pb2_grpc.VideoIntelligenceServiceStub(channel), + "video_intelligence_service_stub": video_intelligence_pb2_grpc.VideoIntelligenceServiceStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='videointelligence.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="videointelligence.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -96,9 +98,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,4 +124,4 @@ def annotate_video(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['video_intelligence_service_stub'].AnnotateVideo + return self._stubs["video_intelligence_service_stub"].AnnotateVideo diff --git a/videointelligence/google/cloud/videointelligence_v1/gapic/video_intelligence_service_client.py b/videointelligence/google/cloud/videointelligence_v1/gapic/video_intelligence_service_client.py index c8fe253312de..d55669752556 100644 --- a/videointelligence/google/cloud/videointelligence_v1/gapic/video_intelligence_service_client.py +++ b/videointelligence/google/cloud/videointelligence_v1/gapic/video_intelligence_service_client.py @@ -28,25 +28,30 @@ import grpc from google.cloud.videointelligence_v1.gapic import enums -from google.cloud.videointelligence_v1.gapic import video_intelligence_service_client_config -from google.cloud.videointelligence_v1.gapic.transports import video_intelligence_service_grpc_transport +from google.cloud.videointelligence_v1.gapic import ( + video_intelligence_service_client_config, +) +from google.cloud.videointelligence_v1.gapic.transports import ( + video_intelligence_service_grpc_transport, +) from google.cloud.videointelligence_v1.proto import video_intelligence_pb2 from google.cloud.videointelligence_v1.proto import video_intelligence_pb2_grpc from google.longrunning import operations_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-videointelligence', ).version + "google-cloud-videointelligence" +).version class VideoIntelligenceServiceClient(object): """Service that implements Google Cloud Video Intelligence API.""" - SERVICE_ADDRESS = 'videointelligence.googleapis.com:443' + SERVICE_ADDRESS = "videointelligence.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.videointelligence.v1.VideoIntelligenceService' + _INTERFACE_NAME = "google.cloud.videointelligence.v1.VideoIntelligenceService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -62,19 +67,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: VideoIntelligenceServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -108,18 +114,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = video_intelligence_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -128,25 +135,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=video_intelligence_service_grpc_transport. - VideoIntelligenceServiceGrpcTransport, + default_class=video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +162,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,16 +172,18 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def annotate_video(self, - input_uri=None, - input_content=None, - features=None, - video_context=None, - output_uri=None, - location_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def annotate_video( + self, + input_uri=None, + input_content=None, + features=None, + video_context=None, + output_uri=None, + location_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs asynchronous video annotation. Progress and results can be retrieved through the ``google.longrunning.Operations`` interface. @@ -251,15 +260,15 @@ def annotate_video(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'annotate_video' not in self._inner_api_calls: + if "annotate_video" not in self._inner_api_calls: self._inner_api_calls[ - 'annotate_video'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.annotate_video, - default_retry=self._method_configs['AnnotateVideo'].retry, - default_timeout=self._method_configs['AnnotateVideo']. - timeout, - client_info=self._client_info, - ) + "annotate_video" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.annotate_video, + default_retry=self._method_configs["AnnotateVideo"].retry, + default_timeout=self._method_configs["AnnotateVideo"].timeout, + client_info=self._client_info, + ) request = video_intelligence_pb2.AnnotateVideoRequest( input_uri=input_uri, @@ -269,8 +278,9 @@ def annotate_video(self, output_uri=output_uri, location_id=location_id, ) - operation = self._inner_api_calls['annotate_video']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["annotate_video"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/videointelligence/google/cloud/videointelligence_v1/gapic/video_intelligence_service_client_config.py b/videointelligence/google/cloud/videointelligence_v1/gapic/video_intelligence_service_client_config.py index de29cbe446e0..b9eef5e2a6a7 100644 --- a/videointelligence/google/cloud/videointelligence_v1/gapic/video_intelligence_service_client_config.py +++ b/videointelligence/google/cloud/videointelligence_v1/gapic/video_intelligence_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.videointelligence.v1.VideoIntelligenceService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,16 +13,16 @@ "initial_rpc_timeout_millis": 120000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 120000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "AnnotateVideo": { "timeout_millis": 600000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", } - } + }, } } } diff --git a/videointelligence/google/cloud/videointelligence_v1/types.py b/videointelligence/google/cloud/videointelligence_v1/types.py index de24251d81a6..c63d3faba4ee 100644 --- a/videointelligence/google/cloud/videointelligence_v1/types.py +++ b/videointelligence/google/cloud/videointelligence_v1/types.py @@ -40,9 +40,7 @@ status_pb2, ] -_local_modules = [ - video_intelligence_pb2, -] +_local_modules = [video_intelligence_pb2] names = [] @@ -52,7 +50,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.videointelligence_v1.types' + message.__module__ = "google.cloud.videointelligence_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/videointelligence/google/cloud/videointelligence_v1beta1/__init__.py b/videointelligence/google/cloud/videointelligence_v1beta1/__init__.py index afba945f4aec..d783f4925f39 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta1/__init__.py +++ b/videointelligence/google/cloud/videointelligence_v1beta1/__init__.py @@ -18,17 +18,16 @@ from google.cloud.videointelligence_v1beta1 import types from google.cloud.videointelligence_v1beta1.gapic import enums -from google.cloud.videointelligence_v1beta1.gapic import video_intelligence_service_client +from google.cloud.videointelligence_v1beta1.gapic import ( + video_intelligence_service_client, +) class VideoIntelligenceServiceClient( - video_intelligence_service_client.VideoIntelligenceServiceClient): + video_intelligence_service_client.VideoIntelligenceServiceClient +): __doc__ = video_intelligence_service_client.VideoIntelligenceServiceClient.__doc__ enums = enums -__all__ = ( - 'enums', - 'types', - 'VideoIntelligenceServiceClient', -) +__all__ = ("enums", "types", "VideoIntelligenceServiceClient") diff --git a/videointelligence/google/cloud/videointelligence_v1beta1/gapic/enums.py b/videointelligence/google/cloud/videointelligence_v1beta1/gapic/enums.py index 98b91256ceda..91f6a4b97630 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta1/gapic/enums.py +++ b/videointelligence/google/cloud/videointelligence_v1beta1/gapic/enums.py @@ -29,6 +29,7 @@ class Feature(enum.IntEnum): SHOT_CHANGE_DETECTION (int): Shot change detection. SAFE_SEARCH_DETECTION (int): Safe search detection. """ + FEATURE_UNSPECIFIED = 0 LABEL_DETECTION = 1 FACE_DETECTION = 2 @@ -48,6 +49,7 @@ class LabelLevel(enum.IntEnum): without a major camera position or background change). FRAME_LEVEL (int): Frame-level. Corresponds to a single video frame. """ + LABEL_LEVEL_UNSPECIFIED = 0 VIDEO_LEVEL = 1 SEGMENT_LEVEL = 2 @@ -65,6 +67,7 @@ class LabelDetectionMode(enum.IntEnum): FRAME_MODE (int): Detect frame-level labels. SHOT_AND_FRAME_MODE (int): Detect both shot-level and frame-level labels. """ + LABEL_DETECTION_MODE_UNSPECIFIED = 0 SHOT_MODE = 1 FRAME_MODE = 2 @@ -83,6 +86,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): Likely. VERY_LIKELY (int): Very likely. """ + UNKNOWN = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 diff --git a/videointelligence/google/cloud/videointelligence_v1beta1/gapic/transports/video_intelligence_service_grpc_transport.py b/videointelligence/google/cloud/videointelligence_v1beta1/gapic/transports/video_intelligence_service_grpc_transport.py index c1771121d0cf..b9533b925949 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta1/gapic/transports/video_intelligence_service_grpc_transport.py +++ b/videointelligence/google/cloud/videointelligence_v1beta1/gapic/transports/video_intelligence_service_grpc_transport.py @@ -28,14 +28,17 @@ class VideoIntelligenceServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='videointelligence.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="videointelligence.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -53,35 +56,34 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'video_intelligence_service_stub': - video_intelligence_pb2_grpc.VideoIntelligenceServiceStub(channel), + "video_intelligence_service_stub": video_intelligence_pb2_grpc.VideoIntelligenceServiceStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='videointelligence.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="videointelligence.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -96,9 +98,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,4 +124,4 @@ def annotate_video(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['video_intelligence_service_stub'].AnnotateVideo + return self._stubs["video_intelligence_service_stub"].AnnotateVideo diff --git a/videointelligence/google/cloud/videointelligence_v1beta1/gapic/video_intelligence_service_client.py b/videointelligence/google/cloud/videointelligence_v1beta1/gapic/video_intelligence_service_client.py index 69d180976d34..54a1192cff1b 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta1/gapic/video_intelligence_service_client.py +++ b/videointelligence/google/cloud/videointelligence_v1beta1/gapic/video_intelligence_service_client.py @@ -28,25 +28,30 @@ import grpc from google.cloud.videointelligence_v1beta1.gapic import enums -from google.cloud.videointelligence_v1beta1.gapic import video_intelligence_service_client_config -from google.cloud.videointelligence_v1beta1.gapic.transports import video_intelligence_service_grpc_transport +from google.cloud.videointelligence_v1beta1.gapic import ( + video_intelligence_service_client_config, +) +from google.cloud.videointelligence_v1beta1.gapic.transports import ( + video_intelligence_service_grpc_transport, +) from google.cloud.videointelligence_v1beta1.proto import video_intelligence_pb2 from google.cloud.videointelligence_v1beta1.proto import video_intelligence_pb2_grpc from google.longrunning import operations_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-videointelligence', ).version + "google-cloud-videointelligence" +).version class VideoIntelligenceServiceClient(object): """Service that implements Google Cloud Video Intelligence API.""" - SERVICE_ADDRESS = 'videointelligence.googleapis.com:443' + SERVICE_ADDRESS = "videointelligence.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.videointelligence.v1beta1.VideoIntelligenceService' + _INTERFACE_NAME = "google.cloud.videointelligence.v1beta1.VideoIntelligenceService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -62,19 +67,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: VideoIntelligenceServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -108,18 +114,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = video_intelligence_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -128,25 +135,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=video_intelligence_service_grpc_transport. - VideoIntelligenceServiceGrpcTransport, + default_class=video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +162,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,16 +172,18 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def annotate_video(self, - input_uri, - features, - input_content=None, - video_context=None, - output_uri=None, - location_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def annotate_video( + self, + input_uri, + features, + input_content=None, + video_context=None, + output_uri=None, + location_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs asynchronous video annotation. Progress and results can be retrieved through the ``google.longrunning.Operations`` interface. @@ -252,15 +261,15 @@ def annotate_video(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'annotate_video' not in self._inner_api_calls: + if "annotate_video" not in self._inner_api_calls: self._inner_api_calls[ - 'annotate_video'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.annotate_video, - default_retry=self._method_configs['AnnotateVideo'].retry, - default_timeout=self._method_configs['AnnotateVideo']. - timeout, - client_info=self._client_info, - ) + "annotate_video" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.annotate_video, + default_retry=self._method_configs["AnnotateVideo"].retry, + default_timeout=self._method_configs["AnnotateVideo"].timeout, + client_info=self._client_info, + ) request = video_intelligence_pb2.AnnotateVideoRequest( input_uri=input_uri, @@ -270,8 +279,9 @@ def annotate_video(self, output_uri=output_uri, location_id=location_id, ) - operation = self._inner_api_calls['annotate_video']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["annotate_video"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/videointelligence/google/cloud/videointelligence_v1beta1/gapic/video_intelligence_service_client_config.py b/videointelligence/google/cloud/videointelligence_v1beta1/gapic/video_intelligence_service_client_config.py index 1f9d656ca75e..fdf442f5c941 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta1/gapic/video_intelligence_service_client_config.py +++ b/videointelligence/google/cloud/videointelligence_v1beta1/gapic/video_intelligence_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.videointelligence.v1beta1.VideoIntelligenceService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,16 +13,16 @@ "initial_rpc_timeout_millis": 120000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 120000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "AnnotateVideo": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", } - } + }, } } } diff --git a/videointelligence/google/cloud/videointelligence_v1beta1/types.py b/videointelligence/google/cloud/videointelligence_v1beta1/types.py index edd50b10f86e..ec08c28daf0c 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta1/types.py +++ b/videointelligence/google/cloud/videointelligence_v1beta1/types.py @@ -38,9 +38,7 @@ status_pb2, ] -_local_modules = [ - video_intelligence_pb2, -] +_local_modules = [video_intelligence_pb2] names = [] @@ -50,7 +48,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.videointelligence_v1beta1.types' + message.__module__ = "google.cloud.videointelligence_v1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/videointelligence/google/cloud/videointelligence_v1beta2/__init__.py b/videointelligence/google/cloud/videointelligence_v1beta2/__init__.py index f035702d9420..bf725eae1532 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta2/__init__.py +++ b/videointelligence/google/cloud/videointelligence_v1beta2/__init__.py @@ -18,17 +18,16 @@ from google.cloud.videointelligence_v1beta2 import types from google.cloud.videointelligence_v1beta2.gapic import enums -from google.cloud.videointelligence_v1beta2.gapic import video_intelligence_service_client +from google.cloud.videointelligence_v1beta2.gapic import ( + video_intelligence_service_client, +) class VideoIntelligenceServiceClient( - video_intelligence_service_client.VideoIntelligenceServiceClient): + video_intelligence_service_client.VideoIntelligenceServiceClient +): __doc__ = video_intelligence_service_client.VideoIntelligenceServiceClient.__doc__ enums = enums -__all__ = ( - 'enums', - 'types', - 'VideoIntelligenceServiceClient', -) +__all__ = ("enums", "types", "VideoIntelligenceServiceClient") diff --git a/videointelligence/google/cloud/videointelligence_v1beta2/gapic/enums.py b/videointelligence/google/cloud/videointelligence_v1beta2/gapic/enums.py index c44f70eb306d..e88a884c6ade 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta2/gapic/enums.py +++ b/videointelligence/google/cloud/videointelligence_v1beta2/gapic/enums.py @@ -29,6 +29,7 @@ class Feature(enum.IntEnum): EXPLICIT_CONTENT_DETECTION (int): Explicit content detection. FACE_DETECTION (int): Human face detection and tracking. """ + FEATURE_UNSPECIFIED = 0 LABEL_DETECTION = 1 SHOT_CHANGE_DETECTION = 2 @@ -46,6 +47,7 @@ class LabelDetectionMode(enum.IntEnum): FRAME_MODE (int): Detect frame-level labels. SHOT_AND_FRAME_MODE (int): Detect both shot-level and frame-level labels. """ + LABEL_DETECTION_MODE_UNSPECIFIED = 0 SHOT_MODE = 1 FRAME_MODE = 2 @@ -64,6 +66,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): Likely. VERY_LIKELY (int): Very likely. """ + LIKELIHOOD_UNSPECIFIED = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 diff --git a/videointelligence/google/cloud/videointelligence_v1beta2/gapic/transports/video_intelligence_service_grpc_transport.py b/videointelligence/google/cloud/videointelligence_v1beta2/gapic/transports/video_intelligence_service_grpc_transport.py index 51b38fe47bbf..bd1c20669d04 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta2/gapic/transports/video_intelligence_service_grpc_transport.py +++ b/videointelligence/google/cloud/videointelligence_v1beta2/gapic/transports/video_intelligence_service_grpc_transport.py @@ -28,14 +28,17 @@ class VideoIntelligenceServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='videointelligence.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="videointelligence.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -53,35 +56,34 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'video_intelligence_service_stub': - video_intelligence_pb2_grpc.VideoIntelligenceServiceStub(channel), + "video_intelligence_service_stub": video_intelligence_pb2_grpc.VideoIntelligenceServiceStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='videointelligence.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="videointelligence.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -96,9 +98,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,4 +124,4 @@ def annotate_video(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['video_intelligence_service_stub'].AnnotateVideo + return self._stubs["video_intelligence_service_stub"].AnnotateVideo diff --git a/videointelligence/google/cloud/videointelligence_v1beta2/gapic/video_intelligence_service_client.py b/videointelligence/google/cloud/videointelligence_v1beta2/gapic/video_intelligence_service_client.py index de20c63a8043..064381d7b0ce 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta2/gapic/video_intelligence_service_client.py +++ b/videointelligence/google/cloud/videointelligence_v1beta2/gapic/video_intelligence_service_client.py @@ -28,25 +28,30 @@ import grpc from google.cloud.videointelligence_v1beta2.gapic import enums -from google.cloud.videointelligence_v1beta2.gapic import video_intelligence_service_client_config -from google.cloud.videointelligence_v1beta2.gapic.transports import video_intelligence_service_grpc_transport +from google.cloud.videointelligence_v1beta2.gapic import ( + video_intelligence_service_client_config, +) +from google.cloud.videointelligence_v1beta2.gapic.transports import ( + video_intelligence_service_grpc_transport, +) from google.cloud.videointelligence_v1beta2.proto import video_intelligence_pb2 from google.cloud.videointelligence_v1beta2.proto import video_intelligence_pb2_grpc from google.longrunning import operations_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-videointelligence', ).version + "google-cloud-videointelligence" +).version class VideoIntelligenceServiceClient(object): """Service that implements Google Cloud Video Intelligence API.""" - SERVICE_ADDRESS = 'videointelligence.googleapis.com:443' + SERVICE_ADDRESS = "videointelligence.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.videointelligence.v1beta2.VideoIntelligenceService' + _INTERFACE_NAME = "google.cloud.videointelligence.v1beta2.VideoIntelligenceService" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -62,19 +67,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: VideoIntelligenceServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -108,18 +114,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = video_intelligence_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -128,25 +135,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=video_intelligence_service_grpc_transport. - VideoIntelligenceServiceGrpcTransport, + default_class=video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +162,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,16 +172,18 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def annotate_video(self, - input_uri=None, - input_content=None, - features=None, - video_context=None, - output_uri=None, - location_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def annotate_video( + self, + input_uri=None, + input_content=None, + features=None, + video_context=None, + output_uri=None, + location_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs asynchronous video annotation. Progress and results can be retrieved through the ``google.longrunning.Operations`` interface. @@ -251,15 +260,15 @@ def annotate_video(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'annotate_video' not in self._inner_api_calls: + if "annotate_video" not in self._inner_api_calls: self._inner_api_calls[ - 'annotate_video'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.annotate_video, - default_retry=self._method_configs['AnnotateVideo'].retry, - default_timeout=self._method_configs['AnnotateVideo']. - timeout, - client_info=self._client_info, - ) + "annotate_video" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.annotate_video, + default_retry=self._method_configs["AnnotateVideo"].retry, + default_timeout=self._method_configs["AnnotateVideo"].timeout, + client_info=self._client_info, + ) request = video_intelligence_pb2.AnnotateVideoRequest( input_uri=input_uri, @@ -269,8 +278,9 @@ def annotate_video(self, output_uri=output_uri, location_id=location_id, ) - operation = self._inner_api_calls['annotate_video']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["annotate_video"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/videointelligence/google/cloud/videointelligence_v1beta2/gapic/video_intelligence_service_client_config.py b/videointelligence/google/cloud/videointelligence_v1beta2/gapic/video_intelligence_service_client_config.py index f980e785b3dd..9bae7bc23bed 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta2/gapic/video_intelligence_service_client_config.py +++ b/videointelligence/google/cloud/videointelligence_v1beta2/gapic/video_intelligence_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.videointelligence.v1beta2.VideoIntelligenceService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,16 +13,16 @@ "initial_rpc_timeout_millis": 120000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 120000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "AnnotateVideo": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", } - } + }, } } } diff --git a/videointelligence/google/cloud/videointelligence_v1beta2/types.py b/videointelligence/google/cloud/videointelligence_v1beta2/types.py index cee423328e24..34a487380082 100644 --- a/videointelligence/google/cloud/videointelligence_v1beta2/types.py +++ b/videointelligence/google/cloud/videointelligence_v1beta2/types.py @@ -40,9 +40,7 @@ status_pb2, ] -_local_modules = [ - video_intelligence_pb2, -] +_local_modules = [video_intelligence_pb2] names = [] @@ -52,7 +50,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.videointelligence_v1beta2.types' + message.__module__ = "google.cloud.videointelligence_v1beta2.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/videointelligence/google/cloud/videointelligence_v1p1beta1/__init__.py b/videointelligence/google/cloud/videointelligence_v1p1beta1/__init__.py index 9cc37eaf5338..a407f6df549d 100644 --- a/videointelligence/google/cloud/videointelligence_v1p1beta1/__init__.py +++ b/videointelligence/google/cloud/videointelligence_v1p1beta1/__init__.py @@ -18,17 +18,16 @@ from google.cloud.videointelligence_v1p1beta1 import types from google.cloud.videointelligence_v1p1beta1.gapic import enums -from google.cloud.videointelligence_v1p1beta1.gapic import video_intelligence_service_client +from google.cloud.videointelligence_v1p1beta1.gapic import ( + video_intelligence_service_client, +) class VideoIntelligenceServiceClient( - video_intelligence_service_client.VideoIntelligenceServiceClient): + video_intelligence_service_client.VideoIntelligenceServiceClient +): __doc__ = video_intelligence_service_client.VideoIntelligenceServiceClient.__doc__ enums = enums -__all__ = ( - 'enums', - 'types', - 'VideoIntelligenceServiceClient', -) +__all__ = ("enums", "types", "VideoIntelligenceServiceClient") diff --git a/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/enums.py b/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/enums.py index 06ee28ea12ae..5610608e1abf 100644 --- a/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/enums.py +++ b/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/enums.py @@ -29,6 +29,7 @@ class Feature(enum.IntEnum): EXPLICIT_CONTENT_DETECTION (int): Explicit content detection. SPEECH_TRANSCRIPTION (int): Speech transcription. """ + FEATURE_UNSPECIFIED = 0 LABEL_DETECTION = 1 SHOT_CHANGE_DETECTION = 2 @@ -46,6 +47,7 @@ class LabelDetectionMode(enum.IntEnum): FRAME_MODE (int): Detect frame-level labels. SHOT_AND_FRAME_MODE (int): Detect both shot-level and frame-level labels. """ + LABEL_DETECTION_MODE_UNSPECIFIED = 0 SHOT_MODE = 1 FRAME_MODE = 2 @@ -64,6 +66,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): Likely. VERY_LIKELY (int): Very likely. """ + LIKELIHOOD_UNSPECIFIED = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 diff --git a/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/transports/video_intelligence_service_grpc_transport.py b/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/transports/video_intelligence_service_grpc_transport.py index f94a57974ebe..bfeb1038cf14 100644 --- a/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/transports/video_intelligence_service_grpc_transport.py +++ b/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/transports/video_intelligence_service_grpc_transport.py @@ -28,14 +28,17 @@ class VideoIntelligenceServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='videointelligence.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="videointelligence.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -53,35 +56,34 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'video_intelligence_service_stub': - video_intelligence_pb2_grpc.VideoIntelligenceServiceStub(channel), + "video_intelligence_service_stub": video_intelligence_pb2_grpc.VideoIntelligenceServiceStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='videointelligence.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="videointelligence.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -96,9 +98,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,4 +124,4 @@ def annotate_video(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['video_intelligence_service_stub'].AnnotateVideo + return self._stubs["video_intelligence_service_stub"].AnnotateVideo diff --git a/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/video_intelligence_service_client.py b/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/video_intelligence_service_client.py index 3baca53f5814..74a9d0abfe56 100644 --- a/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/video_intelligence_service_client.py +++ b/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/video_intelligence_service_client.py @@ -28,25 +28,32 @@ import grpc from google.cloud.videointelligence_v1p1beta1.gapic import enums -from google.cloud.videointelligence_v1p1beta1.gapic import video_intelligence_service_client_config -from google.cloud.videointelligence_v1p1beta1.gapic.transports import video_intelligence_service_grpc_transport +from google.cloud.videointelligence_v1p1beta1.gapic import ( + video_intelligence_service_client_config, +) +from google.cloud.videointelligence_v1p1beta1.gapic.transports import ( + video_intelligence_service_grpc_transport, +) from google.cloud.videointelligence_v1p1beta1.proto import video_intelligence_pb2 from google.cloud.videointelligence_v1p1beta1.proto import video_intelligence_pb2_grpc from google.longrunning import operations_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-videointelligence', ).version + "google-cloud-videointelligence" +).version class VideoIntelligenceServiceClient(object): """Service that implements Google Cloud Video Intelligence API.""" - SERVICE_ADDRESS = 'videointelligence.googleapis.com:443' + SERVICE_ADDRESS = "videointelligence.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.videointelligence.v1p1beta1.VideoIntelligenceService' + _INTERFACE_NAME = ( + "google.cloud.videointelligence.v1p1beta1.VideoIntelligenceService" + ) @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -62,19 +69,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: VideoIntelligenceServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -108,18 +116,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = video_intelligence_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -128,25 +137,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=video_intelligence_service_grpc_transport. - VideoIntelligenceServiceGrpcTransport, + default_class=video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +164,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,16 +174,18 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def annotate_video(self, - input_uri=None, - input_content=None, - features=None, - video_context=None, - output_uri=None, - location_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def annotate_video( + self, + input_uri=None, + input_content=None, + features=None, + video_context=None, + output_uri=None, + location_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs asynchronous video annotation. Progress and results can be retrieved through the ``google.longrunning.Operations`` interface. @@ -251,15 +262,15 @@ def annotate_video(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'annotate_video' not in self._inner_api_calls: + if "annotate_video" not in self._inner_api_calls: self._inner_api_calls[ - 'annotate_video'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.annotate_video, - default_retry=self._method_configs['AnnotateVideo'].retry, - default_timeout=self._method_configs['AnnotateVideo']. - timeout, - client_info=self._client_info, - ) + "annotate_video" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.annotate_video, + default_retry=self._method_configs["AnnotateVideo"].retry, + default_timeout=self._method_configs["AnnotateVideo"].timeout, + client_info=self._client_info, + ) request = video_intelligence_pb2.AnnotateVideoRequest( input_uri=input_uri, @@ -269,8 +280,9 @@ def annotate_video(self, output_uri=output_uri, location_id=location_id, ) - operation = self._inner_api_calls['annotate_video']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["annotate_video"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/video_intelligence_service_client_config.py b/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/video_intelligence_service_client_config.py index 20ad2861125d..ba29086dc464 100644 --- a/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/video_intelligence_service_client_config.py +++ b/videointelligence/google/cloud/videointelligence_v1p1beta1/gapic/video_intelligence_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.videointelligence.v1p1beta1.VideoIntelligenceService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,16 +13,16 @@ "initial_rpc_timeout_millis": 120000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 120000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "AnnotateVideo": { "timeout_millis": 600000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", } - } + }, } } } diff --git a/videointelligence/google/cloud/videointelligence_v1p1beta1/types.py b/videointelligence/google/cloud/videointelligence_v1p1beta1/types.py index 8bd345a758d4..bb116422cfe5 100644 --- a/videointelligence/google/cloud/videointelligence_v1p1beta1/types.py +++ b/videointelligence/google/cloud/videointelligence_v1p1beta1/types.py @@ -40,9 +40,7 @@ status_pb2, ] -_local_modules = [ - video_intelligence_pb2, -] +_local_modules = [video_intelligence_pb2] names = [] @@ -52,7 +50,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.videointelligence_v1p1beta1.types' + message.__module__ = "google.cloud.videointelligence_v1p1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/videointelligence/google/cloud/videointelligence_v1p2beta1/__init__.py b/videointelligence/google/cloud/videointelligence_v1p2beta1/__init__.py index d4a4f156b3be..7469fafdb372 100644 --- a/videointelligence/google/cloud/videointelligence_v1p2beta1/__init__.py +++ b/videointelligence/google/cloud/videointelligence_v1p2beta1/__init__.py @@ -18,17 +18,16 @@ from google.cloud.videointelligence_v1p2beta1 import types from google.cloud.videointelligence_v1p2beta1.gapic import enums -from google.cloud.videointelligence_v1p2beta1.gapic import video_intelligence_service_client +from google.cloud.videointelligence_v1p2beta1.gapic import ( + video_intelligence_service_client, +) class VideoIntelligenceServiceClient( - video_intelligence_service_client.VideoIntelligenceServiceClient): + video_intelligence_service_client.VideoIntelligenceServiceClient +): __doc__ = video_intelligence_service_client.VideoIntelligenceServiceClient.__doc__ enums = enums -__all__ = ( - 'enums', - 'types', - 'VideoIntelligenceServiceClient', -) +__all__ = ("enums", "types", "VideoIntelligenceServiceClient") diff --git a/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/enums.py b/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/enums.py index 69f19b8f6d44..d8c46445eae5 100644 --- a/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/enums.py +++ b/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/enums.py @@ -30,6 +30,7 @@ class Feature(enum.IntEnum): TEXT_DETECTION (int): OCR text detection and tracking. OBJECT_TRACKING (int): Object detection and tracking. """ + FEATURE_UNSPECIFIED = 0 LABEL_DETECTION = 1 SHOT_CHANGE_DETECTION = 2 @@ -48,6 +49,7 @@ class LabelDetectionMode(enum.IntEnum): FRAME_MODE (int): Detect frame-level labels. SHOT_AND_FRAME_MODE (int): Detect both shot-level and frame-level labels. """ + LABEL_DETECTION_MODE_UNSPECIFIED = 0 SHOT_MODE = 1 FRAME_MODE = 2 @@ -66,6 +68,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): Likely. VERY_LIKELY (int): Very likely. """ + LIKELIHOOD_UNSPECIFIED = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 diff --git a/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/transports/video_intelligence_service_grpc_transport.py b/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/transports/video_intelligence_service_grpc_transport.py index 0575633e287a..b9323fd1b830 100644 --- a/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/transports/video_intelligence_service_grpc_transport.py +++ b/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/transports/video_intelligence_service_grpc_transport.py @@ -28,14 +28,17 @@ class VideoIntelligenceServiceGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='videointelligence.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="videointelligence.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -53,35 +56,34 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'video_intelligence_service_stub': - video_intelligence_pb2_grpc.VideoIntelligenceServiceStub(channel), + "video_intelligence_service_stub": video_intelligence_pb2_grpc.VideoIntelligenceServiceStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='videointelligence.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="videointelligence.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -96,9 +98,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,4 +124,4 @@ def annotate_video(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['video_intelligence_service_stub'].AnnotateVideo + return self._stubs["video_intelligence_service_stub"].AnnotateVideo diff --git a/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/video_intelligence_service_client.py b/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/video_intelligence_service_client.py index f26b4c1dc507..e58e5a7f8c2f 100644 --- a/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/video_intelligence_service_client.py +++ b/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/video_intelligence_service_client.py @@ -28,25 +28,32 @@ import grpc from google.cloud.videointelligence_v1p2beta1.gapic import enums -from google.cloud.videointelligence_v1p2beta1.gapic import video_intelligence_service_client_config -from google.cloud.videointelligence_v1p2beta1.gapic.transports import video_intelligence_service_grpc_transport +from google.cloud.videointelligence_v1p2beta1.gapic import ( + video_intelligence_service_client_config, +) +from google.cloud.videointelligence_v1p2beta1.gapic.transports import ( + video_intelligence_service_grpc_transport, +) from google.cloud.videointelligence_v1p2beta1.proto import video_intelligence_pb2 from google.cloud.videointelligence_v1p2beta1.proto import video_intelligence_pb2_grpc from google.longrunning import operations_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-videointelligence', ).version + "google-cloud-videointelligence" +).version class VideoIntelligenceServiceClient(object): """Service that implements Google Cloud Video Intelligence API.""" - SERVICE_ADDRESS = 'videointelligence.googleapis.com:443' + SERVICE_ADDRESS = "videointelligence.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.videointelligence.v1p2beta1.VideoIntelligenceService' + _INTERFACE_NAME = ( + "google.cloud.videointelligence.v1p2beta1.VideoIntelligenceService" + ) @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -62,19 +69,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: VideoIntelligenceServiceClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -108,18 +116,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = video_intelligence_service_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -128,25 +137,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=video_intelligence_service_grpc_transport. - VideoIntelligenceServiceGrpcTransport, + default_class=video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = video_intelligence_service_grpc_transport.VideoIntelligenceServiceGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -156,7 +164,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -165,16 +174,18 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def annotate_video(self, - input_uri=None, - input_content=None, - features=None, - video_context=None, - output_uri=None, - location_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def annotate_video( + self, + input_uri=None, + input_content=None, + features=None, + video_context=None, + output_uri=None, + location_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Performs asynchronous video annotation. Progress and results can be retrieved through the ``google.longrunning.Operations`` interface. @@ -251,15 +262,15 @@ def annotate_video(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'annotate_video' not in self._inner_api_calls: + if "annotate_video" not in self._inner_api_calls: self._inner_api_calls[ - 'annotate_video'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.annotate_video, - default_retry=self._method_configs['AnnotateVideo'].retry, - default_timeout=self._method_configs['AnnotateVideo']. - timeout, - client_info=self._client_info, - ) + "annotate_video" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.annotate_video, + default_retry=self._method_configs["AnnotateVideo"].retry, + default_timeout=self._method_configs["AnnotateVideo"].timeout, + client_info=self._client_info, + ) request = video_intelligence_pb2.AnnotateVideoRequest( input_uri=input_uri, @@ -269,8 +280,9 @@ def annotate_video(self, output_uri=output_uri, location_id=location_id, ) - operation = self._inner_api_calls['annotate_video']( - request, retry=retry, timeout=timeout, metadata=metadata) + operation = self._inner_api_calls["annotate_video"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/video_intelligence_service_client_config.py b/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/video_intelligence_service_client_config.py index 065760475ee0..4c0b9f3858b9 100644 --- a/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/video_intelligence_service_client_config.py +++ b/videointelligence/google/cloud/videointelligence_v1p2beta1/gapic/video_intelligence_service_client_config.py @@ -3,7 +3,7 @@ "google.cloud.videointelligence.v1p2beta1.VideoIntelligenceService": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,16 +13,16 @@ "initial_rpc_timeout_millis": 120000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 120000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "AnnotateVideo": { "timeout_millis": 600000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", } - } + }, } } } diff --git a/videointelligence/google/cloud/videointelligence_v1p2beta1/types.py b/videointelligence/google/cloud/videointelligence_v1p2beta1/types.py index e7d35d987fa5..bf78ceffd431 100644 --- a/videointelligence/google/cloud/videointelligence_v1p2beta1/types.py +++ b/videointelligence/google/cloud/videointelligence_v1p2beta1/types.py @@ -40,9 +40,7 @@ status_pb2, ] -_local_modules = [ - video_intelligence_pb2, -] +_local_modules = [video_intelligence_pb2] names = [] @@ -52,7 +50,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.videointelligence_v1p2beta1.types' + message.__module__ = "google.cloud.videointelligence_v1p2beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/videointelligence/tests/unit/gapic/v1/test_video_intelligence_service_client_v1.py b/videointelligence/tests/unit/gapic/v1/test_video_intelligence_service_client_v1.py index b7308cdd7b8e..00c648baa754 100644 --- a/videointelligence/tests/unit/gapic/v1/test_video_intelligence_service_client_v1.py +++ b/videointelligence/tests/unit/gapic/v1/test_video_intelligence_service_client_v1.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,31 +67,33 @@ def test_annotate_video(self): # Setup Expected Response expected_response = {} expected_response = video_intelligence_pb2.AnnotateVideoResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_annotate_video', done=True) + name="operations/test_annotate_video", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = videointelligence_v1.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] - response = client.annotate_video( - input_uri=input_uri, features=features) + response = client.annotate_video(input_uri=input_uri, features=features) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = video_intelligence_pb2.AnnotateVideoRequest( - input_uri=input_uri, features=features) + input_uri=input_uri, features=features + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -102,22 +101,22 @@ def test_annotate_video_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_annotate_video_exception', done=True) + name="operations/test_annotate_video_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = videointelligence_v1.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] - response = client.annotate_video( - input_uri=input_uri, features=features) + response = client.annotate_video(input_uri=input_uri, features=features) exception = response.exception() assert exception.errors[0] == error diff --git a/videointelligence/tests/unit/gapic/v1beta1/test_video_intelligence_service_client_v1beta1.py b/videointelligence/tests/unit/gapic/v1beta1/test_video_intelligence_service_client_v1beta1.py index 23a5c61f65aa..1b5c72aef020 100644 --- a/videointelligence/tests/unit/gapic/v1beta1/test_video_intelligence_service_client_v1beta1.py +++ b/videointelligence/tests/unit/gapic/v1beta1/test_video_intelligence_service_client_v1beta1.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,20 +67,22 @@ def test_annotate_video(self): # Setup Expected Response expected_response = {} expected_response = video_intelligence_pb2.AnnotateVideoResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_annotate_video', done=True) + name="operations/test_annotate_video", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = videointelligence_v1beta1.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] @@ -93,7 +92,8 @@ def test_annotate_video(self): assert len(channel.requests) == 1 expected_request = video_intelligence_pb2.AnnotateVideoRequest( - input_uri=input_uri, features=features) + input_uri=input_uri, features=features + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -101,18 +101,19 @@ def test_annotate_video_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_annotate_video_exception', done=True) + name="operations/test_annotate_video_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = videointelligence_v1beta1.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] diff --git a/videointelligence/tests/unit/gapic/v1beta2/test_video_intelligence_service_client_v1beta2.py b/videointelligence/tests/unit/gapic/v1beta2/test_video_intelligence_service_client_v1beta2.py index aeaf9c799c23..8f87c6721b46 100644 --- a/videointelligence/tests/unit/gapic/v1beta2/test_video_intelligence_service_client_v1beta2.py +++ b/videointelligence/tests/unit/gapic/v1beta2/test_video_intelligence_service_client_v1beta2.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,31 +67,33 @@ def test_annotate_video(self): # Setup Expected Response expected_response = {} expected_response = video_intelligence_pb2.AnnotateVideoResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_annotate_video', done=True) + name="operations/test_annotate_video", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = videointelligence_v1beta2.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] - response = client.annotate_video( - input_uri=input_uri, features=features) + response = client.annotate_video(input_uri=input_uri, features=features) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = video_intelligence_pb2.AnnotateVideoRequest( - input_uri=input_uri, features=features) + input_uri=input_uri, features=features + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -102,22 +101,22 @@ def test_annotate_video_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_annotate_video_exception', done=True) + name="operations/test_annotate_video_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = videointelligence_v1beta2.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] - response = client.annotate_video( - input_uri=input_uri, features=features) + response = client.annotate_video(input_uri=input_uri, features=features) exception = response.exception() assert exception.errors[0] == error diff --git a/videointelligence/tests/unit/gapic/v1p1beta1/test_video_intelligence_service_client_v1p1beta1.py b/videointelligence/tests/unit/gapic/v1p1beta1/test_video_intelligence_service_client_v1p1beta1.py index 65f8d3813763..806e05a6d5b0 100644 --- a/videointelligence/tests/unit/gapic/v1p1beta1/test_video_intelligence_service_client_v1p1beta1.py +++ b/videointelligence/tests/unit/gapic/v1p1beta1/test_video_intelligence_service_client_v1p1beta1.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,32 +67,33 @@ def test_annotate_video(self): # Setup Expected Response expected_response = {} expected_response = video_intelligence_pb2.AnnotateVideoResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_annotate_video', done=True) + name="operations/test_annotate_video", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel - client = videointelligence_v1p1beta1.VideoIntelligenceServiceClient( - ) + client = videointelligence_v1p1beta1.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] - response = client.annotate_video( - input_uri=input_uri, features=features) + response = client.annotate_video(input_uri=input_uri, features=features) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = video_intelligence_pb2.AnnotateVideoRequest( - input_uri=input_uri, features=features) + input_uri=input_uri, features=features + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -103,23 +101,22 @@ def test_annotate_video_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_annotate_video_exception', done=True) + name="operations/test_annotate_video_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel - client = videointelligence_v1p1beta1.VideoIntelligenceServiceClient( - ) + client = videointelligence_v1p1beta1.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] - response = client.annotate_video( - input_uri=input_uri, features=features) + response = client.annotate_video(input_uri=input_uri, features=features) exception = response.exception() assert exception.errors[0] == error diff --git a/videointelligence/tests/unit/gapic/v1p2beta1/test_video_intelligence_service_client_v1p2beta1.py b/videointelligence/tests/unit/gapic/v1p2beta1/test_video_intelligence_service_client_v1p2beta1.py index 9e6e9d0332d1..eceaa1eedc5f 100644 --- a/videointelligence/tests/unit/gapic/v1p2beta1/test_video_intelligence_service_client_v1p2beta1.py +++ b/videointelligence/tests/unit/gapic/v1p2beta1/test_video_intelligence_service_client_v1p2beta1.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,32 +67,33 @@ def test_annotate_video(self): # Setup Expected Response expected_response = {} expected_response = video_intelligence_pb2.AnnotateVideoResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_annotate_video', done=True) + name="operations/test_annotate_video", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel - client = videointelligence_v1p2beta1.VideoIntelligenceServiceClient( - ) + client = videointelligence_v1p2beta1.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] - response = client.annotate_video( - input_uri=input_uri, features=features) + response = client.annotate_video(input_uri=input_uri, features=features) result = response.result() assert expected_response == result assert len(channel.requests) == 1 expected_request = video_intelligence_pb2.AnnotateVideoRequest( - input_uri=input_uri, features=features) + input_uri=input_uri, features=features + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -103,23 +101,22 @@ def test_annotate_video_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_annotate_video_exception', done=True) + name="operations/test_annotate_video_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel - client = videointelligence_v1p2beta1.VideoIntelligenceServiceClient( - ) + client = videointelligence_v1p2beta1.VideoIntelligenceServiceClient() # Setup Request - input_uri = 'gs://demomaker/cat.mp4' + input_uri = "gs://demomaker/cat.mp4" features_element = enums.Feature.LABEL_DETECTION features = [features_element] - response = client.annotate_video( - input_uri=input_uri, features=features) + response = client.annotate_video(input_uri=input_uri, features=features) exception = response.exception() assert exception.errors[0] == error diff --git a/vision/docs/conf.py b/vision/docs/conf.py index 5f84372ebbcc..ef7b060747c4 100644 --- a/vision/docs/conf.py +++ b/vision/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-vision' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-vision" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-vision-doc' +htmlhelp_basename = "google-cloud-vision-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-vision.tex', - u'google-cloud-vision Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-vision.tex", + u"google-cloud-vision Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-vision', - u'google-cloud-vision Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-vision", + u"google-cloud-vision Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,27 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-vision', u'google-cloud-vision Documentation', - author, 'google-cloud-vision', - 'GAPIC library for the {metadata.shortName} v1 service', 'APIs'), + ( + master_doc, + "google-cloud-vision", + u"google-cloud-vision Documentation", + author, + "google-cloud-vision", + "GAPIC library for the {metadata.shortName} v1 service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/vision/google/__init__.py b/vision/google/__init__.py index 7a9e5a0ef198..dd3a9f485275 100644 --- a/vision/google/__init__.py +++ b/vision/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/vision/google/cloud/__init__.py b/vision/google/cloud/__init__.py index 9ee9bf4342ab..0e1bc5131ba6 100644 --- a/vision/google/cloud/__init__.py +++ b/vision/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/vision/google/cloud/vision.py b/vision/google/cloud/vision.py index 47420e793dfa..99c0b460cecb 100644 --- a/vision/google/cloud/vision.py +++ b/vision/google/cloud/vision.py @@ -19,9 +19,4 @@ from google.cloud.vision_v1 import enums from google.cloud.vision_v1 import types -__all__ = ( - 'enums', - 'types', - 'ImageAnnotatorClient', - 'ProductSearchClient', -) +__all__ = ("enums", "types", "ImageAnnotatorClient", "ProductSearchClient") diff --git a/vision/google/cloud/vision_helpers/__init__.py b/vision/google/cloud/vision_helpers/__init__.py index c99766dcb8af..b89166476b71 100644 --- a/vision/google/cloud/vision_helpers/__init__.py +++ b/vision/google/cloud/vision_helpers/__init__.py @@ -25,6 +25,7 @@ class VisionHelpers(object): in a multiple-inheritance construction alongside the applicable GAPIC. See the :class:`~google.cloud.vision_v1.ImageAnnotatorClient`. """ + def annotate_image(self, request, retry=None, timeout=None): """Run image detection and annotation for an image. @@ -51,23 +52,23 @@ def annotate_image(self, request, retry=None, timeout=None): :class:`~.vision_v1.types.AnnotateImageResponse` The API response. """ # If the image is a file handler, set the content. - image = protobuf.get(request, 'image') - if hasattr(image, 'read'): + image = protobuf.get(request, "image") + if hasattr(image, "read"): img_bytes = image.read() - protobuf.set(request, 'image', {}) - protobuf.set(request, 'image.content', img_bytes) - image = protobuf.get(request, 'image') + protobuf.set(request, "image", {}) + protobuf.set(request, "image.content", img_bytes) + image = protobuf.get(request, "image") # If a filename is provided, read the file. - filename = protobuf.get(image, 'source.filename', default=None) + filename = protobuf.get(image, "source.filename", default=None) if filename: - with io.open(filename, 'rb') as img_file: - protobuf.set(request, 'image.content', img_file.read()) - protobuf.set(request, 'image.source', None) + with io.open(filename, "rb") as img_file: + protobuf.set(request, "image.content", img_file.read()) + protobuf.set(request, "image.source", None) # This method allows features not to be specified, and you get all # of them. - protobuf.setdefault(request, 'features', self._get_all_features()) + protobuf.setdefault(request, "features", self._get_all_features()) r = self.batch_annotate_images([request], retry=retry, timeout=timeout) return r.responses[0] @@ -78,5 +79,5 @@ def _get_all_features(self): list: A list of all available features. """ return [ - {'type': feature} - for feature in self.enums.Feature.Type if feature != 0] + {"type": feature} for feature in self.enums.Feature.Type if feature != 0 + ] diff --git a/vision/google/cloud/vision_helpers/decorators.py b/vision/google/cloud/vision_helpers/decorators.py index 47b2cb3d2da5..804a171c74f5 100644 --- a/vision/google/cloud/vision_helpers/decorators.py +++ b/vision/google/cloud/vision_helpers/decorators.py @@ -23,13 +23,13 @@ def add_single_feature_methods(cls): """ # Sanity check: This only makes sense if we are building the GAPIC # subclass and have enums already attached. - if not hasattr(cls, 'enums'): + if not hasattr(cls, "enums"): return cls # Add each single-feature method to the class. for feature in cls.enums.Feature.Type: # Sanity check: Do not make a method for the falsy feature. - if feature.name == 'TYPE_UNSPECIFIED': + if feature.name == "TYPE_UNSPECIFIED": continue # Assign the appropriate metadata to the function. @@ -37,13 +37,10 @@ def add_single_feature_methods(cls): # Assign a qualified name to the function, and perform module # replacement on the docstring. - detect.__qualname__ = '{cls}.{name}'.format( - cls=cls.__name__, - name=detect.__name__, - ) - detect.__doc__ = detect.__doc__.format( - module=cls.__module__, + detect.__qualname__ = "{cls}.{name}".format( + cls=cls.__name__, name=detect.__name__ ) + detect.__doc__ = detect.__doc__.format(module=cls.__module__) # Place the function on the class being created. setattr(cls, detect.__name__, detect) @@ -64,12 +61,10 @@ def _create_single_feature_method(feature): """ # Define the function properties. fx_name = feature.name.lower() - if 'detection' in fx_name: - fx_doc = 'Perform {0}.'.format(fx_name.replace('_', ' ')) + if "detection" in fx_name: + fx_doc = "Perform {0}.".format(fx_name.replace("_", " ")) else: - fx_doc = 'Return {desc} information.'.format( - desc=fx_name.replace('_', ' '), - ) + fx_doc = "Return {desc} information.".format(desc=fx_name.replace("_", " ")) # Provide a complete docstring with argument and return value # information. @@ -90,11 +85,10 @@ def _create_single_feature_method(feature): """ # Get the actual feature value to send. - feature_value = {'type': feature} + feature_value = {"type": feature} # Define the function to be returned. - def inner(self, image, max_results=None, - retry=None, timeout=None, **kwargs): + def inner(self, image, max_results=None, retry=None, timeout=None, **kwargs): """Return a single feature annotation for the given image. Intended for use with functools.partial, to create the particular @@ -102,12 +96,8 @@ def inner(self, image, max_results=None, """ copied_features = feature_value.copy() if max_results is not None: - copied_features['max_results'] = max_results - request = dict( - image=image, - features=[copied_features], - **kwargs - ) + copied_features["max_results"] = max_results + request = dict(image=image, features=[copied_features], **kwargs) response = self.annotate_image(request, retry=retry, timeout=timeout) return response diff --git a/vision/google/cloud/vision_v1/__init__.py b/vision/google/cloud/vision_v1/__init__.py index 8f374cf5e3f1..d69c838112c3 100644 --- a/vision/google/cloud/vision_v1/__init__.py +++ b/vision/google/cloud/vision_v1/__init__.py @@ -36,9 +36,4 @@ class ImageAnnotatorClient(VisionHelpers, iac.ImageAnnotatorClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'ProductSearchClient', - 'ImageAnnotatorClient', -) +__all__ = ("enums", "types", "ProductSearchClient", "ImageAnnotatorClient") diff --git a/vision/google/cloud/vision_v1/gapic/enums.py b/vision/google/cloud/vision_v1/gapic/enums.py index f5db4de3d104..b06fdf6eee10 100644 --- a/vision/google/cloud/vision_v1/gapic/enums.py +++ b/vision/google/cloud/vision_v1/gapic/enums.py @@ -31,6 +31,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): It is likely that the image belongs to the specified vertical. VERY_LIKELY (int): It is very likely that the image belongs to the specified vertical. """ + UNKNOWN = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 @@ -54,6 +55,7 @@ class BreakType(enum.IntEnum): ``SPACE``, ``LEADER_SPACE``, or ``LINE_BREAK``. LINE_BREAK (int): Line break that ends a paragraph. """ + UNKNOWN = 0 SPACE = 1 SURE_SPACE = 2 @@ -75,6 +77,7 @@ class BlockType(enum.IntEnum): RULER (int): Horizontal/vertical line box. BARCODE (int): Barcode block. """ + UNKNOWN = 0 TEXT = 1 TABLE = 2 @@ -98,6 +101,7 @@ class State(enum.IntEnum): been called by the user. Any records that were processed before the cancel command are output as specified in the request. """ + STATE_UNSPECIFIED = 0 PROCESSING = 1 SUCCESSFUL = 2 @@ -130,6 +134,7 @@ class Type(enum.IntEnum): PRODUCT_SEARCH (int): Run Product Search. OBJECT_LOCALIZATION (int): Run localizer for object detection. """ + TYPE_UNSPECIFIED = 0 FACE_DETECTION = 1 LANDMARK_DETECTION = 2 @@ -191,6 +196,7 @@ class Type(enum.IntEnum): CHIN_LEFT_GONION (int): Chin left gonion. CHIN_RIGHT_GONION (int): Chin right gonion. """ + UNKNOWN_LANDMARK = 0 LEFT_EYE = 1 RIGHT_EYE = 2 @@ -240,6 +246,7 @@ class State(enum.IntEnum): DONE (int): The batch processing is done. CANCELLED (int): The batch processing was cancelled. """ + STATE_UNSPECIFIED = 0 CREATED = 1 RUNNING = 2 diff --git a/vision/google/cloud/vision_v1/gapic/image_annotator_client.py b/vision/google/cloud/vision_v1/gapic/image_annotator_client.py index f9812bb8d500..2dc74c3d0552 100644 --- a/vision/google/cloud/vision_v1/gapic/image_annotator_client.py +++ b/vision/google/cloud/vision_v1/gapic/image_annotator_client.py @@ -38,8 +38,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-vision', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-vision").version class ImageAnnotatorClient(object): @@ -49,12 +48,12 @@ class ImageAnnotatorClient(object): ImageAnnotator service returns detected entities from the images. """ - SERVICE_ADDRESS = 'vision.googleapis.com:443' + SERVICE_ADDRESS = "vision.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.vision.v1.ImageAnnotator' + _INTERFACE_NAME = "google.cloud.vision.v1.ImageAnnotator" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -70,19 +69,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ImageAnnotatorClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -116,18 +116,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = image_annotator_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -136,25 +137,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=image_annotator_grpc_transport. - ImageAnnotatorGrpcTransport, + default_class=image_annotator_grpc_transport.ImageAnnotatorGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = image_annotator_grpc_transport.ImageAnnotatorGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -164,7 +164,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -173,11 +174,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def batch_annotate_images(self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def batch_annotate_images( + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Run image detection and annotation for a batch of images. @@ -216,28 +219,28 @@ def batch_annotate_images(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'batch_annotate_images' not in self._inner_api_calls: + if "batch_annotate_images" not in self._inner_api_calls: self._inner_api_calls[ - 'batch_annotate_images'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.batch_annotate_images, - default_retry=self._method_configs['BatchAnnotateImages']. - retry, - default_timeout=self. - _method_configs['BatchAnnotateImages'].timeout, - client_info=self._client_info, - ) + "batch_annotate_images" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.batch_annotate_images, + default_retry=self._method_configs["BatchAnnotateImages"].retry, + default_timeout=self._method_configs["BatchAnnotateImages"].timeout, + client_info=self._client_info, + ) - request = image_annotator_pb2.BatchAnnotateImagesRequest( - requests=requests, ) - return self._inner_api_calls['batch_annotate_images']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = image_annotator_pb2.BatchAnnotateImagesRequest(requests=requests) + return self._inner_api_calls["batch_annotate_images"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def async_batch_annotate_files( - self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple @@ -290,21 +293,20 @@ def async_batch_annotate_files( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'async_batch_annotate_files' not in self._inner_api_calls: + if "async_batch_annotate_files" not in self._inner_api_calls: self._inner_api_calls[ - 'async_batch_annotate_files'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.async_batch_annotate_files, - default_retry=self. - _method_configs['AsyncBatchAnnotateFiles'].retry, - default_timeout=self. - _method_configs['AsyncBatchAnnotateFiles'].timeout, - client_info=self._client_info, - ) + "async_batch_annotate_files" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.async_batch_annotate_files, + default_retry=self._method_configs["AsyncBatchAnnotateFiles"].retry, + default_timeout=self._method_configs["AsyncBatchAnnotateFiles"].timeout, + client_info=self._client_info, + ) - request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest( - requests=requests, ) - operation = self._inner_api_calls['async_batch_annotate_files']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest(requests=requests) + operation = self._inner_api_calls["async_batch_annotate_files"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/vision/google/cloud/vision_v1/gapic/image_annotator_client_config.py b/vision/google/cloud/vision_v1/gapic/image_annotator_client_config.py index dfadcc2d2e96..dc43ed99fcd6 100644 --- a/vision/google/cloud/vision_v1/gapic/image_annotator_client_config.py +++ b/vision/google/cloud/vision_v1/gapic/image_annotator_client_config.py @@ -3,7 +3,7 @@ "google.cloud.vision.v1.ImageAnnotator": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,21 +13,21 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "BatchAnnotateImages": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AsyncBatchAnnotateFiles": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/vision/google/cloud/vision_v1/gapic/product_search_client.py b/vision/google/cloud/vision_v1/gapic/product_search_client.py index abe8143a9b27..58ffd0daa6fe 100644 --- a/vision/google/cloud/vision_v1/gapic/product_search_client.py +++ b/vision/google/cloud/vision_v1/gapic/product_search_client.py @@ -39,8 +39,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-vision', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-vision").version class ProductSearchClient(object): @@ -61,12 +60,12 @@ class ProductSearchClient(object): named ``projects/*/locations/*/products/*/referenceImages/*`` """ - SERVICE_ADDRESS = 'vision.googleapis.com:443' + SERVICE_ADDRESS = "vision.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.vision.v1.ProductSearch' + _INTERFACE_NAME = "google.cloud.vision.v1.ProductSearch" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -82,9 +81,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ProductSearchClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -93,7 +91,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -102,7 +100,7 @@ def location_path(cls, project, location): def product_set_path(cls, project, location, product_set): """Return a fully-qualified product_set string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/productSets/{product_set}', + "projects/{project}/locations/{location}/productSets/{product_set}", project=project, location=location, product_set=product_set, @@ -112,7 +110,7 @@ def product_set_path(cls, project, location, product_set): def product_path(cls, project, location, product): """Return a fully-qualified product string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/products/{product}', + "projects/{project}/locations/{location}/products/{product}", project=project, location=location, product=product, @@ -122,19 +120,21 @@ def product_path(cls, project, location, product): def reference_image_path(cls, project, location, product, reference_image): """Return a fully-qualified reference_image string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/products/{product}/referenceImages/{reference_image}', + "projects/{project}/locations/{location}/products/{product}/referenceImages/{reference_image}", project=project, location=location, product=product, reference_image=reference_image, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -168,18 +168,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = product_search_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -188,25 +189,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=product_search_grpc_transport. - ProductSearchGrpcTransport, + default_class=product_search_grpc_transport.ProductSearchGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = product_search_grpc_transport.ProductSearchGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -216,7 +216,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -225,13 +226,15 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_product(self, - parent, - product, - product_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_product( + self, + parent, + product, + product_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates and returns a new product resource. @@ -287,30 +290,31 @@ def create_product(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_product' not in self._inner_api_calls: + if "create_product" not in self._inner_api_calls: self._inner_api_calls[ - 'create_product'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_product, - default_retry=self._method_configs['CreateProduct'].retry, - default_timeout=self._method_configs['CreateProduct']. - timeout, - client_info=self._client_info, - ) + "create_product" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_product, + default_retry=self._method_configs["CreateProduct"].retry, + default_timeout=self._method_configs["CreateProduct"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.CreateProductRequest( - parent=parent, - product=product, - product_id=product_id, + parent=parent, product=product, product_id=product_id + ) + return self._inner_api_calls["create_product"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_product']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_products(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def list_products( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists products in an unspecified order. @@ -372,39 +376,41 @@ def list_products(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_products' not in self._inner_api_calls: + if "list_products" not in self._inner_api_calls: self._inner_api_calls[ - 'list_products'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_products, - default_retry=self._method_configs['ListProducts'].retry, - default_timeout=self._method_configs['ListProducts']. - timeout, - client_info=self._client_info, - ) + "list_products" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_products, + default_retry=self._method_configs["ListProducts"].retry, + default_timeout=self._method_configs["ListProducts"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ListProductsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_products'], + self._inner_api_calls["list_products"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='products', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="products", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_product(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_product( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets information associated with a Product. @@ -445,25 +451,29 @@ def get_product(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_product' not in self._inner_api_calls: + if "get_product" not in self._inner_api_calls: self._inner_api_calls[ - 'get_product'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_product, - default_retry=self._method_configs['GetProduct'].retry, - default_timeout=self._method_configs['GetProduct'].timeout, - client_info=self._client_info, - ) + "get_product" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_product, + default_retry=self._method_configs["GetProduct"].retry, + default_timeout=self._method_configs["GetProduct"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.GetProductRequest(name=name, ) - return self._inner_api_calls['get_product']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = product_search_service_pb2.GetProductRequest(name=name) + return self._inner_api_calls["get_product"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_product(self, - product, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_product( + self, + product, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Makes changes to a Product resource. Only the ``display_name``, ``description``, and ``labels`` fields can be updated right now. @@ -523,28 +533,30 @@ def update_product(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_product' not in self._inner_api_calls: + if "update_product" not in self._inner_api_calls: self._inner_api_calls[ - 'update_product'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_product, - default_retry=self._method_configs['UpdateProduct'].retry, - default_timeout=self._method_configs['UpdateProduct']. - timeout, - client_info=self._client_info, - ) + "update_product" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_product, + default_retry=self._method_configs["UpdateProduct"].retry, + default_timeout=self._method_configs["UpdateProduct"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.UpdateProductRequest( - product=product, - update_mask=update_mask, + product=product, update_mask=update_mask + ) + return self._inner_api_calls["update_product"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_product']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_product(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def delete_product( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Permanently deletes a product and its reference images. @@ -586,26 +598,29 @@ def delete_product(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_product' not in self._inner_api_calls: + if "delete_product" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_product'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_product, - default_retry=self._method_configs['DeleteProduct'].retry, - default_timeout=self._method_configs['DeleteProduct']. - timeout, - client_info=self._client_info, - ) + "delete_product" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_product, + default_retry=self._method_configs["DeleteProduct"].retry, + default_timeout=self._method_configs["DeleteProduct"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.DeleteProductRequest(name=name, ) - self._inner_api_calls['delete_product']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = product_search_service_pb2.DeleteProductRequest(name=name) + self._inner_api_calls["delete_product"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_reference_images(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_reference_images( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists reference images. @@ -668,40 +683,41 @@ def list_reference_images(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_reference_images' not in self._inner_api_calls: + if "list_reference_images" not in self._inner_api_calls: self._inner_api_calls[ - 'list_reference_images'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_reference_images, - default_retry=self._method_configs['ListReferenceImages']. - retry, - default_timeout=self. - _method_configs['ListReferenceImages'].timeout, - client_info=self._client_info, - ) + "list_reference_images" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_reference_images, + default_retry=self._method_configs["ListReferenceImages"].retry, + default_timeout=self._method_configs["ListReferenceImages"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ListReferenceImagesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_reference_images'], + self._inner_api_calls["list_reference_images"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='reference_images', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="reference_images", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_reference_image(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_reference_image( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets information associated with a ReferenceImage. @@ -744,27 +760,28 @@ def get_reference_image(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_reference_image' not in self._inner_api_calls: + if "get_reference_image" not in self._inner_api_calls: self._inner_api_calls[ - 'get_reference_image'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_reference_image, - default_retry=self._method_configs['GetReferenceImage']. - retry, - default_timeout=self._method_configs['GetReferenceImage']. - timeout, - client_info=self._client_info, - ) + "get_reference_image" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_reference_image, + default_retry=self._method_configs["GetReferenceImage"].retry, + default_timeout=self._method_configs["GetReferenceImage"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.GetReferenceImageRequest( - name=name, ) - return self._inner_api_calls['get_reference_image']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = product_search_service_pb2.GetReferenceImageRequest(name=name) + return self._inner_api_calls["get_reference_image"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def delete_reference_image(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def delete_reference_image( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Permanently deletes a reference image. @@ -810,29 +827,30 @@ def delete_reference_image(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_reference_image' not in self._inner_api_calls: + if "delete_reference_image" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_reference_image'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_reference_image, - default_retry=self._method_configs['DeleteReferenceImage']. - retry, - default_timeout=self. - _method_configs['DeleteReferenceImage'].timeout, - client_info=self._client_info, - ) + "delete_reference_image" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_reference_image, + default_retry=self._method_configs["DeleteReferenceImage"].retry, + default_timeout=self._method_configs["DeleteReferenceImage"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.DeleteReferenceImageRequest( - name=name, ) - self._inner_api_calls['delete_reference_image']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_reference_image(self, - parent, - reference_image, - reference_image_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = product_search_service_pb2.DeleteReferenceImageRequest(name=name) + self._inner_api_calls["delete_reference_image"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_reference_image( + self, + parent, + reference_image, + reference_image_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates and returns a new ReferenceImage resource. @@ -901,32 +919,34 @@ def create_reference_image(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_reference_image' not in self._inner_api_calls: + if "create_reference_image" not in self._inner_api_calls: self._inner_api_calls[ - 'create_reference_image'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_reference_image, - default_retry=self._method_configs['CreateReferenceImage']. - retry, - default_timeout=self. - _method_configs['CreateReferenceImage'].timeout, - client_info=self._client_info, - ) + "create_reference_image" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_reference_image, + default_retry=self._method_configs["CreateReferenceImage"].retry, + default_timeout=self._method_configs["CreateReferenceImage"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.CreateReferenceImageRequest( parent=parent, reference_image=reference_image, reference_image_id=reference_image_id, ) - return self._inner_api_calls['create_reference_image']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_product_set(self, - parent, - product_set, - product_set_id=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["create_reference_image"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_product_set( + self, + parent, + product_set, + product_set_id=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates and returns a new ProductSet resource. @@ -979,31 +999,31 @@ def create_product_set(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_product_set' not in self._inner_api_calls: + if "create_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'create_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_product_set, - default_retry=self._method_configs['CreateProductSet']. - retry, - default_timeout=self._method_configs['CreateProductSet']. - timeout, - client_info=self._client_info, - ) + "create_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_product_set, + default_retry=self._method_configs["CreateProductSet"].retry, + default_timeout=self._method_configs["CreateProductSet"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.CreateProductSetRequest( - parent=parent, - product_set=product_set, - product_set_id=product_set_id, + parent=parent, product_set=product_set, product_set_id=product_set_id + ) + return self._inner_api_calls["create_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_product_sets(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def list_product_sets( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists ProductSets in an unspecified order. @@ -1065,40 +1085,41 @@ def list_product_sets(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_product_sets' not in self._inner_api_calls: + if "list_product_sets" not in self._inner_api_calls: self._inner_api_calls[ - 'list_product_sets'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_product_sets, - default_retry=self._method_configs['ListProductSets']. - retry, - default_timeout=self._method_configs['ListProductSets']. - timeout, - client_info=self._client_info, - ) + "list_product_sets" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_product_sets, + default_retry=self._method_configs["ListProductSets"].retry, + default_timeout=self._method_configs["ListProductSets"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ListProductSetsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_product_sets'], + self._inner_api_calls["list_product_sets"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='product_sets', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="product_sets", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_product_set(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_product_set( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets information associated with a ProductSet. @@ -1140,26 +1161,29 @@ def get_product_set(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_product_set' not in self._inner_api_calls: + if "get_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'get_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_product_set, - default_retry=self._method_configs['GetProductSet'].retry, - default_timeout=self._method_configs['GetProductSet']. - timeout, - client_info=self._client_info, - ) + "get_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_product_set, + default_retry=self._method_configs["GetProductSet"].retry, + default_timeout=self._method_configs["GetProductSet"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.GetProductSetRequest(name=name, ) - return self._inner_api_calls['get_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = product_search_service_pb2.GetProductSetRequest(name=name) + return self._inner_api_calls["get_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_product_set(self, - product_set, - update_mask=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_product_set( + self, + product_set, + update_mask=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Makes changes to a ProductSet resource. Only display\_name can be updated currently. @@ -1211,29 +1235,30 @@ def update_product_set(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_product_set' not in self._inner_api_calls: + if "update_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'update_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_product_set, - default_retry=self._method_configs['UpdateProductSet']. - retry, - default_timeout=self._method_configs['UpdateProductSet']. - timeout, - client_info=self._client_info, - ) + "update_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_product_set, + default_retry=self._method_configs["UpdateProductSet"].retry, + default_timeout=self._method_configs["UpdateProductSet"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.UpdateProductSetRequest( - product_set=product_set, - update_mask=update_mask, + product_set=product_set, update_mask=update_mask + ) + return self._inner_api_calls["update_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['update_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_product_set(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def delete_product_set( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Permanently deletes a ProductSet. Products and ReferenceImages in the ProductSet are not deleted. @@ -1275,29 +1300,29 @@ def delete_product_set(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_product_set' not in self._inner_api_calls: + if "delete_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_product_set, - default_retry=self._method_configs['DeleteProductSet']. - retry, - default_timeout=self._method_configs['DeleteProductSet']. - timeout, - client_info=self._client_info, - ) + "delete_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_product_set, + default_retry=self._method_configs["DeleteProductSet"].retry, + default_timeout=self._method_configs["DeleteProductSet"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.DeleteProductSetRequest( - name=name, ) - self._inner_api_calls['delete_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = product_search_service_pb2.DeleteProductSetRequest(name=name) + self._inner_api_calls["delete_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def add_product_to_product_set( - self, - name, - product, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + product, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Adds a Product to the specified ProductSet. If the Product is already present, no change is made. @@ -1345,31 +1370,31 @@ def add_product_to_product_set( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'add_product_to_product_set' not in self._inner_api_calls: + if "add_product_to_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'add_product_to_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.add_product_to_product_set, - default_retry=self. - _method_configs['AddProductToProductSet'].retry, - default_timeout=self. - _method_configs['AddProductToProductSet'].timeout, - client_info=self._client_info, - ) + "add_product_to_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.add_product_to_product_set, + default_retry=self._method_configs["AddProductToProductSet"].retry, + default_timeout=self._method_configs["AddProductToProductSet"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.AddProductToProductSetRequest( - name=name, - product=product, + name=name, product=product + ) + self._inner_api_calls["add_product_to_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['add_product_to_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) def remove_product_from_product_set( - self, - name, - product, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + product, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Removes a Product from the specified ProductSet. @@ -1414,31 +1439,33 @@ def remove_product_from_product_set( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'remove_product_from_product_set' not in self._inner_api_calls: + if "remove_product_from_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'remove_product_from_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.remove_product_from_product_set, - default_retry=self. - _method_configs['RemoveProductFromProductSet'].retry, - default_timeout=self. - _method_configs['RemoveProductFromProductSet'].timeout, - client_info=self._client_info, - ) + "remove_product_from_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.remove_product_from_product_set, + default_retry=self._method_configs["RemoveProductFromProductSet"].retry, + default_timeout=self._method_configs[ + "RemoveProductFromProductSet" + ].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.RemoveProductFromProductSetRequest( - name=name, - product=product, + name=name, product=product + ) + self._inner_api_calls["remove_product_from_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['remove_product_from_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) def list_products_in_product_set( - self, - name, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the Products in a ProductSet, in an unspecified order. If the ProductSet does not exist, the products field of the response will be @@ -1503,41 +1530,44 @@ def list_products_in_product_set( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_products_in_product_set' not in self._inner_api_calls: + if "list_products_in_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'list_products_in_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_products_in_product_set, - default_retry=self. - _method_configs['ListProductsInProductSet'].retry, - default_timeout=self. - _method_configs['ListProductsInProductSet'].timeout, - client_info=self._client_info, - ) + "list_products_in_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_products_in_product_set, + default_retry=self._method_configs["ListProductsInProductSet"].retry, + default_timeout=self._method_configs[ + "ListProductsInProductSet" + ].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ListProductsInProductSetRequest( - name=name, - page_size=page_size, + name=name, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_products_in_product_set'], + self._inner_api_calls["list_products_in_product_set"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='products', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="products", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def import_product_sets(self, - parent, - input_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def import_product_sets( + self, + parent, + input_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Asynchronous API that imports a list of reference images to specified product sets based on a list of image information. @@ -1600,23 +1630,22 @@ def import_product_sets(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'import_product_sets' not in self._inner_api_calls: + if "import_product_sets" not in self._inner_api_calls: self._inner_api_calls[ - 'import_product_sets'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.import_product_sets, - default_retry=self._method_configs['ImportProductSets']. - retry, - default_timeout=self._method_configs['ImportProductSets']. - timeout, - client_info=self._client_info, - ) + "import_product_sets" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.import_product_sets, + default_retry=self._method_configs["ImportProductSets"].retry, + default_timeout=self._method_configs["ImportProductSets"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ImportProductSetsRequest( - parent=parent, - input_config=input_config, + parent=parent, input_config=input_config + ) + operation = self._inner_api_calls["import_product_sets"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['import_product_sets']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/vision/google/cloud/vision_v1/gapic/product_search_client_config.py b/vision/google/cloud/vision_v1/gapic/product_search_client_config.py index be066839263b..ff598f4004ea 100644 --- a/vision/google/cloud/vision_v1/gapic/product_search_client_config.py +++ b/vision/google/cloud/vision_v1/gapic/product_search_client_config.py @@ -3,7 +3,7 @@ "google.cloud.vision.v1.ProductSearch": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,101 +13,101 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "CreateProduct": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListProducts": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetProduct": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateProduct": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteProduct": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListReferenceImages": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetReferenceImage": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteReferenceImage": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateReferenceImage": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateProductSet": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListProductSets": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AddProductToProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RemoveProductFromProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListProductsInProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ImportProductSets": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/vision/google/cloud/vision_v1/gapic/transports/image_annotator_grpc_transport.py b/vision/google/cloud/vision_v1/gapic/transports/image_annotator_grpc_transport.py index 42ebca5a51f5..c1d55efb88fd 100644 --- a/vision/google/cloud/vision_v1/gapic/transports/image_annotator_grpc_transport.py +++ b/vision/google/cloud/vision_v1/gapic/transports/image_annotator_grpc_transport.py @@ -28,17 +28,17 @@ class ImageAnnotatorGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-vision', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-vision", ) - def __init__(self, - channel=None, - credentials=None, - address='vision.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="vision.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,35 +56,30 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'image_annotator_stub': - image_annotator_pb2_grpc.ImageAnnotatorStub(channel), + "image_annotator_stub": image_annotator_pb2_grpc.ImageAnnotatorStub(channel) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='vision.googleapis.com:443', - credentials=None): + def create_channel(cls, address="vision.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -99,9 +94,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,7 +117,7 @@ def batch_annotate_images(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['image_annotator_stub'].BatchAnnotateImages + return self._stubs["image_annotator_stub"].BatchAnnotateImages @property def async_batch_annotate_files(self): @@ -142,4 +135,4 @@ def async_batch_annotate_files(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['image_annotator_stub'].AsyncBatchAnnotateFiles + return self._stubs["image_annotator_stub"].AsyncBatchAnnotateFiles diff --git a/vision/google/cloud/vision_v1/gapic/transports/product_search_grpc_transport.py b/vision/google/cloud/vision_v1/gapic/transports/product_search_grpc_transport.py index 70eaacc9a046..8b9d27825bab 100644 --- a/vision/google/cloud/vision_v1/gapic/transports/product_search_grpc_transport.py +++ b/vision/google/cloud/vision_v1/gapic/transports/product_search_grpc_transport.py @@ -28,17 +28,17 @@ class ProductSearchGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-vision', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-vision", ) - def __init__(self, - channel=None, - credentials=None, - address='vision.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="vision.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,35 +56,32 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'product_search_stub': - product_search_service_pb2_grpc.ProductSearchStub(channel), + "product_search_stub": product_search_service_pb2_grpc.ProductSearchStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='vision.googleapis.com:443', - credentials=None): + def create_channel(cls, address="vision.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -99,9 +96,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -132,7 +127,7 @@ def create_product(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].CreateProduct + return self._stubs["product_search_stub"].CreateProduct @property def list_products(self): @@ -150,7 +145,7 @@ def list_products(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ListProducts + return self._stubs["product_search_stub"].ListProducts @property def get_product(self): @@ -167,7 +162,7 @@ def get_product(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].GetProduct + return self._stubs["product_search_stub"].GetProduct @property def update_product(self): @@ -194,7 +189,7 @@ def update_product(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].UpdateProduct + return self._stubs["product_search_stub"].UpdateProduct @property def delete_product(self): @@ -215,7 +210,7 @@ def delete_product(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].DeleteProduct + return self._stubs["product_search_stub"].DeleteProduct @property def list_reference_images(self): @@ -234,7 +229,7 @@ def list_reference_images(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ListReferenceImages + return self._stubs["product_search_stub"].ListReferenceImages @property def get_reference_image(self): @@ -251,7 +246,7 @@ def get_reference_image(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].GetReferenceImage + return self._stubs["product_search_stub"].GetReferenceImage @property def delete_reference_image(self): @@ -274,7 +269,7 @@ def delete_reference_image(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].DeleteReferenceImage + return self._stubs["product_search_stub"].DeleteReferenceImage @property def create_reference_image(self): @@ -307,7 +302,7 @@ def create_reference_image(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].CreateReferenceImage + return self._stubs["product_search_stub"].CreateReferenceImage @property def create_product_set(self): @@ -325,7 +320,7 @@ def create_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].CreateProductSet + return self._stubs["product_search_stub"].CreateProductSet @property def list_product_sets(self): @@ -343,7 +338,7 @@ def list_product_sets(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ListProductSets + return self._stubs["product_search_stub"].ListProductSets @property def get_product_set(self): @@ -360,7 +355,7 @@ def get_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].GetProductSet + return self._stubs["product_search_stub"].GetProductSet @property def update_product_set(self): @@ -380,7 +375,7 @@ def update_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].UpdateProductSet + return self._stubs["product_search_stub"].UpdateProductSet @property def delete_product_set(self): @@ -400,7 +395,7 @@ def delete_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].DeleteProductSet + return self._stubs["product_search_stub"].DeleteProductSet @property def add_product_to_product_set(self): @@ -420,7 +415,7 @@ def add_product_to_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].AddProductToProductSet + return self._stubs["product_search_stub"].AddProductToProductSet @property def remove_product_from_product_set(self): @@ -437,7 +432,7 @@ def remove_product_from_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].RemoveProductFromProductSet + return self._stubs["product_search_stub"].RemoveProductFromProductSet @property def list_products_in_product_set(self): @@ -457,7 +452,7 @@ def list_products_in_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ListProductsInProductSet + return self._stubs["product_search_stub"].ListProductsInProductSet @property def import_product_sets(self): @@ -480,4 +475,4 @@ def import_product_sets(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ImportProductSets + return self._stubs["product_search_stub"].ImportProductSets diff --git a/vision/google/cloud/vision_v1/types.py b/vision/google/cloud/vision_v1/types.py index a78c51a98f69..6560ec9dc20e 100644 --- a/vision/google/cloud/vision_v1/types.py +++ b/vision/google/cloud/vision_v1/types.py @@ -68,7 +68,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.vision_v1.types' + message.__module__ = "google.cloud.vision_v1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/vision/google/cloud/vision_v1p1beta1/__init__.py b/vision/google/cloud/vision_v1p1beta1/__init__.py index 4080e90fd2ee..0966c2052f71 100644 --- a/vision/google/cloud/vision_v1p1beta1/__init__.py +++ b/vision/google/cloud/vision_v1p1beta1/__init__.py @@ -30,8 +30,4 @@ class ImageAnnotatorClient(VisionHelpers, iac.ImageAnnotatorClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'ImageAnnotatorClient', -) +__all__ = ("enums", "types", "ImageAnnotatorClient") diff --git a/vision/google/cloud/vision_v1p1beta1/gapic/enums.py b/vision/google/cloud/vision_v1p1beta1/gapic/enums.py index 7fbc518d8775..0c4a0d950165 100644 --- a/vision/google/cloud/vision_v1p1beta1/gapic/enums.py +++ b/vision/google/cloud/vision_v1p1beta1/gapic/enums.py @@ -31,6 +31,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): It is likely that the image belongs to the specified vertical. VERY_LIKELY (int): It is very likely that the image belongs to the specified vertical. """ + UNKNOWN = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 @@ -54,6 +55,7 @@ class BreakType(enum.IntEnum): ``SPACE``, ``LEADER_SPACE``, or ``LINE_BREAK``. LINE_BREAK (int): Line break that ends a paragraph. """ + UNKNOWN = 0 SPACE = 1 SURE_SPACE = 2 @@ -75,6 +77,7 @@ class BlockType(enum.IntEnum): RULER (int): Horizontal/vertical line box. BARCODE (int): Barcode block. """ + UNKNOWN = 0 TEXT = 1 TABLE = 2 @@ -102,6 +105,7 @@ class Type(enum.IntEnum): CROP_HINTS (int): Run crop hints. WEB_DETECTION (int): Run web detection. """ + TYPE_UNSPECIFIED = 0 FACE_DETECTION = 1 LANDMARK_DETECTION = 2 @@ -161,6 +165,7 @@ class Type(enum.IntEnum): CHIN_LEFT_GONION (int): Chin left gonion. CHIN_RIGHT_GONION (int): Chin right gonion. """ + UNKNOWN_LANDMARK = 0 LEFT_EYE = 1 RIGHT_EYE = 2 diff --git a/vision/google/cloud/vision_v1p1beta1/gapic/image_annotator_client.py b/vision/google/cloud/vision_v1p1beta1/gapic/image_annotator_client.py index a17540b2b568..5b5364a8a759 100644 --- a/vision/google/cloud/vision_v1p1beta1/gapic/image_annotator_client.py +++ b/vision/google/cloud/vision_v1p1beta1/gapic/image_annotator_client.py @@ -27,12 +27,13 @@ from google.cloud.vision_v1p1beta1.gapic import enums from google.cloud.vision_v1p1beta1.gapic import image_annotator_client_config -from google.cloud.vision_v1p1beta1.gapic.transports import image_annotator_grpc_transport +from google.cloud.vision_v1p1beta1.gapic.transports import ( + image_annotator_grpc_transport, +) from google.cloud.vision_v1p1beta1.proto import image_annotator_pb2 from google.cloud.vision_v1p1beta1.proto import image_annotator_pb2_grpc -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-vision', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-vision").version class ImageAnnotatorClient(object): @@ -42,12 +43,12 @@ class ImageAnnotatorClient(object): ImageAnnotator service returns detected entities from the images. """ - SERVICE_ADDRESS = 'vision.googleapis.com:443' + SERVICE_ADDRESS = "vision.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.vision.v1p1beta1.ImageAnnotator' + _INTERFACE_NAME = "google.cloud.vision.v1p1beta1.ImageAnnotator" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -63,19 +64,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ImageAnnotatorClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -109,18 +111,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = image_annotator_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -129,25 +132,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=image_annotator_grpc_transport. - ImageAnnotatorGrpcTransport, + default_class=image_annotator_grpc_transport.ImageAnnotatorGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = image_annotator_grpc_transport.ImageAnnotatorGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -157,7 +159,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -166,11 +169,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def batch_annotate_images(self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def batch_annotate_images( + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Run image detection and annotation for a batch of images. @@ -209,18 +214,17 @@ def batch_annotate_images(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'batch_annotate_images' not in self._inner_api_calls: + if "batch_annotate_images" not in self._inner_api_calls: self._inner_api_calls[ - 'batch_annotate_images'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.batch_annotate_images, - default_retry=self._method_configs['BatchAnnotateImages']. - retry, - default_timeout=self. - _method_configs['BatchAnnotateImages'].timeout, - client_info=self._client_info, - ) + "batch_annotate_images" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.batch_annotate_images, + default_retry=self._method_configs["BatchAnnotateImages"].retry, + default_timeout=self._method_configs["BatchAnnotateImages"].timeout, + client_info=self._client_info, + ) - request = image_annotator_pb2.BatchAnnotateImagesRequest( - requests=requests, ) - return self._inner_api_calls['batch_annotate_images']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = image_annotator_pb2.BatchAnnotateImagesRequest(requests=requests) + return self._inner_api_calls["batch_annotate_images"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/vision/google/cloud/vision_v1p1beta1/gapic/image_annotator_client_config.py b/vision/google/cloud/vision_v1p1beta1/gapic/image_annotator_client_config.py index 6b2766155b07..956b15714108 100644 --- a/vision/google/cloud/vision_v1p1beta1/gapic/image_annotator_client_config.py +++ b/vision/google/cloud/vision_v1p1beta1/gapic/image_annotator_client_config.py @@ -3,7 +3,7 @@ "google.cloud.vision.v1p1beta1.ImageAnnotator": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,16 +13,16 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "BatchAnnotateImages": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", } - } + }, } } } diff --git a/vision/google/cloud/vision_v1p1beta1/gapic/transports/image_annotator_grpc_transport.py b/vision/google/cloud/vision_v1p1beta1/gapic/transports/image_annotator_grpc_transport.py index 5150146cd347..2864d8cc7b45 100644 --- a/vision/google/cloud/vision_v1p1beta1/gapic/transports/image_annotator_grpc_transport.py +++ b/vision/google/cloud/vision_v1p1beta1/gapic/transports/image_annotator_grpc_transport.py @@ -27,17 +27,17 @@ class ImageAnnotatorGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-vision', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-vision", ) - def __init__(self, - channel=None, - credentials=None, - address='vision.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="vision.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -55,29 +55,23 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'image_annotator_stub': - image_annotator_pb2_grpc.ImageAnnotatorStub(channel), + "image_annotator_stub": image_annotator_pb2_grpc.ImageAnnotatorStub(channel) } @classmethod - def create_channel(cls, - address='vision.googleapis.com:443', - credentials=None): + def create_channel(cls, address="vision.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -92,9 +86,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -117,4 +109,4 @@ def batch_annotate_images(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['image_annotator_stub'].BatchAnnotateImages + return self._stubs["image_annotator_stub"].BatchAnnotateImages diff --git a/vision/google/cloud/vision_v1p1beta1/types.py b/vision/google/cloud/vision_v1p1beta1/types.py index ed08887b8d02..2fee280296fa 100644 --- a/vision/google/cloud/vision_v1p1beta1/types.py +++ b/vision/google/cloud/vision_v1p1beta1/types.py @@ -56,7 +56,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.vision_v1p1beta1.types' + message.__module__ = "google.cloud.vision_v1p1beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/vision/google/cloud/vision_v1p2beta1/__init__.py b/vision/google/cloud/vision_v1p2beta1/__init__.py index c2720571d3df..4fb9dbf92b48 100644 --- a/vision/google/cloud/vision_v1p2beta1/__init__.py +++ b/vision/google/cloud/vision_v1p2beta1/__init__.py @@ -30,8 +30,4 @@ class ImageAnnotatorClient(VisionHelpers, iac.ImageAnnotatorClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'ImageAnnotatorClient', -) +__all__ = ("enums", "types", "ImageAnnotatorClient") diff --git a/vision/google/cloud/vision_v1p2beta1/gapic/enums.py b/vision/google/cloud/vision_v1p2beta1/gapic/enums.py index 02cfe76bac26..509e00fec15d 100644 --- a/vision/google/cloud/vision_v1p2beta1/gapic/enums.py +++ b/vision/google/cloud/vision_v1p2beta1/gapic/enums.py @@ -31,6 +31,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): It is likely that the image belongs to the specified vertical. VERY_LIKELY (int): It is very likely that the image belongs to the specified vertical. """ + UNKNOWN = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 @@ -54,6 +55,7 @@ class BreakType(enum.IntEnum): ``SPACE``, ``LEADER_SPACE``, or ``LINE_BREAK``. LINE_BREAK (int): Line break that ends a paragraph. """ + UNKNOWN = 0 SPACE = 1 SURE_SPACE = 2 @@ -75,6 +77,7 @@ class BlockType(enum.IntEnum): RULER (int): Horizontal/vertical line box. BARCODE (int): Barcode block. """ + UNKNOWN = 0 TEXT = 1 TABLE = 2 @@ -106,6 +109,7 @@ class Type(enum.IntEnum): CROP_HINTS (int): Run crop hints. WEB_DETECTION (int): Run web detection. """ + TYPE_UNSPECIFIED = 0 FACE_DETECTION = 1 LANDMARK_DETECTION = 2 @@ -165,6 +169,7 @@ class Type(enum.IntEnum): CHIN_LEFT_GONION (int): Chin left gonion. CHIN_RIGHT_GONION (int): Chin right gonion. """ + UNKNOWN_LANDMARK = 0 LEFT_EYE = 1 RIGHT_EYE = 2 @@ -214,6 +219,7 @@ class State(enum.IntEnum): DONE (int): The batch processing is done. CANCELLED (int): The batch processing was cancelled. """ + STATE_UNSPECIFIED = 0 CREATED = 1 RUNNING = 2 diff --git a/vision/google/cloud/vision_v1p2beta1/gapic/image_annotator_client.py b/vision/google/cloud/vision_v1p2beta1/gapic/image_annotator_client.py index 9405d5405721..ef5fcbf4743a 100644 --- a/vision/google/cloud/vision_v1p2beta1/gapic/image_annotator_client.py +++ b/vision/google/cloud/vision_v1p2beta1/gapic/image_annotator_client.py @@ -29,13 +29,14 @@ from google.cloud.vision_v1p2beta1.gapic import enums from google.cloud.vision_v1p2beta1.gapic import image_annotator_client_config -from google.cloud.vision_v1p2beta1.gapic.transports import image_annotator_grpc_transport +from google.cloud.vision_v1p2beta1.gapic.transports import ( + image_annotator_grpc_transport, +) from google.cloud.vision_v1p2beta1.proto import image_annotator_pb2 from google.cloud.vision_v1p2beta1.proto import image_annotator_pb2_grpc from google.longrunning import operations_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-vision', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-vision").version class ImageAnnotatorClient(object): @@ -45,12 +46,12 @@ class ImageAnnotatorClient(object): ImageAnnotator service returns detected entities from the images. """ - SERVICE_ADDRESS = 'vision.googleapis.com:443' + SERVICE_ADDRESS = "vision.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.vision.v1p2beta1.ImageAnnotator' + _INTERFACE_NAME = "google.cloud.vision.v1p2beta1.ImageAnnotator" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -66,19 +67,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ImageAnnotatorClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -112,18 +114,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = image_annotator_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -132,25 +135,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=image_annotator_grpc_transport. - ImageAnnotatorGrpcTransport, + default_class=image_annotator_grpc_transport.ImageAnnotatorGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = image_annotator_grpc_transport.ImageAnnotatorGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -160,7 +162,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -169,11 +172,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def batch_annotate_images(self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def batch_annotate_images( + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Run image detection and annotation for a batch of images. @@ -212,28 +217,28 @@ def batch_annotate_images(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'batch_annotate_images' not in self._inner_api_calls: + if "batch_annotate_images" not in self._inner_api_calls: self._inner_api_calls[ - 'batch_annotate_images'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.batch_annotate_images, - default_retry=self._method_configs['BatchAnnotateImages']. - retry, - default_timeout=self. - _method_configs['BatchAnnotateImages'].timeout, - client_info=self._client_info, - ) + "batch_annotate_images" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.batch_annotate_images, + default_retry=self._method_configs["BatchAnnotateImages"].retry, + default_timeout=self._method_configs["BatchAnnotateImages"].timeout, + client_info=self._client_info, + ) - request = image_annotator_pb2.BatchAnnotateImagesRequest( - requests=requests, ) - return self._inner_api_calls['batch_annotate_images']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = image_annotator_pb2.BatchAnnotateImagesRequest(requests=requests) + return self._inner_api_calls["batch_annotate_images"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def async_batch_annotate_files( - self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Run async image detection and annotation for a list of generic files (e.g. PDF) which may contain multiple pages and multiple images per @@ -286,21 +291,20 @@ def async_batch_annotate_files( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'async_batch_annotate_files' not in self._inner_api_calls: + if "async_batch_annotate_files" not in self._inner_api_calls: self._inner_api_calls[ - 'async_batch_annotate_files'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.async_batch_annotate_files, - default_retry=self. - _method_configs['AsyncBatchAnnotateFiles'].retry, - default_timeout=self. - _method_configs['AsyncBatchAnnotateFiles'].timeout, - client_info=self._client_info, - ) + "async_batch_annotate_files" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.async_batch_annotate_files, + default_retry=self._method_configs["AsyncBatchAnnotateFiles"].retry, + default_timeout=self._method_configs["AsyncBatchAnnotateFiles"].timeout, + client_info=self._client_info, + ) - request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest( - requests=requests, ) - operation = self._inner_api_calls['async_batch_annotate_files']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest(requests=requests) + operation = self._inner_api_calls["async_batch_annotate_files"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/vision/google/cloud/vision_v1p2beta1/gapic/image_annotator_client_config.py b/vision/google/cloud/vision_v1p2beta1/gapic/image_annotator_client_config.py index edf8fde32e32..9ed71995d165 100644 --- a/vision/google/cloud/vision_v1p2beta1/gapic/image_annotator_client_config.py +++ b/vision/google/cloud/vision_v1p2beta1/gapic/image_annotator_client_config.py @@ -3,7 +3,7 @@ "google.cloud.vision.v1p2beta1.ImageAnnotator": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,21 +13,21 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "BatchAnnotateImages": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AsyncBatchAnnotateFiles": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/vision/google/cloud/vision_v1p2beta1/gapic/transports/image_annotator_grpc_transport.py b/vision/google/cloud/vision_v1p2beta1/gapic/transports/image_annotator_grpc_transport.py index 9338cc363783..3834397d2ee5 100644 --- a/vision/google/cloud/vision_v1p2beta1/gapic/transports/image_annotator_grpc_transport.py +++ b/vision/google/cloud/vision_v1p2beta1/gapic/transports/image_annotator_grpc_transport.py @@ -28,17 +28,17 @@ class ImageAnnotatorGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-vision', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-vision", ) - def __init__(self, - channel=None, - credentials=None, - address='vision.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="vision.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,35 +56,30 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'image_annotator_stub': - image_annotator_pb2_grpc.ImageAnnotatorStub(channel), + "image_annotator_stub": image_annotator_pb2_grpc.ImageAnnotatorStub(channel) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='vision.googleapis.com:443', - credentials=None): + def create_channel(cls, address="vision.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -99,9 +94,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,7 +117,7 @@ def batch_annotate_images(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['image_annotator_stub'].BatchAnnotateImages + return self._stubs["image_annotator_stub"].BatchAnnotateImages @property def async_batch_annotate_files(self): @@ -142,4 +135,4 @@ def async_batch_annotate_files(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['image_annotator_stub'].AsyncBatchAnnotateFiles + return self._stubs["image_annotator_stub"].AsyncBatchAnnotateFiles diff --git a/vision/google/cloud/vision_v1p2beta1/types.py b/vision/google/cloud/vision_v1p2beta1/types.py index f7110a3a9b91..3b886abd6308 100644 --- a/vision/google/cloud/vision_v1p2beta1/types.py +++ b/vision/google/cloud/vision_v1p2beta1/types.py @@ -62,7 +62,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.vision_v1p2beta1.types' + message.__module__ = "google.cloud.vision_v1p2beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/vision/google/cloud/vision_v1p3beta1/__init__.py b/vision/google/cloud/vision_v1p3beta1/__init__.py index 45f779b1aced..3596bd87143b 100644 --- a/vision/google/cloud/vision_v1p3beta1/__init__.py +++ b/vision/google/cloud/vision_v1p3beta1/__init__.py @@ -36,9 +36,4 @@ class ImageAnnotatorClient(VisionHelpers, iac.ImageAnnotatorClient): enums = enums -__all__ = ( - 'enums', - 'types', - 'ProductSearchClient', - 'ImageAnnotatorClient', -) +__all__ = ("enums", "types", "ProductSearchClient", "ImageAnnotatorClient") diff --git a/vision/google/cloud/vision_v1p3beta1/gapic/enums.py b/vision/google/cloud/vision_v1p3beta1/gapic/enums.py index 058ae2510731..fcea3d079ebb 100644 --- a/vision/google/cloud/vision_v1p3beta1/gapic/enums.py +++ b/vision/google/cloud/vision_v1p3beta1/gapic/enums.py @@ -27,6 +27,7 @@ class ProductSearchCategory(enum.IntEnum): SHOES (int): Shoes category. BAGS (int): Bags category. """ + PRODUCT_SEARCH_CATEGORY_UNSPECIFIED = 0 SHOES = 1 BAGS = 2 @@ -42,6 +43,7 @@ class ProductSearchResultsView(enum.IntEnum): FULL (int): Product search results contain ``product_category``, ``product_id``, ``image_uri``, and ``score``. """ + BASIC = 0 FULL = 1 @@ -59,6 +61,7 @@ class Likelihood(enum.IntEnum): LIKELY (int): It is likely that the image belongs to the specified vertical. VERY_LIKELY (int): It is very likely that the image belongs to the specified vertical. """ + UNKNOWN = 0 VERY_UNLIKELY = 1 UNLIKELY = 2 @@ -82,6 +85,7 @@ class BreakType(enum.IntEnum): ``SPACE``, ``LEADER_SPACE``, or ``LINE_BREAK``. LINE_BREAK (int): Line break that ends a paragraph. """ + UNKNOWN = 0 SPACE = 1 SURE_SPACE = 2 @@ -103,6 +107,7 @@ class BlockType(enum.IntEnum): RULER (int): Horizontal/vertical line box. BARCODE (int): Barcode block. """ + UNKNOWN = 0 TEXT = 1 TABLE = 2 @@ -126,6 +131,7 @@ class State(enum.IntEnum): been called by the user. Any records that were processed before the cancel command are output as specified in the request. """ + STATE_UNSPECIFIED = 0 PROCESSING = 1 SUCCESSFUL = 2 @@ -158,6 +164,7 @@ class Type(enum.IntEnum): PRODUCT_SEARCH (int): Run Product Search. OBJECT_LOCALIZATION (int): Run localizer for object detection. """ + TYPE_UNSPECIFIED = 0 FACE_DETECTION = 1 LANDMARK_DETECTION = 2 @@ -219,6 +226,7 @@ class Type(enum.IntEnum): CHIN_LEFT_GONION (int): Chin left gonion. CHIN_RIGHT_GONION (int): Chin right gonion. """ + UNKNOWN_LANDMARK = 0 LEFT_EYE = 1 RIGHT_EYE = 2 @@ -268,6 +276,7 @@ class State(enum.IntEnum): DONE (int): The batch processing is done. CANCELLED (int): The batch processing was cancelled. """ + STATE_UNSPECIFIED = 0 CREATED = 1 RUNNING = 2 diff --git a/vision/google/cloud/vision_v1p3beta1/gapic/image_annotator_client.py b/vision/google/cloud/vision_v1p3beta1/gapic/image_annotator_client.py index 5dad69de9486..42acd47ff1d9 100644 --- a/vision/google/cloud/vision_v1p3beta1/gapic/image_annotator_client.py +++ b/vision/google/cloud/vision_v1p3beta1/gapic/image_annotator_client.py @@ -29,7 +29,9 @@ from google.cloud.vision_v1p3beta1.gapic import enums from google.cloud.vision_v1p3beta1.gapic import image_annotator_client_config -from google.cloud.vision_v1p3beta1.gapic.transports import image_annotator_grpc_transport +from google.cloud.vision_v1p3beta1.gapic.transports import ( + image_annotator_grpc_transport, +) from google.cloud.vision_v1p3beta1.proto import image_annotator_pb2 from google.cloud.vision_v1p3beta1.proto import image_annotator_pb2_grpc from google.cloud.vision_v1p3beta1.proto import product_search_service_pb2 @@ -38,8 +40,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-vision', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-vision").version class ImageAnnotatorClient(object): @@ -49,12 +50,12 @@ class ImageAnnotatorClient(object): ImageAnnotator service returns detected entities from the images. """ - SERVICE_ADDRESS = 'vision.googleapis.com:443' + SERVICE_ADDRESS = "vision.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.vision.v1p3beta1.ImageAnnotator' + _INTERFACE_NAME = "google.cloud.vision.v1p3beta1.ImageAnnotator" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -70,19 +71,20 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ImageAnnotatorClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -116,18 +118,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = image_annotator_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -136,25 +139,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=image_annotator_grpc_transport. - ImageAnnotatorGrpcTransport, + default_class=image_annotator_grpc_transport.ImageAnnotatorGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = image_annotator_grpc_transport.ImageAnnotatorGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -164,7 +166,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -173,11 +176,13 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def batch_annotate_images(self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def batch_annotate_images( + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Run image detection and annotation for a batch of images. @@ -216,28 +221,28 @@ def batch_annotate_images(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'batch_annotate_images' not in self._inner_api_calls: + if "batch_annotate_images" not in self._inner_api_calls: self._inner_api_calls[ - 'batch_annotate_images'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.batch_annotate_images, - default_retry=self._method_configs['BatchAnnotateImages']. - retry, - default_timeout=self. - _method_configs['BatchAnnotateImages'].timeout, - client_info=self._client_info, - ) + "batch_annotate_images" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.batch_annotate_images, + default_retry=self._method_configs["BatchAnnotateImages"].retry, + default_timeout=self._method_configs["BatchAnnotateImages"].timeout, + client_info=self._client_info, + ) - request = image_annotator_pb2.BatchAnnotateImagesRequest( - requests=requests, ) - return self._inner_api_calls['batch_annotate_images']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = image_annotator_pb2.BatchAnnotateImagesRequest(requests=requests) + return self._inner_api_calls["batch_annotate_images"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def async_batch_annotate_files( - self, - requests, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + requests, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Run asynchronous image detection and annotation for a list of generic files, such as PDF files, which may contain multiple pages and multiple @@ -290,21 +295,20 @@ def async_batch_annotate_files( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'async_batch_annotate_files' not in self._inner_api_calls: + if "async_batch_annotate_files" not in self._inner_api_calls: self._inner_api_calls[ - 'async_batch_annotate_files'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.async_batch_annotate_files, - default_retry=self. - _method_configs['AsyncBatchAnnotateFiles'].retry, - default_timeout=self. - _method_configs['AsyncBatchAnnotateFiles'].timeout, - client_info=self._client_info, - ) + "async_batch_annotate_files" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.async_batch_annotate_files, + default_retry=self._method_configs["AsyncBatchAnnotateFiles"].retry, + default_timeout=self._method_configs["AsyncBatchAnnotateFiles"].timeout, + client_info=self._client_info, + ) - request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest( - requests=requests, ) - operation = self._inner_api_calls['async_batch_annotate_files']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest(requests=requests) + operation = self._inner_api_calls["async_batch_annotate_files"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/vision/google/cloud/vision_v1p3beta1/gapic/image_annotator_client_config.py b/vision/google/cloud/vision_v1p3beta1/gapic/image_annotator_client_config.py index bbd44f4b765c..41adece1cb2a 100644 --- a/vision/google/cloud/vision_v1p3beta1/gapic/image_annotator_client_config.py +++ b/vision/google/cloud/vision_v1p3beta1/gapic/image_annotator_client_config.py @@ -3,7 +3,7 @@ "google.cloud.vision.v1p3beta1.ImageAnnotator": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,21 +13,21 @@ "initial_rpc_timeout_millis": 60000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 60000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "BatchAnnotateImages": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AsyncBatchAnnotateFiles": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/vision/google/cloud/vision_v1p3beta1/gapic/product_search_client.py b/vision/google/cloud/vision_v1p3beta1/gapic/product_search_client.py index 0bd990ec442c..08652842f83c 100644 --- a/vision/google/cloud/vision_v1p3beta1/gapic/product_search_client.py +++ b/vision/google/cloud/vision_v1p3beta1/gapic/product_search_client.py @@ -39,8 +39,7 @@ from google.protobuf import empty_pb2 from google.protobuf import field_mask_pb2 -_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-vision', ).version +_GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution("google-cloud-vision").version class ProductSearchClient(object): @@ -61,12 +60,12 @@ class ProductSearchClient(object): named ``projects/*/locations/*/products/*/referenceImages/*`` """ - SERVICE_ADDRESS = 'vision.googleapis.com:443' + SERVICE_ADDRESS = "vision.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.vision.v1p3beta1.ProductSearch' + _INTERFACE_NAME = "google.cloud.vision.v1p3beta1.ProductSearch" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -82,9 +81,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: ProductSearchClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -93,7 +91,7 @@ def from_service_account_file(cls, filename, *args, **kwargs): def location_path(cls, project, location): """Return a fully-qualified location string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}', + "projects/{project}/locations/{location}", project=project, location=location, ) @@ -102,7 +100,7 @@ def location_path(cls, project, location): def product_set_path(cls, project, location, product_set): """Return a fully-qualified product_set string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/productSets/{product_set}', + "projects/{project}/locations/{location}/productSets/{product_set}", project=project, location=location, product_set=product_set, @@ -112,7 +110,7 @@ def product_set_path(cls, project, location, product_set): def product_path(cls, project, location, product): """Return a fully-qualified product string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/products/{product}', + "projects/{project}/locations/{location}/products/{product}", project=project, location=location, product=product, @@ -122,19 +120,21 @@ def product_path(cls, project, location, product): def reference_image_path(cls, project, location, product, reference_image): """Return a fully-qualified reference_image string.""" return google.api_core.path_template.expand( - 'projects/{project}/locations/{location}/products/{product}/referenceImages/{reference_image}', + "projects/{project}/locations/{location}/products/{product}/referenceImages/{reference_image}", project=project, location=location, product=product, reference_image=reference_image, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -168,18 +168,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = product_search_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -188,25 +189,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=product_search_grpc_transport. - ProductSearchGrpcTransport, + default_class=product_search_grpc_transport.ProductSearchGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = product_search_grpc_transport.ProductSearchGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -216,7 +216,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -225,13 +226,15 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_product_set(self, - parent, - product_set, - product_set_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_product_set( + self, + parent, + product_set, + product_set_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates and returns a new ProductSet resource. @@ -287,31 +290,31 @@ def create_product_set(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_product_set' not in self._inner_api_calls: + if "create_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'create_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_product_set, - default_retry=self._method_configs['CreateProductSet']. - retry, - default_timeout=self._method_configs['CreateProductSet']. - timeout, - client_info=self._client_info, - ) + "create_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_product_set, + default_retry=self._method_configs["CreateProductSet"].retry, + default_timeout=self._method_configs["CreateProductSet"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.CreateProductSetRequest( - parent=parent, - product_set=product_set, - product_set_id=product_set_id, + parent=parent, product_set=product_set, product_set_id=product_set_id ) - return self._inner_api_calls['create_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_product_sets(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["create_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_product_sets( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists ProductSets in an unspecified order. @@ -373,40 +376,41 @@ def list_product_sets(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_product_sets' not in self._inner_api_calls: + if "list_product_sets" not in self._inner_api_calls: self._inner_api_calls[ - 'list_product_sets'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_product_sets, - default_retry=self._method_configs['ListProductSets']. - retry, - default_timeout=self._method_configs['ListProductSets']. - timeout, - client_info=self._client_info, - ) + "list_product_sets" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_product_sets, + default_retry=self._method_configs["ListProductSets"].retry, + default_timeout=self._method_configs["ListProductSets"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ListProductSetsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_product_sets'], + self._inner_api_calls["list_product_sets"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='product_sets', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="product_sets", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_product_set(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_product_set( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets information associated with a ProductSet. @@ -448,26 +452,29 @@ def get_product_set(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_product_set' not in self._inner_api_calls: + if "get_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'get_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_product_set, - default_retry=self._method_configs['GetProductSet'].retry, - default_timeout=self._method_configs['GetProductSet']. - timeout, - client_info=self._client_info, - ) + "get_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_product_set, + default_retry=self._method_configs["GetProductSet"].retry, + default_timeout=self._method_configs["GetProductSet"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.GetProductSetRequest(name=name, ) - return self._inner_api_calls['get_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = product_search_service_pb2.GetProductSetRequest(name=name) + return self._inner_api_calls["get_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_product_set(self, - product_set, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_product_set( + self, + product_set, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Makes changes to a ProductSet resource. Only display\_name can be updated currently. @@ -522,29 +529,30 @@ def update_product_set(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_product_set' not in self._inner_api_calls: + if "update_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'update_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_product_set, - default_retry=self._method_configs['UpdateProductSet']. - retry, - default_timeout=self._method_configs['UpdateProductSet']. - timeout, - client_info=self._client_info, - ) + "update_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_product_set, + default_retry=self._method_configs["UpdateProductSet"].retry, + default_timeout=self._method_configs["UpdateProductSet"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.UpdateProductSetRequest( - product_set=product_set, - update_mask=update_mask, + product_set=product_set, update_mask=update_mask ) - return self._inner_api_calls['update_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_product_set(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def delete_product_set( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Permanently deletes a ProductSet. All Products and ReferenceImages in the ProductSet will be deleted. @@ -586,29 +594,30 @@ def delete_product_set(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_product_set' not in self._inner_api_calls: + if "delete_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_product_set, - default_retry=self._method_configs['DeleteProductSet']. - retry, - default_timeout=self._method_configs['DeleteProductSet']. - timeout, - client_info=self._client_info, - ) + "delete_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_product_set, + default_retry=self._method_configs["DeleteProductSet"].retry, + default_timeout=self._method_configs["DeleteProductSet"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.DeleteProductSetRequest( - name=name, ) - self._inner_api_calls['delete_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_product(self, - parent, - product, - product_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = product_search_service_pb2.DeleteProductSetRequest(name=name) + self._inner_api_calls["delete_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_product( + self, + parent, + product, + product_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates and returns a new product resource. @@ -667,30 +676,31 @@ def create_product(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_product' not in self._inner_api_calls: + if "create_product" not in self._inner_api_calls: self._inner_api_calls[ - 'create_product'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_product, - default_retry=self._method_configs['CreateProduct'].retry, - default_timeout=self._method_configs['CreateProduct']. - timeout, - client_info=self._client_info, - ) + "create_product" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_product, + default_retry=self._method_configs["CreateProduct"].retry, + default_timeout=self._method_configs["CreateProduct"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.CreateProductRequest( - parent=parent, - product=product, - product_id=product_id, + parent=parent, product=product, product_id=product_id + ) + return self._inner_api_calls["create_product"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_product']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_products(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def list_products( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists products in an unspecified order. @@ -752,39 +762,41 @@ def list_products(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_products' not in self._inner_api_calls: + if "list_products" not in self._inner_api_calls: self._inner_api_calls[ - 'list_products'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_products, - default_retry=self._method_configs['ListProducts'].retry, - default_timeout=self._method_configs['ListProducts']. - timeout, - client_info=self._client_info, - ) + "list_products" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_products, + default_retry=self._method_configs["ListProducts"].retry, + default_timeout=self._method_configs["ListProducts"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ListProductsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_products'], + self._inner_api_calls["list_products"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='products', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="products", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_product(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_product( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets information associated with a Product. @@ -825,25 +837,29 @@ def get_product(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_product' not in self._inner_api_calls: + if "get_product" not in self._inner_api_calls: self._inner_api_calls[ - 'get_product'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_product, - default_retry=self._method_configs['GetProduct'].retry, - default_timeout=self._method_configs['GetProduct'].timeout, - client_info=self._client_info, - ) + "get_product" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_product, + default_retry=self._method_configs["GetProduct"].retry, + default_timeout=self._method_configs["GetProduct"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.GetProductRequest(name=name, ) - return self._inner_api_calls['get_product']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = product_search_service_pb2.GetProductRequest(name=name) + return self._inner_api_calls["get_product"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def update_product(self, - product, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_product( + self, + product, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Makes changes to a Product resource. Only display\_name, description and labels can be updated right now. @@ -906,28 +922,30 @@ def update_product(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_product' not in self._inner_api_calls: + if "update_product" not in self._inner_api_calls: self._inner_api_calls[ - 'update_product'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_product, - default_retry=self._method_configs['UpdateProduct'].retry, - default_timeout=self._method_configs['UpdateProduct']. - timeout, - client_info=self._client_info, - ) + "update_product" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_product, + default_retry=self._method_configs["UpdateProduct"].retry, + default_timeout=self._method_configs["UpdateProduct"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.UpdateProductRequest( - product=product, - update_mask=update_mask, + product=product, update_mask=update_mask ) - return self._inner_api_calls['update_product']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_product(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_product"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def delete_product( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Permanently deletes a product and its reference images. @@ -969,27 +987,30 @@ def delete_product(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_product' not in self._inner_api_calls: + if "delete_product" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_product'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_product, - default_retry=self._method_configs['DeleteProduct'].retry, - default_timeout=self._method_configs['DeleteProduct']. - timeout, - client_info=self._client_info, - ) + "delete_product" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_product, + default_retry=self._method_configs["DeleteProduct"].retry, + default_timeout=self._method_configs["DeleteProduct"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.DeleteProductRequest(name=name, ) - self._inner_api_calls['delete_product']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def create_reference_image(self, - parent, - reference_image, - reference_image_id, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = product_search_service_pb2.DeleteProductRequest(name=name) + self._inner_api_calls["delete_product"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def create_reference_image( + self, + parent, + reference_image, + reference_image_id, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates and returns a new ReferenceImage resource. @@ -1061,30 +1082,32 @@ def create_reference_image(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_reference_image' not in self._inner_api_calls: + if "create_reference_image" not in self._inner_api_calls: self._inner_api_calls[ - 'create_reference_image'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_reference_image, - default_retry=self._method_configs['CreateReferenceImage']. - retry, - default_timeout=self. - _method_configs['CreateReferenceImage'].timeout, - client_info=self._client_info, - ) + "create_reference_image" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_reference_image, + default_retry=self._method_configs["CreateReferenceImage"].retry, + default_timeout=self._method_configs["CreateReferenceImage"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.CreateReferenceImageRequest( parent=parent, reference_image=reference_image, reference_image_id=reference_image_id, ) - return self._inner_api_calls['create_reference_image']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_reference_image(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["create_reference_image"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def delete_reference_image( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Permanently deletes a reference image. @@ -1130,28 +1153,29 @@ def delete_reference_image(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_reference_image' not in self._inner_api_calls: + if "delete_reference_image" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_reference_image'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_reference_image, - default_retry=self._method_configs['DeleteReferenceImage']. - retry, - default_timeout=self. - _method_configs['DeleteReferenceImage'].timeout, - client_info=self._client_info, - ) + "delete_reference_image" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_reference_image, + default_retry=self._method_configs["DeleteReferenceImage"].retry, + default_timeout=self._method_configs["DeleteReferenceImage"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.DeleteReferenceImageRequest( - name=name, ) - self._inner_api_calls['delete_reference_image']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_reference_images(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + request = product_search_service_pb2.DeleteReferenceImageRequest(name=name) + self._inner_api_calls["delete_reference_image"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def list_reference_images( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists reference images. @@ -1214,40 +1238,41 @@ def list_reference_images(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_reference_images' not in self._inner_api_calls: + if "list_reference_images" not in self._inner_api_calls: self._inner_api_calls[ - 'list_reference_images'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_reference_images, - default_retry=self._method_configs['ListReferenceImages']. - retry, - default_timeout=self. - _method_configs['ListReferenceImages'].timeout, - client_info=self._client_info, - ) + "list_reference_images" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_reference_images, + default_retry=self._method_configs["ListReferenceImages"].retry, + default_timeout=self._method_configs["ListReferenceImages"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ListReferenceImagesRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_reference_images'], + self._inner_api_calls["list_reference_images"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='reference_images', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="reference_images", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_reference_image(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_reference_image( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets information associated with a ReferenceImage. @@ -1290,29 +1315,29 @@ def get_reference_image(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_reference_image' not in self._inner_api_calls: + if "get_reference_image" not in self._inner_api_calls: self._inner_api_calls[ - 'get_reference_image'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_reference_image, - default_retry=self._method_configs['GetReferenceImage']. - retry, - default_timeout=self._method_configs['GetReferenceImage']. - timeout, - client_info=self._client_info, - ) + "get_reference_image" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_reference_image, + default_retry=self._method_configs["GetReferenceImage"].retry, + default_timeout=self._method_configs["GetReferenceImage"].timeout, + client_info=self._client_info, + ) - request = product_search_service_pb2.GetReferenceImageRequest( - name=name, ) - return self._inner_api_calls['get_reference_image']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = product_search_service_pb2.GetReferenceImageRequest(name=name) + return self._inner_api_calls["get_reference_image"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) def add_product_to_product_set( - self, - name, - product, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + product, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Adds a Product to the specified ProductSet. If the Product is already present, no change is made. @@ -1360,31 +1385,31 @@ def add_product_to_product_set( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'add_product_to_product_set' not in self._inner_api_calls: + if "add_product_to_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'add_product_to_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.add_product_to_product_set, - default_retry=self. - _method_configs['AddProductToProductSet'].retry, - default_timeout=self. - _method_configs['AddProductToProductSet'].timeout, - client_info=self._client_info, - ) + "add_product_to_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.add_product_to_product_set, + default_retry=self._method_configs["AddProductToProductSet"].retry, + default_timeout=self._method_configs["AddProductToProductSet"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.AddProductToProductSetRequest( - name=name, - product=product, + name=name, product=product + ) + self._inner_api_calls["add_product_to_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['add_product_to_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) def remove_product_from_product_set( - self, - name, - product, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + product, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Removes a Product from the specified ProductSet. @@ -1429,31 +1454,33 @@ def remove_product_from_product_set( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'remove_product_from_product_set' not in self._inner_api_calls: + if "remove_product_from_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'remove_product_from_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.remove_product_from_product_set, - default_retry=self. - _method_configs['RemoveProductFromProductSet'].retry, - default_timeout=self. - _method_configs['RemoveProductFromProductSet'].timeout, - client_info=self._client_info, - ) + "remove_product_from_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.remove_product_from_product_set, + default_retry=self._method_configs["RemoveProductFromProductSet"].retry, + default_timeout=self._method_configs[ + "RemoveProductFromProductSet" + ].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.RemoveProductFromProductSetRequest( - name=name, - product=product, + name=name, product=product + ) + self._inner_api_calls["remove_product_from_product_set"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - self._inner_api_calls['remove_product_from_product_set']( - request, retry=retry, timeout=timeout, metadata=metadata) def list_products_in_product_set( - self, - name, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + name, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists the Products in a ProductSet, in an unspecified order. If the ProductSet does not exist, the products field of the response will be @@ -1518,41 +1545,44 @@ def list_products_in_product_set( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_products_in_product_set' not in self._inner_api_calls: + if "list_products_in_product_set" not in self._inner_api_calls: self._inner_api_calls[ - 'list_products_in_product_set'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_products_in_product_set, - default_retry=self. - _method_configs['ListProductsInProductSet'].retry, - default_timeout=self. - _method_configs['ListProductsInProductSet'].timeout, - client_info=self._client_info, - ) + "list_products_in_product_set" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_products_in_product_set, + default_retry=self._method_configs["ListProductsInProductSet"].retry, + default_timeout=self._method_configs[ + "ListProductsInProductSet" + ].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ListProductsInProductSetRequest( - name=name, - page_size=page_size, + name=name, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_products_in_product_set'], + self._inner_api_calls["list_products_in_product_set"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='products', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="products", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def import_product_sets(self, - parent, - input_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def import_product_sets( + self, + parent, + input_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Asynchronous API that imports a list of reference images to specified product sets based on a list of image information. @@ -1615,23 +1645,22 @@ def import_product_sets(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'import_product_sets' not in self._inner_api_calls: + if "import_product_sets" not in self._inner_api_calls: self._inner_api_calls[ - 'import_product_sets'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.import_product_sets, - default_retry=self._method_configs['ImportProductSets']. - retry, - default_timeout=self._method_configs['ImportProductSets']. - timeout, - client_info=self._client_info, - ) + "import_product_sets" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.import_product_sets, + default_retry=self._method_configs["ImportProductSets"].retry, + default_timeout=self._method_configs["ImportProductSets"].timeout, + client_info=self._client_info, + ) request = product_search_service_pb2.ImportProductSetsRequest( - parent=parent, - input_config=input_config, + parent=parent, input_config=input_config + ) + operation = self._inner_api_calls["import_product_sets"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - operation = self._inner_api_calls['import_product_sets']( - request, retry=retry, timeout=timeout, metadata=metadata) return google.api_core.operation.from_gapic( operation, self.transport._operations_client, diff --git a/vision/google/cloud/vision_v1p3beta1/gapic/product_search_client_config.py b/vision/google/cloud/vision_v1p3beta1/gapic/product_search_client_config.py index 4d784457d5f1..9c732f9258fc 100644 --- a/vision/google/cloud/vision_v1p3beta1/gapic/product_search_client_config.py +++ b/vision/google/cloud/vision_v1p3beta1/gapic/product_search_client_config.py @@ -3,7 +3,7 @@ "google.cloud.vision.v1p3beta1.ProductSearch": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,101 +13,101 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "CreateProductSet": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListProductSets": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateProductSet": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateProduct": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListProducts": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetProduct": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateProduct": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteProduct": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "CreateReferenceImage": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteReferenceImage": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListReferenceImages": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetReferenceImage": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "AddProductToProductSet": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "RemoveProductFromProductSet": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListProductsInProductSet": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ImportProductSets": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/vision/google/cloud/vision_v1p3beta1/gapic/transports/image_annotator_grpc_transport.py b/vision/google/cloud/vision_v1p3beta1/gapic/transports/image_annotator_grpc_transport.py index f50de7fc7bc5..7f71bbe99bd0 100644 --- a/vision/google/cloud/vision_v1p3beta1/gapic/transports/image_annotator_grpc_transport.py +++ b/vision/google/cloud/vision_v1p3beta1/gapic/transports/image_annotator_grpc_transport.py @@ -28,17 +28,17 @@ class ImageAnnotatorGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-vision', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-vision", ) - def __init__(self, - channel=None, - credentials=None, - address='vision.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="vision.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,35 +56,30 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'image_annotator_stub': - image_annotator_pb2_grpc.ImageAnnotatorStub(channel), + "image_annotator_stub": image_annotator_pb2_grpc.ImageAnnotatorStub(channel) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='vision.googleapis.com:443', - credentials=None): + def create_channel(cls, address="vision.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -99,9 +94,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -124,7 +117,7 @@ def batch_annotate_images(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['image_annotator_stub'].BatchAnnotateImages + return self._stubs["image_annotator_stub"].BatchAnnotateImages @property def async_batch_annotate_files(self): @@ -142,4 +135,4 @@ def async_batch_annotate_files(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['image_annotator_stub'].AsyncBatchAnnotateFiles + return self._stubs["image_annotator_stub"].AsyncBatchAnnotateFiles diff --git a/vision/google/cloud/vision_v1p3beta1/gapic/transports/product_search_grpc_transport.py b/vision/google/cloud/vision_v1p3beta1/gapic/transports/product_search_grpc_transport.py index 95774e04da6e..a6fdf92a52e0 100644 --- a/vision/google/cloud/vision_v1p3beta1/gapic/transports/product_search_grpc_transport.py +++ b/vision/google/cloud/vision_v1p3beta1/gapic/transports/product_search_grpc_transport.py @@ -28,17 +28,17 @@ class ProductSearchGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. _OAUTH_SCOPES = ( - 'https://www.googleapis.com/auth/cloud-platform', - 'https://www.googleapis.com/auth/cloud-vision', + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-vision", ) - def __init__(self, - channel=None, - credentials=None, - address='vision.googleapis.com:443'): + def __init__( + self, channel=None, credentials=None, address="vision.googleapis.com:443" + ): """Instantiate the transport class. Args: @@ -56,35 +56,32 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'product_search_stub': - product_search_service_pb2_grpc.ProductSearchStub(channel), + "product_search_stub": product_search_service_pb2_grpc.ProductSearchStub( + channel + ) } # Because this API includes a method that returns a # long-running operation (proto: google.longrunning.Operation), # instantiate an LRO client. self._operations_client = google.api_core.operations_v1.OperationsClient( - channel) + channel + ) @classmethod - def create_channel(cls, - address='vision.googleapis.com:443', - credentials=None): + def create_channel(cls, address="vision.googleapis.com:443", credentials=None): """Create and return a gRPC channel object. Args: @@ -99,9 +96,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -129,7 +124,7 @@ def create_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].CreateProductSet + return self._stubs["product_search_stub"].CreateProductSet @property def list_product_sets(self): @@ -147,7 +142,7 @@ def list_product_sets(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ListProductSets + return self._stubs["product_search_stub"].ListProductSets @property def get_product_set(self): @@ -164,7 +159,7 @@ def get_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].GetProductSet + return self._stubs["product_search_stub"].GetProductSet @property def update_product_set(self): @@ -184,7 +179,7 @@ def update_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].UpdateProductSet + return self._stubs["product_search_stub"].UpdateProductSet @property def delete_product_set(self): @@ -204,7 +199,7 @@ def delete_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].DeleteProductSet + return self._stubs["product_search_stub"].DeleteProductSet @property def create_product(self): @@ -225,7 +220,7 @@ def create_product(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].CreateProduct + return self._stubs["product_search_stub"].CreateProduct @property def list_products(self): @@ -243,7 +238,7 @@ def list_products(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ListProducts + return self._stubs["product_search_stub"].ListProducts @property def get_product(self): @@ -260,7 +255,7 @@ def get_product(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].GetProduct + return self._stubs["product_search_stub"].GetProduct @property def update_product(self): @@ -287,7 +282,7 @@ def update_product(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].UpdateProduct + return self._stubs["product_search_stub"].UpdateProduct @property def delete_product(self): @@ -308,7 +303,7 @@ def delete_product(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].DeleteProduct + return self._stubs["product_search_stub"].DeleteProduct @property def create_reference_image(self): @@ -341,7 +336,7 @@ def create_reference_image(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].CreateReferenceImage + return self._stubs["product_search_stub"].CreateReferenceImage @property def delete_reference_image(self): @@ -364,7 +359,7 @@ def delete_reference_image(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].DeleteReferenceImage + return self._stubs["product_search_stub"].DeleteReferenceImage @property def list_reference_images(self): @@ -383,7 +378,7 @@ def list_reference_images(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ListReferenceImages + return self._stubs["product_search_stub"].ListReferenceImages @property def get_reference_image(self): @@ -400,7 +395,7 @@ def get_reference_image(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].GetReferenceImage + return self._stubs["product_search_stub"].GetReferenceImage @property def add_product_to_product_set(self): @@ -420,7 +415,7 @@ def add_product_to_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].AddProductToProductSet + return self._stubs["product_search_stub"].AddProductToProductSet @property def remove_product_from_product_set(self): @@ -437,7 +432,7 @@ def remove_product_from_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].RemoveProductFromProductSet + return self._stubs["product_search_stub"].RemoveProductFromProductSet @property def list_products_in_product_set(self): @@ -457,7 +452,7 @@ def list_products_in_product_set(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ListProductsInProductSet + return self._stubs["product_search_stub"].ListProductsInProductSet @property def import_product_sets(self): @@ -480,4 +475,4 @@ def import_product_sets(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['product_search_stub'].ImportProductSets + return self._stubs["product_search_stub"].ImportProductSets diff --git a/vision/google/cloud/vision_v1p3beta1/types.py b/vision/google/cloud/vision_v1p3beta1/types.py index 7289dc403ea9..769a28e04164 100644 --- a/vision/google/cloud/vision_v1p3beta1/types.py +++ b/vision/google/cloud/vision_v1p3beta1/types.py @@ -68,7 +68,7 @@ names.append(name) for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.vision_v1p3beta1.types' + message.__module__ = "google.cloud.vision_v1p3beta1.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/vision/tests/system.py b/vision/tests/system.py index 07503de58ca7..efe458cb3577 100644 --- a/vision/tests/system.py +++ b/vision/tests/system.py @@ -27,12 +27,12 @@ _SYS_TESTS_DIR = os.path.realpath(os.path.dirname(__file__)) -LOGO_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'logo.png') -FACE_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'faces.jpg') -LABEL_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'car.jpg') -LANDMARK_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'landmark.jpg') -TEXT_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'text.jpg') -FULL_TEXT_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'full-text.jpg') +LOGO_FILE = os.path.join(_SYS_TESTS_DIR, "data", "logo.png") +FACE_FILE = os.path.join(_SYS_TESTS_DIR, "data", "faces.jpg") +LABEL_FILE = os.path.join(_SYS_TESTS_DIR, "data", "car.jpg") +LANDMARK_FILE = os.path.join(_SYS_TESTS_DIR, "data", "landmark.jpg") +TEXT_FILE = os.path.join(_SYS_TESTS_DIR, "data", "text.jpg") +FULL_TEXT_FILE = os.path.join(_SYS_TESTS_DIR, "data", "full-text.jpg") class VisionSystemTestBase(unittest.TestCase): @@ -50,7 +50,7 @@ def tearDown(self): def setUpModule(): VisionSystemTestBase.client = vision.ImageAnnotatorClient() storage_client = storage.Client() - bucket_name = 'new' + unique_resource_id() + bucket_name = "new" + unique_resource_id() VisionSystemTestBase.test_bucket = storage_client.bucket(bucket_name) # 429 Too Many Requests in case API requests rate-limited. @@ -61,62 +61,59 @@ def setUpModule(): def tearDownModule(): # 409 Conflict if the bucket is full. # 429 Too Many Requests in case API requests rate-limited. - bucket_retry = RetryErrors( - (exceptions.TooManyRequests, exceptions.Conflict), - ) + bucket_retry = RetryErrors((exceptions.TooManyRequests, exceptions.Conflict)) bucket_retry(VisionSystemTestBase.test_bucket.delete)(force=True) class TestVisionClientLogo(VisionSystemTestBase): def test_detect_logos_content(self): # Read the file. - with io.open(LOGO_FILE, 'rb') as image_file: + with io.open(LOGO_FILE, "rb") as image_file: content = image_file.read() # Make the request. - response = self.client.logo_detection({ - 'content': content, - }) + response = self.client.logo_detection({"content": content}) # Check to ensure we got what we expect. assert len(response.logo_annotations) == 1 - assert response.logo_annotations[0].description == 'Google' + assert response.logo_annotations[0].description == "Google" def test_detect_logos_file_handler(self): # Get a file handler, and make the request using it. - with io.open(LOGO_FILE, 'rb') as image_file: + with io.open(LOGO_FILE, "rb") as image_file: response = self.client.logo_detection(image_file) # Check to ensure we got what we expect. assert len(response.logo_annotations) == 1 - assert response.logo_annotations[0].description == 'Google' + assert response.logo_annotations[0].description == "Google" def test_detect_logos_filename(self): # Make the request with the filename directly. - response = self.client.logo_detection({ - 'source': {'filename': LOGO_FILE}, - }) + response = self.client.logo_detection({"source": {"filename": LOGO_FILE}}) # Check to ensure we got what we expect. assert len(response.logo_annotations) == 1 - assert response.logo_annotations[0].description == 'Google' + assert response.logo_annotations[0].description == "Google" def test_detect_logos_gcs(self): # Upload the image to Google Cloud Storage. - blob_name = 'logo.png' + blob_name = "logo.png" blob = self.test_bucket.blob(blob_name) self.to_delete_by_case.append(blob) - with io.open(LOGO_FILE, 'rb') as image_file: + with io.open(LOGO_FILE, "rb") as image_file: blob.upload_from_file(image_file) # Make the request. - response = self.client.logo_detection({ - 'source': {'image_uri': 'gs://{bucket}/{blob}'.format( - bucket=self.test_bucket.name, - blob=blob_name, - )}, - }) + response = self.client.logo_detection( + { + "source": { + "image_uri": "gs://{bucket}/{blob}".format( + bucket=self.test_bucket.name, blob=blob_name + ) + } + } + ) # Check the response. assert len(response.logo_annotations) == 1 - assert response.logo_annotations[0].description == 'Google' + assert response.logo_annotations[0].description == "Google" diff --git a/vision/tests/unit/gapic/v1/test_image_annotator_client_v1.py b/vision/tests/unit/gapic/v1/test_image_annotator_client_v1.py index 5b3e0bd553cd..3b4f5bcc37ae 100644 --- a/vision/tests/unit/gapic/v1/test_image_annotator_client_v1.py +++ b/vision/tests/unit/gapic/v1/test_image_annotator_client_v1.py @@ -53,10 +53,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -69,11 +66,12 @@ def test_batch_annotate_images(self): # Setup Expected Response expected_response = {} expected_response = image_annotator_pb2.BatchAnnotateImagesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ImageAnnotatorClient() @@ -86,14 +84,15 @@ def test_batch_annotate_images(self): assert len(channel.requests) == 1 expected_request = image_annotator_pb2.BatchAnnotateImagesRequest( - requests=requests) + requests=requests + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_batch_annotate_images_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ImageAnnotatorClient() @@ -108,14 +107,16 @@ def test_async_batch_annotate_files(self): # Setup Expected Response expected_response = {} expected_response = image_annotator_pb2.AsyncBatchAnnotateFilesResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_async_batch_annotate_files', done=True) + name="operations/test_async_batch_annotate_files", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ImageAnnotatorClient() @@ -129,7 +130,8 @@ def test_async_batch_annotate_files(self): assert len(channel.requests) == 1 expected_request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest( - requests=requests) + requests=requests + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -137,13 +139,13 @@ def test_async_batch_annotate_files_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_async_batch_annotate_files_exception', - done=True) + name="operations/test_async_batch_annotate_files_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ImageAnnotatorClient() diff --git a/vision/tests/unit/gapic/v1/test_product_search_client_v1.py b/vision/tests/unit/gapic/v1/test_product_search_client_v1.py index eecc6e515979..ad5e2ebf83ec 100644 --- a/vision/tests/unit/gapic/v1/test_product_search_client_v1.py +++ b/vision/tests/unit/gapic/v1/test_product_search_client_v1.py @@ -54,10 +54,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -68,28 +65,27 @@ class CustomException(Exception): class TestProductSearchClient(object): def test_create_product(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' - product_category = 'productCategory-1607451058' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" + product_category = "productCategory-1607451058" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description, - 'product_category': product_category + "name": name, + "display_name": display_name, + "description": description, + "product_category": product_category, } - expected_response = product_search_service_pb2.Product( - **expected_response) + expected_response = product_search_service_pb2.Product(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") product = {} response = client.create_product(parent, product) @@ -97,20 +93,21 @@ def test_create_product(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.CreateProductRequest( - parent=parent, product=product) + parent=parent, product=product + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_product_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") product = {} with pytest.raises(CustomException): @@ -118,25 +115,23 @@ def test_create_product_exception(self): def test_list_products(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" products_element = {} products = [products_element] - expected_response = { - 'next_page_token': next_page_token, - 'products': products - } + expected_response = {"next_page_token": next_page_token, "products": products} expected_response = product_search_service_pb2.ListProductsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_products(parent) resources = list(paged_list_response) @@ -145,20 +140,19 @@ def test_list_products(self): assert expected_response.products[0] == resources[0] assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.ListProductsRequest( - parent=parent) + expected_request = product_search_service_pb2.ListProductsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_products_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_products(parent) with pytest.raises(CustomException): @@ -166,70 +160,67 @@ def test_list_products_exception(self): def test_get_product(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' - product_category = 'productCategory-1607451058' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" + product_category = "productCategory-1607451058" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'description': description, - 'product_category': product_category + "name": name_2, + "display_name": display_name, + "description": description, + "product_category": product_category, } - expected_response = product_search_service_pb2.Product( - **expected_response) + expected_response = product_search_service_pb2.Product(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + name = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") response = client.get_product(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.GetProductRequest( - name=name) + expected_request = product_search_service_pb2.GetProductRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_product_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + name = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") with pytest.raises(CustomException): client.get_product(name) def test_update_product(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' - product_category = 'productCategory-1607451058' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" + product_category = "productCategory-1607451058" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description, - 'product_category': product_category + "name": name, + "display_name": display_name, + "description": description, + "product_category": product_category, } - expected_response = product_search_service_pb2.Product( - **expected_response) + expected_response = product_search_service_pb2.Product(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() @@ -242,14 +233,15 @@ def test_update_product(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.UpdateProductRequest( - product=product) + product=product + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_product_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() @@ -262,32 +254,31 @@ def test_update_product_exception(self): def test_delete_product(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + name = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") client.delete_product(name) assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.DeleteProductRequest( - name=name) + expected_request = product_search_service_pb2.DeleteProductRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_product_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + name = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") with pytest.raises(CustomException): client.delete_product(name) @@ -295,26 +286,27 @@ def test_delete_product_exception(self): def test_list_reference_images(self): # Setup Expected Response page_size = 883849137 - next_page_token = '' + next_page_token = "" reference_images_element = {} reference_images = [reference_images_element] expected_response = { - 'page_size': page_size, - 'next_page_token': next_page_token, - 'reference_images': reference_images + "page_size": page_size, + "next_page_token": next_page_token, + "reference_images": reference_images, } expected_response = product_search_service_pb2.ListReferenceImagesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - parent = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + parent = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") paged_list_response = client.list_reference_images(parent) resources = list(paged_list_response) @@ -324,19 +316,20 @@ def test_list_reference_images(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.ListReferenceImagesRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_reference_images_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - parent = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + parent = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") paged_list_response = client.list_reference_images(parent) with pytest.raises(CustomException): @@ -344,98 +337,106 @@ def test_list_reference_images_exception(self): def test_get_reference_image(self): # Setup Expected Response - name_2 = 'name2-1052831874' - uri = 'uri116076' - expected_response = {'name': name_2, 'uri': uri} + name_2 = "name2-1052831874" + uri = "uri116076" + expected_response = {"name": name_2, "uri": uri} expected_response = product_search_service_pb2.ReferenceImage( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.reference_image_path('[PROJECT]', '[LOCATION]', - '[PRODUCT]', '[REFERENCE_IMAGE]') + name = client.reference_image_path( + "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]" + ) response = client.get_reference_image(name) assert expected_response == response assert len(channel.requests) == 1 expected_request = product_search_service_pb2.GetReferenceImageRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_reference_image_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.reference_image_path('[PROJECT]', '[LOCATION]', - '[PRODUCT]', '[REFERENCE_IMAGE]') + name = client.reference_image_path( + "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]" + ) with pytest.raises(CustomException): client.get_reference_image(name) def test_delete_reference_image(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.reference_image_path('[PROJECT]', '[LOCATION]', - '[PRODUCT]', '[REFERENCE_IMAGE]') + name = client.reference_image_path( + "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]" + ) client.delete_reference_image(name) assert len(channel.requests) == 1 expected_request = product_search_service_pb2.DeleteReferenceImageRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_reference_image_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.reference_image_path('[PROJECT]', '[LOCATION]', - '[PRODUCT]', '[REFERENCE_IMAGE]') + name = client.reference_image_path( + "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]" + ) with pytest.raises(CustomException): client.delete_reference_image(name) def test_create_reference_image(self): # Setup Expected Response - name = 'name3373707' - uri = 'uri116076' - expected_response = {'name': name, 'uri': uri} + name = "name3373707" + uri = "uri116076" + expected_response = {"name": name, "uri": uri} expected_response = product_search_service_pb2.ReferenceImage( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - parent = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + parent = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") reference_image = {} response = client.create_reference_image(parent, reference_image) @@ -443,20 +444,21 @@ def test_create_reference_image(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.CreateReferenceImageRequest( - parent=parent, reference_image=reference_image) + parent=parent, reference_image=reference_image + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_reference_image_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - parent = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + parent = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") reference_image = {} with pytest.raises(CustomException): @@ -464,21 +466,20 @@ def test_create_reference_image_exception(self): def test_create_product_set(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - expected_response = {'name': name, 'display_name': display_name} - expected_response = product_search_service_pb2.ProductSet( - **expected_response) + name = "name3373707" + display_name = "displayName1615086568" + expected_response = {"name": name, "display_name": display_name} + expected_response = product_search_service_pb2.ProductSet(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") product_set = {} response = client.create_product_set(parent, product_set) @@ -486,20 +487,21 @@ def test_create_product_set(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.CreateProductSetRequest( - parent=parent, product_set=product_set) + parent=parent, product_set=product_set + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") product_set = {} with pytest.raises(CustomException): @@ -507,25 +509,26 @@ def test_create_product_set_exception(self): def test_list_product_sets(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" product_sets_element = {} product_sets = [product_sets_element] expected_response = { - 'next_page_token': next_page_token, - 'product_sets': product_sets + "next_page_token": next_page_token, + "product_sets": product_sets, } expected_response = product_search_service_pb2.ListProductSetsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_product_sets(parent) resources = list(paged_list_response) @@ -535,19 +538,20 @@ def test_list_product_sets(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.ListProductSetsRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_product_sets_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_product_sets(parent) with pytest.raises(CustomException): @@ -555,58 +559,53 @@ def test_list_product_sets_exception(self): def test_get_product_set(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - expected_response = {'name': name_2, 'display_name': display_name} - expected_response = product_search_service_pb2.ProductSet( - **expected_response) + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + expected_response = {"name": name_2, "display_name": display_name} + expected_response = product_search_service_pb2.ProductSet(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") response = client.get_product_set(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.GetProductSetRequest( - name=name) + expected_request = product_search_service_pb2.GetProductSetRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") with pytest.raises(CustomException): client.get_product_set(name) def test_update_product_set(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - expected_response = {'name': name, 'display_name': display_name} - expected_response = product_search_service_pb2.ProductSet( - **expected_response) + name = "name3373707" + display_name = "displayName1615086568" + expected_response = {"name": name, "display_name": display_name} + expected_response = product_search_service_pb2.ProductSet(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() @@ -619,14 +618,15 @@ def test_update_product_set(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.UpdateProductSetRequest( - product_set=product_set) + product_set=product_set + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() @@ -639,132 +639,124 @@ def test_update_product_set_exception(self): def test_delete_product_set(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") client.delete_product_set(name) assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.DeleteProductSetRequest( - name=name) + expected_request = product_search_service_pb2.DeleteProductSetRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") with pytest.raises(CustomException): client.delete_product_set(name) def test_add_product_to_product_set(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') - product = 'product-309474065' + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") + product = "product-309474065" client.add_product_to_product_set(name, product) assert len(channel.requests) == 1 expected_request = product_search_service_pb2.AddProductToProductSetRequest( - name=name, product=product) + name=name, product=product + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_add_product_to_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') - product = 'product-309474065' + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") + product = "product-309474065" with pytest.raises(CustomException): client.add_product_to_product_set(name, product) def test_remove_product_from_product_set(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') - product = 'product-309474065' + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") + product = "product-309474065" client.remove_product_from_product_set(name, product) assert len(channel.requests) == 1 expected_request = product_search_service_pb2.RemoveProductFromProductSetRequest( - name=name, product=product) + name=name, product=product + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_remove_product_from_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') - product = 'product-309474065' + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") + product = "product-309474065" with pytest.raises(CustomException): client.remove_product_from_product_set(name, product) def test_list_products_in_product_set(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" products_element = {} products = [products_element] - expected_response = { - 'next_page_token': next_page_token, - 'products': products - } + expected_response = {"next_page_token": next_page_token, "products": products} expected_response = product_search_service_pb2.ListProductsInProductSetResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") paged_list_response = client.list_products_in_product_set(name) resources = list(paged_list_response) @@ -774,20 +766,20 @@ def test_list_products_in_product_set(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.ListProductsInProductSetRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_products_in_product_set_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") paged_list_response = client.list_products_in_product_set(name) with pytest.raises(CustomException): @@ -797,20 +789,22 @@ def test_import_product_sets(self): # Setup Expected Response expected_response = {} expected_response = product_search_service_pb2.ImportProductSetsResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_import_product_sets', done=True) + name="operations/test_import_product_sets", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") input_config = {} response = client.import_product_sets(parent, input_config) @@ -819,7 +813,8 @@ def test_import_product_sets(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.ImportProductSetsRequest( - parent=parent, input_config=input_config) + parent=parent, input_config=input_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -827,18 +822,19 @@ def test_import_product_sets_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_import_product_sets_exception', done=True) + name="operations/test_import_product_sets_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") input_config = {} response = client.import_product_sets(parent, input_config) diff --git a/vision/tests/unit/gapic/v1p1beta1/test_image_annotator_client_v1p1beta1.py b/vision/tests/unit/gapic/v1p1beta1/test_image_annotator_client_v1p1beta1.py index 495925ea27c4..182df4784478 100644 --- a/vision/tests/unit/gapic/v1p1beta1/test_image_annotator_client_v1p1beta1.py +++ b/vision/tests/unit/gapic/v1p1beta1/test_image_annotator_client_v1p1beta1.py @@ -50,10 +50,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -66,11 +63,12 @@ def test_batch_annotate_images(self): # Setup Expected Response expected_response = {} expected_response = image_annotator_pb2.BatchAnnotateImagesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p1beta1.ImageAnnotatorClient() @@ -83,14 +81,15 @@ def test_batch_annotate_images(self): assert len(channel.requests) == 1 expected_request = image_annotator_pb2.BatchAnnotateImagesRequest( - requests=requests) + requests=requests + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_batch_annotate_images_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p1beta1.ImageAnnotatorClient() diff --git a/vision/tests/unit/gapic/v1p2beta1/test_image_annotator_client_v1p2beta1.py b/vision/tests/unit/gapic/v1p2beta1/test_image_annotator_client_v1p2beta1.py index f2bf151c9d07..815cde112728 100644 --- a/vision/tests/unit/gapic/v1p2beta1/test_image_annotator_client_v1p2beta1.py +++ b/vision/tests/unit/gapic/v1p2beta1/test_image_annotator_client_v1p2beta1.py @@ -53,10 +53,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -69,11 +66,12 @@ def test_batch_annotate_images(self): # Setup Expected Response expected_response = {} expected_response = image_annotator_pb2.BatchAnnotateImagesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p2beta1.ImageAnnotatorClient() @@ -86,14 +84,15 @@ def test_batch_annotate_images(self): assert len(channel.requests) == 1 expected_request = image_annotator_pb2.BatchAnnotateImagesRequest( - requests=requests) + requests=requests + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_batch_annotate_images_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p2beta1.ImageAnnotatorClient() @@ -108,14 +107,16 @@ def test_async_batch_annotate_files(self): # Setup Expected Response expected_response = {} expected_response = image_annotator_pb2.AsyncBatchAnnotateFilesResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_async_batch_annotate_files', done=True) + name="operations/test_async_batch_annotate_files", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p2beta1.ImageAnnotatorClient() @@ -129,7 +130,8 @@ def test_async_batch_annotate_files(self): assert len(channel.requests) == 1 expected_request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest( - requests=requests) + requests=requests + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -137,13 +139,13 @@ def test_async_batch_annotate_files_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_async_batch_annotate_files_exception', - done=True) + name="operations/test_async_batch_annotate_files_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p2beta1.ImageAnnotatorClient() diff --git a/vision/tests/unit/gapic/v1p3beta1/test_image_annotator_client_v1p3beta1.py b/vision/tests/unit/gapic/v1p3beta1/test_image_annotator_client_v1p3beta1.py index 9f34fb4b8906..4d9a7815339f 100644 --- a/vision/tests/unit/gapic/v1p3beta1/test_image_annotator_client_v1p3beta1.py +++ b/vision/tests/unit/gapic/v1p3beta1/test_image_annotator_client_v1p3beta1.py @@ -53,10 +53,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -69,11 +66,12 @@ def test_batch_annotate_images(self): # Setup Expected Response expected_response = {} expected_response = image_annotator_pb2.BatchAnnotateImagesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ImageAnnotatorClient() @@ -86,14 +84,15 @@ def test_batch_annotate_images(self): assert len(channel.requests) == 1 expected_request = image_annotator_pb2.BatchAnnotateImagesRequest( - requests=requests) + requests=requests + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_batch_annotate_images_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ImageAnnotatorClient() @@ -108,14 +107,16 @@ def test_async_batch_annotate_files(self): # Setup Expected Response expected_response = {} expected_response = image_annotator_pb2.AsyncBatchAnnotateFilesResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_async_batch_annotate_files', done=True) + name="operations/test_async_batch_annotate_files", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ImageAnnotatorClient() @@ -129,7 +130,8 @@ def test_async_batch_annotate_files(self): assert len(channel.requests) == 1 expected_request = image_annotator_pb2.AsyncBatchAnnotateFilesRequest( - requests=requests) + requests=requests + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -137,13 +139,13 @@ def test_async_batch_annotate_files_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_async_batch_annotate_files_exception', - done=True) + name="operations/test_async_batch_annotate_files_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ImageAnnotatorClient() diff --git a/vision/tests/unit/gapic/v1p3beta1/test_product_search_client_v1p3beta1.py b/vision/tests/unit/gapic/v1p3beta1/test_product_search_client_v1p3beta1.py index 6fee52e6a896..c3868eb05c74 100644 --- a/vision/tests/unit/gapic/v1p3beta1/test_product_search_client_v1p3beta1.py +++ b/vision/tests/unit/gapic/v1p3beta1/test_product_search_client_v1p3beta1.py @@ -55,10 +55,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -69,73 +66,71 @@ class CustomException(Exception): class TestProductSearchClient(object): def test_create_product_set(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - expected_response = {'name': name, 'display_name': display_name} - expected_response = product_search_service_pb2.ProductSet( - **expected_response) + name = "name3373707" + display_name = "displayName1615086568" + expected_response = {"name": name, "display_name": display_name} + expected_response = product_search_service_pb2.ProductSet(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") product_set = {} - product_set_id = 'productSetId4216680' + product_set_id = "productSetId4216680" - response = client.create_product_set(parent, product_set, - product_set_id) + response = client.create_product_set(parent, product_set, product_set_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = product_search_service_pb2.CreateProductSetRequest( - parent=parent, - product_set=product_set, - product_set_id=product_set_id) + parent=parent, product_set=product_set, product_set_id=product_set_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") product_set = {} - product_set_id = 'productSetId4216680' + product_set_id = "productSetId4216680" with pytest.raises(CustomException): client.create_product_set(parent, product_set, product_set_id) def test_list_product_sets(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" product_sets_element = {} product_sets = [product_sets_element] expected_response = { - 'next_page_token': next_page_token, - 'product_sets': product_sets + "next_page_token": next_page_token, + "product_sets": product_sets, } expected_response = product_search_service_pb2.ListProductSetsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_product_sets(parent) resources = list(paged_list_response) @@ -145,19 +140,20 @@ def test_list_product_sets(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.ListProductSetsRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_product_sets_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_product_sets(parent) with pytest.raises(CustomException): @@ -165,58 +161,53 @@ def test_list_product_sets_exception(self): def test_get_product_set(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - expected_response = {'name': name_2, 'display_name': display_name} - expected_response = product_search_service_pb2.ProductSet( - **expected_response) + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + expected_response = {"name": name_2, "display_name": display_name} + expected_response = product_search_service_pb2.ProductSet(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") response = client.get_product_set(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.GetProductSetRequest( - name=name) + expected_request = product_search_service_pb2.GetProductSetRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") with pytest.raises(CustomException): client.get_product_set(name) def test_update_product_set(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - expected_response = {'name': name, 'display_name': display_name} - expected_response = product_search_service_pb2.ProductSet( - **expected_response) + name = "name3373707" + display_name = "displayName1615086568" + expected_response = {"name": name, "display_name": display_name} + expected_response = product_search_service_pb2.ProductSet(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() @@ -230,14 +221,15 @@ def test_update_product_set(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.UpdateProductSetRequest( - product_set=product_set, update_mask=update_mask) + product_set=product_set, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() @@ -251,111 +243,106 @@ def test_update_product_set_exception(self): def test_delete_product_set(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") client.delete_product_set(name) assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.DeleteProductSetRequest( - name=name) + expected_request = product_search_service_pb2.DeleteProductSetRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") with pytest.raises(CustomException): client.delete_product_set(name) def test_create_product(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' - product_category = 'productCategory-1607451058' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" + product_category = "productCategory-1607451058" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description, - 'product_category': product_category + "name": name, + "display_name": display_name, + "description": description, + "product_category": product_category, } - expected_response = product_search_service_pb2.Product( - **expected_response) + expected_response = product_search_service_pb2.Product(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") product = {} - product_id = 'productId1753008747' + product_id = "productId1753008747" response = client.create_product(parent, product, product_id) assert expected_response == response assert len(channel.requests) == 1 expected_request = product_search_service_pb2.CreateProductRequest( - parent=parent, product=product, product_id=product_id) + parent=parent, product=product, product_id=product_id + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_product_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") product = {} - product_id = 'productId1753008747' + product_id = "productId1753008747" with pytest.raises(CustomException): client.create_product(parent, product, product_id) def test_list_products(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" products_element = {} products = [products_element] - expected_response = { - 'next_page_token': next_page_token, - 'products': products - } + expected_response = {"next_page_token": next_page_token, "products": products} expected_response = product_search_service_pb2.ListProductsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_products(parent) resources = list(paged_list_response) @@ -364,20 +351,19 @@ def test_list_products(self): assert expected_response.products[0] == resources[0] assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.ListProductsRequest( - parent=parent) + expected_request = product_search_service_pb2.ListProductsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_products_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") paged_list_response = client.list_products(parent) with pytest.raises(CustomException): @@ -385,70 +371,67 @@ def test_list_products_exception(self): def test_get_product(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' - description = 'description-1724546052' - product_category = 'productCategory-1607451058' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" + description = "description-1724546052" + product_category = "productCategory-1607451058" expected_response = { - 'name': name_2, - 'display_name': display_name, - 'description': description, - 'product_category': product_category + "name": name_2, + "display_name": display_name, + "description": description, + "product_category": product_category, } - expected_response = product_search_service_pb2.Product( - **expected_response) + expected_response = product_search_service_pb2.Product(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + name = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") response = client.get_product(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.GetProductRequest( - name=name) + expected_request = product_search_service_pb2.GetProductRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_product_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + name = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") with pytest.raises(CustomException): client.get_product(name) def test_update_product(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' - description = 'description-1724546052' - product_category = 'productCategory-1607451058' + name = "name3373707" + display_name = "displayName1615086568" + description = "description-1724546052" + product_category = "productCategory-1607451058" expected_response = { - 'name': name, - 'display_name': display_name, - 'description': description, - 'product_category': product_category + "name": name, + "display_name": display_name, + "description": description, + "product_category": product_category, } - expected_response = product_search_service_pb2.Product( - **expected_response) + expected_response = product_search_service_pb2.Product(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() @@ -462,14 +445,15 @@ def test_update_product(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.UpdateProductRequest( - product=product, update_mask=update_mask) + product=product, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_product_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() @@ -483,115 +467,119 @@ def test_update_product_exception(self): def test_delete_product(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + name = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") client.delete_product(name) assert len(channel.requests) == 1 - expected_request = product_search_service_pb2.DeleteProductRequest( - name=name) + expected_request = product_search_service_pb2.DeleteProductRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_product_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + name = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") with pytest.raises(CustomException): client.delete_product(name) def test_create_reference_image(self): # Setup Expected Response - name = 'name3373707' - uri = 'uri116076' - expected_response = {'name': name, 'uri': uri} + name = "name3373707" + uri = "uri116076" + expected_response = {"name": name, "uri": uri} expected_response = product_search_service_pb2.ReferenceImage( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - parent = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + parent = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") reference_image = {} - reference_image_id = 'referenceImageId1946713331' + reference_image_id = "referenceImageId1946713331" - response = client.create_reference_image(parent, reference_image, - reference_image_id) + response = client.create_reference_image( + parent, reference_image, reference_image_id + ) assert expected_response == response assert len(channel.requests) == 1 expected_request = product_search_service_pb2.CreateReferenceImageRequest( parent=parent, reference_image=reference_image, - reference_image_id=reference_image_id) + reference_image_id=reference_image_id, + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_reference_image_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - parent = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + parent = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") reference_image = {} - reference_image_id = 'referenceImageId1946713331' + reference_image_id = "referenceImageId1946713331" with pytest.raises(CustomException): - client.create_reference_image(parent, reference_image, - reference_image_id) + client.create_reference_image(parent, reference_image, reference_image_id) def test_delete_reference_image(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.reference_image_path('[PROJECT]', '[LOCATION]', - '[PRODUCT]', '[REFERENCE_IMAGE]') + name = client.reference_image_path( + "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]" + ) client.delete_reference_image(name) assert len(channel.requests) == 1 expected_request = product_search_service_pb2.DeleteReferenceImageRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_reference_image_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.reference_image_path('[PROJECT]', '[LOCATION]', - '[PRODUCT]', '[REFERENCE_IMAGE]') + name = client.reference_image_path( + "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]" + ) with pytest.raises(CustomException): client.delete_reference_image(name) @@ -599,26 +587,27 @@ def test_delete_reference_image_exception(self): def test_list_reference_images(self): # Setup Expected Response page_size = 883849137 - next_page_token = '' + next_page_token = "" reference_images_element = {} reference_images = [reference_images_element] expected_response = { - 'page_size': page_size, - 'next_page_token': next_page_token, - 'reference_images': reference_images + "page_size": page_size, + "next_page_token": next_page_token, + "reference_images": reference_images, } expected_response = product_search_service_pb2.ListReferenceImagesResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - parent = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + parent = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") paged_list_response = client.list_reference_images(parent) resources = list(paged_list_response) @@ -628,19 +617,20 @@ def test_list_reference_images(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.ListReferenceImagesRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_reference_images_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - parent = client.product_path('[PROJECT]', '[LOCATION]', '[PRODUCT]') + parent = client.product_path("[PROJECT]", "[LOCATION]", "[PRODUCT]") paged_list_response = client.list_reference_images(parent) with pytest.raises(CustomException): @@ -648,141 +638,140 @@ def test_list_reference_images_exception(self): def test_get_reference_image(self): # Setup Expected Response - name_2 = 'name2-1052831874' - uri = 'uri116076' - expected_response = {'name': name_2, 'uri': uri} + name_2 = "name2-1052831874" + uri = "uri116076" + expected_response = {"name": name_2, "uri": uri} expected_response = product_search_service_pb2.ReferenceImage( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.reference_image_path('[PROJECT]', '[LOCATION]', - '[PRODUCT]', '[REFERENCE_IMAGE]') + name = client.reference_image_path( + "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]" + ) response = client.get_reference_image(name) assert expected_response == response assert len(channel.requests) == 1 expected_request = product_search_service_pb2.GetReferenceImageRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_reference_image_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.reference_image_path('[PROJECT]', '[LOCATION]', - '[PRODUCT]', '[REFERENCE_IMAGE]') + name = client.reference_image_path( + "[PROJECT]", "[LOCATION]", "[PRODUCT]", "[REFERENCE_IMAGE]" + ) with pytest.raises(CustomException): client.get_reference_image(name) def test_add_product_to_product_set(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') - product = 'product-309474065' + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") + product = "product-309474065" client.add_product_to_product_set(name, product) assert len(channel.requests) == 1 expected_request = product_search_service_pb2.AddProductToProductSetRequest( - name=name, product=product) + name=name, product=product + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_add_product_to_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') - product = 'product-309474065' + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") + product = "product-309474065" with pytest.raises(CustomException): client.add_product_to_product_set(name, product) def test_remove_product_from_product_set(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') - product = 'product-309474065' + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") + product = "product-309474065" client.remove_product_from_product_set(name, product) assert len(channel.requests) == 1 expected_request = product_search_service_pb2.RemoveProductFromProductSetRequest( - name=name, product=product) + name=name, product=product + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_remove_product_from_product_set_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') - product = 'product-309474065' + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") + product = "product-309474065" with pytest.raises(CustomException): client.remove_product_from_product_set(name, product) def test_list_products_in_product_set(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" products_element = {} products = [products_element] - expected_response = { - 'next_page_token': next_page_token, - 'products': products - } + expected_response = {"next_page_token": next_page_token, "products": products} expected_response = product_search_service_pb2.ListProductsInProductSetResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") paged_list_response = client.list_products_in_product_set(name) resources = list(paged_list_response) @@ -792,20 +781,20 @@ def test_list_products_in_product_set(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.ListProductsInProductSetRequest( - name=name) + name=name + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_products_in_product_set_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup request - name = client.product_set_path('[PROJECT]', '[LOCATION]', - '[PRODUCT_SET]') + name = client.product_set_path("[PROJECT]", "[LOCATION]", "[PRODUCT_SET]") paged_list_response = client.list_products_in_product_set(name) with pytest.raises(CustomException): @@ -815,20 +804,22 @@ def test_import_product_sets(self): # Setup Expected Response expected_response = {} expected_response = product_search_service_pb2.ImportProductSetsResponse( - **expected_response) + **expected_response + ) operation = operations_pb2.Operation( - name='operations/test_import_product_sets', done=True) + name="operations/test_import_product_sets", done=True + ) operation.response.Pack(expected_response) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") input_config = {} response = client.import_product_sets(parent, input_config) @@ -837,7 +828,8 @@ def test_import_product_sets(self): assert len(channel.requests) == 1 expected_request = product_search_service_pb2.ImportProductSetsRequest( - parent=parent, input_config=input_config) + parent=parent, input_config=input_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request @@ -845,18 +837,19 @@ def test_import_product_sets_exception(self): # Setup Response error = status_pb2.Status() operation = operations_pb2.Operation( - name='operations/test_import_product_sets_exception', done=True) + name="operations/test_import_product_sets_exception", done=True + ) operation.error.CopyFrom(error) # Mock the API response channel = ChannelStub(responses=[operation]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = vision_v1p3beta1.ProductSearchClient() # Setup Request - parent = client.location_path('[PROJECT]', '[LOCATION]') + parent = client.location_path("[PROJECT]", "[LOCATION]") input_config = {} response = client.import_product_sets(parent, input_config) diff --git a/vision/tests/unit/test_decorators.py b/vision/tests/unit/test_decorators.py index 52a083d550ca..c78707b29829 100644 --- a/vision/tests/unit/test_decorators.py +++ b/vision/tests/unit/test_decorators.py @@ -26,34 +26,34 @@ class DecoratorTests(unittest.TestCase): def test_noop_without_enums(self): class A(object): pass + APrime = vision_helpers.decorators.add_single_feature_methods(A) # It should be the same class object. assert A is APrime # Nothing should have been added. - assert not hasattr(A, 'face_detection') - assert not hasattr(A, 'logo_detection') + assert not hasattr(A, "face_detection") + assert not hasattr(A, "logo_detection") def test_with_enums(self): class A(object): enums = vision.enums # There should not be detection methods yet. - assert not hasattr(A, 'face_detection') + assert not hasattr(A, "face_detection") # Add the detection methods. APrime = vision_helpers.decorators.add_single_feature_methods(A) assert A is APrime # There should be detection methods now. - assert hasattr(A, 'face_detection') + assert hasattr(A, "face_detection") assert callable(A.face_detection) class SingleFeatureMethodTests(unittest.TestCase): - - @mock.patch.object(vision.ImageAnnotatorClient, 'annotate_image') + @mock.patch.object(vision.ImageAnnotatorClient, "annotate_image") def test_runs_generic_single_image(self, ai): ai.return_value = vision.types.AnnotateImageResponse() @@ -62,24 +62,31 @@ def test_runs_generic_single_image(self, ai): SENTINEL = mock.sentinel.image_context # Make a face detection request. - client = vision.ImageAnnotatorClient( - credentials=mock.Mock(spec=Credentials), - ) - image = {'source': {'image_uri': 'gs://my-test-bucket/image.jpg'}} + client = vision.ImageAnnotatorClient(credentials=mock.Mock(spec=Credentials)) + image = {"source": {"image_uri": "gs://my-test-bucket/image.jpg"}} max_results = 50 - response = client.face_detection(image, image_context=SENTINEL, - max_results=max_results) + response = client.face_detection( + image, image_context=SENTINEL, max_results=max_results + ) assert isinstance(response, vision.types.AnnotateImageResponse) # Assert that the single-image method was called as expected. - ai.assert_called_once_with({ - 'features': [{'type': vision.enums.Feature.Type.FACE_DETECTION, - 'max_results': max_results}], - 'image': image, - 'image_context': SENTINEL, - }, retry=None, timeout=None) - - @mock.patch.object(vision.ImageAnnotatorClient, 'annotate_image') + ai.assert_called_once_with( + { + "features": [ + { + "type": vision.enums.Feature.Type.FACE_DETECTION, + "max_results": max_results, + } + ], + "image": image, + "image_context": SENTINEL, + }, + retry=None, + timeout=None, + ) + + @mock.patch.object(vision.ImageAnnotatorClient, "annotate_image") def test_runs_generic_single_image_without_max_results(self, ai): ai.return_value = vision.types.AnnotateImageResponse() @@ -88,16 +95,18 @@ def test_runs_generic_single_image_without_max_results(self, ai): SENTINEL = mock.sentinel.image_context # Make a face detection request. - client = vision.ImageAnnotatorClient( - credentials=mock.Mock(spec=Credentials), - ) - image = {'source': {'image_uri': 'gs://my-test-bucket/image.jpg'}} + client = vision.ImageAnnotatorClient(credentials=mock.Mock(spec=Credentials)) + image = {"source": {"image_uri": "gs://my-test-bucket/image.jpg"}} response = client.face_detection(image, image_context=SENTINEL) assert isinstance(response, vision.types.AnnotateImageResponse) # Assert that the single-image method was called as expected. - ai.assert_called_once_with({ - 'features': [{'type': vision.enums.Feature.Type.FACE_DETECTION}], - 'image': image, - 'image_context': SENTINEL, - }, retry=None, timeout=None) + ai.assert_called_once_with( + { + "features": [{"type": vision.enums.Feature.Type.FACE_DETECTION}], + "image": image, + "image_context": SENTINEL, + }, + retry=None, + timeout=None, + ) diff --git a/vision/tests/unit/test_helpers.py b/vision/tests/unit/test_helpers.py index e65ab1b5afb1..97239a140d28 100644 --- a/vision/tests/unit/test_helpers.py +++ b/vision/tests/unit/test_helpers.py @@ -29,12 +29,10 @@ def setUp(self): credentials = mock.Mock(spec=Credentials) self.client = ImageAnnotatorClient(credentials=credentials) - @mock.patch.object(ImageAnnotatorClient, 'batch_annotate_images') + @mock.patch.object(ImageAnnotatorClient, "batch_annotate_images") def test_all_features_default(self, batch_annotate): # Set up an image annotation request with no features. - image = types.Image(source={ - 'image_uri': 'http://foo.com/img.jpg', - }) + image = types.Image(source={"image_uri": "http://foo.com/img.jpg"}) request = types.AnnotateImageRequest(image=image) assert not request.features @@ -54,12 +52,10 @@ def test_all_features_default(self, batch_annotate): assert request_sent.image is request.image assert len(request_sent.features) == len(all_features) - @mock.patch.object(ImageAnnotatorClient, 'batch_annotate_images') + @mock.patch.object(ImageAnnotatorClient, "batch_annotate_images") def test_explicit_features(self, batch_annotate): # Set up an image annotation request with no features. - image = types.Image(source={ - 'image_uri': 'http://foo.com/img.jpg', - }) + image = types.Image(source={"image_uri": "http://foo.com/img.jpg"}) request = types.AnnotateImageRequest( image=image, features=[ @@ -87,13 +83,13 @@ def test_explicit_features(self, batch_annotate): assert feature.type == i assert feature.max_results == 0 - @mock.patch.object(ImageAnnotatorClient, 'batch_annotate_images') + @mock.patch.object(ImageAnnotatorClient, "batch_annotate_images") def test_image_file_handler(self, batch_annotate): # Set up a file handler. - file_ = io.BytesIO(b'bogus==') + file_ = io.BytesIO(b"bogus==") # Perform the single image request. - self.client.annotate_image({'image': file_}) + self.client.annotate_image({"image": file_}) # Evaluate the argument sent to batch_annotate_images. assert batch_annotate.call_count == 1 @@ -104,24 +100,22 @@ def test_image_file_handler(self, batch_annotate): # Evalute the request object to ensure it looks correct. request_sent = args[0][0] - assert request_sent['image']['content'] == b'bogus==' + assert request_sent["image"]["content"] == b"bogus==" - @mock.patch.object(ImageAnnotatorClient, 'batch_annotate_images') - @mock.patch.object(io, 'open') + @mock.patch.object(ImageAnnotatorClient, "batch_annotate_images") + @mock.patch.object(io, "open") def test_image_filename(self, io_open, batch_annotate): # Make io.open send back a mock with a read method. file_ = mock.MagicMock(spec=io.BytesIO) io_open.return_value = file_ file_.__enter__.return_value = file_ - file_.read.return_value = b'imagefile==' + file_.read.return_value = b"imagefile==" # Perform the single image request using a filename. - self.client.annotate_image( - {'image': {'source': {'filename': 'image.jpeg'}}}, - ) + self.client.annotate_image({"image": {"source": {"filename": "image.jpeg"}}}) # Establish that my file was opened. - io_open.assert_called_once_with('image.jpeg', 'rb') + io_open.assert_called_once_with("image.jpeg", "rb") # Evalute the argument sent to batch_annotate_images. assert batch_annotate.call_count == 1 @@ -132,4 +126,4 @@ def test_image_filename(self, io_open, batch_annotate): # Evalute the request object to ensure it looks correct. request_sent = args[0][0] - assert request_sent['image']['content'] == b'imagefile==' + assert request_sent["image"]["content"] == b"imagefile==" diff --git a/websecurityscanner/docs/conf.py b/websecurityscanner/docs/conf.py index 18c19cf955e1..87c59dcb1da2 100644 --- a/websecurityscanner/docs/conf.py +++ b/websecurityscanner/docs/conf.py @@ -18,50 +18,50 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -sys.path.insert(0, os.path.abspath('..')) +sys.path.insert(0, os.path.abspath("..")) -__version__ = '0.1.0' +__version__ = "0.1.0" # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.intersphinx', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.intersphinx", + "sphinx.ext.coverage", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", ] # autodoc/autosummary flags -autoclass_content = 'both' -autodoc_default_flags = ['members'] +autoclass_content = "both" +autodoc_default_flags = ["members"] autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = u'google-cloud-websecurityscanner' -copyright = u'2017, Google' -author = u'Google APIs' +project = u"google-cloud-websecurityscanner" +copyright = u"2017, Google" +author = u"Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -70,7 +70,7 @@ # The full version, including alpha/beta/rc tags. release = __version__ # The short X.Y version. -version = '.'.join(release.split('.')[0:2]) +version = ".".join(release.split(".")[0:2]) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -81,37 +81,37 @@ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. -exclude_patterns = ['_build'] +exclude_patterns = ["_build"] # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True @@ -120,31 +120,31 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -154,78 +154,75 @@ # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'google-cloud-websecurityscanner-doc' +htmlhelp_basename = "google-cloud-websecurityscanner-doc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. #'preamble': '', - # Latex figure (float) alignment #'figure_align': 'htbp', } @@ -234,39 +231,51 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'google-cloud-websecurityscanner.tex', - u'google-cloud-websecurityscanner Documentation', author, 'manual'), + ( + master_doc, + "google-cloud-websecurityscanner.tex", + u"google-cloud-websecurityscanner Documentation", + author, + "manual", + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'google-cloud-websecurityscanner', - u'google-cloud-websecurityscanner Documentation', [author], 1)] +man_pages = [ + ( + master_doc, + "google-cloud-websecurityscanner", + u"google-cloud-websecurityscanner Documentation", + [author], + 1, + ) +] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -274,28 +283,33 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'google-cloud-websecurityscanner', - u'google-cloud-websecurityscanner Documentation', author, - 'google-cloud-websecurityscanner', - 'GAPIC library for the {metadata.shortName} v1alpha service', 'APIs'), + ( + master_doc, + "google-cloud-websecurityscanner", + u"google-cloud-websecurityscanner Documentation", + author, + "google-cloud-websecurityscanner", + "GAPIC library for the {metadata.shortName} v1alpha service", + "APIs", + ) ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { - 'python': ('http://python.readthedocs.org/en/latest/', None), - 'gax': ('https://gax-python.readthedocs.org/en/latest/', None), + "python": ("http://python.readthedocs.org/en/latest/", None), + "gax": ("https://gax-python.readthedocs.org/en/latest/", None), } # Napoleon settings diff --git a/websecurityscanner/google/__init__.py b/websecurityscanner/google/__init__.py index 7a9e5a0ef198..dd3a9f485275 100644 --- a/websecurityscanner/google/__init__.py +++ b/websecurityscanner/google/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/websecurityscanner/google/cloud/__init__.py b/websecurityscanner/google/cloud/__init__.py index 7a9e5a0ef198..dd3a9f485275 100644 --- a/websecurityscanner/google/cloud/__init__.py +++ b/websecurityscanner/google/cloud/__init__.py @@ -14,7 +14,9 @@ try: import pkg_resources + pkg_resources.declare_namespace(__name__) except ImportError: import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) diff --git a/websecurityscanner/google/cloud/websecurityscanner.py b/websecurityscanner/google/cloud/websecurityscanner.py index c70b74af4ec6..73beb3e8f8bc 100644 --- a/websecurityscanner/google/cloud/websecurityscanner.py +++ b/websecurityscanner/google/cloud/websecurityscanner.py @@ -18,8 +18,4 @@ from google.cloud.websecurityscanner_v1alpha import enums from google.cloud.websecurityscanner_v1alpha import types -__all__ = ( - 'enums', - 'types', - 'WebSecurityScannerClient', -) +__all__ = ("enums", "types", "WebSecurityScannerClient") diff --git a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/__init__.py b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/__init__.py index c9bdea96c1a6..583114b0cb54 100644 --- a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/__init__.py +++ b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/__init__.py @@ -16,18 +16,12 @@ from google.cloud.websecurityscanner_v1alpha import types from google.cloud.websecurityscanner_v1alpha.gapic import enums -from google.cloud.websecurityscanner_v1alpha.gapic import \ - web_security_scanner_client +from google.cloud.websecurityscanner_v1alpha.gapic import web_security_scanner_client -class WebSecurityScannerClient( - web_security_scanner_client.WebSecurityScannerClient): +class WebSecurityScannerClient(web_security_scanner_client.WebSecurityScannerClient): __doc__ = web_security_scanner_client.WebSecurityScannerClient.__doc__ enums = enums -__all__ = ( - 'enums', - 'types', - 'WebSecurityScannerClient', -) +__all__ = ("enums", "types", "WebSecurityScannerClient") diff --git a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/enums.py b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/enums.py index c6cda17dd753..57a16d792891 100644 --- a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/enums.py +++ b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/enums.py @@ -54,6 +54,7 @@ class FindingType(enum.IntEnum): CLEAR_TEXT_PASSWORD (int): An application appears to be transmitting a password field in clear text. An attacker can eavesdrop network traffic and sniff the password field. """ + FINDING_TYPE_UNSPECIFIED = 0 MIXED_CONTENT = 1 OUTDATED_LIBRARY = 2 @@ -74,6 +75,7 @@ class UserAgent(enum.IntEnum): CHROME_ANDROID (int): Chrome on Android. SAFARI_IPHONE (int): Safari on IPhone. """ + USER_AGENT_UNSPECIFIED = 0 CHROME_LINUX = 1 CHROME_ANDROID = 2 @@ -89,6 +91,7 @@ class TargetPlatform(enum.IntEnum): APP_ENGINE (int): Google App Engine service. COMPUTE (int): Google Compute Engine service. """ + TARGET_PLATFORM_UNSPECIFIED = 0 APP_ENGINE = 1 COMPUTE = 2 @@ -106,6 +109,7 @@ class ExecutionState(enum.IntEnum): SCANNING (int): The scan is in progress. FINISHED (int): The scan is either finished or stopped by user. """ + EXECUTION_STATE_UNSPECIFIED = 0 QUEUED = 1 SCANNING = 2 @@ -122,6 +126,7 @@ class ResultState(enum.IntEnum): ERROR (int): The scan finished with errors. KILLED (int): The scan was terminated by user. """ + RESULT_STATE_UNSPECIFIED = 0 SUCCESS = 1 ERROR = 2 diff --git a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/transports/web_security_scanner_grpc_transport.py b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/transports/web_security_scanner_grpc_transport.py index 1e6e1e424257..36f06fa195ec 100644 --- a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/transports/web_security_scanner_grpc_transport.py +++ b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/transports/web_security_scanner_grpc_transport.py @@ -27,14 +27,17 @@ class WebSecurityScannerGrpcTransport(object): which can be used to take advantage of advanced features of gRPC. """ + # The scopes needed to make gRPC calls to all of the methods defined # in this service. - _OAUTH_SCOPES = ('https://www.googleapis.com/auth/cloud-platform', ) - - def __init__(self, - channel=None, - credentials=None, - address='websecurityscanner.googleapis.com:443'): + _OAUTH_SCOPES = ("https://www.googleapis.com/auth/cloud-platform",) + + def __init__( + self, + channel=None, + credentials=None, + address="websecurityscanner.googleapis.com:443", + ): """Instantiate the transport class. Args: @@ -52,29 +55,27 @@ def __init__(self, # exception (channels come with credentials baked in already). if channel is not None and credentials is not None: raise ValueError( - 'The `channel` and `credentials` arguments are mutually ' - 'exclusive.', ) + "The `channel` and `credentials` arguments are mutually " "exclusive." + ) # Create the channel. if channel is None: - channel = self.create_channel( - address=address, - credentials=credentials, - ) + channel = self.create_channel(address=address, credentials=credentials) self._channel = channel # gRPC uses objects called "stubs" that are bound to the # channel and provide a basic method for each RPC. self._stubs = { - 'web_security_scanner_stub': - web_security_scanner_pb2_grpc.WebSecurityScannerStub(channel), + "web_security_scanner_stub": web_security_scanner_pb2_grpc.WebSecurityScannerStub( + channel + ) } @classmethod - def create_channel(cls, - address='websecurityscanner.googleapis.com:443', - credentials=None): + def create_channel( + cls, address="websecurityscanner.googleapis.com:443", credentials=None + ): """Create and return a gRPC channel object. Args: @@ -89,9 +90,7 @@ def create_channel(cls, grpc.Channel: A gRPC channel object. """ return google.api_core.grpc_helpers.create_channel( - address, - credentials=credentials, - scopes=cls._OAUTH_SCOPES, + address, credentials=credentials, scopes=cls._OAUTH_SCOPES ) @property @@ -114,7 +113,7 @@ def create_scan_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].CreateScanConfig + return self._stubs["web_security_scanner_stub"].CreateScanConfig @property def delete_scan_config(self): @@ -127,7 +126,7 @@ def delete_scan_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].DeleteScanConfig + return self._stubs["web_security_scanner_stub"].DeleteScanConfig @property def get_scan_config(self): @@ -140,7 +139,7 @@ def get_scan_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].GetScanConfig + return self._stubs["web_security_scanner_stub"].GetScanConfig @property def list_scan_configs(self): @@ -153,7 +152,7 @@ def list_scan_configs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].ListScanConfigs + return self._stubs["web_security_scanner_stub"].ListScanConfigs @property def update_scan_config(self): @@ -166,7 +165,7 @@ def update_scan_config(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].UpdateScanConfig + return self._stubs["web_security_scanner_stub"].UpdateScanConfig @property def start_scan_run(self): @@ -179,7 +178,7 @@ def start_scan_run(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].StartScanRun + return self._stubs["web_security_scanner_stub"].StartScanRun @property def get_scan_run(self): @@ -192,7 +191,7 @@ def get_scan_run(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].GetScanRun + return self._stubs["web_security_scanner_stub"].GetScanRun @property def list_scan_runs(self): @@ -206,7 +205,7 @@ def list_scan_runs(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].ListScanRuns + return self._stubs["web_security_scanner_stub"].ListScanRuns @property def stop_scan_run(self): @@ -219,7 +218,7 @@ def stop_scan_run(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].StopScanRun + return self._stubs["web_security_scanner_stub"].StopScanRun @property def list_crawled_urls(self): @@ -232,7 +231,7 @@ def list_crawled_urls(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].ListCrawledUrls + return self._stubs["web_security_scanner_stub"].ListCrawledUrls @property def get_finding(self): @@ -245,7 +244,7 @@ def get_finding(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].GetFinding + return self._stubs["web_security_scanner_stub"].GetFinding @property def list_findings(self): @@ -258,7 +257,7 @@ def list_findings(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].ListFindings + return self._stubs["web_security_scanner_stub"].ListFindings @property def list_finding_type_stats(self): @@ -271,4 +270,4 @@ def list_finding_type_stats(self): deserialized request object and returns a deserialized response object. """ - return self._stubs['web_security_scanner_stub'].ListFindingTypeStats + return self._stubs["web_security_scanner_stub"].ListFindingTypeStats diff --git a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/web_security_scanner_client.py b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/web_security_scanner_client.py index ff6e8b30d204..72450ac1a70f 100644 --- a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/web_security_scanner_client.py +++ b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/web_security_scanner_client.py @@ -29,8 +29,12 @@ import grpc from google.cloud.websecurityscanner_v1alpha.gapic import enums -from google.cloud.websecurityscanner_v1alpha.gapic import web_security_scanner_client_config -from google.cloud.websecurityscanner_v1alpha.gapic.transports import web_security_scanner_grpc_transport +from google.cloud.websecurityscanner_v1alpha.gapic import ( + web_security_scanner_client_config, +) +from google.cloud.websecurityscanner_v1alpha.gapic.transports import ( + web_security_scanner_grpc_transport, +) from google.cloud.websecurityscanner_v1alpha.proto import finding_pb2 from google.cloud.websecurityscanner_v1alpha.proto import scan_config_pb2 from google.cloud.websecurityscanner_v1alpha.proto import scan_run_pb2 @@ -40,7 +44,8 @@ from google.protobuf import field_mask_pb2 _GAPIC_LIBRARY_VERSION = pkg_resources.get_distribution( - 'google-cloud-websecurityscanner', ).version + "google-cloud-websecurityscanner" +).version class WebSecurityScannerClient(object): @@ -50,12 +55,12 @@ class WebSecurityScannerClient(object): attempts to exercise as many user inputs and event handlers as possible. """ - SERVICE_ADDRESS = 'websecurityscanner.googleapis.com:443' + SERVICE_ADDRESS = "websecurityscanner.googleapis.com:443" """The default address of the service.""" # The name of the interface for this client. This is the key used to # find the method configuration in the client_config dictionary. - _INTERFACE_NAME = 'google.cloud.websecurityscanner.v1alpha.WebSecurityScanner' + _INTERFACE_NAME = "google.cloud.websecurityscanner.v1alpha.WebSecurityScanner" @classmethod def from_service_account_file(cls, filename, *args, **kwargs): @@ -71,9 +76,8 @@ def from_service_account_file(cls, filename, *args, **kwargs): Returns: WebSecurityScannerClient: The constructed client. """ - credentials = service_account.Credentials.from_service_account_file( - filename) - kwargs['credentials'] = credentials + credentials = service_account.Credentials.from_service_account_file(filename) + kwargs["credentials"] = credentials return cls(*args, **kwargs) from_service_account_json = from_service_account_file @@ -82,15 +86,14 @@ def from_service_account_file(cls, filename, *args, **kwargs): def project_path(cls, project): """Return a fully-qualified project string.""" return google.api_core.path_template.expand( - 'projects/{project}', - project=project, + "projects/{project}", project=project ) @classmethod def scan_config_path(cls, project, scan_config): """Return a fully-qualified scan_config string.""" return google.api_core.path_template.expand( - 'projects/{project}/scanConfigs/{scan_config}', + "projects/{project}/scanConfigs/{scan_config}", project=project, scan_config=scan_config, ) @@ -99,7 +102,7 @@ def scan_config_path(cls, project, scan_config): def scan_run_path(cls, project, scan_config, scan_run): """Return a fully-qualified scan_run string.""" return google.api_core.path_template.expand( - 'projects/{project}/scanConfigs/{scan_config}/scanRuns/{scan_run}', + "projects/{project}/scanConfigs/{scan_config}/scanRuns/{scan_run}", project=project, scan_config=scan_config, scan_run=scan_run, @@ -109,19 +112,21 @@ def scan_run_path(cls, project, scan_config, scan_run): def finding_path(cls, project, scan_config, scan_run, finding): """Return a fully-qualified finding string.""" return google.api_core.path_template.expand( - 'projects/{project}/scanConfigs/{scan_config}/scanRuns/{scan_run}/findings/{finding}', + "projects/{project}/scanConfigs/{scan_config}/scanRuns/{scan_run}/findings/{finding}", project=project, scan_config=scan_config, scan_run=scan_run, finding=finding, ) - def __init__(self, - transport=None, - channel=None, - credentials=None, - client_config=None, - client_info=None): + def __init__( + self, + transport=None, + channel=None, + credentials=None, + client_config=None, + client_info=None, + ): """Constructor. Args: @@ -155,18 +160,19 @@ def __init__(self, # Raise deprecation warnings for things we want to go away. if client_config is not None: warnings.warn( - 'The `client_config` argument is deprecated.', + "The `client_config` argument is deprecated.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) else: client_config = web_security_scanner_client_config.config if channel: warnings.warn( - 'The `channel` argument is deprecated; use ' - '`transport` instead.', + "The `channel` argument is deprecated; use " "`transport` instead.", PendingDeprecationWarning, - stacklevel=2) + stacklevel=2, + ) # Instantiate the transport. # The transport is responsible for handling serialization and @@ -175,25 +181,24 @@ def __init__(self, if callable(transport): self.transport = transport( credentials=credentials, - default_class=web_security_scanner_grpc_transport. - WebSecurityScannerGrpcTransport, + default_class=web_security_scanner_grpc_transport.WebSecurityScannerGrpcTransport, ) else: if credentials: raise ValueError( - 'Received both a transport instance and ' - 'credentials; these are mutually exclusive.') + "Received both a transport instance and " + "credentials; these are mutually exclusive." + ) self.transport = transport else: self.transport = web_security_scanner_grpc_transport.WebSecurityScannerGrpcTransport( - address=self.SERVICE_ADDRESS, - channel=channel, - credentials=credentials, + address=self.SERVICE_ADDRESS, channel=channel, credentials=credentials ) if client_info is None: client_info = google.api_core.gapic_v1.client_info.ClientInfo( - gapic_version=_GAPIC_LIBRARY_VERSION, ) + gapic_version=_GAPIC_LIBRARY_VERSION + ) else: client_info.gapic_version = _GAPIC_LIBRARY_VERSION self._client_info = client_info @@ -203,7 +208,8 @@ def __init__(self, # (Ordinarily, these are the defaults specified in the `*_config.py` # file next to this one.) self._method_configs = google.api_core.gapic_v1.config.parse_method_configs( - client_config['interfaces'][self._INTERFACE_NAME], ) + client_config["interfaces"][self._INTERFACE_NAME] + ) # Save a dictionary of cached API call functions. # These are the actual callables which invoke the proper @@ -212,12 +218,14 @@ def __init__(self, self._inner_api_calls = {} # Service calls - def create_scan_config(self, - parent, - scan_config, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def create_scan_config( + self, + parent, + scan_config, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Creates a new ScanConfig. @@ -262,29 +270,30 @@ def create_scan_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'create_scan_config' not in self._inner_api_calls: + if "create_scan_config" not in self._inner_api_calls: self._inner_api_calls[ - 'create_scan_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.create_scan_config, - default_retry=self._method_configs['CreateScanConfig']. - retry, - default_timeout=self._method_configs['CreateScanConfig']. - timeout, - client_info=self._client_info, - ) + "create_scan_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.create_scan_config, + default_retry=self._method_configs["CreateScanConfig"].retry, + default_timeout=self._method_configs["CreateScanConfig"].timeout, + client_info=self._client_info, + ) request = web_security_scanner_pb2.CreateScanConfigRequest( - parent=parent, - scan_config=scan_config, + parent=parent, scan_config=scan_config + ) + return self._inner_api_calls["create_scan_config"]( + request, retry=retry, timeout=timeout, metadata=metadata ) - return self._inner_api_calls['create_scan_config']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def delete_scan_config(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + + def delete_scan_config( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Deletes an existing ScanConfig and its child resources. @@ -318,26 +327,28 @@ def delete_scan_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'delete_scan_config' not in self._inner_api_calls: + if "delete_scan_config" not in self._inner_api_calls: self._inner_api_calls[ - 'delete_scan_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.delete_scan_config, - default_retry=self._method_configs['DeleteScanConfig']. - retry, - default_timeout=self._method_configs['DeleteScanConfig']. - timeout, - client_info=self._client_info, - ) + "delete_scan_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.delete_scan_config, + default_retry=self._method_configs["DeleteScanConfig"].retry, + default_timeout=self._method_configs["DeleteScanConfig"].timeout, + client_info=self._client_info, + ) - request = web_security_scanner_pb2.DeleteScanConfigRequest(name=name, ) - self._inner_api_calls['delete_scan_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = web_security_scanner_pb2.DeleteScanConfigRequest(name=name) + self._inner_api_calls["delete_scan_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_scan_config(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_scan_config( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a ScanConfig. @@ -374,26 +385,29 @@ def get_scan_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_scan_config' not in self._inner_api_calls: + if "get_scan_config" not in self._inner_api_calls: self._inner_api_calls[ - 'get_scan_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_scan_config, - default_retry=self._method_configs['GetScanConfig'].retry, - default_timeout=self._method_configs['GetScanConfig']. - timeout, - client_info=self._client_info, - ) + "get_scan_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_scan_config, + default_retry=self._method_configs["GetScanConfig"].retry, + default_timeout=self._method_configs["GetScanConfig"].timeout, + client_info=self._client_info, + ) - request = web_security_scanner_pb2.GetScanConfigRequest(name=name, ) - return self._inner_api_calls['get_scan_config']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = web_security_scanner_pb2.GetScanConfigRequest(name=name) + return self._inner_api_calls["get_scan_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_scan_configs(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_scan_configs( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists ScanConfigs under a given project. @@ -450,41 +464,42 @@ def list_scan_configs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_scan_configs' not in self._inner_api_calls: + if "list_scan_configs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_scan_configs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_scan_configs, - default_retry=self._method_configs['ListScanConfigs']. - retry, - default_timeout=self._method_configs['ListScanConfigs']. - timeout, - client_info=self._client_info, - ) + "list_scan_configs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_scan_configs, + default_retry=self._method_configs["ListScanConfigs"].retry, + default_timeout=self._method_configs["ListScanConfigs"].timeout, + client_info=self._client_info, + ) request = web_security_scanner_pb2.ListScanConfigsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_scan_configs'], + self._inner_api_calls["list_scan_configs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='scan_configs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="scan_configs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def update_scan_config(self, - scan_config, - update_mask, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def update_scan_config( + self, + scan_config, + update_mask, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Updates a ScanConfig. This method support partial update of a ScanConfig. @@ -535,29 +550,30 @@ def update_scan_config(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'update_scan_config' not in self._inner_api_calls: + if "update_scan_config" not in self._inner_api_calls: self._inner_api_calls[ - 'update_scan_config'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.update_scan_config, - default_retry=self._method_configs['UpdateScanConfig']. - retry, - default_timeout=self._method_configs['UpdateScanConfig']. - timeout, - client_info=self._client_info, - ) + "update_scan_config" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.update_scan_config, + default_retry=self._method_configs["UpdateScanConfig"].retry, + default_timeout=self._method_configs["UpdateScanConfig"].timeout, + client_info=self._client_info, + ) request = web_security_scanner_pb2.UpdateScanConfigRequest( - scan_config=scan_config, - update_mask=update_mask, + scan_config=scan_config, update_mask=update_mask ) - return self._inner_api_calls['update_scan_config']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def start_scan_run(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + return self._inner_api_calls["update_scan_config"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) + + def start_scan_run( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Start a ScanRun according to the given ScanConfig. @@ -594,25 +610,28 @@ def start_scan_run(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'start_scan_run' not in self._inner_api_calls: + if "start_scan_run" not in self._inner_api_calls: self._inner_api_calls[ - 'start_scan_run'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.start_scan_run, - default_retry=self._method_configs['StartScanRun'].retry, - default_timeout=self._method_configs['StartScanRun']. - timeout, - client_info=self._client_info, - ) + "start_scan_run" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.start_scan_run, + default_retry=self._method_configs["StartScanRun"].retry, + default_timeout=self._method_configs["StartScanRun"].timeout, + client_info=self._client_info, + ) - request = web_security_scanner_pb2.StartScanRunRequest(name=name, ) - return self._inner_api_calls['start_scan_run']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = web_security_scanner_pb2.StartScanRunRequest(name=name) + return self._inner_api_calls["start_scan_run"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def get_scan_run(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_scan_run( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a ScanRun. @@ -650,25 +669,29 @@ def get_scan_run(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_scan_run' not in self._inner_api_calls: + if "get_scan_run" not in self._inner_api_calls: self._inner_api_calls[ - 'get_scan_run'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_scan_run, - default_retry=self._method_configs['GetScanRun'].retry, - default_timeout=self._method_configs['GetScanRun'].timeout, - client_info=self._client_info, - ) + "get_scan_run" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_scan_run, + default_retry=self._method_configs["GetScanRun"].retry, + default_timeout=self._method_configs["GetScanRun"].timeout, + client_info=self._client_info, + ) - request = web_security_scanner_pb2.GetScanRunRequest(name=name, ) - return self._inner_api_calls['get_scan_run']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = web_security_scanner_pb2.GetScanRunRequest(name=name) + return self._inner_api_calls["get_scan_run"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_scan_runs(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_scan_runs( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Lists ScanRuns under a given ScanConfig, in descending order of ScanRun stop time. @@ -726,39 +749,41 @@ def list_scan_runs(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_scan_runs' not in self._inner_api_calls: + if "list_scan_runs" not in self._inner_api_calls: self._inner_api_calls[ - 'list_scan_runs'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_scan_runs, - default_retry=self._method_configs['ListScanRuns'].retry, - default_timeout=self._method_configs['ListScanRuns']. - timeout, - client_info=self._client_info, - ) + "list_scan_runs" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_scan_runs, + default_retry=self._method_configs["ListScanRuns"].retry, + default_timeout=self._method_configs["ListScanRuns"].timeout, + client_info=self._client_info, + ) request = web_security_scanner_pb2.ListScanRunsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_scan_runs'], + self._inner_api_calls["list_scan_runs"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='scan_runs', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="scan_runs", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def stop_scan_run(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def stop_scan_run( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Stops a ScanRun. The stopped ScanRun is returned. @@ -796,26 +821,29 @@ def stop_scan_run(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'stop_scan_run' not in self._inner_api_calls: + if "stop_scan_run" not in self._inner_api_calls: self._inner_api_calls[ - 'stop_scan_run'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.stop_scan_run, - default_retry=self._method_configs['StopScanRun'].retry, - default_timeout=self._method_configs['StopScanRun']. - timeout, - client_info=self._client_info, - ) + "stop_scan_run" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.stop_scan_run, + default_retry=self._method_configs["StopScanRun"].retry, + default_timeout=self._method_configs["StopScanRun"].timeout, + client_info=self._client_info, + ) - request = web_security_scanner_pb2.StopScanRunRequest(name=name, ) - return self._inner_api_calls['stop_scan_run']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = web_security_scanner_pb2.StopScanRunRequest(name=name) + return self._inner_api_calls["stop_scan_run"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - def list_crawled_urls(self, - parent, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_crawled_urls( + self, + parent, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ List CrawledUrls under a given ScanRun. @@ -873,40 +901,41 @@ def list_crawled_urls(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_crawled_urls' not in self._inner_api_calls: + if "list_crawled_urls" not in self._inner_api_calls: self._inner_api_calls[ - 'list_crawled_urls'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_crawled_urls, - default_retry=self._method_configs['ListCrawledUrls']. - retry, - default_timeout=self._method_configs['ListCrawledUrls']. - timeout, - client_info=self._client_info, - ) + "list_crawled_urls" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_crawled_urls, + default_retry=self._method_configs["ListCrawledUrls"].retry, + default_timeout=self._method_configs["ListCrawledUrls"].timeout, + client_info=self._client_info, + ) request = web_security_scanner_pb2.ListCrawledUrlsRequest( - parent=parent, - page_size=page_size, + parent=parent, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_crawled_urls'], + self._inner_api_calls["list_crawled_urls"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='crawled_urls', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="crawled_urls", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator - def get_finding(self, - name, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def get_finding( + self, + name, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ Gets a Finding. @@ -944,26 +973,30 @@ def get_finding(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'get_finding' not in self._inner_api_calls: + if "get_finding" not in self._inner_api_calls: self._inner_api_calls[ - 'get_finding'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.get_finding, - default_retry=self._method_configs['GetFinding'].retry, - default_timeout=self._method_configs['GetFinding'].timeout, - client_info=self._client_info, - ) + "get_finding" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.get_finding, + default_retry=self._method_configs["GetFinding"].retry, + default_timeout=self._method_configs["GetFinding"].timeout, + client_info=self._client_info, + ) + + request = web_security_scanner_pb2.GetFindingRequest(name=name) + return self._inner_api_calls["get_finding"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) - request = web_security_scanner_pb2.GetFindingRequest(name=name, ) - return self._inner_api_calls['get_finding']( - request, retry=retry, timeout=timeout, metadata=metadata) - - def list_findings(self, - parent, - filter_, - page_size=None, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + def list_findings( + self, + parent, + filter_, + page_size=None, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ List Findings under a given ScanRun. @@ -1026,41 +1059,41 @@ def list_findings(self, ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_findings' not in self._inner_api_calls: + if "list_findings" not in self._inner_api_calls: self._inner_api_calls[ - 'list_findings'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_findings, - default_retry=self._method_configs['ListFindings'].retry, - default_timeout=self._method_configs['ListFindings']. - timeout, - client_info=self._client_info, - ) + "list_findings" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_findings, + default_retry=self._method_configs["ListFindings"].retry, + default_timeout=self._method_configs["ListFindings"].timeout, + client_info=self._client_info, + ) request = web_security_scanner_pb2.ListFindingsRequest( - parent=parent, - filter=filter_, - page_size=page_size, + parent=parent, filter=filter_, page_size=page_size ) iterator = google.api_core.page_iterator.GRPCIterator( client=None, method=functools.partial( - self._inner_api_calls['list_findings'], + self._inner_api_calls["list_findings"], retry=retry, timeout=timeout, - metadata=metadata), + metadata=metadata, + ), request=request, - items_field='findings', - request_token_field='page_token', - response_token_field='next_page_token', + items_field="findings", + request_token_field="page_token", + response_token_field="next_page_token", ) return iterator def list_finding_type_stats( - self, - parent, - retry=google.api_core.gapic_v1.method.DEFAULT, - timeout=google.api_core.gapic_v1.method.DEFAULT, - metadata=None): + self, + parent, + retry=google.api_core.gapic_v1.method.DEFAULT, + timeout=google.api_core.gapic_v1.method.DEFAULT, + metadata=None, + ): """ List all FindingTypeStats under a given ScanRun. @@ -1098,18 +1131,17 @@ def list_finding_type_stats( ValueError: If the parameters are invalid. """ # Wrap the transport method to add retry and timeout logic. - if 'list_finding_type_stats' not in self._inner_api_calls: + if "list_finding_type_stats" not in self._inner_api_calls: self._inner_api_calls[ - 'list_finding_type_stats'] = google.api_core.gapic_v1.method.wrap_method( - self.transport.list_finding_type_stats, - default_retry=self._method_configs['ListFindingTypeStats']. - retry, - default_timeout=self. - _method_configs['ListFindingTypeStats'].timeout, - client_info=self._client_info, - ) + "list_finding_type_stats" + ] = google.api_core.gapic_v1.method.wrap_method( + self.transport.list_finding_type_stats, + default_retry=self._method_configs["ListFindingTypeStats"].retry, + default_timeout=self._method_configs["ListFindingTypeStats"].timeout, + client_info=self._client_info, + ) - request = web_security_scanner_pb2.ListFindingTypeStatsRequest( - parent=parent, ) - return self._inner_api_calls['list_finding_type_stats']( - request, retry=retry, timeout=timeout, metadata=metadata) + request = web_security_scanner_pb2.ListFindingTypeStatsRequest(parent=parent) + return self._inner_api_calls["list_finding_type_stats"]( + request, retry=retry, timeout=timeout, metadata=metadata + ) diff --git a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/web_security_scanner_client_config.py b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/web_security_scanner_client_config.py index c909edc43037..e1550155721e 100644 --- a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/web_security_scanner_client_config.py +++ b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/gapic/web_security_scanner_client_config.py @@ -3,7 +3,7 @@ "google.cloud.websecurityscanner.v1alpha.WebSecurityScanner": { "retry_codes": { "idempotent": ["DEADLINE_EXCEEDED", "UNAVAILABLE"], - "non_idempotent": [] + "non_idempotent": [], }, "retry_params": { "default": { @@ -13,76 +13,76 @@ "initial_rpc_timeout_millis": 20000, "rpc_timeout_multiplier": 1.0, "max_rpc_timeout_millis": 20000, - "total_timeout_millis": 600000 + "total_timeout_millis": 600000, } }, "methods": { "CreateScanConfig": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "DeleteScanConfig": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetScanConfig": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListScanConfigs": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "UpdateScanConfig": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "StartScanRun": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetScanRun": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListScanRuns": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "StopScanRun": { "timeout_millis": 60000, "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListCrawledUrls": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "GetFinding": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListFindings": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" + "retry_params_name": "default", }, "ListFindingTypeStats": { "timeout_millis": 60000, "retry_codes_name": "idempotent", - "retry_params_name": "default" - } - } + "retry_params_name": "default", + }, + }, } } } diff --git a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/types.py b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/types.py index 594571c6551b..9de8061af033 100644 --- a/websecurityscanner/google/cloud/websecurityscanner_v1alpha/types.py +++ b/websecurityscanner/google/cloud/websecurityscanner_v1alpha/types.py @@ -25,21 +25,13 @@ from google.cloud.websecurityscanner_v1alpha.proto import crawled_url_pb2 from google.cloud.websecurityscanner_v1alpha.proto import finding_addon_pb2 from google.cloud.websecurityscanner_v1alpha.proto import finding_pb2 -from google.cloud.websecurityscanner_v1alpha.proto import ( - finding_type_stats_pb2) +from google.cloud.websecurityscanner_v1alpha.proto import finding_type_stats_pb2 from google.cloud.websecurityscanner_v1alpha.proto import scan_config_pb2 from google.cloud.websecurityscanner_v1alpha.proto import scan_run_pb2 -from google.cloud.websecurityscanner_v1alpha.proto import ( - web_security_scanner_pb2) +from google.cloud.websecurityscanner_v1alpha.proto import web_security_scanner_pb2 -_shared_modules = [ - http_pb2, - descriptor_pb2, - empty_pb2, - field_mask_pb2, - timestamp_pb2, -] +_shared_modules = [http_pb2, descriptor_pb2, empty_pb2, field_mask_pb2, timestamp_pb2] _local_modules = [ crawled_url_pb2, @@ -60,7 +52,7 @@ for module in _local_modules: for name, message in get_messages(module).items(): - message.__module__ = 'google.cloud.websecurityscanner_v1alpha.types' + message.__module__ = "google.cloud.websecurityscanner_v1alpha.types" setattr(sys.modules[__name__], name, message) names.append(name) diff --git a/websecurityscanner/tests/unit/gapic/v1alpha/test_web_security_scanner_client_v1alpha.py b/websecurityscanner/tests/unit/gapic/v1alpha/test_web_security_scanner_client_v1alpha.py index 310509a54302..fbd531dbb805 100644 --- a/websecurityscanner/tests/unit/gapic/v1alpha/test_web_security_scanner_client_v1alpha.py +++ b/websecurityscanner/tests/unit/gapic/v1alpha/test_web_security_scanner_client_v1alpha.py @@ -56,10 +56,7 @@ def __init__(self, responses=[]): self.responses = responses self.requests = [] - def unary_unary(self, - method, - request_serializer=None, - response_deserializer=None): + def unary_unary(self, method, request_serializer=None, response_deserializer=None): return MultiCallableStub(method, self) @@ -70,25 +67,25 @@ class CustomException(Exception): class TestWebSecurityScannerClient(object): def test_create_scan_config(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' + name = "name3373707" + display_name = "displayName1615086568" max_qps = 844445913 expected_response = { - 'name': name, - 'display_name': display_name, - 'max_qps': max_qps + "name": name, + "display_name": display_name, + "max_qps": max_qps, } expected_response = scan_config_pb2.ScanConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") scan_config = {} response = client.create_scan_config(parent, scan_config) @@ -96,20 +93,21 @@ def test_create_scan_config(self): assert len(channel.requests) == 1 expected_request = web_security_scanner_pb2.CreateScanConfigRequest( - parent=parent, scan_config=scan_config) + parent=parent, scan_config=scan_config + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_create_scan_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") scan_config = {} with pytest.raises(CustomException): @@ -117,102 +115,101 @@ def test_create_scan_config_exception(self): def test_delete_scan_config(self): channel = ChannelStub() - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - name = client.scan_config_path('[PROJECT]', '[SCAN_CONFIG]') + name = client.scan_config_path("[PROJECT]", "[SCAN_CONFIG]") client.delete_scan_config(name) assert len(channel.requests) == 1 - expected_request = web_security_scanner_pb2.DeleteScanConfigRequest( - name=name) + expected_request = web_security_scanner_pb2.DeleteScanConfigRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_delete_scan_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - name = client.scan_config_path('[PROJECT]', '[SCAN_CONFIG]') + name = client.scan_config_path("[PROJECT]", "[SCAN_CONFIG]") with pytest.raises(CustomException): client.delete_scan_config(name) def test_get_scan_config(self): # Setup Expected Response - name_2 = 'name2-1052831874' - display_name = 'displayName1615086568' + name_2 = "name2-1052831874" + display_name = "displayName1615086568" max_qps = 844445913 expected_response = { - 'name': name_2, - 'display_name': display_name, - 'max_qps': max_qps + "name": name_2, + "display_name": display_name, + "max_qps": max_qps, } expected_response = scan_config_pb2.ScanConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - name = client.scan_config_path('[PROJECT]', '[SCAN_CONFIG]') + name = client.scan_config_path("[PROJECT]", "[SCAN_CONFIG]") response = client.get_scan_config(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = web_security_scanner_pb2.GetScanConfigRequest( - name=name) + expected_request = web_security_scanner_pb2.GetScanConfigRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_scan_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - name = client.scan_config_path('[PROJECT]', '[SCAN_CONFIG]') + name = client.scan_config_path("[PROJECT]", "[SCAN_CONFIG]") with pytest.raises(CustomException): client.get_scan_config(name) def test_list_scan_configs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" scan_configs_element = {} scan_configs = [scan_configs_element] expected_response = { - 'next_page_token': next_page_token, - 'scan_configs': scan_configs + "next_page_token": next_page_token, + "scan_configs": scan_configs, } expected_response = web_security_scanner_pb2.ListScanConfigsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_scan_configs(parent) resources = list(paged_list_response) @@ -222,19 +219,20 @@ def test_list_scan_configs(self): assert len(channel.requests) == 1 expected_request = web_security_scanner_pb2.ListScanConfigsRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_scan_configs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - parent = client.project_path('[PROJECT]') + parent = client.project_path("[PROJECT]") paged_list_response = client.list_scan_configs(parent) with pytest.raises(CustomException): @@ -242,19 +240,19 @@ def test_list_scan_configs_exception(self): def test_update_scan_config(self): # Setup Expected Response - name = 'name3373707' - display_name = 'displayName1615086568' + name = "name3373707" + display_name = "displayName1615086568" max_qps = 844445913 expected_response = { - 'name': name, - 'display_name': display_name, - 'max_qps': max_qps + "name": name, + "display_name": display_name, + "max_qps": max_qps, } expected_response = scan_config_pb2.ScanConfig(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() @@ -268,14 +266,15 @@ def test_update_scan_config(self): assert len(channel.requests) == 1 expected_request = web_security_scanner_pb2.UpdateScanConfigRequest( - scan_config=scan_config, update_mask=update_mask) + scan_config=scan_config, update_mask=update_mask + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_update_scan_config_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() @@ -289,123 +288,119 @@ def test_update_scan_config_exception(self): def test_start_scan_run(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" urls_crawled_count = 1749797253 urls_tested_count = 1498664068 has_vulnerabilities = False progress_percent = 2137894861 expected_response = { - 'name': name_2, - 'urls_crawled_count': urls_crawled_count, - 'urls_tested_count': urls_tested_count, - 'has_vulnerabilities': has_vulnerabilities, - 'progress_percent': progress_percent + "name": name_2, + "urls_crawled_count": urls_crawled_count, + "urls_tested_count": urls_tested_count, + "has_vulnerabilities": has_vulnerabilities, + "progress_percent": progress_percent, } expected_response = scan_run_pb2.ScanRun(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - name = client.scan_config_path('[PROJECT]', '[SCAN_CONFIG]') + name = client.scan_config_path("[PROJECT]", "[SCAN_CONFIG]") response = client.start_scan_run(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = web_security_scanner_pb2.StartScanRunRequest( - name=name) + expected_request = web_security_scanner_pb2.StartScanRunRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_start_scan_run_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - name = client.scan_config_path('[PROJECT]', '[SCAN_CONFIG]') + name = client.scan_config_path("[PROJECT]", "[SCAN_CONFIG]") with pytest.raises(CustomException): client.start_scan_run(name) def test_get_scan_run(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" urls_crawled_count = 1749797253 urls_tested_count = 1498664068 has_vulnerabilities = False progress_percent = 2137894861 expected_response = { - 'name': name_2, - 'urls_crawled_count': urls_crawled_count, - 'urls_tested_count': urls_tested_count, - 'has_vulnerabilities': has_vulnerabilities, - 'progress_percent': progress_percent + "name": name_2, + "urls_crawled_count": urls_crawled_count, + "urls_tested_count": urls_tested_count, + "has_vulnerabilities": has_vulnerabilities, + "progress_percent": progress_percent, } expected_response = scan_run_pb2.ScanRun(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - name = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', '[SCAN_RUN]') + name = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") response = client.get_scan_run(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = web_security_scanner_pb2.GetScanRunRequest( - name=name) + expected_request = web_security_scanner_pb2.GetScanRunRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_scan_run_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - name = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', '[SCAN_RUN]') + name = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") with pytest.raises(CustomException): client.get_scan_run(name) def test_list_scan_runs(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" scan_runs_element = {} scan_runs = [scan_runs_element] - expected_response = { - 'next_page_token': next_page_token, - 'scan_runs': scan_runs - } + expected_response = {"next_page_token": next_page_token, "scan_runs": scan_runs} expected_response = web_security_scanner_pb2.ListScanRunsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - parent = client.scan_config_path('[PROJECT]', '[SCAN_CONFIG]') + parent = client.scan_config_path("[PROJECT]", "[SCAN_CONFIG]") paged_list_response = client.list_scan_runs(parent) resources = list(paged_list_response) @@ -414,20 +409,19 @@ def test_list_scan_runs(self): assert expected_response.scan_runs[0] == resources[0] assert len(channel.requests) == 1 - expected_request = web_security_scanner_pb2.ListScanRunsRequest( - parent=parent) + expected_request = web_security_scanner_pb2.ListScanRunsRequest(parent=parent) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_scan_runs_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - parent = client.scan_config_path('[PROJECT]', '[SCAN_CONFIG]') + parent = client.scan_config_path("[PROJECT]", "[SCAN_CONFIG]") paged_list_response = client.list_scan_runs(parent) with pytest.raises(CustomException): @@ -435,75 +429,74 @@ def test_list_scan_runs_exception(self): def test_stop_scan_run(self): # Setup Expected Response - name_2 = 'name2-1052831874' + name_2 = "name2-1052831874" urls_crawled_count = 1749797253 urls_tested_count = 1498664068 has_vulnerabilities = False progress_percent = 2137894861 expected_response = { - 'name': name_2, - 'urls_crawled_count': urls_crawled_count, - 'urls_tested_count': urls_tested_count, - 'has_vulnerabilities': has_vulnerabilities, - 'progress_percent': progress_percent + "name": name_2, + "urls_crawled_count": urls_crawled_count, + "urls_tested_count": urls_tested_count, + "has_vulnerabilities": has_vulnerabilities, + "progress_percent": progress_percent, } expected_response = scan_run_pb2.ScanRun(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - name = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', '[SCAN_RUN]') + name = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") response = client.stop_scan_run(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = web_security_scanner_pb2.StopScanRunRequest( - name=name) + expected_request = web_security_scanner_pb2.StopScanRunRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_stop_scan_run_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - name = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', '[SCAN_RUN]') + name = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") with pytest.raises(CustomException): client.stop_scan_run(name) def test_list_crawled_urls(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" crawled_urls_element = {} crawled_urls = [crawled_urls_element] expected_response = { - 'next_page_token': next_page_token, - 'crawled_urls': crawled_urls + "next_page_token": next_page_token, + "crawled_urls": crawled_urls, } expected_response = web_security_scanner_pb2.ListCrawledUrlsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - parent = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', - '[SCAN_RUN]') + parent = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") paged_list_response = client.list_crawled_urls(parent) resources = list(paged_list_response) @@ -513,20 +506,20 @@ def test_list_crawled_urls(self): assert len(channel.requests) == 1 expected_request = web_security_scanner_pb2.ListCrawledUrlsRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_crawled_urls_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - parent = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', - '[SCAN_RUN]') + parent = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") paged_list_response = client.list_crawled_urls(parent) with pytest.raises(CustomException): @@ -534,86 +527,84 @@ def test_list_crawled_urls_exception(self): def test_get_finding(self): # Setup Expected Response - name_2 = 'name2-1052831874' - http_method = 'httpMethod820747384' - fuzzed_url = 'fuzzedUrl-2120677666' - body = 'body3029410' - description = 'description-1724546052' - reproduction_url = 'reproductionUrl-244934180' - frame_url = 'frameUrl545464221' - final_url = 'finalUrl355601190' - tracking_id = 'trackingId1878901667' + name_2 = "name2-1052831874" + http_method = "httpMethod820747384" + fuzzed_url = "fuzzedUrl-2120677666" + body = "body3029410" + description = "description-1724546052" + reproduction_url = "reproductionUrl-244934180" + frame_url = "frameUrl545464221" + final_url = "finalUrl355601190" + tracking_id = "trackingId1878901667" expected_response = { - 'name': name_2, - 'http_method': http_method, - 'fuzzed_url': fuzzed_url, - 'body': body, - 'description': description, - 'reproduction_url': reproduction_url, - 'frame_url': frame_url, - 'final_url': final_url, - 'tracking_id': tracking_id + "name": name_2, + "http_method": http_method, + "fuzzed_url": fuzzed_url, + "body": body, + "description": description, + "reproduction_url": reproduction_url, + "frame_url": frame_url, + "final_url": final_url, + "tracking_id": tracking_id, } expected_response = finding_pb2.Finding(**expected_response) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - name = client.finding_path('[PROJECT]', '[SCAN_CONFIG]', '[SCAN_RUN]', - '[FINDING]') + name = client.finding_path( + "[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]", "[FINDING]" + ) response = client.get_finding(name) assert expected_response == response assert len(channel.requests) == 1 - expected_request = web_security_scanner_pb2.GetFindingRequest( - name=name) + expected_request = web_security_scanner_pb2.GetFindingRequest(name=name) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_get_finding_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - name = client.finding_path('[PROJECT]', '[SCAN_CONFIG]', '[SCAN_RUN]', - '[FINDING]') + name = client.finding_path( + "[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]", "[FINDING]" + ) with pytest.raises(CustomException): client.get_finding(name) def test_list_findings(self): # Setup Expected Response - next_page_token = '' + next_page_token = "" findings_element = {} findings = [findings_element] - expected_response = { - 'next_page_token': next_page_token, - 'findings': findings - } + expected_response = {"next_page_token": next_page_token, "findings": findings} expected_response = web_security_scanner_pb2.ListFindingsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - parent = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', - '[SCAN_RUN]') - filter_ = 'filter-1274492040' + parent = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") + filter_ = "filter-1274492040" paged_list_response = client.list_findings(parent, filter_) resources = list(paged_list_response) @@ -623,21 +614,21 @@ def test_list_findings(self): assert len(channel.requests) == 1 expected_request = web_security_scanner_pb2.ListFindingsRequest( - parent=parent, filter=filter_) + parent=parent, filter=filter_ + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_findings_exception(self): channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - parent = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', - '[SCAN_RUN]') - filter_ = 'filter-1274492040' + parent = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") + filter_ = "filter-1274492040" paged_list_response = client.list_findings(parent, filter_) with pytest.raises(CustomException): @@ -647,39 +638,39 @@ def test_list_finding_type_stats(self): # Setup Expected Response expected_response = {} expected_response = web_security_scanner_pb2.ListFindingTypeStatsResponse( - **expected_response) + **expected_response + ) # Mock the API response channel = ChannelStub(responses=[expected_response]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup Request - parent = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', - '[SCAN_RUN]') + parent = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") response = client.list_finding_type_stats(parent) assert expected_response == response assert len(channel.requests) == 1 expected_request = web_security_scanner_pb2.ListFindingTypeStatsRequest( - parent=parent) + parent=parent + ) actual_request = channel.requests[0][1] assert expected_request == actual_request def test_list_finding_type_stats_exception(self): # Mock the API response channel = ChannelStub(responses=[CustomException()]) - patch = mock.patch('google.api_core.grpc_helpers.create_channel') + patch = mock.patch("google.api_core.grpc_helpers.create_channel") with patch as create_channel: create_channel.return_value = channel client = websecurityscanner_v1alpha.WebSecurityScannerClient() # Setup request - parent = client.scan_run_path('[PROJECT]', '[SCAN_CONFIG]', - '[SCAN_RUN]') + parent = client.scan_run_path("[PROJECT]", "[SCAN_CONFIG]", "[SCAN_RUN]") with pytest.raises(CustomException): client.list_finding_type_stats(parent)