From 779da22b33b509219188a26f6b3a2fab707fe69e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 17 Oct 2022 14:08:33 +0000 Subject: [PATCH 01/17] feat: add `subject_to_thresholding` field to `ResponseMetadata` type (#302) - [ ] Regenerate this pull request now. feat: add `tokens_per_project_per_hour` field to `PropertyQuota` type PiperOrigin-RevId: 479394249 Source-Link: https://togithub.com/googleapis/googleapis/commit/59b73bd6f7c00dc5af895414c444b08055849bdf Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/c2f211bcb3cc0b10cb71905185dd740bd26fc372 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzJmMjExYmNiM2NjMGIxMGNiNzE5MDUxODVkZDc0MGJkMjZmYzM3MiJ9 --- .../beta_analytics_data/async_client.py | 39 ++++++---- .../services/beta_analytics_data/client.py | 35 +++++---- .../beta_analytics_data/transports/base.py | 4 +- .../beta_analytics_data/transports/grpc.py | 35 +++++---- .../transports/grpc_asyncio.py | 35 +++++---- .../data_v1beta/types/analytics_data_api.py | 16 ++-- google/analytics/data_v1beta/types/data.py | 76 ++++++++++++++----- 7 files changed, 157 insertions(+), 83 deletions(-) diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py b/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py index fce3be5..4c6f746 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py @@ -210,15 +210,18 @@ async def run_report( timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunReportResponse: - r"""Returns a customized report of your Google Analytics - event data. Reports contain statistics derived from data - collected by the Google Analytics tracking code. The - data returned from the API is as a table with columns - for the requested dimensions and metrics. Metrics are - individual measurements of user activity on your - property, such as active users or event count. - Dimensions break down metrics across some common - criteria, such as country or event name. + r"""Returns a customized report of your Google Analytics event data. + Reports contain statistics derived from data collected by the + Google Analytics tracking code. The data returned from the API + is as a table with columns for the requested dimensions and + metrics. Metrics are individual measurements of user activity on + your property, such as active users or event count. Dimensions + break down metrics across some common criteria, such as country + or event name. + + For a guide to constructing requests & understanding responses, + see `Creating a + Report `__. .. code-block:: python @@ -633,7 +636,7 @@ async def sample_get_metadata(): # and friendly error handling. rpc = gapic_v1.method_async.wrap_method( self._client._transport.get_metadata, - default_timeout=None, + default_timeout=60.0, client_info=DEFAULT_CLIENT_INFO, ) @@ -662,10 +665,16 @@ async def run_realtime_report( timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunRealtimeReportResponse: - r"""The Google Analytics Realtime API returns a - customized report of realtime event data for your - property. These reports show events and usage from the - last 30 minutes. + r"""Returns a customized report of realtime event data for your + property. Events appear in realtime reports seconds after they + have been sent to the Google Analytics. Realtime reports show + events and usage data for the periods of time ranging from the + present moment to 30 minutes ago (up to 60 minutes for Google + Analytics 360 properties). + + For a guide to constructing realtime requests & understanding + responses, see `Creating a Realtime + Report `__. .. code-block:: python @@ -809,7 +818,7 @@ async def sample_check_compatibility(): # and friendly error handling. rpc = gapic_v1.method_async.wrap_method( self._client._transport.check_compatibility, - default_timeout=None, + default_timeout=60.0, client_info=DEFAULT_CLIENT_INFO, ) diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/client.py b/google/analytics/data_v1beta/services/beta_analytics_data/client.py index e5315f8..d4e5da8 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/client.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/client.py @@ -433,15 +433,18 @@ def run_report( timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunReportResponse: - r"""Returns a customized report of your Google Analytics - event data. Reports contain statistics derived from data - collected by the Google Analytics tracking code. The - data returned from the API is as a table with columns - for the requested dimensions and metrics. Metrics are - individual measurements of user activity on your - property, such as active users or event count. - Dimensions break down metrics across some common - criteria, such as country or event name. + r"""Returns a customized report of your Google Analytics event data. + Reports contain statistics derived from data collected by the + Google Analytics tracking code. The data returned from the API + is as a table with columns for the requested dimensions and + metrics. Metrics are individual measurements of user activity on + your property, such as active users or event count. Dimensions + break down metrics across some common criteria, such as country + or event name. + + For a guide to constructing requests & understanding responses, + see `Creating a + Report `__. .. code-block:: python @@ -889,10 +892,16 @@ def run_realtime_report( timeout: float = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunRealtimeReportResponse: - r"""The Google Analytics Realtime API returns a - customized report of realtime event data for your - property. These reports show events and usage from the - last 30 minutes. + r"""Returns a customized report of realtime event data for your + property. Events appear in realtime reports seconds after they + have been sent to the Google Analytics. Realtime reports show + events and usage data for the periods of time ranging from the + present moment to 30 minutes ago (up to 60 minutes for Google + Analytics 360 properties). + + For a guide to constructing realtime requests & understanding + responses, see `Creating a Realtime + Report `__. .. code-block:: python diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py index 33eaafe..017debc 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py @@ -152,7 +152,7 @@ def _prep_wrapped_messages(self, client_info): ), self.get_metadata: gapic_v1.method.wrap_method( self.get_metadata, - default_timeout=None, + default_timeout=60.0, client_info=client_info, ), self.run_realtime_report: gapic_v1.method.wrap_method( @@ -162,7 +162,7 @@ def _prep_wrapped_messages(self, client_info): ), self.check_compatibility: gapic_v1.method.wrap_method( self.check_compatibility, - default_timeout=None, + default_timeout=60.0, client_info=client_info, ), } diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py index 6d0a470..3964332 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py @@ -237,15 +237,18 @@ def run_report( ]: r"""Return a callable for the run report method over gRPC. - Returns a customized report of your Google Analytics - event data. Reports contain statistics derived from data - collected by the Google Analytics tracking code. The - data returned from the API is as a table with columns - for the requested dimensions and metrics. Metrics are - individual measurements of user activity on your - property, such as active users or event count. - Dimensions break down metrics across some common - criteria, such as country or event name. + Returns a customized report of your Google Analytics event data. + Reports contain statistics derived from data collected by the + Google Analytics tracking code. The data returned from the API + is as a table with columns for the requested dimensions and + metrics. Metrics are individual measurements of user activity on + your property, such as active users or event count. Dimensions + break down metrics across some common criteria, such as country + or event name. + + For a guide to constructing requests & understanding responses, + see `Creating a + Report `__. Returns: Callable[[~.RunReportRequest], @@ -404,10 +407,16 @@ def run_realtime_report( ]: r"""Return a callable for the run realtime report method over gRPC. - The Google Analytics Realtime API returns a - customized report of realtime event data for your - property. These reports show events and usage from the - last 30 minutes. + Returns a customized report of realtime event data for your + property. Events appear in realtime reports seconds after they + have been sent to the Google Analytics. Realtime reports show + events and usage data for the periods of time ranging from the + present moment to 30 minutes ago (up to 60 minutes for Google + Analytics 360 properties). + + For a guide to constructing realtime requests & understanding + responses, see `Creating a Realtime + Report `__. Returns: Callable[[~.RunRealtimeReportRequest], diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py index 1173713..37bb305 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py @@ -241,15 +241,18 @@ def run_report( ]: r"""Return a callable for the run report method over gRPC. - Returns a customized report of your Google Analytics - event data. Reports contain statistics derived from data - collected by the Google Analytics tracking code. The - data returned from the API is as a table with columns - for the requested dimensions and metrics. Metrics are - individual measurements of user activity on your - property, such as active users or event count. - Dimensions break down metrics across some common - criteria, such as country or event name. + Returns a customized report of your Google Analytics event data. + Reports contain statistics derived from data collected by the + Google Analytics tracking code. The data returned from the API + is as a table with columns for the requested dimensions and + metrics. Metrics are individual measurements of user activity on + your property, such as active users or event count. Dimensions + break down metrics across some common criteria, such as country + or event name. + + For a guide to constructing requests & understanding responses, + see `Creating a + Report `__. Returns: Callable[[~.RunReportRequest], @@ -410,10 +413,16 @@ def run_realtime_report( ]: r"""Return a callable for the run realtime report method over gRPC. - The Google Analytics Realtime API returns a - customized report of realtime event data for your - property. These reports show events and usage from the - last 30 minutes. + Returns a customized report of realtime event data for your + property. Events appear in realtime reports seconds after they + have been sent to the Google Analytics. Realtime reports show + events and usage data for the periods of time ranging from the + present moment to 30 minutes ago (up to 60 minutes for Google + Analytics 360 properties). + + For a guide to constructing realtime requests & understanding + responses, see `Creating a Realtime + Report `__. Returns: Callable[[~.RunRealtimeReportRequest], diff --git a/google/analytics/data_v1beta/types/analytics_data_api.py b/google/analytics/data_v1beta/types/analytics_data_api.py index 62bc65c..80c086d 100644 --- a/google/analytics/data_v1beta/types/analytics_data_api.py +++ b/google/analytics/data_v1beta/types/analytics_data_api.py @@ -192,9 +192,10 @@ class RunReportRequest(proto.Message): Filters `__ for examples. Metrics cannot be used in this filter. metric_filter (google.analytics.data_v1beta.types.FilterExpression): - The filter clause of metrics. Applied at post - aggregation phase, similar to SQL having-clause. - Dimensions cannot be used in this filter. + The filter clause of metrics. Applied after + aggregating the report's rows, similar to SQL + having-clause. Dimensions cannot be used in this + filter. offset (int): The row count of the start row. The first row is counted as row 0. @@ -798,15 +799,12 @@ class RunRealtimeReportRequest(proto.Message): metrics (Sequence[google.analytics.data_v1beta.types.Metric]): The metrics requested and displayed. dimension_filter (google.analytics.data_v1beta.types.FilterExpression): - The filter clause of dimensions. Dimensions - must be requested to be used in this filter. - Metrics cannot be used in this filter. + The filter clause of dimensions. Metrics + cannot be used in this filter. metric_filter (google.analytics.data_v1beta.types.FilterExpression): The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. - Metrics must be requested to be used in this - filter. Dimensions cannot be used in this - filter. + Dimensions cannot be used in this filter. limit (int): The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per diff --git a/google/analytics/data_v1beta/types/data.py b/google/analytics/data_v1beta/types/data.py index 25ea6e6..64b74b7 100644 --- a/google/analytics/data_v1beta/types/data.py +++ b/google/analytics/data_v1beta/types/data.py @@ -151,9 +151,9 @@ class MinuteRange(proto.Message): If unspecified, ``startMinutesAgo`` is defaulted to 29. Standard Analytics properties can request up to the last 30 - minutes of event data (``startMinutesAgo <= 29``), and - Google Analytics 360 properties can request up to the last - 60 minutes of event data (``startMinutesAgo <= 59``). + minutes of event data (``startMinutesAgo <= 29``), and 360 + Analytics properties can request up to the last 60 minutes + of event data (``startMinutesAgo <= 59``). This field is a member of `oneof`_ ``_start_minutes_ago``. end_minutes_ago (int): @@ -165,8 +165,8 @@ class MinuteRange(proto.Message): If unspecified, ``endMinutesAgo`` is defaulted to 0. Standard Analytics properties can request any minute in the last 30 minutes of event data (``endMinutesAgo <= 29``), and - Google Analytics 360 properties can request any minute in - the last 60 minutes of event data (``endMinutesAgo <= 59``). + 360 Analytics properties can request any minute in the last + 60 minutes of event data (``endMinutesAgo <= 59``). This field is a member of `oneof`_ ``_end_minutes_ago``. name (str): @@ -198,8 +198,8 @@ class Dimension(proto.Message): r"""Dimensions are attributes of your data. For example, the dimension city indicates the city from which an event originates. Dimension values in report responses are strings; - for example, city could be "Paris" or "New York". Requests are - allowed up to 9 dimensions. + for example, the city could be "Paris" or "New York". Requests + are allowed up to 9 dimensions. Attributes: name (str): @@ -376,9 +376,9 @@ class Metric(proto.Message): class FilterExpression(proto.Message): - r"""To express dimension or metric filters. - The fields in the same FilterExpression need to be either all - dimensions or all metrics. + r"""To express dimension or metric filters. The fields in the + same FilterExpression need to be either all dimensions or all + metrics. This message has `oneof`_ fields (mutually exclusive fields). For each oneof, at most one member field can be set at the same time. @@ -401,9 +401,10 @@ class FilterExpression(proto.Message): This field is a member of `oneof`_ ``expr``. filter (google.analytics.data_v1beta.types.Filter): - A primitive filter. - All fields in filter in same FilterExpression - needs to be either all dimensions or metrics. + A primitive filter. In the same + FilterExpression, all of the filter's field + names need to be either all dimensions or all + metrics. This field is a member of `oneof`_ ``expr``. """ @@ -461,8 +462,12 @@ class Filter(proto.Message): Attributes: field_name (str): - The dimension name or metric name. Must be a - name defined in dimensions or metrics. + The dimension name or metric name. + In most methods, dimensions & metrics can be + used for the first time in this field. However + in a RunPivotReportRequest, this field must be + additionally specified by name in the + RunPivotReportRequest's dimensions or metrics. string_filter (google.analytics.data_v1beta.types.Filter.StringFilter): Strings related filter. @@ -620,7 +625,10 @@ class BetweenFilter(proto.Message): class OrderBy(proto.Message): - r"""The sort options. + r"""Order bys define how rows will be sorted in the response. For + example, ordering rows by descending event count is one + ordering, and ordering rows by the event name string is a + different ordering. This message has `oneof`_ fields (mutually exclusive fields). For each oneof, at most one member field can be set at the same time. @@ -1072,6 +1080,18 @@ class ResponseMetaData(proto.Message): empty for this reason. This field is a member of `oneof`_ ``_empty_reason``. + subject_to_thresholding (bool): + If ``subjectToThresholding`` is true, this report is subject + to thresholding and only returns data that meets the minimum + aggregation thresholds. It is possible for a request to be + subject to thresholding thresholding and no data is absent + from the report, and this happens when all data is above the + thresholds. To learn more, see `Data + thresholds `__ + and `About Demographics and + Interests `__. + + This field is a member of `oneof`_ ``_subject_to_thresholding``. """ class SchemaRestrictionResponse(proto.Message): @@ -1142,6 +1162,11 @@ class ActiveMetricRestriction(proto.Message): number=7, optional=True, ) + subject_to_thresholding = proto.Field( + proto.BOOL, + number=8, + optional=True, + ) class DimensionHeader(proto.Message): @@ -1373,8 +1398,8 @@ class PropertyQuota(proto.Message): 5,000 tokens per hour; Analytics 360 Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that - number is deducted from both the hourly and - daily quotas. + number is deducted from all of the hourly, + daily, and per project hourly quotas. concurrent_requests (google.analytics.data_v1beta.types.QuotaStatus): Standard Analytics Properties can send up to 10 concurrent requests; Analytics 360 Properties @@ -1392,6 +1417,16 @@ class PropertyQuota(proto.Message): request is individually counted for this quota if the request contains potentially thresholded dimensions. + tokens_per_project_per_hour (google.analytics.data_v1beta.types.QuotaStatus): + Analytics Properties can use up to 25% of + their tokens per project per hour. This amounts + to standard Analytics Properties can use up to + 1,250 tokens per project per hour, and Analytics + 360 Properties can use 12,500 tokens per project + per hour. An API request consumes a single + number of tokens, and that number is deducted + from all of the hourly, daily, and per project + hourly quotas. """ tokens_per_day = proto.Field( @@ -1419,6 +1454,11 @@ class PropertyQuota(proto.Message): number=5, message="QuotaStatus", ) + tokens_per_project_per_hour = proto.Field( + proto.MESSAGE, + number=6, + message="QuotaStatus", + ) class QuotaStatus(proto.Message): From 4b76c1f97e5304545d9a5aaf6b9d0a3bf1b488c8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Oct 2022 15:34:24 +0200 Subject: [PATCH 02/17] chore(deps): update dependency google-analytics-data to v0.14.2 (#305) Co-authored-by: Anthonios Partheniou --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 04c3e8f..7374c01 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,2 +1,2 @@ -google-analytics-data==0.14.1 +google-analytics-data==0.14.2 google-auth-oauthlib==0.5.3 \ No newline at end of file From d3cf269f77d41388640e9ded98f9729b1e626be1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 Oct 2022 02:42:38 +0200 Subject: [PATCH 03/17] chore(deps): update dependency google-auth-oauthlib to v0.6.0 (#309) --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 7374c01..f04ea25 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,2 +1,2 @@ google-analytics-data==0.14.2 -google-auth-oauthlib==0.5.3 \ No newline at end of file +google-auth-oauthlib==0.6.0 \ No newline at end of file From e2b98cc133adbede97d7ef7491fe91e18f0fcc38 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 Oct 2022 12:48:23 +0200 Subject: [PATCH 04/17] chore(deps): update all dependencies (#310) --- samples/snippets/requirements-test.txt | 2 +- samples/snippets/requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/snippets/requirements-test.txt b/samples/snippets/requirements-test.txt index e071685..49780e0 100644 --- a/samples/snippets/requirements-test.txt +++ b/samples/snippets/requirements-test.txt @@ -1 +1 @@ -pytest==7.1.3 +pytest==7.2.0 diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index f04ea25..0e1fb30 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,2 +1,2 @@ google-analytics-data==0.14.2 -google-auth-oauthlib==0.6.0 \ No newline at end of file +google-auth-oauthlib==0.7.0 \ No newline at end of file From 24a3ffdf22786a857ec105dad8f0a6174f43031b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 7 Nov 2022 19:31:41 +0100 Subject: [PATCH 05/17] chore(deps): update dependency google-auth-oauthlib to v0.7.1 (#312) --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index 0e1fb30..ad14784 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,2 +1,2 @@ google-analytics-data==0.14.2 -google-auth-oauthlib==0.7.0 \ No newline at end of file +google-auth-oauthlib==0.7.1 \ No newline at end of file From d24cb01682d24a50747e0c2cf3b6e3edb4cb2367 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 7 Nov 2022 15:35:19 -0500 Subject: [PATCH 06/17] chore(python): update dependencies in .kokoro/requirements.txt (#313) Source-Link: https://github.com/googleapis/synthtool/commit/e3a1277ac35fc88c09db1930533e24292b132ced Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:452901c74a22f9b9a3bd02bce780b8e8805c97270d424684bff809ce5be8c2a2 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.txt | 325 +++++++++++++++++++++----------------- noxfile.py | 11 +- 3 files changed, 187 insertions(+), 151 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 3815c98..12edee7 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:7a40313731a7cb1454eef6b33d3446ebb121836738dc3ab3d2d3ded5268c35b6 + digest: sha256:452901c74a22f9b9a3bd02bce780b8e8805c97270d424684bff809ce5be8c2a2 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index d15994b..31425f1 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -20,9 +20,9 @@ cachetools==5.2.0 \ --hash=sha256:6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757 \ --hash=sha256:f9f17d2aec496a9aa6b76f53e3b614c965223c061982d434d160f930c698a9db # via google-auth -certifi==2022.6.15 \ - --hash=sha256:84c85a9078b11105f04f3036a9482ae10e4621616db313fe045dd24743a0820d \ - --hash=sha256:fe86415d55e84719d75f8b69414f6438ac3547d2078ab91b67e779ef69378412 +certifi==2022.9.24 \ + --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ + --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ @@ -110,29 +110,33 @@ commonmark==0.9.1 \ --hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \ --hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9 # via rich -cryptography==37.0.4 \ - --hash=sha256:190f82f3e87033821828f60787cfa42bff98404483577b591429ed99bed39d59 \ - --hash=sha256:2be53f9f5505673eeda5f2736bea736c40f051a739bfae2f92d18aed1eb54596 \ - --hash=sha256:30788e070800fec9bbcf9faa71ea6d8068f5136f60029759fd8c3efec3c9dcb3 \ - --hash=sha256:3d41b965b3380f10e4611dbae366f6dc3cefc7c9ac4e8842a806b9672ae9add5 \ - --hash=sha256:4c590ec31550a724ef893c50f9a97a0c14e9c851c85621c5650d699a7b88f7ab \ - --hash=sha256:549153378611c0cca1042f20fd9c5030d37a72f634c9326e225c9f666d472884 \ - --hash=sha256:63f9c17c0e2474ccbebc9302ce2f07b55b3b3fcb211ded18a42d5764f5c10a82 \ - --hash=sha256:6bc95ed67b6741b2607298f9ea4932ff157e570ef456ef7ff0ef4884a134cc4b \ - --hash=sha256:7099a8d55cd49b737ffc99c17de504f2257e3787e02abe6d1a6d136574873441 \ - --hash=sha256:75976c217f10d48a8b5a8de3d70c454c249e4b91851f6838a4e48b8f41eb71aa \ - --hash=sha256:7bc997818309f56c0038a33b8da5c0bfbb3f1f067f315f9abd6fc07ad359398d \ - --hash=sha256:80f49023dd13ba35f7c34072fa17f604d2f19bf0989f292cedf7ab5770b87a0b \ - --hash=sha256:91ce48d35f4e3d3f1d83e29ef4a9267246e6a3be51864a5b7d2247d5086fa99a \ - --hash=sha256:a958c52505c8adf0d3822703078580d2c0456dd1d27fabfb6f76fe63d2971cd6 \ - --hash=sha256:b62439d7cd1222f3da897e9a9fe53bbf5c104fff4d60893ad1355d4c14a24157 \ - --hash=sha256:b7f8dd0d4c1f21759695c05a5ec8536c12f31611541f8904083f3dc582604280 \ - --hash=sha256:d204833f3c8a33bbe11eda63a54b1aad7aa7456ed769a982f21ec599ba5fa282 \ - --hash=sha256:e007f052ed10cc316df59bc90fbb7ff7950d7e2919c9757fd42a2b8ecf8a5f67 \ - --hash=sha256:f2dcb0b3b63afb6df7fd94ec6fbddac81b5492513f7b0436210d390c14d46ee8 \ - --hash=sha256:f721d1885ecae9078c3f6bbe8a88bc0786b6e749bf32ccec1ef2b18929a05046 \ - --hash=sha256:f7a6de3e98771e183645181b3627e2563dcde3ce94a9e42a3f427d2255190327 \ - --hash=sha256:f8c0a6e9e1dd3eb0414ba320f85da6b0dcbd543126e30fcc546e7372a7fbf3b9 +cryptography==38.0.3 \ + --hash=sha256:068147f32fa662c81aebab95c74679b401b12b57494872886eb5c1139250ec5d \ + --hash=sha256:06fc3cc7b6f6cca87bd56ec80a580c88f1da5306f505876a71c8cfa7050257dd \ + --hash=sha256:25c1d1f19729fb09d42e06b4bf9895212292cb27bb50229f5aa64d039ab29146 \ + --hash=sha256:402852a0aea73833d982cabb6d0c3bb582c15483d29fb7085ef2c42bfa7e38d7 \ + --hash=sha256:4e269dcd9b102c5a3d72be3c45d8ce20377b8076a43cbed6f660a1afe365e436 \ + --hash=sha256:5419a127426084933076132d317911e3c6eb77568a1ce23c3ac1e12d111e61e0 \ + --hash=sha256:554bec92ee7d1e9d10ded2f7e92a5d70c1f74ba9524947c0ba0c850c7b011828 \ + --hash=sha256:5e89468fbd2fcd733b5899333bc54d0d06c80e04cd23d8c6f3e0542358c6060b \ + --hash=sha256:65535bc550b70bd6271984d9863a37741352b4aad6fb1b3344a54e6950249b55 \ + --hash=sha256:6ab9516b85bebe7aa83f309bacc5f44a61eeb90d0b4ec125d2d003ce41932d36 \ + --hash=sha256:6addc3b6d593cd980989261dc1cce38263c76954d758c3c94de51f1e010c9a50 \ + --hash=sha256:728f2694fa743a996d7784a6194da430f197d5c58e2f4e278612b359f455e4a2 \ + --hash=sha256:785e4056b5a8b28f05a533fab69febf5004458e20dad7e2e13a3120d8ecec75a \ + --hash=sha256:78cf5eefac2b52c10398a42765bfa981ce2372cbc0457e6bf9658f41ec3c41d8 \ + --hash=sha256:7f836217000342d448e1c9a342e9163149e45d5b5eca76a30e84503a5a96cab0 \ + --hash=sha256:8d41a46251bf0634e21fac50ffd643216ccecfaf3701a063257fe0b2be1b6548 \ + --hash=sha256:984fe150f350a3c91e84de405fe49e688aa6092b3525f407a18b9646f6612320 \ + --hash=sha256:9b24bcff7853ed18a63cfb0c2b008936a9554af24af2fb146e16d8e1aed75748 \ + --hash=sha256:b1b35d9d3a65542ed2e9d90115dfd16bbc027b3f07ee3304fc83580f26e43249 \ + --hash=sha256:b1b52c9e5f8aa2b802d48bd693190341fae201ea51c7a167d69fc48b60e8a959 \ + --hash=sha256:bbf203f1a814007ce24bd4d51362991d5cb90ba0c177a9c08825f2cc304d871f \ + --hash=sha256:be243c7e2bfcf6cc4cb350c0d5cdf15ca6383bbcb2a8ef51d3c9411a9d4386f0 \ + --hash=sha256:bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd \ + --hash=sha256:c46837ea467ed1efea562bbeb543994c2d1f6e800785bd5a2c98bc096f5cb220 \ + --hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \ + --hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722 # via # gcp-releasetool # secretstorage @@ -148,23 +152,23 @@ filelock==3.8.0 \ --hash=sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc \ --hash=sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4 # via virtualenv -gcp-docuploader==0.6.3 \ - --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \ - --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b +gcp-docuploader==0.6.4 \ + --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ + --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in -gcp-releasetool==1.8.7 \ - --hash=sha256:3d2a67c9db39322194afb3b427e9cb0476ce8f2a04033695f0aeb63979fc2b37 \ - --hash=sha256:5e4d28f66e90780d77f3ecf1e9155852b0c3b13cbccb08ab07e66b2357c8da8d +gcp-releasetool==1.9.1 \ + --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ + --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b # via -r requirements.in -google-api-core==2.8.2 \ - --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ - --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50 +google-api-core==2.10.2 \ + --hash=sha256:10c06f7739fe57781f87523375e8e1a3a4674bf6392cd6131a3222182b971320 \ + --hash=sha256:34f24bd1d5f72a8c4519773d99ca6bf080a6c4e041b4e9f024fe230191dda62e # via # google-cloud-core # google-cloud-storage -google-auth==2.11.0 \ - --hash=sha256:be62acaae38d0049c21ca90f27a23847245c9f161ff54ede13af2cb6afecbac9 \ - --hash=sha256:ed65ecf9f681832298e29328e1ef0a3676e3732b2e56f41532d45f70a22de0fb +google-auth==2.14.0 \ + --hash=sha256:1ad5b0e6eba5f69645971abb3d2c197537d5914070a8c6d30299dfdb07c5c700 \ + --hash=sha256:cf24817855d874ede2efd071aa22125445f555de1685b739a9782fcf408c2a3d # via # gcp-releasetool # google-api-core @@ -178,72 +182,97 @@ google-cloud-storage==2.5.0 \ --hash=sha256:19a26c66c317ce542cea0830b7e787e8dac2588b6bfa4d3fd3b871ba16305ab0 \ --hash=sha256:382f34b91de2212e3c2e7b40ec079d27ee2e3dbbae99b75b1bcd8c63063ce235 # via gcp-docuploader -google-crc32c==1.3.0 \ - --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \ - --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \ - --hash=sha256:12674a4c3b56b706153a358eaa1018c4137a5a04635b92b4652440d3d7386206 \ - --hash=sha256:127f9cc3ac41b6a859bd9dc4321097b1a4f6aa7fdf71b4f9227b9e3ebffb4422 \ - --hash=sha256:13af315c3a0eec8bb8b8d80b8b128cb3fcd17d7e4edafc39647846345a3f003a \ - --hash=sha256:1926fd8de0acb9d15ee757175ce7242e235482a783cd4ec711cc999fc103c24e \ - --hash=sha256:226f2f9b8e128a6ca6a9af9b9e8384f7b53a801907425c9a292553a3a7218ce0 \ - --hash=sha256:276de6273eb074a35bc598f8efbc00c7869c5cf2e29c90748fccc8c898c244df \ - --hash=sha256:318f73f5484b5671f0c7f5f63741ab020a599504ed81d209b5c7129ee4667407 \ - --hash=sha256:3bbce1be3687bbfebe29abdb7631b83e6b25da3f4e1856a1611eb21854b689ea \ - --hash=sha256:42ae4781333e331a1743445931b08ebdad73e188fd554259e772556fc4937c48 \ - --hash=sha256:58be56ae0529c664cc04a9c76e68bb92b091e0194d6e3c50bea7e0f266f73713 \ - --hash=sha256:5da2c81575cc3ccf05d9830f9e8d3c70954819ca9a63828210498c0774fda1a3 \ - --hash=sha256:6311853aa2bba4064d0c28ca54e7b50c4d48e3de04f6770f6c60ebda1e975267 \ - --hash=sha256:650e2917660e696041ab3dcd7abac160b4121cd9a484c08406f24c5964099829 \ - --hash=sha256:6a4db36f9721fdf391646685ecffa404eb986cbe007a3289499020daf72e88a2 \ - --hash=sha256:779cbf1ce375b96111db98fca913c1f5ec11b1d870e529b1dc7354b2681a8c3a \ - --hash=sha256:7f6fe42536d9dcd3e2ffb9d3053f5d05221ae3bbcefbe472bdf2c71c793e3183 \ - --hash=sha256:891f712ce54e0d631370e1f4997b3f182f3368179198efc30d477c75d1f44942 \ - --hash=sha256:95c68a4b9b7828ba0428f8f7e3109c5d476ca44996ed9a5f8aac6269296e2d59 \ - --hash=sha256:96a8918a78d5d64e07c8ea4ed2bc44354e3f93f46a4866a40e8db934e4c0d74b \ - --hash=sha256:9c3cf890c3c0ecfe1510a452a165431b5831e24160c5fcf2071f0f85ca5a47cd \ - --hash=sha256:9f58099ad7affc0754ae42e6d87443299f15d739b0ce03c76f515153a5cda06c \ - --hash=sha256:a0b9e622c3b2b8d0ce32f77eba617ab0d6768b82836391e4f8f9e2074582bf02 \ - --hash=sha256:a7f9cbea4245ee36190f85fe1814e2d7b1e5f2186381b082f5d59f99b7f11328 \ - --hash=sha256:bab4aebd525218bab4ee615786c4581952eadc16b1ff031813a2fd51f0cc7b08 \ - --hash=sha256:c124b8c8779bf2d35d9b721e52d4adb41c9bfbde45e6a3f25f0820caa9aba73f \ - --hash=sha256:c9da0a39b53d2fab3e5467329ed50e951eb91386e9d0d5b12daf593973c3b168 \ - --hash=sha256:ca60076c388728d3b6ac3846842474f4250c91efbfe5afa872d3ffd69dd4b318 \ - --hash=sha256:cb6994fff247987c66a8a4e550ef374671c2b82e3c0d2115e689d21e511a652d \ - --hash=sha256:d1c1d6236feab51200272d79b3d3e0f12cf2cbb12b208c835b175a21efdb0a73 \ - --hash=sha256:dd7760a88a8d3d705ff562aa93f8445ead54f58fd482e4f9e2bafb7e177375d4 \ - --hash=sha256:dda4d8a3bb0b50f540f6ff4b6033f3a74e8bf0bd5320b70fab2c03e512a62812 \ - --hash=sha256:e0f1ff55dde0ebcfbef027edc21f71c205845585fffe30d4ec4979416613e9b3 \ - --hash=sha256:e7a539b9be7b9c00f11ef16b55486141bc2cdb0c54762f84e3c6fc091917436d \ - --hash=sha256:eb0b14523758e37802f27b7f8cd973f5f3d33be7613952c0df904b68c4842f0e \ - --hash=sha256:ed447680ff21c14aaceb6a9f99a5f639f583ccfe4ce1a5e1d48eb41c3d6b3217 \ - --hash=sha256:f52a4ad2568314ee713715b1e2d79ab55fab11e8b304fd1462ff5cccf4264b3e \ - --hash=sha256:fbd60c6aaa07c31d7754edbc2334aef50601b7f1ada67a96eb1eb57c7c72378f \ - --hash=sha256:fc28e0db232c62ca0c3600884933178f0825c99be4474cdd645e378a10588125 \ - --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \ - --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \ - --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3 +google-crc32c==1.5.0 \ + --hash=sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a \ + --hash=sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876 \ + --hash=sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c \ + --hash=sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289 \ + --hash=sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298 \ + --hash=sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02 \ + --hash=sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f \ + --hash=sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2 \ + --hash=sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a \ + --hash=sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb \ + --hash=sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210 \ + --hash=sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5 \ + --hash=sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee \ + --hash=sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c \ + --hash=sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a \ + --hash=sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314 \ + --hash=sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd \ + --hash=sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65 \ + --hash=sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37 \ + --hash=sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4 \ + --hash=sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13 \ + --hash=sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894 \ + --hash=sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31 \ + --hash=sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e \ + --hash=sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709 \ + --hash=sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740 \ + --hash=sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc \ + --hash=sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d \ + --hash=sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c \ + --hash=sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c \ + --hash=sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d \ + --hash=sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906 \ + --hash=sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61 \ + --hash=sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57 \ + --hash=sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c \ + --hash=sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a \ + --hash=sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438 \ + --hash=sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946 \ + --hash=sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7 \ + --hash=sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96 \ + --hash=sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091 \ + --hash=sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae \ + --hash=sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d \ + --hash=sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88 \ + --hash=sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2 \ + --hash=sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd \ + --hash=sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541 \ + --hash=sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728 \ + --hash=sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178 \ + --hash=sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968 \ + --hash=sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346 \ + --hash=sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8 \ + --hash=sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93 \ + --hash=sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7 \ + --hash=sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273 \ + --hash=sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462 \ + --hash=sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94 \ + --hash=sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd \ + --hash=sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e \ + --hash=sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57 \ + --hash=sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b \ + --hash=sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9 \ + --hash=sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a \ + --hash=sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100 \ + --hash=sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325 \ + --hash=sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183 \ + --hash=sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556 \ + --hash=sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4 # via google-resumable-media -google-resumable-media==2.3.3 \ - --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ - --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 +google-resumable-media==2.4.0 \ + --hash=sha256:2aa004c16d295c8f6c33b2b4788ba59d366677c0a25ae7382436cb30f776deaa \ + --hash=sha256:8d5518502f92b9ecc84ac46779bd4f09694ecb3ba38a3e7ca737a86d15cbca1f # via google-cloud-storage googleapis-common-protos==1.56.4 \ --hash=sha256:8eb2cbc91b69feaf23e32452a7ae60e791e09967d81d4fcc7fc388182d1bd394 \ --hash=sha256:c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417 # via google-api-core -idna==3.3 \ - --hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff \ - --hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d +idna==3.4 \ + --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ + --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 # via requests -importlib-metadata==4.12.0 \ - --hash=sha256:637245b8bab2b6502fcbc752cc4b7a6f6243bb02b31c5c26156ad103d3d45670 \ - --hash=sha256:7401a975809ea1fdc658c3aa4f78cc2195a0e019c5cbc4c06122884e9ae80c23 +importlib-metadata==5.0.0 \ + --hash=sha256:da31db32b304314d044d3c12c79bd59e307889b287ad12ff387b3500835fc2ab \ + --hash=sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43 # via # -r requirements.in # twine -jaraco-classes==3.2.2 \ - --hash=sha256:6745f113b0b588239ceb49532aa09c3ebb947433ce311ef2f8e3ad64ebb74594 \ - --hash=sha256:e6ef6fd3fcf4579a7a019d87d1e56a883f4e4c35cfe925f86731abc58804e647 +jaraco-classes==3.2.3 \ + --hash=sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158 \ + --hash=sha256:89559fa5c1d3c34eff6f631ad80bb21f378dbcbb35dd161fd2c6b93f5be2f98a # via keyring jeepney==0.8.0 \ --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \ @@ -255,9 +284,9 @@ jinja2==3.1.2 \ --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 # via gcp-releasetool -keyring==23.9.0 \ - --hash=sha256:4c32a31174faaee48f43a7e2c7e9c3216ec5e95acf22a2bebfb4a1d05056ee44 \ - --hash=sha256:98f060ec95ada2ab910c195a2d4317be6ef87936a766b239c46aa3c7aac4f0db +keyring==23.9.3 \ + --hash=sha256:69732a15cb1433bdfbc3b980a8a36a04878a6cfd7cb99f497b573f31618001c0 \ + --hash=sha256:69b01dd83c42f590250fe7a1f503fc229b14de83857314b1933a3ddbf595c4a5 # via # gcp-releasetool # twine @@ -303,9 +332,9 @@ markupsafe==2.1.1 \ --hash=sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a \ --hash=sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7 # via jinja2 -more-itertools==8.14.0 \ - --hash=sha256:1bc4f91ee5b1b31ac7ceacc17c09befe6a40a503907baf9c839c229b5095cfd2 \ - --hash=sha256:c09443cd3d5438b8dafccd867a6bc1cb0894389e90cb53d227456b0b0bccb750 +more-itertools==9.0.0 \ + --hash=sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41 \ + --hash=sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab # via jaraco-classes nox==2022.8.7 \ --hash=sha256:1b894940551dc5c389f9271d197ca5d655d40bdc6ccf93ed6880e4042760a34b \ @@ -325,34 +354,34 @@ platformdirs==2.5.2 \ --hash=sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788 \ --hash=sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19 # via virtualenv -protobuf==3.20.2 \ - --hash=sha256:03d76b7bd42ac4a6e109742a4edf81ffe26ffd87c5993126d894fe48a120396a \ - --hash=sha256:09e25909c4297d71d97612f04f41cea8fa8510096864f2835ad2f3b3df5a5559 \ - --hash=sha256:18e34a10ae10d458b027d7638a599c964b030c1739ebd035a1dfc0e22baa3bfe \ - --hash=sha256:291fb4307094bf5ccc29f424b42268640e00d5240bf0d9b86bf3079f7576474d \ - --hash=sha256:2c0b040d0b5d5d207936ca2d02f00f765906622c07d3fa19c23a16a8ca71873f \ - --hash=sha256:384164994727f274cc34b8abd41a9e7e0562801361ee77437099ff6dfedd024b \ - --hash=sha256:3cb608e5a0eb61b8e00fe641d9f0282cd0eedb603be372f91f163cbfbca0ded0 \ - --hash=sha256:5d9402bf27d11e37801d1743eada54372f986a372ec9679673bfcc5c60441151 \ - --hash=sha256:712dca319eee507a1e7df3591e639a2b112a2f4a62d40fe7832a16fd19151750 \ - --hash=sha256:7a5037af4e76c975b88c3becdf53922b5ffa3f2cddf657574a4920a3b33b80f3 \ - --hash=sha256:8228e56a865c27163d5d1d1771d94b98194aa6917bcfb6ce139cbfa8e3c27334 \ - --hash=sha256:84a1544252a933ef07bb0b5ef13afe7c36232a774affa673fc3636f7cee1db6c \ - --hash=sha256:84fe5953b18a383fd4495d375fe16e1e55e0a3afe7b4f7b4d01a3a0649fcda9d \ - --hash=sha256:9c673c8bfdf52f903081816b9e0e612186684f4eb4c17eeb729133022d6032e3 \ - --hash=sha256:9f876a69ca55aed879b43c295a328970306e8e80a263ec91cf6e9189243c613b \ - --hash=sha256:a9e5ae5a8e8985c67e8944c23035a0dff2c26b0f5070b2f55b217a1c33bbe8b1 \ - --hash=sha256:b4fdb29c5a7406e3f7ef176b2a7079baa68b5b854f364c21abe327bbeec01cdb \ - --hash=sha256:c184485e0dfba4dfd451c3bd348c2e685d6523543a0f91b9fd4ae90eb09e8422 \ - --hash=sha256:c9cdf251c582c16fd6a9f5e95836c90828d51b0069ad22f463761d27c6c19019 \ - --hash=sha256:e39cf61bb8582bda88cdfebc0db163b774e7e03364bbf9ce1ead13863e81e359 \ - --hash=sha256:e8fbc522303e09036c752a0afcc5c0603e917222d8bedc02813fd73b4b4ed804 \ - --hash=sha256:f34464ab1207114e73bba0794d1257c150a2b89b7a9faf504e00af7c9fd58978 \ - --hash=sha256:f52dabc96ca99ebd2169dadbe018824ebda08a795c7684a0b7d203a290f3adb0 +protobuf==3.20.3 \ + --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ + --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ + --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ + --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ + --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ + --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ + --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ + --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ + --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ + --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ + --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ + --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ + --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ + --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ + --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ + --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ + --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ + --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ + --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ + --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ + --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ + --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee # via # gcp-docuploader # gcp-releasetool # google-api-core + # googleapis-common-protos py==1.11.0 \ --hash=sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719 \ --hash=sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378 @@ -377,9 +406,9 @@ pygments==2.13.0 \ # via # readme-renderer # rich -pyjwt==2.4.0 \ - --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ - --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba +pyjwt==2.6.0 \ + --hash=sha256:69285c7e31fc44f68a1feb309e948e0df53259d579295e6cfe2b1792329f05fd \ + --hash=sha256:d83c3d892a77bbb74d3e1a2cfa90afaadb60945205d1095d9221f04466f64c14 # via gcp-releasetool pyparsing==3.0.9 \ --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ @@ -392,9 +421,9 @@ python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 # via gcp-releasetool -readme-renderer==37.0 \ - --hash=sha256:07b7ea234e03e58f77cc222e206e6abb8f4c0435becce5104794ee591f9301c5 \ - --hash=sha256:9fa416704703e509eeb900696751c908ddeb2011319d93700d8f18baff887a69 +readme-renderer==37.3 \ + --hash=sha256:cd653186dfc73055656f090f227f5cb22a046d7f71a841dfa305f55c9a513273 \ + --hash=sha256:f67a16caedfa71eef48a31b39708637a6f4664c4394801a7b0d6432d13907343 # via twine requests==2.28.1 \ --hash=sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983 \ @@ -405,17 +434,17 @@ requests==2.28.1 \ # google-cloud-storage # requests-toolbelt # twine -requests-toolbelt==0.9.1 \ - --hash=sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f \ - --hash=sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0 +requests-toolbelt==0.10.1 \ + --hash=sha256:18565aa58116d9951ac39baa288d3adb5b3ff975c4f25eee78555d89e8f247f7 \ + --hash=sha256:62e09f7ff5ccbda92772a29f394a49c3ad6cb181d568b1337626b2abb628a63d # via twine rfc3986==2.0.0 \ --hash=sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd \ --hash=sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c # via twine -rich==12.5.1 \ - --hash=sha256:2eb4e6894cde1e017976d2975ac210ef515d7548bc595ba20e195fb9628acdeb \ - --hash=sha256:63a5c5ce3673d3d5fbbf23cd87e11ab84b6b451436f1b7f19ec54b6bc36ed7ca +rich==12.6.0 \ + --hash=sha256:a4eb26484f2c82589bd9a17c73d32a010b1e29d89f1604cd9bf3a2097b81bb5e \ + --hash=sha256:ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0 # via twine rsa==4.9 \ --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ @@ -437,9 +466,9 @@ twine==4.0.1 \ --hash=sha256:42026c18e394eac3e06693ee52010baa5313e4811d5a11050e7d48436cf41b9e \ --hash=sha256:96b1cf12f7ae611a4a40b6ae8e9570215daff0611828f5fe1f37a16255ab24a0 # via -r requirements.in -typing-extensions==4.3.0 \ - --hash=sha256:25642c956049920a5aa49edcdd6ab1e06d7e5d467fc00e0506c44ac86fbfca02 \ - --hash=sha256:e6d2677a32f47fc7eb2795db1dd15c1f34eff616bcaf2cfb5e997f854fa1c4a6 +typing-extensions==4.4.0 \ + --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ + --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e # via -r requirements.in urllib3==1.26.12 \ --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ @@ -447,9 +476,9 @@ urllib3==1.26.12 \ # via # requests # twine -virtualenv==20.16.4 \ - --hash=sha256:014f766e4134d0008dcaa1f95bafa0fb0f575795d07cae50b1bee514185d6782 \ - --hash=sha256:035ed57acce4ac35c82c9d8802202b0e71adac011a511ff650cbcf9635006a22 +virtualenv==20.16.6 \ + --hash=sha256:186ca84254abcbde98180fd17092f9628c5fe742273c02724972a1d8a2035108 \ + --hash=sha256:530b850b523c6449406dfba859d6345e48ef19b8439606c5d74d7d3c9e14d76e # via nox webencodings==0.5.1 \ --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ @@ -459,13 +488,13 @@ wheel==0.37.1 \ --hash=sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a \ --hash=sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4 # via -r requirements.in -zipp==3.8.1 \ - --hash=sha256:05b45f1ee8f807d0cc928485ca40a07cb491cf092ff587c0df9cb1fd154848d2 \ - --hash=sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009 +zipp==3.10.0 \ + --hash=sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1 \ + --hash=sha256:7a7262fd930bd3e36c50b9a64897aec3fafff3dfdeec9623ae22b40e93f99bb8 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -setuptools==65.2.0 \ - --hash=sha256:7f4bc85450898a09f76ebf28b72fa25bc7111f6c7d665d514a60bba9c75ef2a9 \ - --hash=sha256:a3ca5857c89f82f5c9410e8508cb32f4872a3bafd4aa7ae122a24ca33bccc750 +setuptools==65.5.0 \ + --hash=sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17 \ + --hash=sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356 # via -r requirements.in diff --git a/noxfile.py b/noxfile.py index b8b3bdb..2d0e43a 100644 --- a/noxfile.py +++ b/noxfile.py @@ -277,7 +277,11 @@ def docs(session): """Build the docs for this library.""" session.install("-e", ".") - session.install("sphinx==4.0.1", "alabaster", "recommonmark") + session.install( + "sphinx==4.0.1", + "alabaster", + "recommonmark", + ) shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) session.run( @@ -300,7 +304,10 @@ def docfx(session): session.install("-e", ".") session.install( - "sphinx==4.0.1", "alabaster", "recommonmark", "gcp-sphinx-docfx-yaml" + "sphinx==4.0.1", + "alabaster", + "recommonmark", + "gcp-sphinx-docfx-yaml", ) shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) From 4f1305f95232134c487f02d22d06a0d826655ad8 Mon Sep 17 00:00:00 2001 From: ikuleshov Date: Tue, 8 Nov 2022 16:41:40 +0100 Subject: [PATCH 07/17] docs: add a sample for using minute ranges in realtime reports (#314) --- .../run_realtime_report_with_minute_ranges.py | 68 +++++++++++++++++++ ...realtime_report_with_minute_ranges_test.py | 27 ++++++++ samples/snippets/run_report.py | 15 ++-- 3 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 samples/snippets/run_realtime_report_with_minute_ranges.py create mode 100644 samples/snippets/run_realtime_report_with_minute_ranges_test.py diff --git a/samples/snippets/run_realtime_report_with_minute_ranges.py b/samples/snippets/run_realtime_report_with_minute_ranges.py new file mode 100644 index 0000000..4365ff1 --- /dev/null +++ b/samples/snippets/run_realtime_report_with_minute_ranges.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python + +# Copyright 2022 Google Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Google Analytics Data API sample application demonstrating the creation of +a realtime report using minute ranges. + +See https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runRealtimeReport#body.request_body.FIELDS.minute_ranges +for more information. +""" +# [START analyticsdata_run_realtime_report_with_minute_ranges] +from google.analytics.data_v1beta import BetaAnalyticsDataClient +from google.analytics.data_v1beta.types import Metric +from google.analytics.data_v1beta.types import MinuteRange +from google.analytics.data_v1beta.types import RunRealtimeReportRequest + +from run_report import print_run_report_response + + +def run_sample(): + """Runs the sample.""" + # TODO(developer): Replace this variable with your Google Analytics 4 + # property ID before running the sample. + property_id = "YOUR-GA4-PROPERTY-ID" + run_realtime_report_with_minute_ranges(property_id) + + +def run_realtime_report_with_minute_ranges(property_id="YOUR-GA4-PROPERTY-ID"): + """Runs a realtime report on a Google Analytics 4 property. Dimensions + field is omitted in the query, which results in total values of active users + returned for each minute range in the report. + + Note the `dateRange` dimension added to the report response automatically + as a result of querying multiple minute ranges. + """ + client = BetaAnalyticsDataClient() + + request = RunRealtimeReportRequest( + property=f"properties/{property_id}", + metrics=[Metric(name="activeUsers")], + minute_ranges=[ + MinuteRange(name="0-4 minutes ago", start_minutes_ago=4), + MinuteRange( + name="25-29 minutes ago", start_minutes_ago=29, end_minutes_ago=25 + ), + ], + ) + response = client.run_realtime_report(request) + print_run_report_response(response) + + +# [END analyticsdata_run_realtime_report_with_minute_ranges] + + +if __name__ == "__main__": + run_sample() diff --git a/samples/snippets/run_realtime_report_with_minute_ranges_test.py b/samples/snippets/run_realtime_report_with_minute_ranges_test.py new file mode 100644 index 0000000..f428820 --- /dev/null +++ b/samples/snippets/run_realtime_report_with_minute_ranges_test.py @@ -0,0 +1,27 @@ +# Copyright 2022 Google Inc. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os + +import run_realtime_report_with_minute_ranges + +TEST_PROPERTY_ID = os.getenv("GA_TEST_PROPERTY_ID") + + +def test_run_report_with_multiple_metrics(capsys): + run_realtime_report_with_minute_ranges.run_realtime_report_with_minute_ranges( + TEST_PROPERTY_ID + ) + out, _ = capsys.readouterr() + assert "Report result" in out diff --git a/samples/snippets/run_report.py b/samples/snippets/run_report.py index c76f5ea..5929a2e 100644 --- a/samples/snippets/run_report.py +++ b/samples/snippets/run_report.py @@ -64,12 +64,15 @@ def print_run_report_response(response): # [START analyticsdata_print_run_report_response_rows] print("Report result:") - for row in response.rows: - for dimension_value in row.dimension_values: - print(dimension_value.value) - - for metric_value in row.metric_values: - print(metric_value.value) + for rowIdx, row in enumerate(response.rows): + print(f"\nRow {rowIdx}") + for i, dimension_value in enumerate(row.dimension_values): + dimension_name = response.dimension_headers[i].name + print(f"{dimension_name}: {dimension_value.value}") + + for i, metric_value in enumerate(row.metric_values): + metric_name = response.metric_headers[i].name + print(f"{metric_name}: {metric_value.value}") # [END analyticsdata_print_run_report_response_rows] From 3cade4a266b8647eb85c18cb6c12a08ac05a023a Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 15:28:37 -0500 Subject: [PATCH 08/17] feat: add support for `google.analytics.data.__version__` (#311) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: update to gapic-generator-python 1.5.0 feat: add support for `google.cloud..__version__` PiperOrigin-RevId: 484665853 Source-Link: https://github.com/googleapis/googleapis/commit/8eb249a19db926c2fbc4ecf1dc09c0e521a88b22 Source-Link: https://github.com/googleapis/googleapis-gen/commit/c8aa327b5f478865fc3fd91e3c2768e54e26ad44 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzhhYTMyN2I1ZjQ3ODg2NWZjM2ZkOTFlM2MyNzY4ZTU0ZTI2YWQ0NCJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update version in gapic_version.py * add .release-please-manifest.json with correct version * add release-please-config.json * configure release please to use manifest * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * regenerate code using standard owlbot.py and autogenerated setup.py * configure release-please to use manifest * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot Co-authored-by: Anthonios Partheniou --- .github/release-please.yml | 1 + .github/workflows/unittest.yml | 2 +- .release-please-manifest.json | 3 + docs/conf.py | 2 +- docs/index.rst | 15 +- google/analytics/data/__init__.py | 105 ++- google/analytics/data/gapic_version.py | 16 + google/analytics/data_v1alpha/__init__.py | 140 +-- .../services/alpha_analytics_data/__init__.py | 2 +- .../alpha_analytics_data/async_client.py | 12 +- .../services/alpha_analytics_data/client.py | 17 +- .../transports/__init__.py | 4 +- .../alpha_analytics_data/transports/base.py | 4 +- .../alpha_analytics_data/transports/grpc.py | 9 +- .../transports/grpc_asyncio.py | 9 +- .../alpha_analytics_data/transports/rest.py | 30 +- .../analytics/data_v1alpha/types/__init__.py | 19 +- .../data_v1alpha/types/analytics_data_api.py | 1 - google/analytics/data_v1alpha/types/data.py | 4 +- google/analytics/data_v1beta/__init__.py | 107 +-- .../services/beta_analytics_data/__init__.py | 2 +- .../beta_analytics_data/async_client.py | 12 +- .../services/beta_analytics_data/client.py | 17 +- .../transports/__init__.py | 4 +- .../beta_analytics_data/transports/base.py | 4 +- .../beta_analytics_data/transports/grpc.py | 9 +- .../transports/grpc_asyncio.py | 9 +- .../beta_analytics_data/transports/rest.py | 30 +- .../analytics/data_v1beta/types/__init__.py | 8 +- .../data_v1beta/types/analytics_data_api.py | 1 - google/analytics/data_v1beta/types/data.py | 1 - noxfile.py | 3 +- owlbot.py | 63 +- release-please-config.json | 28 + ...cs_data_run_funnel_report_sync_7c96ce50.py | 51 -- ...cs_data_run_funnel_report_sync_ae462a0b.py | 51 -- ...a_batch_run_pivot_reports_sync_1ce5c65c.py | 51 -- ...a_batch_run_pivot_reports_sync_7c87d5d4.py | 51 -- ...cs_data_batch_run_reports_sync_3c81d05f.py | 51 -- ...cs_data_batch_run_reports_sync_73ae9a9a.py | 51 -- ..._data_check_compatibility_sync_0504eab7.py | 51 -- ..._data_check_compatibility_sync_55006999.py | 51 -- ...alytics_data_get_metadata_sync_6e78ad46.py | 52 -- ...alytics_data_get_metadata_sync_c3a8c7d7.py | 52 -- ...ics_data_run_pivot_report_sync_21614b9b.py | 51 -- ...ics_data_run_pivot_report_sync_8115ba39.py | 51 -- ..._data_run_realtime_report_sync_aa3eafd1.py | 51 -- ..._data_run_realtime_report_sync_f8bc1b6b.py | 51 -- ...analytics_data_run_report_sync_3a50a6eb.py | 51 -- ...analytics_data_run_report_sync_c82f18e9.py | 51 -- .../snippet_metadata_data_v1alpha.json | 80 +- .../snippet_metadata_data_v1beta.json | 826 +++--------------- samples/snippets/get_common_metadata.py | 3 +- samples/snippets/noxfile.py | 16 +- samples/snippets/quickstart.py | 10 +- .../snippets/quickstart_json_credentials.py | 10 +- samples/snippets/quickstart_oauth2.py | 10 +- samples/snippets/run_batch_report.py | 12 +- samples/snippets/run_funnel_report.py | 24 +- samples/snippets/run_pivot_report.py | 14 +- samples/snippets/run_realtime_report.py | 8 +- .../run_realtime_report_with_minute_ranges.py | 8 +- ...ealtime_report_with_multiple_dimensions.py | 8 +- ...n_realtime_report_with_multiple_metrics.py | 8 +- samples/snippets/run_report.py | 12 +- .../snippets/run_report_with_aggregations.py | 12 +- samples/snippets/run_report_with_cohorts.py | 16 +- .../snippets/run_report_with_date_ranges.py | 10 +- ...eport_with_dimension_and_metric_filters.py | 18 +- ...un_report_with_dimension_exclude_filter.py | 14 +- .../run_report_with_dimension_filter.py | 14 +- ...un_report_with_dimension_in_list_filter.py | 14 +- ..._report_with_multiple_dimension_filters.py | 16 +- .../run_report_with_multiple_dimensions.py | 10 +- .../run_report_with_multiple_metrics.py | 10 +- .../run_report_with_named_date_ranges.py | 10 +- samples/snippets/run_report_with_ordering.py | 12 +- .../snippets/run_report_with_pagination.py | 10 +- .../run_report_with_property_quota.py | 10 +- scripts/fixup_data_v1alpha_keywords.py | 176 ++++ scripts/fixup_data_v1beta_keywords.py | 182 ++++ setup.py | 71 +- testing/constraints-3.10.txt | 6 + testing/constraints-3.11.txt | 6 + testing/constraints-3.7.txt | 9 +- testing/constraints-3.8.txt | 6 + testing/constraints-3.9.txt | 6 + .../data_v1alpha/test_alpha_analytics_data.py | 41 +- .../data_v1beta/test_beta_analytics_data.py | 39 +- 89 files changed, 1161 insertions(+), 2117 deletions(-) create mode 100644 .release-please-manifest.json create mode 100644 google/analytics/data/gapic_version.py create mode 100644 release-please-config.json delete mode 100644 samples/generated_samples/analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_7c96ce50.py delete mode 100644 samples/generated_samples/analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_ae462a0b.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_1ce5c65c.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_7c87d5d4.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_3c81d05f.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_73ae9a9a.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_0504eab7.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_55006999.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_6e78ad46.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_c3a8c7d7.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_21614b9b.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_8115ba39.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_aa3eafd1.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_f8bc1b6b.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_3a50a6eb.py delete mode 100644 samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_c82f18e9.py create mode 100644 scripts/fixup_data_v1alpha_keywords.py create mode 100644 scripts/fixup_data_v1beta_keywords.py diff --git a/.github/release-please.yml b/.github/release-please.yml index 466597e..528b274 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -1,2 +1,3 @@ releaseType: python handleGHRelease: true +manifest: true diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 24e4655..87ade4d 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -54,4 +54,4 @@ jobs: - name: Report coverage results run: | coverage combine .coverage-results/.coverage* - coverage report --show-missing --fail-under=99 + coverage report --show-missing --fail-under=100 diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..b19a3f4 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "0.14.2" +} diff --git a/docs/conf.py b/docs/conf.py index 6cf166a..4e98c34 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -24,9 +24,9 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys import os import shlex +import sys # 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 diff --git a/docs/index.rst b/docs/index.rst index 973b5b9..b5b45f7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -2,6 +2,10 @@ .. include:: multiprocessing.rst +This package includes clients for multiple versions of Analytics Data. +By default, you will get version ``data_v1beta``. + + API Reference ------------- .. toctree:: @@ -9,15 +13,22 @@ API Reference data_v1beta/services data_v1beta/types + +API Reference +------------- +.. toctree:: + :maxdepth: 2 + data_v1alpha/services data_v1alpha/types + Changelog --------- For a list of all ``google-analytics-data`` releases: .. toctree:: - :maxdepth: 2 + :maxdepth: 2 - changelog + changelog diff --git a/google/analytics/data/__init__.py b/google/analytics/data/__init__.py index 682c3f0..737f0af 100644 --- a/google/analytics/data/__init__.py +++ b/google/analytics/data/__init__.py @@ -13,75 +13,68 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from google.analytics.data import gapic_version as package_version + +__version__ = package_version.__version__ + -from google.analytics.data_v1beta.services.beta_analytics_data.client import ( - BetaAnalyticsDataClient, -) from google.analytics.data_v1beta.services.beta_analytics_data.async_client import ( BetaAnalyticsDataAsyncClient, ) - -from google.analytics.data_v1beta.types.analytics_data_api import ( - BatchRunPivotReportsRequest, +from google.analytics.data_v1beta.services.beta_analytics_data.client import ( + BetaAnalyticsDataClient, ) from google.analytics.data_v1beta.types.analytics_data_api import ( + BatchRunPivotReportsRequest, BatchRunPivotReportsResponse, -) -from google.analytics.data_v1beta.types.analytics_data_api import BatchRunReportsRequest -from google.analytics.data_v1beta.types.analytics_data_api import ( + BatchRunReportsRequest, BatchRunReportsResponse, -) -from google.analytics.data_v1beta.types.analytics_data_api import ( CheckCompatibilityRequest, -) -from google.analytics.data_v1beta.types.analytics_data_api import ( CheckCompatibilityResponse, -) -from google.analytics.data_v1beta.types.analytics_data_api import GetMetadataRequest -from google.analytics.data_v1beta.types.analytics_data_api import Metadata -from google.analytics.data_v1beta.types.analytics_data_api import RunPivotReportRequest -from google.analytics.data_v1beta.types.analytics_data_api import RunPivotReportResponse -from google.analytics.data_v1beta.types.analytics_data_api import ( + GetMetadataRequest, + Metadata, + RunPivotReportRequest, + RunPivotReportResponse, RunRealtimeReportRequest, -) -from google.analytics.data_v1beta.types.analytics_data_api import ( RunRealtimeReportResponse, + RunReportRequest, + RunReportResponse, +) +from google.analytics.data_v1beta.types.data import ( + Cohort, + CohortReportSettings, + CohortSpec, + CohortsRange, + Compatibility, + DateRange, + Dimension, + DimensionCompatibility, + DimensionExpression, + DimensionHeader, + DimensionMetadata, + DimensionValue, + Filter, + FilterExpression, + FilterExpressionList, + Metric, + MetricAggregation, + MetricCompatibility, + MetricHeader, + MetricMetadata, + MetricType, + MetricValue, + MinuteRange, + NumericValue, + OrderBy, + Pivot, + PivotDimensionHeader, + PivotHeader, + PropertyQuota, + QuotaStatus, + ResponseMetaData, + RestrictedMetricType, + Row, ) -from google.analytics.data_v1beta.types.analytics_data_api import RunReportRequest -from google.analytics.data_v1beta.types.analytics_data_api import RunReportResponse -from google.analytics.data_v1beta.types.data import Cohort -from google.analytics.data_v1beta.types.data import CohortReportSettings -from google.analytics.data_v1beta.types.data import CohortSpec -from google.analytics.data_v1beta.types.data import CohortsRange -from google.analytics.data_v1beta.types.data import DateRange -from google.analytics.data_v1beta.types.data import Dimension -from google.analytics.data_v1beta.types.data import DimensionCompatibility -from google.analytics.data_v1beta.types.data import DimensionExpression -from google.analytics.data_v1beta.types.data import DimensionHeader -from google.analytics.data_v1beta.types.data import DimensionMetadata -from google.analytics.data_v1beta.types.data import DimensionValue -from google.analytics.data_v1beta.types.data import Filter -from google.analytics.data_v1beta.types.data import FilterExpression -from google.analytics.data_v1beta.types.data import FilterExpressionList -from google.analytics.data_v1beta.types.data import Metric -from google.analytics.data_v1beta.types.data import MetricCompatibility -from google.analytics.data_v1beta.types.data import MetricHeader -from google.analytics.data_v1beta.types.data import MetricMetadata -from google.analytics.data_v1beta.types.data import MetricValue -from google.analytics.data_v1beta.types.data import MinuteRange -from google.analytics.data_v1beta.types.data import NumericValue -from google.analytics.data_v1beta.types.data import OrderBy -from google.analytics.data_v1beta.types.data import Pivot -from google.analytics.data_v1beta.types.data import PivotDimensionHeader -from google.analytics.data_v1beta.types.data import PivotHeader -from google.analytics.data_v1beta.types.data import PropertyQuota -from google.analytics.data_v1beta.types.data import QuotaStatus -from google.analytics.data_v1beta.types.data import ResponseMetaData -from google.analytics.data_v1beta.types.data import Row -from google.analytics.data_v1beta.types.data import Compatibility -from google.analytics.data_v1beta.types.data import MetricAggregation -from google.analytics.data_v1beta.types.data import MetricType -from google.analytics.data_v1beta.types.data import RestrictedMetricType __all__ = ( "BetaAnalyticsDataClient", diff --git a/google/analytics/data/gapic_version.py b/google/analytics/data/gapic_version.py new file mode 100644 index 0000000..1f469e6 --- /dev/null +++ b/google/analytics/data/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +__version__ = "0.14.2" # {x-release-please-version} diff --git a/google/analytics/data_v1alpha/__init__.py b/google/analytics/data_v1alpha/__init__.py index 6d6577f..2cad838 100644 --- a/google/analytics/data_v1alpha/__init__.py +++ b/google/analytics/data_v1alpha/__init__.py @@ -13,75 +13,81 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from google.analytics.data import gapic_version as package_version -from .services.alpha_analytics_data import AlphaAnalyticsDataClient -from .services.alpha_analytics_data import AlphaAnalyticsDataAsyncClient +__version__ = package_version.__version__ -from .types.analytics_data_api import RunFunnelReportRequest -from .types.analytics_data_api import RunFunnelReportResponse -from .types.data import BetweenFilter -from .types.data import DateRange -from .types.data import Dimension -from .types.data import DimensionExpression -from .types.data import DimensionHeader -from .types.data import DimensionValue -from .types.data import EventSegment -from .types.data import EventSegmentConditionGroup -from .types.data import EventSegmentCriteria -from .types.data import EventSegmentExclusion -from .types.data import Filter -from .types.data import FilterExpression -from .types.data import FilterExpressionList -from .types.data import Funnel -from .types.data import FunnelBreakdown -from .types.data import FunnelEventFilter -from .types.data import FunnelFieldFilter -from .types.data import FunnelFilterExpression -from .types.data import FunnelFilterExpressionList -from .types.data import FunnelNextAction -from .types.data import FunnelParameterFilter -from .types.data import FunnelParameterFilterExpression -from .types.data import FunnelParameterFilterExpressionList -from .types.data import FunnelResponseMetadata -from .types.data import FunnelStep -from .types.data import FunnelSubReport -from .types.data import InListFilter -from .types.data import MetricHeader -from .types.data import MetricValue -from .types.data import NumericFilter -from .types.data import NumericValue -from .types.data import PropertyQuota -from .types.data import QuotaStatus -from .types.data import Row -from .types.data import SamplingMetadata -from .types.data import Segment -from .types.data import SegmentEventFilter -from .types.data import SegmentFilter -from .types.data import SegmentFilterExpression -from .types.data import SegmentFilterExpressionList -from .types.data import SegmentFilterScoping -from .types.data import SegmentParameterFilter -from .types.data import SegmentParameterFilterExpression -from .types.data import SegmentParameterFilterExpressionList -from .types.data import SegmentParameterFilterScoping -from .types.data import SessionSegment -from .types.data import SessionSegmentConditionGroup -from .types.data import SessionSegmentCriteria -from .types.data import SessionSegmentExclusion -from .types.data import StringFilter -from .types.data import UserSegment -from .types.data import UserSegmentConditionGroup -from .types.data import UserSegmentCriteria -from .types.data import UserSegmentExclusion -from .types.data import UserSegmentSequenceGroup -from .types.data import UserSequenceStep -from .types.data import EventCriteriaScoping -from .types.data import EventExclusionDuration -from .types.data import MetricType -from .types.data import SessionCriteriaScoping -from .types.data import SessionExclusionDuration -from .types.data import UserCriteriaScoping -from .types.data import UserExclusionDuration + +from .services.alpha_analytics_data import ( + AlphaAnalyticsDataAsyncClient, + AlphaAnalyticsDataClient, +) +from .types.analytics_data_api import RunFunnelReportRequest, RunFunnelReportResponse +from .types.data import ( + BetweenFilter, + DateRange, + Dimension, + DimensionExpression, + DimensionHeader, + DimensionValue, + EventCriteriaScoping, + EventExclusionDuration, + EventSegment, + EventSegmentConditionGroup, + EventSegmentCriteria, + EventSegmentExclusion, + Filter, + FilterExpression, + FilterExpressionList, + Funnel, + FunnelBreakdown, + FunnelEventFilter, + FunnelFieldFilter, + FunnelFilterExpression, + FunnelFilterExpressionList, + FunnelNextAction, + FunnelParameterFilter, + FunnelParameterFilterExpression, + FunnelParameterFilterExpressionList, + FunnelResponseMetadata, + FunnelStep, + FunnelSubReport, + InListFilter, + MetricHeader, + MetricType, + MetricValue, + NumericFilter, + NumericValue, + PropertyQuota, + QuotaStatus, + Row, + SamplingMetadata, + Segment, + SegmentEventFilter, + SegmentFilter, + SegmentFilterExpression, + SegmentFilterExpressionList, + SegmentFilterScoping, + SegmentParameterFilter, + SegmentParameterFilterExpression, + SegmentParameterFilterExpressionList, + SegmentParameterFilterScoping, + SessionCriteriaScoping, + SessionExclusionDuration, + SessionSegment, + SessionSegmentConditionGroup, + SessionSegmentCriteria, + SessionSegmentExclusion, + StringFilter, + UserCriteriaScoping, + UserExclusionDuration, + UserSegment, + UserSegmentConditionGroup, + UserSegmentCriteria, + UserSegmentExclusion, + UserSegmentSequenceGroup, + UserSequenceStep, +) __all__ = ( "AlphaAnalyticsDataAsyncClient", diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/__init__.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/__init__.py index 053b669..582f51b 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/__init__.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/__init__.py @@ -13,8 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # -from .client import AlphaAnalyticsDataClient from .async_client import AlphaAnalyticsDataAsyncClient +from .client import AlphaAnalyticsDataClient __all__ = ( "AlphaAnalyticsDataClient", diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py index 712d012..03d9623 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py @@ -17,25 +17,25 @@ import functools import re from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union -import pkg_resources -from google.api_core.client_options import ClientOptions from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries +from google.api_core.client_options import ClientOptions from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +import pkg_resources try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] except AttributeError: # pragma: NO COVER OptionalRetry = Union[retries.Retry, object] # type: ignore -from google.analytics.data_v1alpha.types import analytics_data_api -from google.analytics.data_v1alpha.types import data -from .transports.base import AlphaAnalyticsDataTransport, DEFAULT_CLIENT_INFO -from .transports.grpc_asyncio import AlphaAnalyticsDataGrpcAsyncIOTransport +from google.analytics.data_v1alpha.types import analytics_data_api, data + from .client import AlphaAnalyticsDataClient +from .transports.base import DEFAULT_CLIENT_INFO, AlphaAnalyticsDataTransport +from .transports.grpc_asyncio import AlphaAnalyticsDataGrpcAsyncIOTransport class AlphaAnalyticsDataAsyncClient: diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py index 8c8d493..662fd6f 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py @@ -16,27 +16,27 @@ from collections import OrderedDict import os import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union -import pkg_resources +from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union, cast from google.api_core import client_options as client_options_lib from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries from google.auth import credentials as ga_credentials # type: ignore +from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.auth.transport import mtls # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore -from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.oauth2 import service_account # type: ignore +import pkg_resources try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] except AttributeError: # pragma: NO COVER OptionalRetry = Union[retries.Retry, object] # type: ignore -from google.analytics.data_v1alpha.types import analytics_data_api -from google.analytics.data_v1alpha.types import data -from .transports.base import AlphaAnalyticsDataTransport, DEFAULT_CLIENT_INFO +from google.analytics.data_v1alpha.types import analytics_data_api, data + +from .transports.base import DEFAULT_CLIENT_INFO, AlphaAnalyticsDataTransport from .transports.grpc import AlphaAnalyticsDataGrpcTransport from .transports.grpc_asyncio import AlphaAnalyticsDataGrpcAsyncIOTransport from .transports.rest import AlphaAnalyticsDataRestTransport @@ -313,7 +313,7 @@ def __init__( *, credentials: Optional[ga_credentials.Credentials] = None, transport: Union[str, AlphaAnalyticsDataTransport, None] = None, - client_options: Optional[client_options_lib.ClientOptions] = None, + client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the alpha analytics data client. @@ -330,7 +330,7 @@ def __init__( NOTE: "rest" transport functionality is currently in a beta state (preview). We welcome your feedback via an issue in this library's source repository. - client_options (google.api_core.client_options.ClientOptions): Custom options for the + client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the client. It won't take effect if a ``transport`` instance is provided. (1) The ``api_endpoint`` property can be used to override the default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT @@ -360,6 +360,7 @@ def __init__( client_options = client_options_lib.from_dict(client_options) if client_options is None: client_options = client_options_lib.ClientOptions() + client_options = cast(client_options_lib.ClientOptions, client_options) api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source( client_options diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/__init__.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/__init__.py index 3241851..04d99db 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/__init__.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/__init__.py @@ -19,9 +19,7 @@ from .base import AlphaAnalyticsDataTransport from .grpc import AlphaAnalyticsDataGrpcTransport from .grpc_asyncio import AlphaAnalyticsDataGrpcAsyncIOTransport -from .rest import AlphaAnalyticsDataRestTransport -from .rest import AlphaAnalyticsDataRestInterceptor - +from .rest import AlphaAnalyticsDataRestInterceptor, AlphaAnalyticsDataRestTransport # Compile a registry of transports. _transport_registry = ( diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py index e5b9786..05872ae 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py @@ -15,15 +15,15 @@ # import abc from typing import Awaitable, Callable, Dict, Optional, Sequence, Union -import pkg_resources -import google.auth # type: ignore import google.api_core from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries +import google.auth # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +import pkg_resources from google.analytics.data_v1alpha.types import analytics_data_api diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc.py index b9f5940..0a0f397 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc.py @@ -13,19 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import warnings from typing import Callable, Dict, Optional, Sequence, Tuple, Union +import warnings -from google.api_core import grpc_helpers -from google.api_core import gapic_v1 +from google.api_core import gapic_v1, grpc_helpers import google.auth # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore - import grpc # type: ignore from google.analytics.data_v1alpha.types import analytics_data_api -from .base import AlphaAnalyticsDataTransport, DEFAULT_CLIENT_INFO + +from .base import DEFAULT_CLIENT_INFO, AlphaAnalyticsDataTransport class AlphaAnalyticsDataGrpcTransport(AlphaAnalyticsDataTransport): diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc_asyncio.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc_asyncio.py index ea06acf..280ba58 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc_asyncio.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc_asyncio.py @@ -13,19 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import warnings from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union +import warnings -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers_async +from google.api_core import gapic_v1, grpc_helpers_async from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore - import grpc # type: ignore from grpc.experimental import aio # type: ignore from google.analytics.data_v1alpha.types import analytics_data_api -from .base import AlphaAnalyticsDataTransport, DEFAULT_CLIENT_INFO + +from .base import DEFAULT_CLIENT_INFO, AlphaAnalyticsDataTransport from .grpc import AlphaAnalyticsDataGrpcTransport diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py index 3a4ab48..896d23c 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py @@ -14,24 +14,21 @@ # limitations under the License. # -from google.auth.transport.requests import AuthorizedSession # type: ignore +import dataclasses import json # type: ignore -import grpc # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore -from google.auth import credentials as ga_credentials # type: ignore +import re +from typing import Callable, Dict, List, Optional, Sequence, Tuple, Union +import warnings + +from google.api_core import gapic_v1, path_template, rest_helpers, rest_streaming from google.api_core import exceptions as core_exceptions from google.api_core import retry as retries -from google.api_core import rest_helpers -from google.api_core import rest_streaming -from google.api_core import path_template -from google.api_core import gapic_v1 - +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore +from google.auth.transport.requests import AuthorizedSession # type: ignore from google.protobuf import json_format +import grpc # type: ignore from requests import __version__ as requests_version -import dataclasses -import re -from typing import Callable, Dict, List, Optional, Sequence, Tuple, Union -import warnings try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] @@ -41,11 +38,8 @@ from google.analytics.data_v1alpha.types import analytics_data_api -from .base import ( - AlphaAnalyticsDataTransport, - DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO, -) - +from .base import AlphaAnalyticsDataTransport +from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version, diff --git a/google/analytics/data_v1alpha/types/__init__.py b/google/analytics/data_v1alpha/types/__init__.py index 0809abe..09a02f0 100644 --- a/google/analytics/data_v1alpha/types/__init__.py +++ b/google/analytics/data_v1alpha/types/__init__.py @@ -13,10 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -from .analytics_data_api import ( - RunFunnelReportRequest, - RunFunnelReportResponse, -) +from .analytics_data_api import RunFunnelReportRequest, RunFunnelReportResponse from .data import ( BetweenFilter, DateRange, @@ -24,6 +21,8 @@ DimensionExpression, DimensionHeader, DimensionValue, + EventCriteriaScoping, + EventExclusionDuration, EventSegment, EventSegmentConditionGroup, EventSegmentCriteria, @@ -46,6 +45,7 @@ FunnelSubReport, InListFilter, MetricHeader, + MetricType, MetricValue, NumericFilter, NumericValue, @@ -63,24 +63,21 @@ SegmentParameterFilterExpression, SegmentParameterFilterExpressionList, SegmentParameterFilterScoping, + SessionCriteriaScoping, + SessionExclusionDuration, SessionSegment, SessionSegmentConditionGroup, SessionSegmentCriteria, SessionSegmentExclusion, StringFilter, + UserCriteriaScoping, + UserExclusionDuration, UserSegment, UserSegmentConditionGroup, UserSegmentCriteria, UserSegmentExclusion, UserSegmentSequenceGroup, UserSequenceStep, - EventCriteriaScoping, - EventExclusionDuration, - MetricType, - SessionCriteriaScoping, - SessionExclusionDuration, - UserCriteriaScoping, - UserExclusionDuration, ) __all__ = ( diff --git a/google/analytics/data_v1alpha/types/analytics_data_api.py b/google/analytics/data_v1alpha/types/analytics_data_api.py index 512e89f..a7d5dbd 100644 --- a/google/analytics/data_v1alpha/types/analytics_data_api.py +++ b/google/analytics/data_v1alpha/types/analytics_data_api.py @@ -17,7 +17,6 @@ from google.analytics.data_v1alpha.types import data - __protobuf__ = proto.module( package="google.analytics.data.v1alpha", manifest={ diff --git a/google/analytics/data_v1alpha/types/data.py b/google/analytics/data_v1alpha/types/data.py index 6de8909..698b784 100644 --- a/google/analytics/data_v1alpha/types/data.py +++ b/google/analytics/data_v1alpha/types/data.py @@ -13,10 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import proto # type: ignore - from google.protobuf import duration_pb2 # type: ignore - +import proto # type: ignore __protobuf__ = proto.module( package="google.analytics.data.v1alpha", diff --git a/google/analytics/data_v1beta/__init__.py b/google/analytics/data_v1beta/__init__.py index a9e8c4b..1115d81 100644 --- a/google/analytics/data_v1beta/__init__.py +++ b/google/analytics/data_v1beta/__init__.py @@ -13,57 +13,66 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from google.analytics.data import gapic_version as package_version -from .services.beta_analytics_data import BetaAnalyticsDataClient -from .services.beta_analytics_data import BetaAnalyticsDataAsyncClient +__version__ = package_version.__version__ -from .types.analytics_data_api import BatchRunPivotReportsRequest -from .types.analytics_data_api import BatchRunPivotReportsResponse -from .types.analytics_data_api import BatchRunReportsRequest -from .types.analytics_data_api import BatchRunReportsResponse -from .types.analytics_data_api import CheckCompatibilityRequest -from .types.analytics_data_api import CheckCompatibilityResponse -from .types.analytics_data_api import GetMetadataRequest -from .types.analytics_data_api import Metadata -from .types.analytics_data_api import RunPivotReportRequest -from .types.analytics_data_api import RunPivotReportResponse -from .types.analytics_data_api import RunRealtimeReportRequest -from .types.analytics_data_api import RunRealtimeReportResponse -from .types.analytics_data_api import RunReportRequest -from .types.analytics_data_api import RunReportResponse -from .types.data import Cohort -from .types.data import CohortReportSettings -from .types.data import CohortSpec -from .types.data import CohortsRange -from .types.data import DateRange -from .types.data import Dimension -from .types.data import DimensionCompatibility -from .types.data import DimensionExpression -from .types.data import DimensionHeader -from .types.data import DimensionMetadata -from .types.data import DimensionValue -from .types.data import Filter -from .types.data import FilterExpression -from .types.data import FilterExpressionList -from .types.data import Metric -from .types.data import MetricCompatibility -from .types.data import MetricHeader -from .types.data import MetricMetadata -from .types.data import MetricValue -from .types.data import MinuteRange -from .types.data import NumericValue -from .types.data import OrderBy -from .types.data import Pivot -from .types.data import PivotDimensionHeader -from .types.data import PivotHeader -from .types.data import PropertyQuota -from .types.data import QuotaStatus -from .types.data import ResponseMetaData -from .types.data import Row -from .types.data import Compatibility -from .types.data import MetricAggregation -from .types.data import MetricType -from .types.data import RestrictedMetricType + +from .services.beta_analytics_data import ( + BetaAnalyticsDataAsyncClient, + BetaAnalyticsDataClient, +) +from .types.analytics_data_api import ( + BatchRunPivotReportsRequest, + BatchRunPivotReportsResponse, + BatchRunReportsRequest, + BatchRunReportsResponse, + CheckCompatibilityRequest, + CheckCompatibilityResponse, + GetMetadataRequest, + Metadata, + RunPivotReportRequest, + RunPivotReportResponse, + RunRealtimeReportRequest, + RunRealtimeReportResponse, + RunReportRequest, + RunReportResponse, +) +from .types.data import ( + Cohort, + CohortReportSettings, + CohortSpec, + CohortsRange, + Compatibility, + DateRange, + Dimension, + DimensionCompatibility, + DimensionExpression, + DimensionHeader, + DimensionMetadata, + DimensionValue, + Filter, + FilterExpression, + FilterExpressionList, + Metric, + MetricAggregation, + MetricCompatibility, + MetricHeader, + MetricMetadata, + MetricType, + MetricValue, + MinuteRange, + NumericValue, + OrderBy, + Pivot, + PivotDimensionHeader, + PivotHeader, + PropertyQuota, + QuotaStatus, + ResponseMetaData, + RestrictedMetricType, + Row, +) __all__ = ( "BetaAnalyticsDataAsyncClient", diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/__init__.py b/google/analytics/data_v1beta/services/beta_analytics_data/__init__.py index 1064618..708d647 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/__init__.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/__init__.py @@ -13,8 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # -from .client import BetaAnalyticsDataClient from .async_client import BetaAnalyticsDataAsyncClient +from .client import BetaAnalyticsDataClient __all__ = ( "BetaAnalyticsDataClient", diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py b/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py index 4c6f746..60b60dd 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py @@ -17,25 +17,25 @@ import functools import re from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union -import pkg_resources -from google.api_core.client_options import ClientOptions from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries +from google.api_core.client_options import ClientOptions from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +import pkg_resources try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] except AttributeError: # pragma: NO COVER OptionalRetry = Union[retries.Retry, object] # type: ignore -from google.analytics.data_v1beta.types import analytics_data_api -from google.analytics.data_v1beta.types import data -from .transports.base import BetaAnalyticsDataTransport, DEFAULT_CLIENT_INFO -from .transports.grpc_asyncio import BetaAnalyticsDataGrpcAsyncIOTransport +from google.analytics.data_v1beta.types import analytics_data_api, data + from .client import BetaAnalyticsDataClient +from .transports.base import DEFAULT_CLIENT_INFO, BetaAnalyticsDataTransport +from .transports.grpc_asyncio import BetaAnalyticsDataGrpcAsyncIOTransport class BetaAnalyticsDataAsyncClient: diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/client.py b/google/analytics/data_v1beta/services/beta_analytics_data/client.py index d4e5da8..9153b45 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/client.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/client.py @@ -16,27 +16,27 @@ from collections import OrderedDict import os import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union -import pkg_resources +from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union, cast from google.api_core import client_options as client_options_lib from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries from google.auth import credentials as ga_credentials # type: ignore +from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.auth.transport import mtls # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore -from google.auth.exceptions import MutualTLSChannelError # type: ignore from google.oauth2 import service_account # type: ignore +import pkg_resources try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] except AttributeError: # pragma: NO COVER OptionalRetry = Union[retries.Retry, object] # type: ignore -from google.analytics.data_v1beta.types import analytics_data_api -from google.analytics.data_v1beta.types import data -from .transports.base import BetaAnalyticsDataTransport, DEFAULT_CLIENT_INFO +from google.analytics.data_v1beta.types import analytics_data_api, data + +from .transports.base import DEFAULT_CLIENT_INFO, BetaAnalyticsDataTransport from .transports.grpc import BetaAnalyticsDataGrpcTransport from .transports.grpc_asyncio import BetaAnalyticsDataGrpcAsyncIOTransport from .transports.rest import BetaAnalyticsDataRestTransport @@ -328,7 +328,7 @@ def __init__( *, credentials: Optional[ga_credentials.Credentials] = None, transport: Union[str, BetaAnalyticsDataTransport, None] = None, - client_options: Optional[client_options_lib.ClientOptions] = None, + client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the beta analytics data client. @@ -345,7 +345,7 @@ def __init__( NOTE: "rest" transport functionality is currently in a beta state (preview). We welcome your feedback via an issue in this library's source repository. - client_options (google.api_core.client_options.ClientOptions): Custom options for the + client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the client. It won't take effect if a ``transport`` instance is provided. (1) The ``api_endpoint`` property can be used to override the default endpoint provided by the client. GOOGLE_API_USE_MTLS_ENDPOINT @@ -375,6 +375,7 @@ def __init__( client_options = client_options_lib.from_dict(client_options) if client_options is None: client_options = client_options_lib.ClientOptions() + client_options = cast(client_options_lib.ClientOptions, client_options) api_endpoint, client_cert_source_func = self.get_mtls_endpoint_and_cert_source( client_options diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/__init__.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/__init__.py index 571f2e5..7597d70 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/__init__.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/__init__.py @@ -19,9 +19,7 @@ from .base import BetaAnalyticsDataTransport from .grpc import BetaAnalyticsDataGrpcTransport from .grpc_asyncio import BetaAnalyticsDataGrpcAsyncIOTransport -from .rest import BetaAnalyticsDataRestTransport -from .rest import BetaAnalyticsDataRestInterceptor - +from .rest import BetaAnalyticsDataRestInterceptor, BetaAnalyticsDataRestTransport # Compile a registry of transports. _transport_registry = OrderedDict() # type: Dict[str, Type[BetaAnalyticsDataTransport]] diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py index 017debc..7fe6a32 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py @@ -15,15 +15,15 @@ # import abc from typing import Awaitable, Callable, Dict, Optional, Sequence, Union -import pkg_resources -import google.auth # type: ignore import google.api_core from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 from google.api_core import retry as retries +import google.auth # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore +import pkg_resources from google.analytics.data_v1beta.types import analytics_data_api diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py index 3964332..a95c7dc 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py @@ -13,19 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import warnings from typing import Callable, Dict, Optional, Sequence, Tuple, Union +import warnings -from google.api_core import grpc_helpers -from google.api_core import gapic_v1 +from google.api_core import gapic_v1, grpc_helpers import google.auth # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore - import grpc # type: ignore from google.analytics.data_v1beta.types import analytics_data_api -from .base import BetaAnalyticsDataTransport, DEFAULT_CLIENT_INFO + +from .base import DEFAULT_CLIENT_INFO, BetaAnalyticsDataTransport class BetaAnalyticsDataGrpcTransport(BetaAnalyticsDataTransport): diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py index 37bb305..aac4267 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py @@ -13,19 +13,18 @@ # See the License for the specific language governing permissions and # limitations under the License. # -import warnings from typing import Awaitable, Callable, Dict, Optional, Sequence, Tuple, Union +import warnings -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers_async +from google.api_core import gapic_v1, grpc_helpers_async from google.auth import credentials as ga_credentials # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore - import grpc # type: ignore from grpc.experimental import aio # type: ignore from google.analytics.data_v1beta.types import analytics_data_api -from .base import BetaAnalyticsDataTransport, DEFAULT_CLIENT_INFO + +from .base import DEFAULT_CLIENT_INFO, BetaAnalyticsDataTransport from .grpc import BetaAnalyticsDataGrpcTransport diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py index ac9f991..05ea767 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py @@ -14,24 +14,21 @@ # limitations under the License. # -from google.auth.transport.requests import AuthorizedSession # type: ignore +import dataclasses import json # type: ignore -import grpc # type: ignore -from google.auth.transport.grpc import SslCredentials # type: ignore -from google.auth import credentials as ga_credentials # type: ignore +import re +from typing import Callable, Dict, List, Optional, Sequence, Tuple, Union +import warnings + +from google.api_core import gapic_v1, path_template, rest_helpers, rest_streaming from google.api_core import exceptions as core_exceptions from google.api_core import retry as retries -from google.api_core import rest_helpers -from google.api_core import rest_streaming -from google.api_core import path_template -from google.api_core import gapic_v1 - +from google.auth import credentials as ga_credentials # type: ignore +from google.auth.transport.grpc import SslCredentials # type: ignore +from google.auth.transport.requests import AuthorizedSession # type: ignore from google.protobuf import json_format +import grpc # type: ignore from requests import __version__ as requests_version -import dataclasses -import re -from typing import Callable, Dict, List, Optional, Sequence, Tuple, Union -import warnings try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] @@ -41,11 +38,8 @@ from google.analytics.data_v1beta.types import analytics_data_api -from .base import ( - BetaAnalyticsDataTransport, - DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO, -) - +from .base import BetaAnalyticsDataTransport +from .base import DEFAULT_CLIENT_INFO as BASE_DEFAULT_CLIENT_INFO DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( gapic_version=BASE_DEFAULT_CLIENT_INFO.gapic_version, diff --git a/google/analytics/data_v1beta/types/__init__.py b/google/analytics/data_v1beta/types/__init__.py index 70424cc..b29494a 100644 --- a/google/analytics/data_v1beta/types/__init__.py +++ b/google/analytics/data_v1beta/types/__init__.py @@ -34,6 +34,7 @@ CohortReportSettings, CohortSpec, CohortsRange, + Compatibility, DateRange, Dimension, DimensionCompatibility, @@ -45,9 +46,11 @@ FilterExpression, FilterExpressionList, Metric, + MetricAggregation, MetricCompatibility, MetricHeader, MetricMetadata, + MetricType, MetricValue, MinuteRange, NumericValue, @@ -58,11 +61,8 @@ PropertyQuota, QuotaStatus, ResponseMetaData, - Row, - Compatibility, - MetricAggregation, - MetricType, RestrictedMetricType, + Row, ) __all__ = ( diff --git a/google/analytics/data_v1beta/types/analytics_data_api.py b/google/analytics/data_v1beta/types/analytics_data_api.py index 80c086d..022fde9 100644 --- a/google/analytics/data_v1beta/types/analytics_data_api.py +++ b/google/analytics/data_v1beta/types/analytics_data_api.py @@ -17,7 +17,6 @@ from google.analytics.data_v1beta.types import data - __protobuf__ = proto.module( package="google.analytics.data.v1beta", manifest={ diff --git a/google/analytics/data_v1beta/types/data.py b/google/analytics/data_v1beta/types/data.py index 64b74b7..20ec7ae 100644 --- a/google/analytics/data_v1beta/types/data.py +++ b/google/analytics/data_v1beta/types/data.py @@ -15,7 +15,6 @@ # import proto # type: ignore - __protobuf__ = proto.module( package="google.analytics.data.v1beta", manifest={ diff --git a/noxfile.py b/noxfile.py index 2d0e43a..29d0200 100644 --- a/noxfile.py +++ b/noxfile.py @@ -17,6 +17,7 @@ # Generated by synthtool. DO NOT EDIT! from __future__ import absolute_import + import os import pathlib import re @@ -267,7 +268,7 @@ def cover(session): test runs (not system test runs), and then erases coverage data. """ session.install("coverage", "pytest-cov") - session.run("coverage", "report", "--show-missing", "--fail-under=99") + session.run("coverage", "report", "--show-missing", "--fail-under=100") session.run("coverage", "erase") diff --git a/owlbot.py b/owlbot.py index cef558f..ce738f0 100644 --- a/owlbot.py +++ b/owlbot.py @@ -1,4 +1,4 @@ -# Copyright 2020 Google LLC +# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,56 +12,45 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""This script is used to synthesize generated parts of this library.""" -import os +import json +from pathlib import Path +import shutil import synthtool as s import synthtool.gcp as gcp from synthtool.languages import python -common = gcp.CommonTemplates() +# ---------------------------------------------------------------------------- +# Copy the generated client from the owl-bot staging directory +# ---------------------------------------------------------------------------- -default_version = "v1beta" +clean_up_generated_samples = True -for library in s.get_staging_dirs(default_version): - s.move( - library, - excludes=[ - "setup.py", - "README.rst", - "docs/index.rst", - f"scripts/fixup_data_{library.name}_keywords.py", - ], - ) +# Load the default version defined in .repo-metadata.json. +default_version = json.load(open(".repo-metadata.json", "rt")).get( + "default_version" +) +for library in s.get_staging_dirs(default_version): + if clean_up_generated_samples: + shutil.rmtree("samples/generated_samples", ignore_errors=True) + clean_up_generated_samples = False + s.move([library], excludes=["**/gapic_version.py"]) s.remove_staging_dirs() # ---------------------------------------------------------------------------- # Add templated files # ---------------------------------------------------------------------------- -templated_files = common.py_library(cov_level=99, microgenerator=True) -python.py_samples(skip_readmes=True) -s.move( - templated_files, excludes=[ - ".coveragerc" - ] -) # the microgenerator has a good coveragerc file - -# fix coverage target -s.replace( - "noxfile.py", - """(\s+)["']--cov=google.cloud["'],""", - """"--cov=google.analytics",""", -) -# Wrap regex in docstring that sphinx thinks is a link with `` -s.replace( - "google/**/data.py", - '''"\^\[a-zA-Z0-9_\]\$"''', - """``^[a-zA-Z0-9_]$``""", +templated_files = gcp.CommonTemplates().py_library( + cov_level=100, + microgenerator=True, + versions=gcp.common.detect_versions(path="./google", default_first=True), ) +s.move(templated_files, excludes=[".coveragerc", ".github/release-please.yml"]) -# Work around bug in templates https://github.com/googleapis/synthtool/pull/1335 -s.replace(".github/workflows/unittest.yml", "--fail-under=100", "--fail-under=99") +python.py_samples(skip_readmes=True) -s.shell.run(["nox", "-s", "blacken"], hide_output=False) +# run format session for all directories which have a noxfile +for noxfile in Path(".").glob("**/noxfile.py"): + s.shell.run(["nox", "-s", "format"], cwd=noxfile.parent, hide_output=False) diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..b2a4730 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "packages": { + ".": { + "release-type": "python", + "extra-files": [ + "google/analytics/data/gapic_version.py", + { + "type": "json", + "path": "samples/generated_samples/snippet_metadata_data_v1alpha.json", + "jsonpath": "$.clientLibrary.version" + }, + { + "type": "json", + "path": "samples/generated_samples/snippet_metadata_data_v1beta.json", + "jsonpath": "$.clientLibrary.version" + } + ] + } + }, + "release-type": "python", + "plugins": [ + { + "type": "sentence-case" + } + ], + "initial-version": "0.1.0" +} diff --git a/samples/generated_samples/analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_7c96ce50.py b/samples/generated_samples/analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_7c96ce50.py deleted file mode 100644 index d8deeeb..0000000 --- a/samples/generated_samples/analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_7c96ce50.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for RunFunnelReport -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_sync_7c96ce50] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1alpha - - -def sample_run_funnel_report(): - # Create a client - client = data_v1alpha.AlphaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1alpha.RunFunnelReportRequest( - ) - - # Make the request - response = client.run_funnel_report(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_sync_7c96ce50] diff --git a/samples/generated_samples/analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_ae462a0b.py b/samples/generated_samples/analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_ae462a0b.py deleted file mode 100644 index 604a48a..0000000 --- a/samples/generated_samples/analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_ae462a0b.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for RunFunnelReport -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_sync_ae462a0b] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1alpha - - -def sample_run_funnel_report(): - # Create a client - client = data_v1alpha.AlphaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1alpha.RunFunnelReportRequest( - ) - - # Make the request - response = client.run_funnel_report(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_sync_ae462a0b] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_1ce5c65c.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_1ce5c65c.py deleted file mode 100644 index e049569..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_1ce5c65c.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for BatchRunPivotReports -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunPivotReports_sync_1ce5c65c] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_batch_run_pivot_reports(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.BatchRunPivotReportsRequest( - ) - - # Make the request - response = client.batch_run_pivot_reports(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunPivotReports_sync_1ce5c65c] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_7c87d5d4.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_7c87d5d4.py deleted file mode 100644 index 2e062cb..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_7c87d5d4.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for BatchRunPivotReports -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunPivotReports_sync_7c87d5d4] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_batch_run_pivot_reports(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.BatchRunPivotReportsRequest( - ) - - # Make the request - response = client.batch_run_pivot_reports(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunPivotReports_sync_7c87d5d4] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_3c81d05f.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_3c81d05f.py deleted file mode 100644 index e62d99c..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_3c81d05f.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for BatchRunReports -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunReports_sync_3c81d05f] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_batch_run_reports(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.BatchRunReportsRequest( - ) - - # Make the request - response = client.batch_run_reports(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunReports_sync_3c81d05f] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_73ae9a9a.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_73ae9a9a.py deleted file mode 100644 index 14f9d28..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_73ae9a9a.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for BatchRunReports -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunReports_sync_73ae9a9a] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_batch_run_reports(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.BatchRunReportsRequest( - ) - - # Make the request - response = client.batch_run_reports(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunReports_sync_73ae9a9a] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_0504eab7.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_0504eab7.py deleted file mode 100644 index f9ec380..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_0504eab7.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for CheckCompatibility -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_sync_0504eab7] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_check_compatibility(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.CheckCompatibilityRequest( - ) - - # Make the request - response = client.check_compatibility(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_sync_0504eab7] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_55006999.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_55006999.py deleted file mode 100644 index c0582f3..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_55006999.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for CheckCompatibility -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_sync_55006999] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_check_compatibility(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.CheckCompatibilityRequest( - ) - - # Make the request - response = client.check_compatibility(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_sync_55006999] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_6e78ad46.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_6e78ad46.py deleted file mode 100644 index f6d3cb1..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_6e78ad46.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for GetMetadata -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_sync_6e78ad46] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_get_metadata(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.GetMetadataRequest( - name="name_value", - ) - - # Make the request - response = client.get_metadata(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_sync_6e78ad46] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_c3a8c7d7.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_c3a8c7d7.py deleted file mode 100644 index 0b7f824..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_c3a8c7d7.py +++ /dev/null @@ -1,52 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for GetMetadata -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_sync_c3a8c7d7] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_get_metadata(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.GetMetadataRequest( - name="name_value", - ) - - # Make the request - response = client.get_metadata(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_sync_c3a8c7d7] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_21614b9b.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_21614b9b.py deleted file mode 100644 index 58e1f75..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_21614b9b.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for RunPivotReport -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_sync_21614b9b] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_run_pivot_report(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.RunPivotReportRequest( - ) - - # Make the request - response = client.run_pivot_report(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_sync_21614b9b] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_8115ba39.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_8115ba39.py deleted file mode 100644 index 0065841..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_8115ba39.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for RunPivotReport -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_sync_8115ba39] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_run_pivot_report(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.RunPivotReportRequest( - ) - - # Make the request - response = client.run_pivot_report(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_sync_8115ba39] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_aa3eafd1.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_aa3eafd1.py deleted file mode 100644 index 19334d9..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_aa3eafd1.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for RunRealtimeReport -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_sync_aa3eafd1] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_run_realtime_report(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.RunRealtimeReportRequest( - ) - - # Make the request - response = client.run_realtime_report(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_sync_aa3eafd1] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_f8bc1b6b.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_f8bc1b6b.py deleted file mode 100644 index fe1923b..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_f8bc1b6b.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for RunRealtimeReport -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_sync_f8bc1b6b] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_run_realtime_report(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.RunRealtimeReportRequest( - ) - - # Make the request - response = client.run_realtime_report(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_sync_f8bc1b6b] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_3a50a6eb.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_3a50a6eb.py deleted file mode 100644 index c6fbc4c..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_3a50a6eb.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for RunReport -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_RunReport_sync_3a50a6eb] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_run_report(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.RunReportRequest( - ) - - # Make the request - response = client.run_report(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_RunReport_sync_3a50a6eb] diff --git a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_c82f18e9.py b/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_c82f18e9.py deleted file mode 100644 index dbda53e..0000000 --- a/samples/generated_samples/analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_c82f18e9.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Generated code. DO NOT EDIT! -# -# Snippet for RunReport -# NOTE: This snippet has been automatically generated for illustrative purposes only. -# It may require modifications to work in your environment. - -# To install the latest published package dependency, execute the following: -# python3 -m pip install google-analytics-data - - -# [START analyticsdata_v1beta_generated_BetaAnalyticsData_RunReport_sync_c82f18e9] -# This snippet has been automatically generated and should be regarded as a -# code template only. -# It will require modifications to work: -# - It may require correct/in-range values for request initialization. -# - It may require specifying regional endpoints when creating the service -# client as shown in: -# https://googleapis.dev/python/google-api-core/latest/client_options.html -from google.analytics import data_v1beta - - -def sample_run_report(): - # Create a client - client = data_v1beta.BetaAnalyticsDataClient() - - # Initialize request argument(s) - request = data_v1beta.RunReportRequest( - ) - - # Make the request - response = client.run_report(request=request) - - # Handle the response - print(response) - -# [END analyticsdata_v1beta_generated_BetaAnalyticsData_RunReport_sync_c82f18e9] diff --git a/samples/generated_samples/snippet_metadata_data_v1alpha.json b/samples/generated_samples/snippet_metadata_data_v1alpha.json index 52c4622..fc2b532 100644 --- a/samples/generated_samples/snippet_metadata_data_v1alpha.json +++ b/samples/generated_samples/snippet_metadata_data_v1alpha.json @@ -125,7 +125,7 @@ "shortName": "run_funnel_report" }, "description": "Sample for RunFunnelReport", - "file": "analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_ae462a0b.py", + "file": "analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", "regionTag": "analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_sync", @@ -161,83 +161,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_ae462a0b.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.analytics.data_v1alpha.AlphaAnalyticsDataClient", - "shortName": "AlphaAnalyticsDataClient" - }, - "fullName": "google.analytics.data_v1alpha.AlphaAnalyticsDataClient.run_funnel_report", - "method": { - "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData.RunFunnelReport", - "service": { - "fullName": "google.analytics.data.v1alpha.AlphaAnalyticsData", - "shortName": "AlphaAnalyticsData" - }, - "shortName": "RunFunnelReport" - }, - "parameters": [ - { - "name": "request", - "type": "google.analytics.data_v1alpha.types.RunFunnelReportRequest" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.analytics.data_v1alpha.types.RunFunnelReportResponse", - "shortName": "run_funnel_report" - }, - "description": "Sample for RunFunnelReport", - "file": "analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_7c96ce50.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1alpha_generated_AlphaAnalyticsData_RunFunnelReport_sync", - "segments": [ - { - "end": 50, - "start": 27, - "type": "FULL" - }, - { - "end": 50, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 47, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 51, - "start": 48, - "type": "RESPONSE_HANDLING" - } - ], - "title": "analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync_7c96ce50.py" + "title": "analyticsdata_v1alpha_generated_alpha_analytics_data_run_funnel_report_sync.py" } ] } diff --git a/samples/generated_samples/snippet_metadata_data_v1beta.json b/samples/generated_samples/snippet_metadata_data_v1beta.json index 0ba660b..4e33261 100644 --- a/samples/generated_samples/snippet_metadata_data_v1beta.json +++ b/samples/generated_samples/snippet_metadata_data_v1beta.json @@ -125,7 +125,7 @@ "shortName": "batch_run_pivot_reports" }, "description": "Sample for BatchRunPivotReports", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_7c87d5d4.py", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunPivotReports_sync", @@ -161,83 +161,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_7c87d5d4.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" - }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.batch_run_pivot_reports", - "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.BatchRunPivotReports", - "service": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", - "shortName": "BetaAnalyticsData" - }, - "shortName": "BatchRunPivotReports" - }, - "parameters": [ - { - "name": "request", - "type": "google.analytics.data_v1beta.types.BatchRunPivotReportsRequest" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.analytics.data_v1beta.types.BatchRunPivotReportsResponse", - "shortName": "batch_run_pivot_reports" - }, - "description": "Sample for BatchRunPivotReports", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_1ce5c65c.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunPivotReports_sync", - "segments": [ - { - "end": 50, - "start": 27, - "type": "FULL" - }, - { - "end": 50, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 47, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 51, - "start": 48, - "type": "RESPONSE_HANDLING" - } - ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync_1ce5c65c.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_pivot_reports_sync.py" }, { "canonical": true, @@ -314,469 +238,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" - }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.batch_run_reports", - "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReports", - "service": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", - "shortName": "BetaAnalyticsData" - }, - "shortName": "BatchRunReports" - }, - "parameters": [ - { - "name": "request", - "type": "google.analytics.data_v1beta.types.BatchRunReportsRequest" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.analytics.data_v1beta.types.BatchRunReportsResponse", - "shortName": "batch_run_reports" - }, - "description": "Sample for BatchRunReports", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_3c81d05f.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunReports_sync", - "segments": [ - { - "end": 50, - "start": 27, - "type": "FULL" - }, - { - "end": 50, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 47, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 51, - "start": 48, - "type": "RESPONSE_HANDLING" - } - ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_3c81d05f.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" - }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.batch_run_reports", - "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReports", - "service": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", - "shortName": "BetaAnalyticsData" - }, - "shortName": "BatchRunReports" - }, - "parameters": [ - { - "name": "request", - "type": "google.analytics.data_v1beta.types.BatchRunReportsRequest" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.analytics.data_v1beta.types.BatchRunReportsResponse", - "shortName": "batch_run_reports" - }, - "description": "Sample for BatchRunReports", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_73ae9a9a.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunReports_sync", - "segments": [ - { - "end": 50, - "start": 27, - "type": "FULL" - }, - { - "end": 50, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 47, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 51, - "start": 48, - "type": "RESPONSE_HANDLING" - } - ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync_73ae9a9a.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", - "shortName": "BetaAnalyticsDataAsyncClient" - }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.check_compatibility", - "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibility", - "service": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", - "shortName": "BetaAnalyticsData" - }, - "shortName": "CheckCompatibility" - }, - "parameters": [ - { - "name": "request", - "type": "google.analytics.data_v1beta.types.CheckCompatibilityRequest" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.analytics.data_v1beta.types.CheckCompatibilityResponse", - "shortName": "check_compatibility" - }, - "description": "Sample for CheckCompatibility", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_async", - "segments": [ - { - "end": 50, - "start": 27, - "type": "FULL" - }, - { - "end": 50, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 47, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 51, - "start": 48, - "type": "RESPONSE_HANDLING" - } - ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_async.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" - }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.check_compatibility", - "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibility", - "service": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", - "shortName": "BetaAnalyticsData" - }, - "shortName": "CheckCompatibility" - }, - "parameters": [ - { - "name": "request", - "type": "google.analytics.data_v1beta.types.CheckCompatibilityRequest" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.analytics.data_v1beta.types.CheckCompatibilityResponse", - "shortName": "check_compatibility" - }, - "description": "Sample for CheckCompatibility", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_0504eab7.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_sync", - "segments": [ - { - "end": 50, - "start": 27, - "type": "FULL" - }, - { - "end": 50, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 47, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 51, - "start": 48, - "type": "RESPONSE_HANDLING" - } - ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_0504eab7.py" - }, - { - "canonical": true, - "clientMethod": { - "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" - }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.check_compatibility", - "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibility", - "service": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", - "shortName": "BetaAnalyticsData" - }, - "shortName": "CheckCompatibility" - }, - "parameters": [ - { - "name": "request", - "type": "google.analytics.data_v1beta.types.CheckCompatibilityRequest" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.analytics.data_v1beta.types.CheckCompatibilityResponse", - "shortName": "check_compatibility" - }, - "description": "Sample for CheckCompatibility", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_55006999.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_sync", - "segments": [ - { - "end": 50, - "start": 27, - "type": "FULL" - }, - { - "end": 50, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 44, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 47, - "start": 45, - "type": "REQUEST_EXECUTION" - }, - { - "end": 51, - "start": 48, - "type": "RESPONSE_HANDLING" - } - ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync_55006999.py" - }, - { - "canonical": true, - "clientMethod": { - "async": true, - "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", - "shortName": "BetaAnalyticsDataAsyncClient" - }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.get_metadata", - "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.GetMetadata", - "service": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", - "shortName": "BetaAnalyticsData" - }, - "shortName": "GetMetadata" - }, - "parameters": [ - { - "name": "request", - "type": "google.analytics.data_v1beta.types.GetMetadataRequest" - }, - { - "name": "name", - "type": "str" - }, - { - "name": "retry", - "type": "google.api_core.retry.Retry" - }, - { - "name": "timeout", - "type": "float" - }, - { - "name": "metadata", - "type": "Sequence[Tuple[str, str]" - } - ], - "resultType": "google.analytics.data_v1beta.types.Metadata", - "shortName": "get_metadata" - }, - "description": "Sample for GetMetadata", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_async.py", - "language": "PYTHON", - "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_async", - "segments": [ - { - "end": 51, - "start": 27, - "type": "FULL" - }, - { - "end": 51, - "start": 27, - "type": "SHORT" - }, - { - "end": 40, - "start": 38, - "type": "CLIENT_INITIALIZATION" - }, - { - "end": 45, - "start": 41, - "type": "REQUEST_INITIALIZATION" - }, - { - "end": 48, - "start": 46, - "type": "REQUEST_EXECUTION" - }, - { - "end": 52, - "start": 49, - "type": "RESPONSE_HANDLING" - } - ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_async.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_async.py" }, { "canonical": true, @@ -785,23 +247,19 @@ "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", "shortName": "BetaAnalyticsDataClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.get_metadata", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.batch_run_reports", "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.GetMetadata", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.BatchRunReports", "service": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", "shortName": "BetaAnalyticsData" }, - "shortName": "GetMetadata" + "shortName": "BatchRunReports" }, "parameters": [ { "name": "request", - "type": "google.analytics.data_v1beta.types.GetMetadataRequest" - }, - { - "name": "name", - "type": "str" + "type": "google.analytics.data_v1beta.types.BatchRunReportsRequest" }, { "name": "retry", @@ -816,22 +274,22 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.analytics.data_v1beta.types.Metadata", - "shortName": "get_metadata" + "resultType": "google.analytics.data_v1beta.types.BatchRunReportsResponse", + "shortName": "batch_run_reports" }, - "description": "Sample for GetMetadata", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_6e78ad46.py", + "description": "Sample for BatchRunReports", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_sync", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_BatchRunReports_sync", "segments": [ { - "end": 51, + "end": 50, "start": 27, "type": "FULL" }, { - "end": 51, + "end": 50, "start": 27, "type": "SHORT" }, @@ -841,47 +299,44 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 45, + "end": 44, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 48, - "start": 46, + "end": 47, + "start": 45, "type": "REQUEST_EXECUTION" }, { - "end": 52, - "start": 49, + "end": 51, + "start": 48, "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_6e78ad46.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_batch_run_reports_sync.py" }, { "canonical": true, "clientMethod": { + "async": true, "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", + "shortName": "BetaAnalyticsDataAsyncClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.get_metadata", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.check_compatibility", "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.GetMetadata", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibility", "service": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", "shortName": "BetaAnalyticsData" }, - "shortName": "GetMetadata" + "shortName": "CheckCompatibility" }, "parameters": [ { "name": "request", - "type": "google.analytics.data_v1beta.types.GetMetadataRequest" - }, - { - "name": "name", - "type": "str" + "type": "google.analytics.data_v1beta.types.CheckCompatibilityRequest" }, { "name": "retry", @@ -896,22 +351,22 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.analytics.data_v1beta.types.Metadata", - "shortName": "get_metadata" + "resultType": "google.analytics.data_v1beta.types.CheckCompatibilityResponse", + "shortName": "check_compatibility" }, - "description": "Sample for GetMetadata", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_c3a8c7d7.py", + "description": "Sample for CheckCompatibility", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_sync", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_async", "segments": [ { - "end": 51, + "end": 50, "start": 27, "type": "FULL" }, { - "end": 51, + "end": 50, "start": 27, "type": "SHORT" }, @@ -921,44 +376,43 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 45, + "end": 44, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 48, - "start": 46, + "end": 47, + "start": 45, "type": "REQUEST_EXECUTION" }, { - "end": 52, - "start": 49, + "end": 51, + "start": 48, "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync_c3a8c7d7.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_async.py" }, { "canonical": true, "clientMethod": { - "async": true, "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", - "shortName": "BetaAnalyticsDataAsyncClient" + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", + "shortName": "BetaAnalyticsDataClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.run_pivot_report", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.check_compatibility", "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.CheckCompatibility", "service": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", "shortName": "BetaAnalyticsData" }, - "shortName": "RunPivotReport" + "shortName": "CheckCompatibility" }, "parameters": [ { "name": "request", - "type": "google.analytics.data_v1beta.types.RunPivotReportRequest" + "type": "google.analytics.data_v1beta.types.CheckCompatibilityRequest" }, { "name": "retry", @@ -973,14 +427,14 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.analytics.data_v1beta.types.RunPivotReportResponse", - "shortName": "run_pivot_report" + "resultType": "google.analytics.data_v1beta.types.CheckCompatibilityResponse", + "shortName": "check_compatibility" }, - "description": "Sample for RunPivotReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_async.py", + "description": "Sample for CheckCompatibility", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_async", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_CheckCompatibility_sync", "segments": [ { "end": 50, @@ -1013,28 +467,33 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_async.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_check_compatibility_sync.py" }, { "canonical": true, "clientMethod": { + "async": true, "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", + "shortName": "BetaAnalyticsDataAsyncClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.run_pivot_report", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.get_metadata", "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.GetMetadata", "service": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", "shortName": "BetaAnalyticsData" }, - "shortName": "RunPivotReport" + "shortName": "GetMetadata" }, "parameters": [ { "name": "request", - "type": "google.analytics.data_v1beta.types.RunPivotReportRequest" + "type": "google.analytics.data_v1beta.types.GetMetadataRequest" + }, + { + "name": "name", + "type": "str" }, { "name": "retry", @@ -1049,22 +508,22 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.analytics.data_v1beta.types.RunPivotReportResponse", - "shortName": "run_pivot_report" + "resultType": "google.analytics.data_v1beta.types.Metadata", + "shortName": "get_metadata" }, - "description": "Sample for RunPivotReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_21614b9b.py", + "description": "Sample for GetMetadata", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_sync", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_async", "segments": [ { - "end": 50, + "end": 51, "start": 27, "type": "FULL" }, { - "end": 50, + "end": 51, "start": 27, "type": "SHORT" }, @@ -1074,22 +533,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 44, + "end": 45, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 47, - "start": 45, + "end": 48, + "start": 46, "type": "REQUEST_EXECUTION" }, { - "end": 51, - "start": 48, + "end": 52, + "start": 49, "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_21614b9b.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_async.py" }, { "canonical": true, @@ -1098,19 +557,23 @@ "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", "shortName": "BetaAnalyticsDataClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.run_pivot_report", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.get_metadata", "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.GetMetadata", "service": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", "shortName": "BetaAnalyticsData" }, - "shortName": "RunPivotReport" + "shortName": "GetMetadata" }, "parameters": [ { "name": "request", - "type": "google.analytics.data_v1beta.types.RunPivotReportRequest" + "type": "google.analytics.data_v1beta.types.GetMetadataRequest" + }, + { + "name": "name", + "type": "str" }, { "name": "retry", @@ -1125,22 +588,22 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.analytics.data_v1beta.types.RunPivotReportResponse", - "shortName": "run_pivot_report" + "resultType": "google.analytics.data_v1beta.types.Metadata", + "shortName": "get_metadata" }, - "description": "Sample for RunPivotReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_8115ba39.py", + "description": "Sample for GetMetadata", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_sync", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_GetMetadata_sync", "segments": [ { - "end": 50, + "end": 51, "start": 27, "type": "FULL" }, { - "end": 50, + "end": 51, "start": 27, "type": "SHORT" }, @@ -1150,22 +613,22 @@ "type": "CLIENT_INITIALIZATION" }, { - "end": 44, + "end": 45, "start": 41, "type": "REQUEST_INITIALIZATION" }, { - "end": 47, - "start": 45, + "end": 48, + "start": 46, "type": "REQUEST_EXECUTION" }, { - "end": 51, - "start": 48, + "end": 52, + "start": 49, "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync_8115ba39.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_get_metadata_sync.py" }, { "canonical": true, @@ -1175,19 +638,19 @@ "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", "shortName": "BetaAnalyticsDataAsyncClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.run_realtime_report", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.run_pivot_report", "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReport", "service": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", "shortName": "BetaAnalyticsData" }, - "shortName": "RunRealtimeReport" + "shortName": "RunPivotReport" }, "parameters": [ { "name": "request", - "type": "google.analytics.data_v1beta.types.RunRealtimeReportRequest" + "type": "google.analytics.data_v1beta.types.RunPivotReportRequest" }, { "name": "retry", @@ -1202,14 +665,14 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.analytics.data_v1beta.types.RunRealtimeReportResponse", - "shortName": "run_realtime_report" + "resultType": "google.analytics.data_v1beta.types.RunPivotReportResponse", + "shortName": "run_pivot_report" }, - "description": "Sample for RunRealtimeReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_async.py", + "description": "Sample for RunPivotReport", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_async", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_async", "segments": [ { "end": 50, @@ -1242,7 +705,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_async.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_async.py" }, { "canonical": true, @@ -1251,19 +714,19 @@ "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", "shortName": "BetaAnalyticsDataClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.run_realtime_report", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.run_pivot_report", "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunPivotReport", "service": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", "shortName": "BetaAnalyticsData" }, - "shortName": "RunRealtimeReport" + "shortName": "RunPivotReport" }, "parameters": [ { "name": "request", - "type": "google.analytics.data_v1beta.types.RunRealtimeReportRequest" + "type": "google.analytics.data_v1beta.types.RunPivotReportRequest" }, { "name": "retry", @@ -1278,14 +741,14 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.analytics.data_v1beta.types.RunRealtimeReportResponse", - "shortName": "run_realtime_report" + "resultType": "google.analytics.data_v1beta.types.RunPivotReportResponse", + "shortName": "run_pivot_report" }, - "description": "Sample for RunRealtimeReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_f8bc1b6b.py", + "description": "Sample for RunPivotReport", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_sync", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunPivotReport_sync", "segments": [ { "end": 50, @@ -1318,16 +781,17 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_f8bc1b6b.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_pivot_report_sync.py" }, { "canonical": true, "clientMethod": { + "async": true, "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", + "shortName": "BetaAnalyticsDataAsyncClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.run_realtime_report", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.run_realtime_report", "method": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReport", "service": { @@ -1358,10 +822,10 @@ "shortName": "run_realtime_report" }, "description": "Sample for RunRealtimeReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_aa3eafd1.py", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_sync", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_async", "segments": [ { "end": 50, @@ -1394,29 +858,28 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync_aa3eafd1.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_async.py" }, { "canonical": true, "clientMethod": { - "async": true, "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", - "shortName": "BetaAnalyticsDataAsyncClient" + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", + "shortName": "BetaAnalyticsDataClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.run_report", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.run_realtime_report", "method": { - "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunReport", + "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunRealtimeReport", "service": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData", "shortName": "BetaAnalyticsData" }, - "shortName": "RunReport" + "shortName": "RunRealtimeReport" }, "parameters": [ { "name": "request", - "type": "google.analytics.data_v1beta.types.RunReportRequest" + "type": "google.analytics.data_v1beta.types.RunRealtimeReportRequest" }, { "name": "retry", @@ -1431,14 +894,14 @@ "type": "Sequence[Tuple[str, str]" } ], - "resultType": "google.analytics.data_v1beta.types.RunReportResponse", - "shortName": "run_report" + "resultType": "google.analytics.data_v1beta.types.RunRealtimeReportResponse", + "shortName": "run_realtime_report" }, - "description": "Sample for RunReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_async.py", + "description": "Sample for RunRealtimeReport", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunReport_async", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunRealtimeReport_sync", "segments": [ { "end": 50, @@ -1471,16 +934,17 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_async.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_realtime_report_sync.py" }, { "canonical": true, "clientMethod": { + "async": true, "client": { - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient", - "shortName": "BetaAnalyticsDataClient" + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient", + "shortName": "BetaAnalyticsDataAsyncClient" }, - "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataClient.run_report", + "fullName": "google.analytics.data_v1beta.BetaAnalyticsDataAsyncClient.run_report", "method": { "fullName": "google.analytics.data.v1beta.BetaAnalyticsData.RunReport", "service": { @@ -1511,10 +975,10 @@ "shortName": "run_report" }, "description": "Sample for RunReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_3a50a6eb.py", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_async.py", "language": "PYTHON", "origin": "API_DEFINITION", - "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunReport_sync", + "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunReport_async", "segments": [ { "end": 50, @@ -1547,7 +1011,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_3a50a6eb.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_async.py" }, { "canonical": true, @@ -1587,7 +1051,7 @@ "shortName": "run_report" }, "description": "Sample for RunReport", - "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_c82f18e9.py", + "file": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync.py", "language": "PYTHON", "origin": "API_DEFINITION", "regionTag": "analyticsdata_v1beta_generated_BetaAnalyticsData_RunReport_sync", @@ -1623,7 +1087,7 @@ "type": "RESPONSE_HANDLING" } ], - "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync_c82f18e9.py" + "title": "analyticsdata_v1beta_generated_beta_analytics_data_run_report_sync.py" } ] } diff --git a/samples/snippets/get_common_metadata.py b/samples/snippets/get_common_metadata.py index 19a1964..643cf55 100644 --- a/samples/snippets/get_common_metadata.py +++ b/samples/snippets/get_common_metadata.py @@ -22,8 +22,7 @@ """ # [START analyticsdata_get_common_metadata] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import GetMetadataRequest -from google.analytics.data_v1beta.types import MetricType +from google.analytics.data_v1beta.types import GetMetadataRequest, MetricType def run_sample(): diff --git a/samples/snippets/noxfile.py b/samples/snippets/noxfile.py index 0398d72..c171513 100644 --- a/samples/snippets/noxfile.py +++ b/samples/snippets/noxfile.py @@ -22,7 +22,6 @@ import nox - # WARNING - WARNING - WARNING - WARNING - WARNING # WARNING - WARNING - WARNING - WARNING - WARNING # DO NOT EDIT THIS FILE EVER! @@ -180,6 +179,7 @@ def blacken(session: nox.sessions.Session) -> None: # format = isort + black # + @nox.session def format(session: nox.sessions.Session) -> None: """ @@ -207,7 +207,9 @@ def _session_tests( session: nox.sessions.Session, post_install: Callable = None ) -> None: # check for presence of tests - test_list = glob.glob("**/*_test.py", recursive=True) + glob.glob("**/test_*.py", recursive=True) + test_list = glob.glob("**/*_test.py", recursive=True) + glob.glob( + "**/test_*.py", recursive=True + ) test_list.extend(glob.glob("**/tests", recursive=True)) if len(test_list) == 0: @@ -229,9 +231,7 @@ def _session_tests( if os.path.exists("requirements-test.txt"): if os.path.exists("constraints-test.txt"): - session.install( - "-r", "requirements-test.txt", "-c", "constraints-test.txt" - ) + session.install("-r", "requirements-test.txt", "-c", "constraints-test.txt") else: session.install("-r", "requirements-test.txt") with open("requirements-test.txt") as rtfile: @@ -244,9 +244,9 @@ def _session_tests( post_install(session) if "pytest-parallel" in packages: - concurrent_args.extend(['--workers', 'auto', '--tests-per-worker', 'auto']) + concurrent_args.extend(["--workers", "auto", "--tests-per-worker", "auto"]) elif "pytest-xdist" in packages: - concurrent_args.extend(['-n', 'auto']) + concurrent_args.extend(["-n", "auto"]) session.run( "pytest", @@ -276,7 +276,7 @@ def py(session: nox.sessions.Session) -> None: def _get_repo_root() -> Optional[str]: - """ Returns the root folder of the project. """ + """Returns the root folder of the project.""" # Get root of this repository. Assume we don't have directories nested deeper than 10 items. p = Path(os.getcwd()) for i in range(10): diff --git a/samples/snippets/quickstart.py b/samples/snippets/quickstart.py index ea1d771..f1e3538 100644 --- a/samples/snippets/quickstart.py +++ b/samples/snippets/quickstart.py @@ -25,10 +25,12 @@ """ # [START analyticsdata_quickstart] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) def sample_run_report(property_id="YOUR-GA4-PROPERTY-ID"): diff --git a/samples/snippets/quickstart_json_credentials.py b/samples/snippets/quickstart_json_credentials.py index 97c2889..1b5723e 100644 --- a/samples/snippets/quickstart_json_credentials.py +++ b/samples/snippets/quickstart_json_credentials.py @@ -29,10 +29,12 @@ """ # [START analyticsdata_json_credentials_quickstart] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) def sample_run_report(property_id="YOUR-GA4-PROPERTY-ID", credentials_json_path=""): diff --git a/samples/snippets/quickstart_oauth2.py b/samples/snippets/quickstart_oauth2.py index aa488ee..e8282cc 100644 --- a/samples/snippets/quickstart_oauth2.py +++ b/samples/snippets/quickstart_oauth2.py @@ -26,10 +26,12 @@ """ # [START analyticsdata_oauth2_quickstart] from google.analytics.data import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) from google_auth_oauthlib import flow diff --git a/samples/snippets/run_batch_report.py b/samples/snippets/run_batch_report.py index 1915dbc..07cdf40 100644 --- a/samples/snippets/run_batch_report.py +++ b/samples/snippets/run_batch_report.py @@ -22,11 +22,13 @@ """ # [START analyticsdata_run_batch_report] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import BatchRunReportsRequest -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + BatchRunReportsRequest, + DateRange, + Dimension, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_funnel_report.py b/samples/snippets/run_funnel_report.py index 446a7a0..937e3e8 100644 --- a/samples/snippets/run_funnel_report.py +++ b/samples/snippets/run_funnel_report.py @@ -22,17 +22,19 @@ """ # [START analyticsdata_run_funnel_report] from google.analytics.data_v1alpha import AlphaAnalyticsDataClient -from google.analytics.data_v1alpha.types import DateRange -from google.analytics.data_v1alpha.types import Dimension -from google.analytics.data_v1alpha.types import Funnel -from google.analytics.data_v1alpha.types import FunnelBreakdown -from google.analytics.data_v1alpha.types import FunnelEventFilter -from google.analytics.data_v1alpha.types import FunnelFieldFilter -from google.analytics.data_v1alpha.types import FunnelFilterExpression -from google.analytics.data_v1alpha.types import FunnelFilterExpressionList -from google.analytics.data_v1alpha.types import FunnelStep -from google.analytics.data_v1alpha.types import RunFunnelReportRequest -from google.analytics.data_v1alpha.types import StringFilter +from google.analytics.data_v1alpha.types import ( + DateRange, + Dimension, + Funnel, + FunnelBreakdown, + FunnelEventFilter, + FunnelFieldFilter, + FunnelFilterExpression, + FunnelFilterExpressionList, + FunnelStep, + RunFunnelReportRequest, + StringFilter, +) def run_sample(): diff --git a/samples/snippets/run_pivot_report.py b/samples/snippets/run_pivot_report.py index 1b620b3..699780c 100644 --- a/samples/snippets/run_pivot_report.py +++ b/samples/snippets/run_pivot_report.py @@ -22,12 +22,14 @@ """ # [START analyticsdata_run_pivot_report] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import OrderBy -from google.analytics.data_v1beta.types import Pivot -from google.analytics.data_v1beta.types import RunPivotReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + OrderBy, + Pivot, + RunPivotReportRequest, +) def run_sample(): diff --git a/samples/snippets/run_realtime_report.py b/samples/snippets/run_realtime_report.py index f106a16..5efd627 100644 --- a/samples/snippets/run_realtime_report.py +++ b/samples/snippets/run_realtime_report.py @@ -22,9 +22,11 @@ """ # [START analyticsdata_run_realtime_report] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunRealtimeReportRequest +from google.analytics.data_v1beta.types import ( + Dimension, + Metric, + RunRealtimeReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_realtime_report_with_minute_ranges.py b/samples/snippets/run_realtime_report_with_minute_ranges.py index 4365ff1..2db3772 100644 --- a/samples/snippets/run_realtime_report_with_minute_ranges.py +++ b/samples/snippets/run_realtime_report_with_minute_ranges.py @@ -22,9 +22,11 @@ """ # [START analyticsdata_run_realtime_report_with_minute_ranges] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import MinuteRange -from google.analytics.data_v1beta.types import RunRealtimeReportRequest +from google.analytics.data_v1beta.types import ( + Metric, + MinuteRange, + RunRealtimeReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_realtime_report_with_multiple_dimensions.py b/samples/snippets/run_realtime_report_with_multiple_dimensions.py index 3726681..e4c1fe0 100644 --- a/samples/snippets/run_realtime_report_with_multiple_dimensions.py +++ b/samples/snippets/run_realtime_report_with_multiple_dimensions.py @@ -22,9 +22,11 @@ """ # [START analyticsdata_run_realtime_report_with_multiple_dimensions] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunRealtimeReportRequest +from google.analytics.data_v1beta.types import ( + Dimension, + Metric, + RunRealtimeReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_realtime_report_with_multiple_metrics.py b/samples/snippets/run_realtime_report_with_multiple_metrics.py index c87731d..831b32b 100644 --- a/samples/snippets/run_realtime_report_with_multiple_metrics.py +++ b/samples/snippets/run_realtime_report_with_multiple_metrics.py @@ -22,9 +22,11 @@ """ # [START analyticsdata_run_realtime_report_with_multiple_metrics] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunRealtimeReportRequest +from google.analytics.data_v1beta.types import ( + Dimension, + Metric, + RunRealtimeReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report.py b/samples/snippets/run_report.py index 5929a2e..d3c19ca 100644 --- a/samples/snippets/run_report.py +++ b/samples/snippets/run_report.py @@ -22,11 +22,13 @@ """ # [START analyticsdata_run_report] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import MetricType -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + MetricType, + RunReportRequest, +) def run_sample(): diff --git a/samples/snippets/run_report_with_aggregations.py b/samples/snippets/run_report_with_aggregations.py index 3b77fd8..9cee325 100644 --- a/samples/snippets/run_report_with_aggregations.py +++ b/samples/snippets/run_report_with_aggregations.py @@ -22,11 +22,13 @@ """ # [START analyticsdata_run_report_with_aggregations] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import MetricAggregation -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + MetricAggregation, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_cohorts.py b/samples/snippets/run_report_with_cohorts.py index ef0e263..38442a1 100644 --- a/samples/snippets/run_report_with_cohorts.py +++ b/samples/snippets/run_report_with_cohorts.py @@ -22,13 +22,15 @@ """ # [START analyticsdata_run_report_with_cohorts] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import Cohort -from google.analytics.data_v1beta.types import CohortSpec -from google.analytics.data_v1beta.types import CohortsRange -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + Cohort, + CohortSpec, + CohortsRange, + DateRange, + Dimension, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_date_ranges.py b/samples/snippets/run_report_with_date_ranges.py index 73fae80..b228425 100644 --- a/samples/snippets/run_report_with_date_ranges.py +++ b/samples/snippets/run_report_with_date_ranges.py @@ -22,10 +22,12 @@ """ # [START analyticsdata_run_report_with_date_ranges] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_dimension_and_metric_filters.py b/samples/snippets/run_report_with_dimension_and_metric_filters.py index 8935e32..cc013a5 100644 --- a/samples/snippets/run_report_with_dimension_and_metric_filters.py +++ b/samples/snippets/run_report_with_dimension_and_metric_filters.py @@ -22,14 +22,16 @@ """ # [START analyticsdata_run_report_with_dimension_and_metric_filters] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Filter -from google.analytics.data_v1beta.types import FilterExpression -from google.analytics.data_v1beta.types import FilterExpressionList -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import NumericValue -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Filter, + FilterExpression, + FilterExpressionList, + Metric, + NumericValue, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_dimension_exclude_filter.py b/samples/snippets/run_report_with_dimension_exclude_filter.py index 938cee9..532e17f 100644 --- a/samples/snippets/run_report_with_dimension_exclude_filter.py +++ b/samples/snippets/run_report_with_dimension_exclude_filter.py @@ -22,12 +22,14 @@ """ # [START analyticsdata_run_report_with_dimension_exclude_filter] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Filter -from google.analytics.data_v1beta.types import FilterExpression -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Filter, + FilterExpression, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_dimension_filter.py b/samples/snippets/run_report_with_dimension_filter.py index d9568a7..64e899f 100644 --- a/samples/snippets/run_report_with_dimension_filter.py +++ b/samples/snippets/run_report_with_dimension_filter.py @@ -22,12 +22,14 @@ """ # [START analyticsdata_run_report_with_dimension_filter] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Filter -from google.analytics.data_v1beta.types import FilterExpression -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Filter, + FilterExpression, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_dimension_in_list_filter.py b/samples/snippets/run_report_with_dimension_in_list_filter.py index e4bd7e3..14c5b49 100644 --- a/samples/snippets/run_report_with_dimension_in_list_filter.py +++ b/samples/snippets/run_report_with_dimension_in_list_filter.py @@ -22,12 +22,14 @@ """ # [START analyticsdata_run_report_with_dimension_in_list_filter] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Filter -from google.analytics.data_v1beta.types import FilterExpression -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Filter, + FilterExpression, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_multiple_dimension_filters.py b/samples/snippets/run_report_with_multiple_dimension_filters.py index e1002af..0fe0608 100644 --- a/samples/snippets/run_report_with_multiple_dimension_filters.py +++ b/samples/snippets/run_report_with_multiple_dimension_filters.py @@ -22,13 +22,15 @@ """ # [START analyticsdata_run_report_with_multiple_dimension_filters] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Filter -from google.analytics.data_v1beta.types import FilterExpression -from google.analytics.data_v1beta.types import FilterExpressionList -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Filter, + FilterExpression, + FilterExpressionList, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_multiple_dimensions.py b/samples/snippets/run_report_with_multiple_dimensions.py index 78a4a1c..4b0e6ba 100644 --- a/samples/snippets/run_report_with_multiple_dimensions.py +++ b/samples/snippets/run_report_with_multiple_dimensions.py @@ -22,10 +22,12 @@ """ # [START analyticsdata_run_report_with_multiple_dimensions] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_multiple_metrics.py b/samples/snippets/run_report_with_multiple_metrics.py index d3546df..279ed40 100644 --- a/samples/snippets/run_report_with_multiple_metrics.py +++ b/samples/snippets/run_report_with_multiple_metrics.py @@ -22,10 +22,12 @@ """ # [START analyticsdata_run_report_with_multiple_metrics] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_named_date_ranges.py b/samples/snippets/run_report_with_named_date_ranges.py index c5bbae4..41aee5b 100644 --- a/samples/snippets/run_report_with_named_date_ranges.py +++ b/samples/snippets/run_report_with_named_date_ranges.py @@ -22,10 +22,12 @@ """ # [START analyticsdata_run_report_with_named_date_ranges] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_ordering.py b/samples/snippets/run_report_with_ordering.py index f55bf5c..fad333a 100644 --- a/samples/snippets/run_report_with_ordering.py +++ b/samples/snippets/run_report_with_ordering.py @@ -22,11 +22,13 @@ """ # [START analyticsdata_run_report_with_ordering] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import OrderBy -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + OrderBy, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_pagination.py b/samples/snippets/run_report_with_pagination.py index 487f325..9211993 100644 --- a/samples/snippets/run_report_with_pagination.py +++ b/samples/snippets/run_report_with_pagination.py @@ -22,10 +22,12 @@ """ # [START analyticsdata_run_report_with_pagination] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) from run_report import print_run_report_response diff --git a/samples/snippets/run_report_with_property_quota.py b/samples/snippets/run_report_with_property_quota.py index 76bc3d3..cd87336 100644 --- a/samples/snippets/run_report_with_property_quota.py +++ b/samples/snippets/run_report_with_property_quota.py @@ -22,10 +22,12 @@ """ # [START analyticsdata_run_report_with_property_quota] from google.analytics.data_v1beta import BetaAnalyticsDataClient -from google.analytics.data_v1beta.types import DateRange -from google.analytics.data_v1beta.types import Dimension -from google.analytics.data_v1beta.types import Metric -from google.analytics.data_v1beta.types import RunReportRequest +from google.analytics.data_v1beta.types import ( + DateRange, + Dimension, + Metric, + RunReportRequest, +) def run_sample(): diff --git a/scripts/fixup_data_v1alpha_keywords.py b/scripts/fixup_data_v1alpha_keywords.py new file mode 100644 index 0000000..8a3ca04 --- /dev/null +++ b/scripts/fixup_data_v1alpha_keywords.py @@ -0,0 +1,176 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import argparse +import os +import libcst as cst +import pathlib +import sys +from typing import (Any, Callable, Dict, List, Sequence, Tuple) + + +def partition( + predicate: Callable[[Any], bool], + iterator: Sequence[Any] +) -> Tuple[List[Any], List[Any]]: + """A stable, out-of-place partition.""" + results = ([], []) + + for i in iterator: + results[int(predicate(i))].append(i) + + # Returns trueList, falseList + return results[1], results[0] + + +class dataCallTransformer(cst.CSTTransformer): + CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata') + METHOD_TO_PARAMS: Dict[str, Tuple[str]] = { + 'run_funnel_report': ('property', 'date_ranges', 'funnel', 'funnel_breakdown', 'funnel_next_action', 'funnel_visualization_type', 'segments', 'limit', 'dimension_filter', 'return_property_quota', ), + } + + def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode: + try: + key = original.func.attr.value + kword_params = self.METHOD_TO_PARAMS[key] + except (AttributeError, KeyError): + # Either not a method from the API or too convoluted to be sure. + return updated + + # If the existing code is valid, keyword args come after positional args. + # Therefore, all positional args must map to the first parameters. + args, kwargs = partition(lambda a: not bool(a.keyword), updated.args) + if any(k.keyword.value == "request" for k in kwargs): + # We've already fixed this file, don't fix it again. + return updated + + kwargs, ctrl_kwargs = partition( + lambda a: a.keyword.value not in self.CTRL_PARAMS, + kwargs + ) + + args, ctrl_args = args[:len(kword_params)], args[len(kword_params):] + ctrl_kwargs.extend(cst.Arg(value=a.value, keyword=cst.Name(value=ctrl)) + for a, ctrl in zip(ctrl_args, self.CTRL_PARAMS)) + + request_arg = cst.Arg( + value=cst.Dict([ + cst.DictElement( + cst.SimpleString("'{}'".format(name)), +cst.Element(value=arg.value) + ) + # Note: the args + kwargs looks silly, but keep in mind that + # the control parameters had to be stripped out, and that + # those could have been passed positionally or by keyword. + for name, arg in zip(kword_params, args + kwargs)]), + keyword=cst.Name("request") + ) + + return updated.with_changes( + args=[request_arg] + ctrl_kwargs + ) + + +def fix_files( + in_dir: pathlib.Path, + out_dir: pathlib.Path, + *, + transformer=dataCallTransformer(), +): + """Duplicate the input dir to the output dir, fixing file method calls. + + Preconditions: + * in_dir is a real directory + * out_dir is a real, empty directory + """ + pyfile_gen = ( + pathlib.Path(os.path.join(root, f)) + for root, _, files in os.walk(in_dir) + for f in files if os.path.splitext(f)[1] == ".py" + ) + + for fpath in pyfile_gen: + with open(fpath, 'r') as f: + src = f.read() + + # Parse the code and insert method call fixes. + tree = cst.parse_module(src) + updated = tree.visit(transformer) + + # Create the path and directory structure for the new file. + updated_path = out_dir.joinpath(fpath.relative_to(in_dir)) + updated_path.parent.mkdir(parents=True, exist_ok=True) + + # Generate the updated source file at the corresponding path. + with open(updated_path, 'w') as f: + f.write(updated.code) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description="""Fix up source that uses the data client library. + +The existing sources are NOT overwritten but are copied to output_dir with changes made. + +Note: This tool operates at a best-effort level at converting positional + parameters in client method calls to keyword based parameters. + Cases where it WILL FAIL include + A) * or ** expansion in a method call. + B) Calls via function or method alias (includes free function calls) + C) Indirect or dispatched calls (e.g. the method is looked up dynamically) + + These all constitute false negatives. The tool will also detect false + positives when an API method shares a name with another method. +""") + parser.add_argument( + '-d', + '--input-directory', + required=True, + dest='input_dir', + help='the input directory to walk for python files to fix up', + ) + parser.add_argument( + '-o', + '--output-directory', + required=True, + dest='output_dir', + help='the directory to output files fixed via un-flattening', + ) + args = parser.parse_args() + input_dir = pathlib.Path(args.input_dir) + output_dir = pathlib.Path(args.output_dir) + if not input_dir.is_dir(): + print( + f"input directory '{input_dir}' does not exist or is not a directory", + file=sys.stderr, + ) + sys.exit(-1) + + if not output_dir.is_dir(): + print( + f"output directory '{output_dir}' does not exist or is not a directory", + file=sys.stderr, + ) + sys.exit(-1) + + if os.listdir(output_dir): + print( + f"output directory '{output_dir}' is not empty", + file=sys.stderr, + ) + sys.exit(-1) + + fix_files(input_dir, output_dir) diff --git a/scripts/fixup_data_v1beta_keywords.py b/scripts/fixup_data_v1beta_keywords.py new file mode 100644 index 0000000..3f3b1da --- /dev/null +++ b/scripts/fixup_data_v1beta_keywords.py @@ -0,0 +1,182 @@ +#! /usr/bin/env python3 +# -*- coding: utf-8 -*- +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +import argparse +import os +import libcst as cst +import pathlib +import sys +from typing import (Any, Callable, Dict, List, Sequence, Tuple) + + +def partition( + predicate: Callable[[Any], bool], + iterator: Sequence[Any] +) -> Tuple[List[Any], List[Any]]: + """A stable, out-of-place partition.""" + results = ([], []) + + for i in iterator: + results[int(predicate(i))].append(i) + + # Returns trueList, falseList + return results[1], results[0] + + +class dataCallTransformer(cst.CSTTransformer): + CTRL_PARAMS: Tuple[str] = ('retry', 'timeout', 'metadata') + METHOD_TO_PARAMS: Dict[str, Tuple[str]] = { + 'batch_run_pivot_reports': ('property', 'requests', ), + 'batch_run_reports': ('property', 'requests', ), + 'check_compatibility': ('property', 'dimensions', 'metrics', 'dimension_filter', 'metric_filter', 'compatibility_filter', ), + 'get_metadata': ('name', ), + 'run_pivot_report': ('property', 'dimensions', 'metrics', 'date_ranges', 'pivots', 'dimension_filter', 'metric_filter', 'currency_code', 'cohort_spec', 'keep_empty_rows', 'return_property_quota', ), + 'run_realtime_report': ('property', 'dimensions', 'metrics', 'dimension_filter', 'metric_filter', 'limit', 'metric_aggregations', 'order_bys', 'return_property_quota', 'minute_ranges', ), + 'run_report': ('property', 'dimensions', 'metrics', 'date_ranges', 'dimension_filter', 'metric_filter', 'offset', 'limit', 'metric_aggregations', 'order_bys', 'currency_code', 'cohort_spec', 'keep_empty_rows', 'return_property_quota', ), + } + + def leave_Call(self, original: cst.Call, updated: cst.Call) -> cst.CSTNode: + try: + key = original.func.attr.value + kword_params = self.METHOD_TO_PARAMS[key] + except (AttributeError, KeyError): + # Either not a method from the API or too convoluted to be sure. + return updated + + # If the existing code is valid, keyword args come after positional args. + # Therefore, all positional args must map to the first parameters. + args, kwargs = partition(lambda a: not bool(a.keyword), updated.args) + if any(k.keyword.value == "request" for k in kwargs): + # We've already fixed this file, don't fix it again. + return updated + + kwargs, ctrl_kwargs = partition( + lambda a: a.keyword.value not in self.CTRL_PARAMS, + kwargs + ) + + args, ctrl_args = args[:len(kword_params)], args[len(kword_params):] + ctrl_kwargs.extend(cst.Arg(value=a.value, keyword=cst.Name(value=ctrl)) + for a, ctrl in zip(ctrl_args, self.CTRL_PARAMS)) + + request_arg = cst.Arg( + value=cst.Dict([ + cst.DictElement( + cst.SimpleString("'{}'".format(name)), +cst.Element(value=arg.value) + ) + # Note: the args + kwargs looks silly, but keep in mind that + # the control parameters had to be stripped out, and that + # those could have been passed positionally or by keyword. + for name, arg in zip(kword_params, args + kwargs)]), + keyword=cst.Name("request") + ) + + return updated.with_changes( + args=[request_arg] + ctrl_kwargs + ) + + +def fix_files( + in_dir: pathlib.Path, + out_dir: pathlib.Path, + *, + transformer=dataCallTransformer(), +): + """Duplicate the input dir to the output dir, fixing file method calls. + + Preconditions: + * in_dir is a real directory + * out_dir is a real, empty directory + """ + pyfile_gen = ( + pathlib.Path(os.path.join(root, f)) + for root, _, files in os.walk(in_dir) + for f in files if os.path.splitext(f)[1] == ".py" + ) + + for fpath in pyfile_gen: + with open(fpath, 'r') as f: + src = f.read() + + # Parse the code and insert method call fixes. + tree = cst.parse_module(src) + updated = tree.visit(transformer) + + # Create the path and directory structure for the new file. + updated_path = out_dir.joinpath(fpath.relative_to(in_dir)) + updated_path.parent.mkdir(parents=True, exist_ok=True) + + # Generate the updated source file at the corresponding path. + with open(updated_path, 'w') as f: + f.write(updated.code) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + description="""Fix up source that uses the data client library. + +The existing sources are NOT overwritten but are copied to output_dir with changes made. + +Note: This tool operates at a best-effort level at converting positional + parameters in client method calls to keyword based parameters. + Cases where it WILL FAIL include + A) * or ** expansion in a method call. + B) Calls via function or method alias (includes free function calls) + C) Indirect or dispatched calls (e.g. the method is looked up dynamically) + + These all constitute false negatives. The tool will also detect false + positives when an API method shares a name with another method. +""") + parser.add_argument( + '-d', + '--input-directory', + required=True, + dest='input_dir', + help='the input directory to walk for python files to fix up', + ) + parser.add_argument( + '-o', + '--output-directory', + required=True, + dest='output_dir', + help='the directory to output files fixed via un-flattening', + ) + args = parser.parse_args() + input_dir = pathlib.Path(args.input_dir) + output_dir = pathlib.Path(args.output_dir) + if not input_dir.is_dir(): + print( + f"input directory '{input_dir}' does not exist or is not a directory", + file=sys.stderr, + ) + sys.exit(-1) + + if not output_dir.is_dir(): + print( + f"output directory '{output_dir}' does not exist or is not a directory", + file=sys.stderr, + ) + sys.exit(-1) + + if os.listdir(output_dir): + print( + f"output directory '{output_dir}' is not empty", + file=sys.stderr, + ) + sys.exit(-1) + + fix_files(input_dir, output_dir) diff --git a/setup.py b/setup.py index ec65677..ea7b351 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- - -# Copyright 2020 Google LLC +# Copyright 2022 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,12 +13,34 @@ # See the License for the specific language governing permissions and # limitations under the License. # - import io import os + import setuptools # type: ignore -version = "0.14.2" +package_root = os.path.abspath(os.path.dirname(__file__)) + +name = "google-analytics-data" + + +description = "Google Analytics Data API client library" + +version = {} +with open(os.path.join(package_root, "google/analytics/data/gapic_version.py")) as fp: + exec(fp.read(), version) +version = version["__version__"] + +if version[0] == "0": + release_status = "Development Status :: 4 - Beta" +else: + release_status = "Development Status :: 5 - Production/Stable" + +dependencies = [ + "google-api-core[grpc] >= 1.33.2, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", + "proto-plus >= 1.22.0, <2.0.0dev", + "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", +] +url = "https://github.com/googleapis/python-analytics-data" package_root = os.path.abspath(os.path.dirname(__file__)) @@ -27,39 +48,43 @@ with io.open(readme_filename, encoding="utf-8") as readme_file: readme = readme_file.read() +packages = [ + package + for package in setuptools.PEP420PackageFinder.find() + if package.startswith("google") +] + +namespaces = ["google"] +if "google.cloud" in packages: + namespaces.append("google.cloud") setuptools.setup( - name="google-analytics-data", + name=name, version=version, + description=description, long_description=readme, author="Google LLC", author_email="googleapis-packages@google.com", license="Apache 2.0", - url="https://github.com/googleapis/python-analytics-data", - packages=[ - package - for package in setuptools.PEP420PackageFinder.find() - if package.startswith("google") - ], - namespace_packages=("google", "google.analytics"), - platforms="Posix; MacOS X; Windows", - include_package_data=True, - install_requires=( - "google-api-core[grpc] >= 1.33.2, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", - "proto-plus >= 1.22.0, <2.0.0dev", - "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", - ), - python_requires=">=3.7", + url=url, classifiers=[ - "Development Status :: 4 - Beta", + release_status, "Intended Audience :: Developers", - "Operating System :: OS Independent", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Operating System :: OS Independent", "Topic :: Internet", - "Topic :: Software Development :: Libraries :: Python Modules", ], + platforms="Posix; MacOS X; Windows", + packages=packages, + python_requires=">=3.7", + namespace_packages=namespaces, + install_requires=dependencies, + include_package_data=True, zip_safe=False, ) diff --git a/testing/constraints-3.10.txt b/testing/constraints-3.10.txt index e69de29..ed7f9ae 100644 --- a/testing/constraints-3.10.txt +++ b/testing/constraints-3.10.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/testing/constraints-3.11.txt b/testing/constraints-3.11.txt index e69de29..ed7f9ae 100644 --- a/testing/constraints-3.11.txt +++ b/testing/constraints-3.11.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/testing/constraints-3.7.txt b/testing/constraints-3.7.txt index a8f5487..aca9f2d 100644 --- a/testing/constraints-3.7.txt +++ b/testing/constraints-3.7.txt @@ -1,10 +1,11 @@ # This constraints file is used to check that lower bounds # are correct in setup.py -# List *all* library dependencies and extras in this file. +# List all library dependencies and extras in this file. # Pin the version to the lower bound. -# -# e.g., if setup.py has "foo >= 1.14.0, < 2.0.0dev", -# Then this file should have foo==1.14.0 +# e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", +# Then this file should have google-cloud-foo==1.14.0 +# This file is intentionally left empty to test the +# latest versions of dependencies. google-api-core==1.33.2 proto-plus==1.22.0 protobuf==3.19.5 diff --git a/testing/constraints-3.8.txt b/testing/constraints-3.8.txt index e69de29..ed7f9ae 100644 --- a/testing/constraints-3.8.txt +++ b/testing/constraints-3.8.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/testing/constraints-3.9.txt b/testing/constraints-3.9.txt index e69de29..ed7f9ae 100644 --- a/testing/constraints-3.9.txt +++ b/testing/constraints-3.9.txt @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# This constraints file is required for unit tests. +# List all library dependencies and extras in this file. +google-api-core +proto-plus +protobuf diff --git a/tests/unit/gapic/data_v1alpha/test_alpha_analytics_data.py b/tests/unit/gapic/data_v1alpha/test_alpha_analytics_data.py index 2c4b6e6..f409764 100644 --- a/tests/unit/gapic/data_v1alpha/test_alpha_analytics_data.py +++ b/tests/unit/gapic/data_v1alpha/test_alpha_analytics_data.py @@ -22,40 +22,33 @@ except ImportError: # pragma: NO COVER import mock -import grpc -from grpc.experimental import aio from collections.abc import Iterable -from google.protobuf import json_format import json import math -import pytest -from proto.marshal.rules.dates import DurationRule, TimestampRule -from proto.marshal.rules import wrappers -from requests import Response -from requests import Request, PreparedRequest -from requests.sessions import Session -from google.protobuf import json_format -from google.analytics.data_v1alpha.services.alpha_analytics_data import ( - AlphaAnalyticsDataAsyncClient, -) -from google.analytics.data_v1alpha.services.alpha_analytics_data import ( - AlphaAnalyticsDataClient, -) -from google.analytics.data_v1alpha.services.alpha_analytics_data import transports -from google.analytics.data_v1alpha.types import analytics_data_api -from google.analytics.data_v1alpha.types import data +from google.api_core import gapic_v1, grpc_helpers, grpc_helpers_async, path_template from google.api_core import client_options from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers -from google.api_core import grpc_helpers_async -from google.api_core import path_template +import google.auth from google.auth import credentials as ga_credentials from google.auth.exceptions import MutualTLSChannelError from google.oauth2 import service_account from google.protobuf import duration_pb2 # type: ignore -import google.auth +from google.protobuf import json_format +import grpc +from grpc.experimental import aio +from proto.marshal.rules import wrappers +from proto.marshal.rules.dates import DurationRule, TimestampRule +import pytest +from requests import PreparedRequest, Request, Response +from requests.sessions import Session + +from google.analytics.data_v1alpha.services.alpha_analytics_data import ( + AlphaAnalyticsDataAsyncClient, + AlphaAnalyticsDataClient, + transports, +) +from google.analytics.data_v1alpha.types import analytics_data_api, data def client_cert_source_callback(): diff --git a/tests/unit/gapic/data_v1beta/test_beta_analytics_data.py b/tests/unit/gapic/data_v1beta/test_beta_analytics_data.py index 2ed805f..fa9f6c2 100644 --- a/tests/unit/gapic/data_v1beta/test_beta_analytics_data.py +++ b/tests/unit/gapic/data_v1beta/test_beta_analytics_data.py @@ -22,39 +22,32 @@ except ImportError: # pragma: NO COVER import mock -import grpc -from grpc.experimental import aio from collections.abc import Iterable -from google.protobuf import json_format import json import math -import pytest -from proto.marshal.rules.dates import DurationRule, TimestampRule + +from google.api_core import gapic_v1, grpc_helpers, grpc_helpers_async, path_template +from google.api_core import client_options +from google.api_core import exceptions as core_exceptions +import google.auth +from google.auth import credentials as ga_credentials +from google.auth.exceptions import MutualTLSChannelError +from google.oauth2 import service_account +from google.protobuf import json_format +import grpc +from grpc.experimental import aio from proto.marshal.rules import wrappers -from requests import Response -from requests import Request, PreparedRequest +from proto.marshal.rules.dates import DurationRule, TimestampRule +import pytest +from requests import PreparedRequest, Request, Response from requests.sessions import Session -from google.protobuf import json_format from google.analytics.data_v1beta.services.beta_analytics_data import ( BetaAnalyticsDataAsyncClient, -) -from google.analytics.data_v1beta.services.beta_analytics_data import ( BetaAnalyticsDataClient, + transports, ) -from google.analytics.data_v1beta.services.beta_analytics_data import transports -from google.analytics.data_v1beta.types import analytics_data_api -from google.analytics.data_v1beta.types import data -from google.api_core import client_options -from google.api_core import exceptions as core_exceptions -from google.api_core import gapic_v1 -from google.api_core import grpc_helpers -from google.api_core import grpc_helpers_async -from google.api_core import path_template -from google.auth import credentials as ga_credentials -from google.auth.exceptions import MutualTLSChannelError -from google.oauth2 import service_account -import google.auth +from google.analytics.data_v1beta.types import analytics_data_api, data def client_cert_source_callback(): From a09cbdfc78bbfc2efe7e9cbdfb9276ea48522682 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sat, 12 Nov 2022 08:17:12 -0500 Subject: [PATCH 09/17] chore: Update to gapic-generator-python 1.6.0 (#315) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: Update to gapic-generator-python 1.6.0 feat(python): Add typing to proto.Message based class attributes feat(python): Snippetgen handling of repeated enum field PiperOrigin-RevId: 487326846 Source-Link: https://github.com/googleapis/googleapis/commit/da380c77bb87ba0f752baf07605dd1db30e1f7e1 Source-Link: https://github.com/googleapis/googleapis-gen/commit/61ef5762ee6731a0cbbfea22fd0eecee51ab1c8e Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNjFlZjU3NjJlZTY3MzFhMGNiYmZlYTIyZmQwZWVjZWU1MWFiMWM4ZSJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix docs build * fix repo url in setup.py * update path to snippet metadata json Co-authored-by: Owl Bot Co-authored-by: Anthonios Partheniou --- docs/data_v1alpha/types.rst | 1 - docs/data_v1beta/types.rst | 1 - .../alpha_analytics_data/async_client.py | 24 +- .../services/alpha_analytics_data/client.py | 23 +- .../alpha_analytics_data/transports/base.py | 2 +- .../alpha_analytics_data/transports/grpc.py | 20 +- .../transports/grpc_asyncio.py | 16 +- .../alpha_analytics_data/transports/rest.py | 10 +- .../data_v1alpha/types/analytics_data_api.py | 34 +- google/analytics/data_v1alpha/types/data.py | 356 +++++++++--------- .../beta_analytics_data/async_client.py | 68 ++-- .../services/beta_analytics_data/client.py | 55 ++- .../beta_analytics_data/transports/base.py | 2 +- .../beta_analytics_data/transports/grpc.py | 20 +- .../transports/grpc_asyncio.py | 16 +- .../beta_analytics_data/transports/rest.py | 22 +- .../data_v1beta/types/analytics_data_api.py | 252 +++++++------ google/analytics/data_v1beta/types/data.py | 264 ++++++------- release-please-config.json | 4 +- ...tadata_google.analytics.data.v1alpha.json} | 3 +- ...etadata_google.analytics.data.v1beta.json} | 3 +- 21 files changed, 646 insertions(+), 550 deletions(-) rename samples/generated_samples/{snippet_metadata_data_v1alpha.json => snippet_metadata_google.analytics.data.v1alpha.json} (98%) rename samples/generated_samples/{snippet_metadata_data_v1beta.json => snippet_metadata_google.analytics.data.v1beta.json} (99%) diff --git a/docs/data_v1alpha/types.rst b/docs/data_v1alpha/types.rst index 8498253..c0378d5 100644 --- a/docs/data_v1alpha/types.rst +++ b/docs/data_v1alpha/types.rst @@ -3,5 +3,4 @@ Types for Google Analytics Data v1alpha API .. automodule:: google.analytics.data_v1alpha.types :members: - :undoc-members: :show-inheritance: diff --git a/docs/data_v1beta/types.rst b/docs/data_v1beta/types.rst index e7db7e0..2d6bf68 100644 --- a/docs/data_v1beta/types.rst +++ b/docs/data_v1beta/types.rst @@ -3,5 +3,4 @@ Types for Google Analytics Data v1beta API .. automodule:: google.analytics.data_v1beta.types :members: - :undoc-members: :show-inheritance: diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py index 03d9623..8c01ae3 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py @@ -16,7 +16,17 @@ from collections import OrderedDict import functools import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, +) from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 @@ -157,9 +167,9 @@ def transport(self) -> AlphaAnalyticsDataTransport: def __init__( self, *, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, transport: Union[str, AlphaAnalyticsDataTransport] = "grpc_asyncio", - client_options: ClientOptions = None, + client_options: Optional[ClientOptions] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the alpha analytics data client. @@ -203,10 +213,12 @@ def __init__( async def run_funnel_report( self, - request: Union[analytics_data_api.RunFunnelReportRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.RunFunnelReportRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunFunnelReportResponse: r"""Returns a customized funnel report of your Google Analytics @@ -248,7 +260,7 @@ async def sample_run_funnel_report(): print(response) Args: - request (Union[google.analytics.data_v1alpha.types.RunFunnelReportRequest, dict]): + request (Optional[Union[google.analytics.data_v1alpha.types.RunFunnelReportRequest, dict]]): The request object. The request for a funnel report. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py index 662fd6f..c6923e0 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py @@ -16,7 +16,18 @@ from collections import OrderedDict import os import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union, cast +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) from google.api_core import client_options as client_options_lib from google.api_core import exceptions as core_exceptions @@ -59,7 +70,7 @@ class AlphaAnalyticsDataClientMeta(type): def get_transport_class( cls, - label: str = None, + label: Optional[str] = None, ) -> Type[AlphaAnalyticsDataTransport]: """Returns an appropriate transport class. @@ -312,7 +323,7 @@ def __init__( self, *, credentials: Optional[ga_credentials.Credentials] = None, - transport: Union[str, AlphaAnalyticsDataTransport, None] = None, + transport: Optional[Union[str, AlphaAnalyticsDataTransport]] = None, client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: @@ -413,10 +424,12 @@ def __init__( def run_funnel_report( self, - request: Union[analytics_data_api.RunFunnelReportRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.RunFunnelReportRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunFunnelReportResponse: r"""Returns a customized funnel report of your Google Analytics diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py index 05872ae..9cdb624 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py @@ -51,7 +51,7 @@ def __init__( self, *, host: str = DEFAULT_HOST, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc.py index 0a0f397..665e570 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc.py @@ -46,14 +46,14 @@ def __init__( self, *, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, - scopes: Sequence[str] = None, - channel: grpc.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[grpc.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, @@ -180,8 +180,8 @@ def __init__( def create_channel( cls, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, **kwargs, diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc_asyncio.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc_asyncio.py index 280ba58..ae23871 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc_asyncio.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/grpc_asyncio.py @@ -48,7 +48,7 @@ class AlphaAnalyticsDataGrpcAsyncIOTransport(AlphaAnalyticsDataTransport): def create_channel( cls, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, @@ -91,15 +91,15 @@ def __init__( self, *, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, - channel: aio.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, - quota_project_id=None, + channel: Optional[aio.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, api_audience: Optional[str] = None, diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py index 896d23c..0c82701 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py @@ -127,10 +127,10 @@ def __init__( self, *, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, - scopes: Sequence[str] = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, @@ -212,7 +212,7 @@ def __call__( request: analytics_data_api.RunFunnelReportRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunFunnelReportResponse: r"""Call the run funnel report method over HTTP. diff --git a/google/analytics/data_v1alpha/types/analytics_data_api.py b/google/analytics/data_v1alpha/types/analytics_data_api.py index a7d5dbd..e92a8f5 100644 --- a/google/analytics/data_v1alpha/types/analytics_data_api.py +++ b/google/analytics/data_v1alpha/types/analytics_data_api.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + import proto # type: ignore from google.analytics.data_v1alpha.types import data @@ -39,7 +41,7 @@ class RunFunnelReportRequest(proto.Message): unspecified or consistent with the batch-level property. Example: properties/1234 - date_ranges (Sequence[google.analytics.data_v1alpha.types.DateRange]): + date_ranges (MutableSequence[google.analytics.data_v1alpha.types.DateRange]): Date ranges of data to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two @@ -70,7 +72,7 @@ class RunFunnelReportRequest(proto.Message): The funnel visualization type controls the dimensions present in the funnel visualization sub report response. If not specified, ``STANDARD_FUNNEL`` is used. - segments (Sequence[google.analytics.data_v1alpha.types.Segment]): + segments (MutableSequence[google.analytics.data_v1alpha.types.Segment]): The configurations of segments. Segments are subsets of a property's data. In a funnel report with segments, the funnel is evaluated in each @@ -110,50 +112,50 @@ class FunnelVisualizationType(proto.Enum): STANDARD_FUNNEL = 1 TRENDED_FUNNEL = 2 - property = proto.Field( + property: str = proto.Field( proto.STRING, number=1, ) - date_ranges = proto.RepeatedField( + date_ranges: MutableSequence[data.DateRange] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.DateRange, ) - funnel = proto.Field( + funnel: data.Funnel = proto.Field( proto.MESSAGE, number=3, message=data.Funnel, ) - funnel_breakdown = proto.Field( + funnel_breakdown: data.FunnelBreakdown = proto.Field( proto.MESSAGE, number=4, message=data.FunnelBreakdown, ) - funnel_next_action = proto.Field( + funnel_next_action: data.FunnelNextAction = proto.Field( proto.MESSAGE, number=5, message=data.FunnelNextAction, ) - funnel_visualization_type = proto.Field( + funnel_visualization_type: FunnelVisualizationType = proto.Field( proto.ENUM, number=6, enum=FunnelVisualizationType, ) - segments = proto.RepeatedField( + segments: MutableSequence[data.Segment] = proto.RepeatedField( proto.MESSAGE, number=7, message=data.Segment, ) - limit = proto.Field( + limit: int = proto.Field( proto.INT64, number=9, ) - dimension_filter = proto.Field( + dimension_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=10, message=data.FilterExpression, ) - return_property_quota = proto.Field( + return_property_quota: bool = proto.Field( proto.BOOL, number=12, ) @@ -194,22 +196,22 @@ class RunFunnelReportResponse(proto.Message): between response types in JSON. """ - funnel_table = proto.Field( + funnel_table: data.FunnelSubReport = proto.Field( proto.MESSAGE, number=1, message=data.FunnelSubReport, ) - funnel_visualization = proto.Field( + funnel_visualization: data.FunnelSubReport = proto.Field( proto.MESSAGE, number=2, message=data.FunnelSubReport, ) - property_quota = proto.Field( + property_quota: data.PropertyQuota = proto.Field( proto.MESSAGE, number=3, message=data.PropertyQuota, ) - kind = proto.Field( + kind: str = proto.Field( proto.STRING, number=4, ) diff --git a/google/analytics/data_v1alpha/types/data.py b/google/analytics/data_v1alpha/types/data.py index 698b784..c317e84 100644 --- a/google/analytics/data_v1alpha/types/data.py +++ b/google/analytics/data_v1alpha/types/data.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + from google.protobuf import duration_pb2 # type: ignore import proto # type: ignore @@ -181,15 +183,15 @@ class DateRange(proto.Message): in the request: ``date_range_0``, ``date_range_1``, etc. """ - start_date = proto.Field( + start_date: str = proto.Field( proto.STRING, number=1, ) - end_date = proto.Field( + end_date: str = proto.Field( proto.STRING, number=2, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=3, ) @@ -224,11 +226,11 @@ class Dimension(proto.Message): ", ", city). """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - dimension_expression = proto.Field( + dimension_expression: "DimensionExpression" = proto.Field( proto.MESSAGE, number=2, message="DimensionExpression", @@ -277,7 +279,7 @@ class CaseExpression(proto.Message): to a name in dimensions field of the request. """ - dimension_name = proto.Field( + dimension_name: str = proto.Field( proto.STRING, number=1, ) @@ -286,7 +288,7 @@ class ConcatenateExpression(proto.Message): r"""Used to combine dimension values to a single dimension. Attributes: - dimension_names (Sequence[str]): + dimension_names (MutableSequence[str]): Names of dimensions. The names must refer back to names in the dimensions field of the request. @@ -301,28 +303,28 @@ class ConcatenateExpression(proto.Message): response will contain "US,FR,JP". """ - dimension_names = proto.RepeatedField( + dimension_names: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=1, ) - delimiter = proto.Field( + delimiter: str = proto.Field( proto.STRING, number=2, ) - lower_case = proto.Field( + lower_case: CaseExpression = proto.Field( proto.MESSAGE, number=4, oneof="one_expression", message=CaseExpression, ) - upper_case = proto.Field( + upper_case: CaseExpression = proto.Field( proto.MESSAGE, number=5, oneof="one_expression", message=CaseExpression, ) - concatenate = proto.Field( + concatenate: ConcatenateExpression = proto.Field( proto.MESSAGE, number=6, oneof="one_expression", @@ -364,25 +366,25 @@ class FilterExpression(proto.Message): This field is a member of `oneof`_ ``expr``. """ - and_group = proto.Field( + and_group: "FilterExpressionList" = proto.Field( proto.MESSAGE, number=1, oneof="expr", message="FilterExpressionList", ) - or_group = proto.Field( + or_group: "FilterExpressionList" = proto.Field( proto.MESSAGE, number=2, oneof="expr", message="FilterExpressionList", ) - not_expression = proto.Field( + not_expression: "FilterExpression" = proto.Field( proto.MESSAGE, number=3, oneof="expr", message="FilterExpression", ) - filter = proto.Field( + filter: "Filter" = proto.Field( proto.MESSAGE, number=4, oneof="expr", @@ -394,11 +396,11 @@ class FilterExpressionList(proto.Message): r"""A list of filter expressions. Attributes: - expressions (Sequence[google.analytics.data_v1alpha.types.FilterExpression]): + expressions (MutableSequence[google.analytics.data_v1alpha.types.FilterExpression]): A list of filter expressions. """ - expressions = proto.RepeatedField( + expressions: MutableSequence["FilterExpression"] = proto.RepeatedField( proto.MESSAGE, number=1, message="FilterExpression", @@ -437,29 +439,29 @@ class Filter(proto.Message): This field is a member of `oneof`_ ``one_filter``. """ - field_name = proto.Field( + field_name: str = proto.Field( proto.STRING, number=1, ) - string_filter = proto.Field( + string_filter: "StringFilter" = proto.Field( proto.MESSAGE, number=2, oneof="one_filter", message="StringFilter", ) - in_list_filter = proto.Field( + in_list_filter: "InListFilter" = proto.Field( proto.MESSAGE, number=3, oneof="one_filter", message="InListFilter", ) - numeric_filter = proto.Field( + numeric_filter: "NumericFilter" = proto.Field( proto.MESSAGE, number=4, oneof="one_filter", message="NumericFilter", ) - between_filter = proto.Field( + between_filter: "BetweenFilter" = proto.Field( proto.MESSAGE, number=5, oneof="one_filter", @@ -489,16 +491,16 @@ class MatchType(proto.Enum): FULL_REGEXP = 5 PARTIAL_REGEXP = 6 - match_type = proto.Field( + match_type: MatchType = proto.Field( proto.ENUM, number=1, enum=MatchType, ) - value = proto.Field( + value: str = proto.Field( proto.STRING, number=2, ) - case_sensitive = proto.Field( + case_sensitive: bool = proto.Field( proto.BOOL, number=3, ) @@ -508,18 +510,18 @@ class InListFilter(proto.Message): r"""The result needs to be in a list of string values. Attributes: - values (Sequence[str]): + values (MutableSequence[str]): The list of string values. Must be non-empty. case_sensitive (bool): If true, the string value is case sensitive. """ - values = proto.RepeatedField( + values: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=1, ) - case_sensitive = proto.Field( + case_sensitive: bool = proto.Field( proto.BOOL, number=2, ) @@ -544,12 +546,12 @@ class Operation(proto.Enum): GREATER_THAN = 4 GREATER_THAN_OR_EQUAL = 5 - operation = proto.Field( + operation: Operation = proto.Field( proto.ENUM, number=1, enum=Operation, ) - value = proto.Field( + value: "NumericValue" = proto.Field( proto.MESSAGE, number=2, message="NumericValue", @@ -567,12 +569,12 @@ class BetweenFilter(proto.Message): Ends with this number. """ - from_value = proto.Field( + from_value: "NumericValue" = proto.Field( proto.MESSAGE, number=1, message="NumericValue", ) - to_value = proto.Field( + to_value: "NumericValue" = proto.Field( proto.MESSAGE, number=2, message="NumericValue", @@ -600,12 +602,12 @@ class NumericValue(proto.Message): This field is a member of `oneof`_ ``one_value``. """ - int64_value = proto.Field( + int64_value: int = proto.Field( proto.INT64, number=1, oneof="one_value", ) - double_value = proto.Field( + double_value: float = proto.Field( proto.DOUBLE, number=2, oneof="one_value", @@ -624,7 +626,7 @@ class DimensionHeader(proto.Message): The dimension's name. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -644,11 +646,11 @@ class MetricHeader(proto.Message): The metric's data type. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - type_ = proto.Field( + type_: "MetricType" = proto.Field( proto.ENUM, number=2, enum="MetricType", @@ -694,20 +696,20 @@ class Row(proto.Message): ] Attributes: - dimension_values (Sequence[google.analytics.data_v1alpha.types.DimensionValue]): + dimension_values (MutableSequence[google.analytics.data_v1alpha.types.DimensionValue]): List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot. - metric_values (Sequence[google.analytics.data_v1alpha.types.MetricValue]): + metric_values (MutableSequence[google.analytics.data_v1alpha.types.MetricValue]): List of requested visible metric values. """ - dimension_values = proto.RepeatedField( + dimension_values: MutableSequence["DimensionValue"] = proto.RepeatedField( proto.MESSAGE, number=1, message="DimensionValue", ) - metric_values = proto.RepeatedField( + metric_values: MutableSequence["MetricValue"] = proto.RepeatedField( proto.MESSAGE, number=2, message="MetricValue", @@ -727,7 +729,7 @@ class DimensionValue(proto.Message): This field is a member of `oneof`_ ``one_value``. """ - value = proto.Field( + value: str = proto.Field( proto.STRING, number=1, oneof="one_value", @@ -746,7 +748,7 @@ class MetricValue(proto.Message): This field is a member of `oneof`_ ``one_value``. """ - value = proto.Field( + value: str = proto.Field( proto.STRING, number=4, oneof="one_value", @@ -790,27 +792,27 @@ class PropertyQuota(proto.Message): dimensions. """ - tokens_per_day = proto.Field( + tokens_per_day: "QuotaStatus" = proto.Field( proto.MESSAGE, number=1, message="QuotaStatus", ) - tokens_per_hour = proto.Field( + tokens_per_hour: "QuotaStatus" = proto.Field( proto.MESSAGE, number=2, message="QuotaStatus", ) - concurrent_requests = proto.Field( + concurrent_requests: "QuotaStatus" = proto.Field( proto.MESSAGE, number=3, message="QuotaStatus", ) - server_errors_per_project_per_hour = proto.Field( + server_errors_per_project_per_hour: "QuotaStatus" = proto.Field( proto.MESSAGE, number=4, message="QuotaStatus", ) - potentially_thresholded_requests_per_hour = proto.Field( + potentially_thresholded_requests_per_hour: "QuotaStatus" = proto.Field( proto.MESSAGE, number=5, message="QuotaStatus", @@ -827,11 +829,11 @@ class QuotaStatus(proto.Message): Quota remaining after this request. """ - consumed = proto.Field( + consumed: int = proto.Field( proto.INT32, number=1, ) - remaining = proto.Field( + remaining: int = proto.Field( proto.INT32, number=2, ) @@ -856,12 +858,12 @@ class FunnelBreakdown(proto.Message): This field is a member of `oneof`_ ``_limit``. """ - breakdown_dimension = proto.Field( + breakdown_dimension: "Dimension" = proto.Field( proto.MESSAGE, number=1, message="Dimension", ) - limit = proto.Field( + limit: int = proto.Field( proto.INT64, number=2, optional=True, @@ -897,12 +899,12 @@ class FunnelNextAction(proto.Message): This field is a member of `oneof`_ ``_limit``. """ - next_action_dimension = proto.Field( + next_action_dimension: "Dimension" = proto.Field( proto.MESSAGE, number=1, message="Dimension", ) - limit = proto.Field( + limit: int = proto.Field( proto.INT64, number=2, optional=True, @@ -925,15 +927,15 @@ class Funnel(proto.Message): in any step, and in a closed funnel, users must enter the funnel in the first step. Optional. If unspecified, a closed funnel is used. - steps (Sequence[google.analytics.data_v1alpha.types.FunnelStep]): + steps (MutableSequence[google.analytics.data_v1alpha.types.FunnelStep]): The sequential steps of this funnel. """ - is_open_funnel = proto.Field( + is_open_funnel: bool = proto.Field( proto.BOOL, number=1, ) - steps = proto.RepeatedField( + steps: MutableSequence["FunnelStep"] = proto.RepeatedField( proto.MESSAGE, number=2, message="FunnelStep", @@ -975,21 +977,21 @@ class FunnelStep(proto.Message): included in this step of the funnel journey. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - is_directly_followed_by = proto.Field( + is_directly_followed_by: bool = proto.Field( proto.BOOL, number=2, ) - within_duration_from_prior_step = proto.Field( + within_duration_from_prior_step: duration_pb2.Duration = proto.Field( proto.MESSAGE, number=3, optional=True, message=duration_pb2.Duration, ) - filter_expression = proto.Field( + filter_expression: "FunnelFilterExpression" = proto.Field( proto.MESSAGE, number=4, message="FunnelFilterExpression", @@ -1002,41 +1004,41 @@ class FunnelSubReport(proto.Message): funnel. Attributes: - dimension_headers (Sequence[google.analytics.data_v1alpha.types.DimensionHeader]): + dimension_headers (MutableSequence[google.analytics.data_v1alpha.types.DimensionHeader]): Describes dimension columns. Funnel reports always include the funnel step dimension in sub report responses. Additional dimensions like breakdowns, dates, and next actions may be present in the response if requested. - metric_headers (Sequence[google.analytics.data_v1alpha.types.MetricHeader]): + metric_headers (MutableSequence[google.analytics.data_v1alpha.types.MetricHeader]): Describes metric columns. Funnel reports always include active users in sub report responses. The funnel table includes additional metrics like completion rate, abandonments, and abandonments rate. - rows (Sequence[google.analytics.data_v1alpha.types.Row]): + rows (MutableSequence[google.analytics.data_v1alpha.types.Row]): Rows of dimension value combinations and metric values in the report. metadata (google.analytics.data_v1alpha.types.FunnelResponseMetadata): Metadata for the funnel report. """ - dimension_headers = proto.RepeatedField( + dimension_headers: MutableSequence["DimensionHeader"] = proto.RepeatedField( proto.MESSAGE, number=1, message="DimensionHeader", ) - metric_headers = proto.RepeatedField( + metric_headers: MutableSequence["MetricHeader"] = proto.RepeatedField( proto.MESSAGE, number=2, message="MetricHeader", ) - rows = proto.RepeatedField( + rows: MutableSequence["Row"] = proto.RepeatedField( proto.MESSAGE, number=3, message="Row", ) - metadata = proto.Field( + metadata: "FunnelResponseMetadata" = proto.Field( proto.MESSAGE, number=4, message="FunnelResponseMetadata", @@ -1058,12 +1060,12 @@ class UserSegment(proto.Message): segment. Optional. """ - user_inclusion_criteria = proto.Field( + user_inclusion_criteria: "UserSegmentCriteria" = proto.Field( proto.MESSAGE, number=1, message="UserSegmentCriteria", ) - exclusion = proto.Field( + exclusion: "UserSegmentExclusion" = proto.Field( proto.MESSAGE, number=2, message="UserSegmentExclusion", @@ -1075,24 +1077,28 @@ class UserSegmentCriteria(proto.Message): conditions in the criteria. Attributes: - and_condition_groups (Sequence[google.analytics.data_v1alpha.types.UserSegmentConditionGroup]): + and_condition_groups (MutableSequence[google.analytics.data_v1alpha.types.UserSegmentConditionGroup]): A user matches this criteria if the user matches each of these ``andConditionGroups`` and each of the ``andSequenceGroups``. ``andConditionGroups`` may be empty if ``andSequenceGroups`` are specified. - and_sequence_groups (Sequence[google.analytics.data_v1alpha.types.UserSegmentSequenceGroup]): + and_sequence_groups (MutableSequence[google.analytics.data_v1alpha.types.UserSegmentSequenceGroup]): A user matches this criteria if the user matches each of these ``andSequenceGroups`` and each of the ``andConditionGroups``. ``andSequenceGroups`` may be empty if ``andConditionGroups`` are specified. """ - and_condition_groups = proto.RepeatedField( + and_condition_groups: MutableSequence[ + "UserSegmentConditionGroup" + ] = proto.RepeatedField( proto.MESSAGE, number=1, message="UserSegmentConditionGroup", ) - and_sequence_groups = proto.RepeatedField( + and_sequence_groups: MutableSequence[ + "UserSegmentSequenceGroup" + ] = proto.RepeatedField( proto.MESSAGE, number=2, message="UserSegmentSequenceGroup", @@ -1128,12 +1134,12 @@ class UserSegmentConditionGroup(proto.Message): metrics, and/or parameters. """ - condition_scoping = proto.Field( + condition_scoping: "UserCriteriaScoping" = proto.Field( proto.ENUM, number=1, enum="UserCriteriaScoping", ) - segment_filter_expression = proto.Field( + segment_filter_expression: "SegmentFilterExpression" = proto.Field( proto.MESSAGE, number=2, message="SegmentFilterExpression", @@ -1166,23 +1172,23 @@ class UserSegmentSequenceGroup(proto.Message): ``sequenceMaximumDuration`` is optional, and if unspecified, sequences can be completed in any time duration. - user_sequence_steps (Sequence[google.analytics.data_v1alpha.types.UserSequenceStep]): + user_sequence_steps (MutableSequence[google.analytics.data_v1alpha.types.UserSequenceStep]): An ordered sequence of condition steps. A user's events must complete each step in order for the user to match the ``UserSegmentSequenceGroup``. """ - sequence_scoping = proto.Field( + sequence_scoping: "UserCriteriaScoping" = proto.Field( proto.ENUM, number=1, enum="UserCriteriaScoping", ) - sequence_maximum_duration = proto.Field( + sequence_maximum_duration: duration_pb2.Duration = proto.Field( proto.MESSAGE, number=2, message=duration_pb2.Duration, ) - user_sequence_steps = proto.RepeatedField( + user_sequence_steps: MutableSequence["UserSequenceStep"] = proto.RepeatedField( proto.MESSAGE, number=3, message="UserSequenceStep", @@ -1218,16 +1224,16 @@ class UserSequenceStep(proto.Message): parameters. """ - is_directly_followed_by = proto.Field( + is_directly_followed_by: bool = proto.Field( proto.BOOL, number=1, ) - step_scoping = proto.Field( + step_scoping: "UserCriteriaScoping" = proto.Field( proto.ENUM, number=2, enum="UserCriteriaScoping", ) - segment_filter_expression = proto.Field( + segment_filter_expression: "SegmentFilterExpression" = proto.Field( proto.MESSAGE, number=3, message="SegmentFilterExpression", @@ -1249,12 +1255,12 @@ class UserSegmentExclusion(proto.Message): membership in the segment for the ``userExclusionDuration``. """ - user_exclusion_duration = proto.Field( + user_exclusion_duration: "UserExclusionDuration" = proto.Field( proto.ENUM, number=1, enum="UserExclusionDuration", ) - user_exclusion_criteria = proto.Field( + user_exclusion_criteria: "UserSegmentCriteria" = proto.Field( proto.MESSAGE, number=2, message="UserSegmentCriteria", @@ -1275,12 +1281,12 @@ class SessionSegment(proto.Message): segment. Optional. """ - session_inclusion_criteria = proto.Field( + session_inclusion_criteria: "SessionSegmentCriteria" = proto.Field( proto.MESSAGE, number=1, message="SessionSegmentCriteria", ) - exclusion = proto.Field( + exclusion: "SessionSegmentExclusion" = proto.Field( proto.MESSAGE, number=2, message="SessionSegmentExclusion", @@ -1292,12 +1298,14 @@ class SessionSegmentCriteria(proto.Message): conditions in the criteria. Attributes: - and_condition_groups (Sequence[google.analytics.data_v1alpha.types.SessionSegmentConditionGroup]): + and_condition_groups (MutableSequence[google.analytics.data_v1alpha.types.SessionSegmentConditionGroup]): A session matches this criteria if the session matches each of these ``andConditionGroups``. """ - and_condition_groups = proto.RepeatedField( + and_condition_groups: MutableSequence[ + "SessionSegmentConditionGroup" + ] = proto.RepeatedField( proto.MESSAGE, number=1, message="SessionSegmentConditionGroup", @@ -1333,12 +1341,12 @@ class SessionSegmentConditionGroup(proto.Message): metrics, and/or parameters. """ - condition_scoping = proto.Field( + condition_scoping: "SessionCriteriaScoping" = proto.Field( proto.ENUM, number=1, enum="SessionCriteriaScoping", ) - segment_filter_expression = proto.Field( + segment_filter_expression: "SegmentFilterExpression" = proto.Field( proto.MESSAGE, number=2, message="SegmentFilterExpression", @@ -1361,12 +1369,12 @@ class SessionSegmentExclusion(proto.Message): ``sessionExclusionDuration``. """ - session_exclusion_duration = proto.Field( + session_exclusion_duration: "SessionExclusionDuration" = proto.Field( proto.ENUM, number=1, enum="SessionExclusionDuration", ) - session_exclusion_criteria = proto.Field( + session_exclusion_criteria: "SessionSegmentCriteria" = proto.Field( proto.MESSAGE, number=2, message="SessionSegmentCriteria", @@ -1388,12 +1396,12 @@ class EventSegment(proto.Message): segment. Optional. """ - event_inclusion_criteria = proto.Field( + event_inclusion_criteria: "EventSegmentCriteria" = proto.Field( proto.MESSAGE, number=1, message="EventSegmentCriteria", ) - exclusion = proto.Field( + exclusion: "EventSegmentExclusion" = proto.Field( proto.MESSAGE, number=2, message="EventSegmentExclusion", @@ -1405,12 +1413,14 @@ class EventSegmentCriteria(proto.Message): in the criteria. Attributes: - and_condition_groups (Sequence[google.analytics.data_v1alpha.types.EventSegmentConditionGroup]): + and_condition_groups (MutableSequence[google.analytics.data_v1alpha.types.EventSegmentConditionGroup]): An event matches this criteria if the event matches each of these ``andConditionGroups``. """ - and_condition_groups = proto.RepeatedField( + and_condition_groups: MutableSequence[ + "EventSegmentConditionGroup" + ] = proto.RepeatedField( proto.MESSAGE, number=1, message="EventSegmentConditionGroup", @@ -1435,12 +1445,12 @@ class EventSegmentConditionGroup(proto.Message): metrics, and/or parameters. """ - condition_scoping = proto.Field( + condition_scoping: "EventCriteriaScoping" = proto.Field( proto.ENUM, number=1, enum="EventCriteriaScoping", ) - segment_filter_expression = proto.Field( + segment_filter_expression: "SegmentFilterExpression" = proto.Field( proto.MESSAGE, number=2, message="SegmentFilterExpression", @@ -1463,12 +1473,12 @@ class EventSegmentExclusion(proto.Message): ``eventExclusionDuration``. """ - event_exclusion_duration = proto.Field( + event_exclusion_duration: "EventExclusionDuration" = proto.Field( proto.ENUM, number=1, enum="EventExclusionDuration", ) - event_exclusion_criteria = proto.Field( + event_exclusion_criteria: "EventSegmentCriteria" = proto.Field( proto.MESSAGE, number=2, message="EventSegmentCriteria", @@ -1517,23 +1527,23 @@ class Segment(proto.Message): This field is a member of `oneof`_ ``one_segment_scope``. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - user_segment = proto.Field( + user_segment: "UserSegment" = proto.Field( proto.MESSAGE, number=2, oneof="one_segment_scope", message="UserSegment", ) - session_segment = proto.Field( + session_segment: "SessionSegment" = proto.Field( proto.MESSAGE, number=3, oneof="one_segment_scope", message="SessionSegment", ) - event_segment = proto.Field( + event_segment: "EventSegment" = proto.Field( proto.MESSAGE, number=4, oneof="one_segment_scope", @@ -1581,31 +1591,31 @@ class SegmentFilterExpression(proto.Message): This field is a member of `oneof`_ ``expr``. """ - and_group = proto.Field( + and_group: "SegmentFilterExpressionList" = proto.Field( proto.MESSAGE, number=1, oneof="expr", message="SegmentFilterExpressionList", ) - or_group = proto.Field( + or_group: "SegmentFilterExpressionList" = proto.Field( proto.MESSAGE, number=2, oneof="expr", message="SegmentFilterExpressionList", ) - not_expression = proto.Field( + not_expression: "SegmentFilterExpression" = proto.Field( proto.MESSAGE, number=3, oneof="expr", message="SegmentFilterExpression", ) - segment_filter = proto.Field( + segment_filter: "SegmentFilter" = proto.Field( proto.MESSAGE, number=4, oneof="expr", message="SegmentFilter", ) - segment_event_filter = proto.Field( + segment_event_filter: "SegmentEventFilter" = proto.Field( proto.MESSAGE, number=5, oneof="expr", @@ -1617,11 +1627,11 @@ class SegmentFilterExpressionList(proto.Message): r"""A list of segment filter expressions. Attributes: - expressions (Sequence[google.analytics.data_v1alpha.types.SegmentFilterExpression]): + expressions (MutableSequence[google.analytics.data_v1alpha.types.SegmentFilterExpression]): The list of segment filter expressions """ - expressions = proto.RepeatedField( + expressions: MutableSequence["SegmentFilterExpression"] = proto.RepeatedField( proto.MESSAGE, number=1, message="SegmentFilterExpression", @@ -1661,35 +1671,35 @@ class SegmentFilter(proto.Message): Specifies the scope for the filter. """ - field_name = proto.Field( + field_name: str = proto.Field( proto.STRING, number=1, ) - string_filter = proto.Field( + string_filter: "StringFilter" = proto.Field( proto.MESSAGE, number=4, oneof="one_filter", message="StringFilter", ) - in_list_filter = proto.Field( + in_list_filter: "InListFilter" = proto.Field( proto.MESSAGE, number=5, oneof="one_filter", message="InListFilter", ) - numeric_filter = proto.Field( + numeric_filter: "NumericFilter" = proto.Field( proto.MESSAGE, number=6, oneof="one_filter", message="NumericFilter", ) - between_filter = proto.Field( + between_filter: "BetweenFilter" = proto.Field( proto.MESSAGE, number=7, oneof="one_filter", message="BetweenFilter", ) - filter_scoping = proto.Field( + filter_scoping: "SegmentFilterScoping" = proto.Field( proto.MESSAGE, number=8, message="SegmentFilterScoping", @@ -1721,7 +1731,7 @@ class SegmentFilterScoping(proto.Message): This field is a member of `oneof`_ ``_at_any_point_in_time``. """ - at_any_point_in_time = proto.Field( + at_any_point_in_time: bool = proto.Field( proto.BOOL, number=1, optional=True, @@ -1750,16 +1760,18 @@ class SegmentEventFilter(proto.Message): This field is a member of `oneof`_ ``_segment_parameter_filter_expression``. """ - event_name = proto.Field( + event_name: str = proto.Field( proto.STRING, number=1, optional=True, ) - segment_parameter_filter_expression = proto.Field( - proto.MESSAGE, - number=2, - optional=True, - message="SegmentParameterFilterExpression", + segment_parameter_filter_expression: "SegmentParameterFilterExpression" = ( + proto.Field( + proto.MESSAGE, + number=2, + optional=True, + message="SegmentParameterFilterExpression", + ) ) @@ -1795,25 +1807,25 @@ class SegmentParameterFilterExpression(proto.Message): This field is a member of `oneof`_ ``expr``. """ - and_group = proto.Field( + and_group: "SegmentParameterFilterExpressionList" = proto.Field( proto.MESSAGE, number=1, oneof="expr", message="SegmentParameterFilterExpressionList", ) - or_group = proto.Field( + or_group: "SegmentParameterFilterExpressionList" = proto.Field( proto.MESSAGE, number=2, oneof="expr", message="SegmentParameterFilterExpressionList", ) - not_expression = proto.Field( + not_expression: "SegmentParameterFilterExpression" = proto.Field( proto.MESSAGE, number=3, oneof="expr", message="SegmentParameterFilterExpression", ) - segment_parameter_filter = proto.Field( + segment_parameter_filter: "SegmentParameterFilter" = proto.Field( proto.MESSAGE, number=4, oneof="expr", @@ -1825,12 +1837,14 @@ class SegmentParameterFilterExpressionList(proto.Message): r"""A list of segment parameter filter expressions. Attributes: - expressions (Sequence[google.analytics.data_v1alpha.types.SegmentParameterFilterExpression]): + expressions (MutableSequence[google.analytics.data_v1alpha.types.SegmentParameterFilterExpression]): The list of segment parameter filter expressions. """ - expressions = proto.RepeatedField( + expressions: MutableSequence[ + "SegmentParameterFilterExpression" + ] = proto.RepeatedField( proto.MESSAGE, number=1, message="SegmentParameterFilterExpression", @@ -1898,41 +1912,41 @@ class SegmentParameterFilter(proto.Message): Specifies the scope for the filter. """ - event_parameter_name = proto.Field( + event_parameter_name: str = proto.Field( proto.STRING, number=1, oneof="one_parameter", ) - item_parameter_name = proto.Field( + item_parameter_name: str = proto.Field( proto.STRING, number=2, oneof="one_parameter", ) - string_filter = proto.Field( + string_filter: "StringFilter" = proto.Field( proto.MESSAGE, number=4, oneof="one_filter", message="StringFilter", ) - in_list_filter = proto.Field( + in_list_filter: "InListFilter" = proto.Field( proto.MESSAGE, number=5, oneof="one_filter", message="InListFilter", ) - numeric_filter = proto.Field( + numeric_filter: "NumericFilter" = proto.Field( proto.MESSAGE, number=6, oneof="one_filter", message="NumericFilter", ) - between_filter = proto.Field( + between_filter: "BetweenFilter" = proto.Field( proto.MESSAGE, number=7, oneof="one_filter", message="BetweenFilter", ) - filter_scoping = proto.Field( + filter_scoping: "SegmentParameterFilterScoping" = proto.Field( proto.MESSAGE, number=8, message="SegmentParameterFilterScoping", @@ -1979,7 +1993,7 @@ class SegmentParameterFilterScoping(proto.Message): This field is a member of `oneof`_ ``_in_any_n_day_period``. """ - in_any_n_day_period = proto.Field( + in_any_n_day_period: int = proto.Field( proto.INT64, number=1, optional=True, @@ -2026,31 +2040,31 @@ class FunnelFilterExpression(proto.Message): This field is a member of `oneof`_ ``expr``. """ - and_group = proto.Field( + and_group: "FunnelFilterExpressionList" = proto.Field( proto.MESSAGE, number=1, oneof="expr", message="FunnelFilterExpressionList", ) - or_group = proto.Field( + or_group: "FunnelFilterExpressionList" = proto.Field( proto.MESSAGE, number=2, oneof="expr", message="FunnelFilterExpressionList", ) - not_expression = proto.Field( + not_expression: "FunnelFilterExpression" = proto.Field( proto.MESSAGE, number=3, oneof="expr", message="FunnelFilterExpression", ) - funnel_field_filter = proto.Field( + funnel_field_filter: "FunnelFieldFilter" = proto.Field( proto.MESSAGE, number=4, oneof="expr", message="FunnelFieldFilter", ) - funnel_event_filter = proto.Field( + funnel_event_filter: "FunnelEventFilter" = proto.Field( proto.MESSAGE, number=5, oneof="expr", @@ -2062,11 +2076,11 @@ class FunnelFilterExpressionList(proto.Message): r"""A list of funnel filter expressions. Attributes: - expressions (Sequence[google.analytics.data_v1alpha.types.FunnelFilterExpression]): + expressions (MutableSequence[google.analytics.data_v1alpha.types.FunnelFilterExpression]): The list of funnel filter expressions. """ - expressions = proto.RepeatedField( + expressions: MutableSequence["FunnelFilterExpression"] = proto.RepeatedField( proto.MESSAGE, number=1, message="FunnelFilterExpression", @@ -2104,29 +2118,29 @@ class FunnelFieldFilter(proto.Message): This field is a member of `oneof`_ ``one_filter``. """ - field_name = proto.Field( + field_name: str = proto.Field( proto.STRING, number=1, ) - string_filter = proto.Field( + string_filter: "StringFilter" = proto.Field( proto.MESSAGE, number=4, oneof="one_filter", message="StringFilter", ) - in_list_filter = proto.Field( + in_list_filter: "InListFilter" = proto.Field( proto.MESSAGE, number=5, oneof="one_filter", message="InListFilter", ) - numeric_filter = proto.Field( + numeric_filter: "NumericFilter" = proto.Field( proto.MESSAGE, number=6, oneof="one_filter", message="NumericFilter", ) - between_filter = proto.Field( + between_filter: "BetweenFilter" = proto.Field( proto.MESSAGE, number=7, oneof="one_filter", @@ -2156,12 +2170,12 @@ class FunnelEventFilter(proto.Message): This field is a member of `oneof`_ ``_funnel_parameter_filter_expression``. """ - event_name = proto.Field( + event_name: str = proto.Field( proto.STRING, number=1, optional=True, ) - funnel_parameter_filter_expression = proto.Field( + funnel_parameter_filter_expression: "FunnelParameterFilterExpression" = proto.Field( proto.MESSAGE, number=2, optional=True, @@ -2201,25 +2215,25 @@ class FunnelParameterFilterExpression(proto.Message): This field is a member of `oneof`_ ``expr``. """ - and_group = proto.Field( + and_group: "FunnelParameterFilterExpressionList" = proto.Field( proto.MESSAGE, number=1, oneof="expr", message="FunnelParameterFilterExpressionList", ) - or_group = proto.Field( + or_group: "FunnelParameterFilterExpressionList" = proto.Field( proto.MESSAGE, number=2, oneof="expr", message="FunnelParameterFilterExpressionList", ) - not_expression = proto.Field( + not_expression: "FunnelParameterFilterExpression" = proto.Field( proto.MESSAGE, number=3, oneof="expr", message="FunnelParameterFilterExpression", ) - funnel_parameter_filter = proto.Field( + funnel_parameter_filter: "FunnelParameterFilter" = proto.Field( proto.MESSAGE, number=4, oneof="expr", @@ -2231,12 +2245,14 @@ class FunnelParameterFilterExpressionList(proto.Message): r"""A list of funnel parameter filter expressions. Attributes: - expressions (Sequence[google.analytics.data_v1alpha.types.FunnelParameterFilterExpression]): + expressions (MutableSequence[google.analytics.data_v1alpha.types.FunnelParameterFilterExpression]): The list of funnel parameter filter expressions. """ - expressions = proto.RepeatedField( + expressions: MutableSequence[ + "FunnelParameterFilterExpression" + ] = proto.RepeatedField( proto.MESSAGE, number=1, message="FunnelParameterFilterExpression", @@ -2302,35 +2318,35 @@ class FunnelParameterFilter(proto.Message): This field is a member of `oneof`_ ``one_filter``. """ - event_parameter_name = proto.Field( + event_parameter_name: str = proto.Field( proto.STRING, number=1, oneof="one_parameter", ) - item_parameter_name = proto.Field( + item_parameter_name: str = proto.Field( proto.STRING, number=2, oneof="one_parameter", ) - string_filter = proto.Field( + string_filter: "StringFilter" = proto.Field( proto.MESSAGE, number=4, oneof="one_filter", message="StringFilter", ) - in_list_filter = proto.Field( + in_list_filter: "InListFilter" = proto.Field( proto.MESSAGE, number=5, oneof="one_filter", message="InListFilter", ) - numeric_filter = proto.Field( + numeric_filter: "NumericFilter" = proto.Field( proto.MESSAGE, number=6, oneof="one_filter", message="NumericFilter", ) - between_filter = proto.Field( + between_filter: "BetweenFilter" = proto.Field( proto.MESSAGE, number=7, oneof="one_filter", @@ -2343,7 +2359,7 @@ class FunnelResponseMetadata(proto.Message): information about the funnel report. Attributes: - sampling_metadatas (Sequence[google.analytics.data_v1alpha.types.SamplingMetadata]): + sampling_metadatas (MutableSequence[google.analytics.data_v1alpha.types.SamplingMetadata]): If funnel report results are `sampled `__, this describes what percentage of events were used in this @@ -2356,7 +2372,7 @@ class FunnelResponseMetadata(proto.Message): be defined. """ - sampling_metadatas = proto.RepeatedField( + sampling_metadatas: MutableSequence["SamplingMetadata"] = proto.RepeatedField( proto.MESSAGE, number=1, message="SamplingMetadata", @@ -2389,11 +2405,11 @@ class SamplingMetadata(proto.Message): ``samplesReadCount/samplingSpaceSize``. """ - samples_read_count = proto.Field( + samples_read_count: int = proto.Field( proto.INT64, number=1, ) - sampling_space_size = proto.Field( + sampling_space_size: int = proto.Field( proto.INT64, number=2, ) diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py b/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py index 60b60dd..704df48 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py @@ -16,7 +16,17 @@ from collections import OrderedDict import functools import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, +) from google.api_core import exceptions as core_exceptions from google.api_core import gapic_v1 @@ -158,9 +168,9 @@ def transport(self) -> BetaAnalyticsDataTransport: def __init__( self, *, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, transport: Union[str, BetaAnalyticsDataTransport] = "grpc_asyncio", - client_options: ClientOptions = None, + client_options: Optional[ClientOptions] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: """Instantiates the beta analytics data client. @@ -204,10 +214,10 @@ def __init__( async def run_report( self, - request: Union[analytics_data_api.RunReportRequest, dict] = None, + request: Optional[Union[analytics_data_api.RunReportRequest, dict]] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunReportResponse: r"""Returns a customized report of your Google Analytics event data. @@ -249,7 +259,7 @@ async def sample_run_report(): print(response) Args: - request (Union[google.analytics.data_v1beta.types.RunReportRequest, dict]): + request (Optional[Union[google.analytics.data_v1beta.types.RunReportRequest, dict]]): The request object. The request to generate a report. retry (google.api_core.retry.Retry): Designation of what errors, if any, should be retried. @@ -293,10 +303,10 @@ async def sample_run_report(): async def run_pivot_report( self, - request: Union[analytics_data_api.RunPivotReportRequest, dict] = None, + request: Optional[Union[analytics_data_api.RunPivotReportRequest, dict]] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunPivotReportResponse: r"""Returns a customized pivot report of your Google @@ -332,7 +342,7 @@ async def sample_run_pivot_report(): print(response) Args: - request (Union[google.analytics.data_v1beta.types.RunPivotReportRequest, dict]): + request (Optional[Union[google.analytics.data_v1beta.types.RunPivotReportRequest, dict]]): The request object. The request to generate a pivot report. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -377,10 +387,12 @@ async def sample_run_pivot_report(): async def batch_run_reports( self, - request: Union[analytics_data_api.BatchRunReportsRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.BatchRunReportsRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunReportsResponse: r"""Returns multiple reports in a batch. All reports must @@ -412,7 +424,7 @@ async def sample_batch_run_reports(): print(response) Args: - request (Union[google.analytics.data_v1beta.types.BatchRunReportsRequest, dict]): + request (Optional[Union[google.analytics.data_v1beta.types.BatchRunReportsRequest, dict]]): The request object. The batch request containing multiple report requests. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -457,10 +469,12 @@ async def sample_batch_run_reports(): async def batch_run_pivot_reports( self, - request: Union[analytics_data_api.BatchRunPivotReportsRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.BatchRunPivotReportsRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunPivotReportsResponse: r"""Returns multiple pivot reports in a batch. All @@ -492,7 +506,7 @@ async def sample_batch_run_pivot_reports(): print(response) Args: - request (Union[google.analytics.data_v1beta.types.BatchRunPivotReportsRequest, dict]): + request (Optional[Union[google.analytics.data_v1beta.types.BatchRunPivotReportsRequest, dict]]): The request object. The batch request containing multiple pivot report requests. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -537,11 +551,11 @@ async def sample_batch_run_pivot_reports(): async def get_metadata( self, - request: Union[analytics_data_api.GetMetadataRequest, dict] = None, + request: Optional[Union[analytics_data_api.GetMetadataRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.Metadata: r"""Returns metadata for dimensions and metrics available in @@ -583,7 +597,7 @@ async def sample_get_metadata(): print(response) Args: - request (Union[google.analytics.data_v1beta.types.GetMetadataRequest, dict]): + request (Optional[Union[google.analytics.data_v1beta.types.GetMetadataRequest, dict]]): The request object. Request for a property's dimension and metric metadata. name (:class:`str`): @@ -659,10 +673,12 @@ async def sample_get_metadata(): async def run_realtime_report( self, - request: Union[analytics_data_api.RunRealtimeReportRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.RunRealtimeReportRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunRealtimeReportResponse: r"""Returns a customized report of realtime event data for your @@ -702,7 +718,7 @@ async def sample_run_realtime_report(): print(response) Args: - request (Union[google.analytics.data_v1beta.types.RunRealtimeReportRequest, dict]): + request (Optional[Union[google.analytics.data_v1beta.types.RunRealtimeReportRequest, dict]]): The request object. The request to generate a realtime report. retry (google.api_core.retry.Retry): Designation of what errors, if any, @@ -747,10 +763,12 @@ async def sample_run_realtime_report(): async def check_compatibility( self, - request: Union[analytics_data_api.CheckCompatibilityRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.CheckCompatibilityRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.CheckCompatibilityResponse: r"""This compatibility method lists dimensions and @@ -791,7 +809,7 @@ async def sample_check_compatibility(): print(response) Args: - request (Union[google.analytics.data_v1beta.types.CheckCompatibilityRequest, dict]): + request (Optional[Union[google.analytics.data_v1beta.types.CheckCompatibilityRequest, dict]]): The request object. The request for compatibility information for a report's dimensions and metrics. Check compatibility provides a preview of the compatibility of diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/client.py b/google/analytics/data_v1beta/services/beta_analytics_data/client.py index 9153b45..f20db56 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/client.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/client.py @@ -16,7 +16,18 @@ from collections import OrderedDict import os import re -from typing import Dict, Mapping, Optional, Sequence, Tuple, Type, Union, cast +from typing import ( + Dict, + Mapping, + MutableMapping, + MutableSequence, + Optional, + Sequence, + Tuple, + Type, + Union, + cast, +) from google.api_core import client_options as client_options_lib from google.api_core import exceptions as core_exceptions @@ -59,7 +70,7 @@ class BetaAnalyticsDataClientMeta(type): def get_transport_class( cls, - label: str = None, + label: Optional[str] = None, ) -> Type[BetaAnalyticsDataTransport]: """Returns an appropriate transport class. @@ -327,7 +338,7 @@ def __init__( self, *, credentials: Optional[ga_credentials.Credentials] = None, - transport: Union[str, BetaAnalyticsDataTransport, None] = None, + transport: Optional[Union[str, BetaAnalyticsDataTransport]] = None, client_options: Optional[Union[client_options_lib.ClientOptions, dict]] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, ) -> None: @@ -428,10 +439,10 @@ def __init__( def run_report( self, - request: Union[analytics_data_api.RunReportRequest, dict] = None, + request: Optional[Union[analytics_data_api.RunReportRequest, dict]] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunReportResponse: r"""Returns a customized report of your Google Analytics event data. @@ -518,10 +529,10 @@ def sample_run_report(): def run_pivot_report( self, - request: Union[analytics_data_api.RunPivotReportRequest, dict] = None, + request: Optional[Union[analytics_data_api.RunPivotReportRequest, dict]] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunPivotReportResponse: r"""Returns a customized pivot report of your Google @@ -603,10 +614,12 @@ def sample_run_pivot_report(): def batch_run_reports( self, - request: Union[analytics_data_api.BatchRunReportsRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.BatchRunReportsRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunReportsResponse: r"""Returns multiple reports in a batch. All reports must @@ -684,10 +697,12 @@ def sample_batch_run_reports(): def batch_run_pivot_reports( self, - request: Union[analytics_data_api.BatchRunPivotReportsRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.BatchRunPivotReportsRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunPivotReportsResponse: r"""Returns multiple pivot reports in a batch. All @@ -765,11 +780,11 @@ def sample_batch_run_pivot_reports(): def get_metadata( self, - request: Union[analytics_data_api.GetMetadataRequest, dict] = None, + request: Optional[Union[analytics_data_api.GetMetadataRequest, dict]] = None, *, - name: str = None, + name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.Metadata: r"""Returns metadata for dimensions and metrics available in @@ -887,10 +902,12 @@ def sample_get_metadata(): def run_realtime_report( self, - request: Union[analytics_data_api.RunRealtimeReportRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.RunRealtimeReportRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunRealtimeReportResponse: r"""Returns a customized report of realtime event data for your @@ -976,10 +993,12 @@ def sample_run_realtime_report(): def check_compatibility( self, - request: Union[analytics_data_api.CheckCompatibilityRequest, dict] = None, + request: Optional[ + Union[analytics_data_api.CheckCompatibilityRequest, dict] + ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.CheckCompatibilityResponse: r"""This compatibility method lists dimensions and diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py index 7fe6a32..6f710d1 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py @@ -51,7 +51,7 @@ def __init__( self, *, host: str = DEFAULT_HOST, - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py index a95c7dc..7fba825 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc.py @@ -46,14 +46,14 @@ def __init__( self, *, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, - scopes: Sequence[str] = None, - channel: grpc.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + channel: Optional[grpc.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, @@ -180,8 +180,8 @@ def __init__( def create_channel( cls, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, **kwargs, diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py index aac4267..6bc7689 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/grpc_asyncio.py @@ -48,7 +48,7 @@ class BetaAnalyticsDataGrpcAsyncIOTransport(BetaAnalyticsDataTransport): def create_channel( cls, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, quota_project_id: Optional[str] = None, @@ -91,15 +91,15 @@ def __init__( self, *, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, + credentials: Optional[ga_credentials.Credentials] = None, credentials_file: Optional[str] = None, scopes: Optional[Sequence[str]] = None, - channel: aio.Channel = None, - api_mtls_endpoint: str = None, - client_cert_source: Callable[[], Tuple[bytes, bytes]] = None, - ssl_channel_credentials: grpc.ChannelCredentials = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, - quota_project_id=None, + channel: Optional[aio.Channel] = None, + api_mtls_endpoint: Optional[str] = None, + client_cert_source: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + ssl_channel_credentials: Optional[grpc.ChannelCredentials] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, + quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, api_audience: Optional[str] = None, diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py index 05ea767..248dee0 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py @@ -309,10 +309,10 @@ def __init__( self, *, host: str = "analyticsdata.googleapis.com", - credentials: ga_credentials.Credentials = None, - credentials_file: str = None, - scopes: Sequence[str] = None, - client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None, + credentials: Optional[ga_credentials.Credentials] = None, + credentials_file: Optional[str] = None, + scopes: Optional[Sequence[str]] = None, + client_cert_source_for_mtls: Optional[Callable[[], Tuple[bytes, bytes]]] = None, quota_project_id: Optional[str] = None, client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO, always_use_jwt_access: Optional[bool] = False, @@ -394,7 +394,7 @@ def __call__( request: analytics_data_api.BatchRunPivotReportsRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunPivotReportsResponse: r"""Call the batch run pivot reports method over HTTP. @@ -482,7 +482,7 @@ def __call__( request: analytics_data_api.BatchRunReportsRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunReportsResponse: r"""Call the batch run reports method over HTTP. @@ -570,7 +570,7 @@ def __call__( request: analytics_data_api.CheckCompatibilityRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.CheckCompatibilityResponse: r"""Call the check compatibility method over HTTP. @@ -672,7 +672,7 @@ def __call__( request: analytics_data_api.GetMetadataRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.Metadata: r"""Call the get metadata method over HTTP. @@ -750,7 +750,7 @@ def __call__( request: analytics_data_api.RunPivotReportRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunPivotReportResponse: r"""Call the run pivot report method over HTTP. @@ -838,7 +838,7 @@ def __call__( request: analytics_data_api.RunRealtimeReportRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunRealtimeReportResponse: r"""Call the run realtime report method over HTTP. @@ -926,7 +926,7 @@ def __call__( request: analytics_data_api.RunReportRequest, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: float = None, + timeout: Optional[float] = None, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunReportResponse: r"""Call the run report method over HTTP. diff --git a/google/analytics/data_v1beta/types/analytics_data_api.py b/google/analytics/data_v1beta/types/analytics_data_api.py index 022fde9..d963379 100644 --- a/google/analytics/data_v1beta/types/analytics_data_api.py +++ b/google/analytics/data_v1beta/types/analytics_data_api.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + import proto # type: ignore from google.analytics.data_v1beta.types import data @@ -58,10 +60,10 @@ class CheckCompatibilityRequest(proto.Message): dimensions and metrics common to all properties. In this special mode, this method will not return custom dimensions and metrics. - dimensions (Sequence[google.analytics.data_v1beta.types.Dimension]): + dimensions (MutableSequence[google.analytics.data_v1beta.types.Dimension]): The dimensions in this report. ``dimensions`` should be the same value as in your ``runReport`` request. - metrics (Sequence[google.analytics.data_v1beta.types.Metric]): + metrics (MutableSequence[google.analytics.data_v1beta.types.Metric]): The metrics in this report. ``metrics`` should be the same value as in your ``runReport`` request. dimension_filter (google.analytics.data_v1beta.types.FilterExpression): @@ -77,31 +79,31 @@ class CheckCompatibilityRequest(proto.Message): compatible dimensions & metrics. """ - property = proto.Field( + property: str = proto.Field( proto.STRING, number=1, ) - dimensions = proto.RepeatedField( + dimensions: MutableSequence[data.Dimension] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.Dimension, ) - metrics = proto.RepeatedField( + metrics: MutableSequence[data.Metric] = proto.RepeatedField( proto.MESSAGE, number=3, message=data.Metric, ) - dimension_filter = proto.Field( + dimension_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=4, message=data.FilterExpression, ) - metric_filter = proto.Field( + metric_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=5, message=data.FilterExpression, ) - compatibility_filter = proto.Field( + compatibility_filter: data.Compatibility = proto.Field( proto.ENUM, number=6, enum=data.Compatibility, @@ -113,18 +115,22 @@ class CheckCompatibilityResponse(proto.Message): dimension & metric. Attributes: - dimension_compatibilities (Sequence[google.analytics.data_v1beta.types.DimensionCompatibility]): + dimension_compatibilities (MutableSequence[google.analytics.data_v1beta.types.DimensionCompatibility]): The compatibility of each dimension. - metric_compatibilities (Sequence[google.analytics.data_v1beta.types.MetricCompatibility]): + metric_compatibilities (MutableSequence[google.analytics.data_v1beta.types.MetricCompatibility]): The compatibility of each metric. """ - dimension_compatibilities = proto.RepeatedField( + dimension_compatibilities: MutableSequence[ + data.DimensionCompatibility + ] = proto.RepeatedField( proto.MESSAGE, number=1, message=data.DimensionCompatibility, ) - metric_compatibilities = proto.RepeatedField( + metric_compatibilities: MutableSequence[ + data.MetricCompatibility + ] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.MetricCompatibility, @@ -138,22 +144,22 @@ class Metadata(proto.Message): Attributes: name (str): Resource name of this metadata. - dimensions (Sequence[google.analytics.data_v1beta.types.DimensionMetadata]): + dimensions (MutableSequence[google.analytics.data_v1beta.types.DimensionMetadata]): The dimension descriptions. - metrics (Sequence[google.analytics.data_v1beta.types.MetricMetadata]): + metrics (MutableSequence[google.analytics.data_v1beta.types.MetricMetadata]): The metric descriptions. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=3, ) - dimensions = proto.RepeatedField( + dimensions: MutableSequence[data.DimensionMetadata] = proto.RepeatedField( proto.MESSAGE, number=1, message=data.DimensionMetadata, ) - metrics = proto.RepeatedField( + metrics: MutableSequence[data.MetricMetadata] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.MetricMetadata, @@ -173,11 +179,11 @@ class RunReportRequest(proto.Message): unspecified or consistent with the batch-level property. Example: properties/1234 - dimensions (Sequence[google.analytics.data_v1beta.types.Dimension]): + dimensions (MutableSequence[google.analytics.data_v1beta.types.Dimension]): The dimensions requested and displayed. - metrics (Sequence[google.analytics.data_v1beta.types.Metric]): + metrics (MutableSequence[google.analytics.data_v1beta.types.Metric]): The metrics requested and displayed. - date_ranges (Sequence[google.analytics.data_v1beta.types.DateRange]): + date_ranges (MutableSequence[google.analytics.data_v1beta.types.DateRange]): Date ranges of data to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the event data for @@ -222,11 +228,11 @@ class RunReportRequest(proto.Message): To learn more about this pagination parameter, see `Pagination `__. - metric_aggregations (Sequence[google.analytics.data_v1beta.types.MetricAggregation]): + metric_aggregations (MutableSequence[google.analytics.data_v1beta.types.MetricAggregation]): Aggregation of metrics. Aggregated metric values will be shown in rows where the dimension_values are set to "RESERVED_(MetricAggregation)". - order_bys (Sequence[google.analytics.data_v1beta.types.OrderBy]): + order_bys (MutableSequence[google.analytics.data_v1beta.types.OrderBy]): Specifies how rows are ordered in the response. currency_code (str): @@ -248,67 +254,67 @@ class RunReportRequest(proto.Message): `PropertyQuota <#PropertyQuota>`__. """ - property = proto.Field( + property: str = proto.Field( proto.STRING, number=1, ) - dimensions = proto.RepeatedField( + dimensions: MutableSequence[data.Dimension] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.Dimension, ) - metrics = proto.RepeatedField( + metrics: MutableSequence[data.Metric] = proto.RepeatedField( proto.MESSAGE, number=3, message=data.Metric, ) - date_ranges = proto.RepeatedField( + date_ranges: MutableSequence[data.DateRange] = proto.RepeatedField( proto.MESSAGE, number=4, message=data.DateRange, ) - dimension_filter = proto.Field( + dimension_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=5, message=data.FilterExpression, ) - metric_filter = proto.Field( + metric_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=6, message=data.FilterExpression, ) - offset = proto.Field( + offset: int = proto.Field( proto.INT64, number=7, ) - limit = proto.Field( + limit: int = proto.Field( proto.INT64, number=8, ) - metric_aggregations = proto.RepeatedField( + metric_aggregations: MutableSequence[data.MetricAggregation] = proto.RepeatedField( proto.ENUM, number=9, enum=data.MetricAggregation, ) - order_bys = proto.RepeatedField( + order_bys: MutableSequence[data.OrderBy] = proto.RepeatedField( proto.MESSAGE, number=10, message=data.OrderBy, ) - currency_code = proto.Field( + currency_code: str = proto.Field( proto.STRING, number=11, ) - cohort_spec = proto.Field( + cohort_spec: data.CohortSpec = proto.Field( proto.MESSAGE, number=12, message=data.CohortSpec, ) - keep_empty_rows = proto.Field( + keep_empty_rows: bool = proto.Field( proto.BOOL, number=13, ) - return_property_quota = proto.Field( + return_property_quota: bool = proto.Field( proto.BOOL, number=14, ) @@ -318,23 +324,23 @@ class RunReportResponse(proto.Message): r"""The response report table corresponding to a request. Attributes: - dimension_headers (Sequence[google.analytics.data_v1beta.types.DimensionHeader]): + dimension_headers (MutableSequence[google.analytics.data_v1beta.types.DimensionHeader]): Describes dimension columns. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows. - metric_headers (Sequence[google.analytics.data_v1beta.types.MetricHeader]): + metric_headers (MutableSequence[google.analytics.data_v1beta.types.MetricHeader]): Describes metric columns. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows. - rows (Sequence[google.analytics.data_v1beta.types.Row]): + rows (MutableSequence[google.analytics.data_v1beta.types.Row]): Rows of dimension value combinations and metric values in the report. - totals (Sequence[google.analytics.data_v1beta.types.Row]): + totals (MutableSequence[google.analytics.data_v1beta.types.Row]): If requested, the totaled values of metrics. - maximums (Sequence[google.analytics.data_v1beta.types.Row]): + maximums (MutableSequence[google.analytics.data_v1beta.types.Row]): If requested, the maximum values of metrics. - minimums (Sequence[google.analytics.data_v1beta.types.Row]): + minimums (MutableSequence[google.analytics.data_v1beta.types.Row]): If requested, the minimum values of metrics. row_count (int): The total number of rows in the query result. ``rowCount`` @@ -359,51 +365,51 @@ class RunReportResponse(proto.Message): response types in JSON. """ - dimension_headers = proto.RepeatedField( + dimension_headers: MutableSequence[data.DimensionHeader] = proto.RepeatedField( proto.MESSAGE, number=1, message=data.DimensionHeader, ) - metric_headers = proto.RepeatedField( + metric_headers: MutableSequence[data.MetricHeader] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.MetricHeader, ) - rows = proto.RepeatedField( + rows: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=3, message=data.Row, ) - totals = proto.RepeatedField( + totals: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=4, message=data.Row, ) - maximums = proto.RepeatedField( + maximums: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=5, message=data.Row, ) - minimums = proto.RepeatedField( + minimums: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=6, message=data.Row, ) - row_count = proto.Field( + row_count: int = proto.Field( proto.INT32, number=7, ) - metadata = proto.Field( + metadata: data.ResponseMetaData = proto.Field( proto.MESSAGE, number=8, message=data.ResponseMetaData, ) - property_quota = proto.Field( + property_quota: data.PropertyQuota = proto.Field( proto.MESSAGE, number=9, message=data.PropertyQuota, ) - kind = proto.Field( + kind: str = proto.Field( proto.STRING, number=10, ) @@ -422,15 +428,15 @@ class RunPivotReportRequest(proto.Message): unspecified or consistent with the batch-level property. Example: properties/1234 - dimensions (Sequence[google.analytics.data_v1beta.types.Dimension]): + dimensions (MutableSequence[google.analytics.data_v1beta.types.Dimension]): The dimensions requested. All defined dimensions must be used by one of the following: dimension_expression, dimension_filter, pivots, order_bys. - metrics (Sequence[google.analytics.data_v1beta.types.Metric]): + metrics (MutableSequence[google.analytics.data_v1beta.types.Metric]): The metrics requested, at least one metric needs to be specified. All defined metrics must be used by one of the following: metric_expression, metric_filter, order_bys. - date_ranges (Sequence[google.analytics.data_v1beta.types.DateRange]): + date_ranges (MutableSequence[google.analytics.data_v1beta.types.DateRange]): The date range to retrieve event data for the report. If multiple date ranges are specified, event data from each date range is used in the report. A special dimension with @@ -438,7 +444,7 @@ class RunPivotReportRequest(proto.Message): names; if included, the report compares between date ranges. In a cohort request, this ``dateRanges`` must be unspecified. - pivots (Sequence[google.analytics.data_v1beta.types.Pivot]): + pivots (MutableSequence[google.analytics.data_v1beta.types.Pivot]): Describes the visual format of the report's dimensions in columns or rows. The union of the fieldNames (dimension names) in all pivots must @@ -475,54 +481,54 @@ class RunPivotReportRequest(proto.Message): `PropertyQuota <#PropertyQuota>`__. """ - property = proto.Field( + property: str = proto.Field( proto.STRING, number=1, ) - dimensions = proto.RepeatedField( + dimensions: MutableSequence[data.Dimension] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.Dimension, ) - metrics = proto.RepeatedField( + metrics: MutableSequence[data.Metric] = proto.RepeatedField( proto.MESSAGE, number=3, message=data.Metric, ) - date_ranges = proto.RepeatedField( + date_ranges: MutableSequence[data.DateRange] = proto.RepeatedField( proto.MESSAGE, number=4, message=data.DateRange, ) - pivots = proto.RepeatedField( + pivots: MutableSequence[data.Pivot] = proto.RepeatedField( proto.MESSAGE, number=5, message=data.Pivot, ) - dimension_filter = proto.Field( + dimension_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=6, message=data.FilterExpression, ) - metric_filter = proto.Field( + metric_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=7, message=data.FilterExpression, ) - currency_code = proto.Field( + currency_code: str = proto.Field( proto.STRING, number=8, ) - cohort_spec = proto.Field( + cohort_spec: data.CohortSpec = proto.Field( proto.MESSAGE, number=9, message=data.CohortSpec, ) - keep_empty_rows = proto.Field( + keep_empty_rows: bool = proto.Field( proto.BOOL, number=10, ) - return_property_quota = proto.Field( + return_property_quota: bool = proto.Field( proto.BOOL, number=11, ) @@ -533,7 +539,7 @@ class RunPivotReportResponse(proto.Message): request. Attributes: - pivot_headers (Sequence[google.analytics.data_v1beta.types.PivotHeader]): + pivot_headers (MutableSequence[google.analytics.data_v1beta.types.PivotHeader]): Summarizes the columns and rows created by a pivot. Each pivot in the request produces one header in the response. If we have a request like this: @@ -574,19 +580,19 @@ class RunPivotReportResponse(proto.Message): "dimensionValues": [{ "value": "scroll" }] }] }] - dimension_headers (Sequence[google.analytics.data_v1beta.types.DimensionHeader]): + dimension_headers (MutableSequence[google.analytics.data_v1beta.types.DimensionHeader]): Describes dimension columns. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows. - metric_headers (Sequence[google.analytics.data_v1beta.types.MetricHeader]): + metric_headers (MutableSequence[google.analytics.data_v1beta.types.MetricHeader]): Describes metric columns. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows. - rows (Sequence[google.analytics.data_v1beta.types.Row]): + rows (MutableSequence[google.analytics.data_v1beta.types.Row]): Rows of dimension value combinations and metric values in the report. - aggregates (Sequence[google.analytics.data_v1beta.types.Row]): + aggregates (MutableSequence[google.analytics.data_v1beta.types.Row]): Aggregation of metric values. Can be totals, minimums, or maximums. The returned aggregations are controlled by the metric_aggregations in the pivot. The type of aggregation @@ -604,42 +610,42 @@ class RunPivotReportResponse(proto.Message): between response types in JSON. """ - pivot_headers = proto.RepeatedField( + pivot_headers: MutableSequence[data.PivotHeader] = proto.RepeatedField( proto.MESSAGE, number=1, message=data.PivotHeader, ) - dimension_headers = proto.RepeatedField( + dimension_headers: MutableSequence[data.DimensionHeader] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.DimensionHeader, ) - metric_headers = proto.RepeatedField( + metric_headers: MutableSequence[data.MetricHeader] = proto.RepeatedField( proto.MESSAGE, number=3, message=data.MetricHeader, ) - rows = proto.RepeatedField( + rows: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=4, message=data.Row, ) - aggregates = proto.RepeatedField( + aggregates: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=5, message=data.Row, ) - metadata = proto.Field( + metadata: data.ResponseMetaData = proto.Field( proto.MESSAGE, number=6, message=data.ResponseMetaData, ) - property_quota = proto.Field( + property_quota: data.PropertyQuota = proto.Field( proto.MESSAGE, number=7, message=data.PropertyQuota, ) - kind = proto.Field( + kind: str = proto.Field( proto.STRING, number=8, ) @@ -659,17 +665,17 @@ class BatchRunReportsRequest(proto.Message): consistent with this property. Example: properties/1234 - requests (Sequence[google.analytics.data_v1beta.types.RunReportRequest]): + requests (MutableSequence[google.analytics.data_v1beta.types.RunReportRequest]): Individual requests. Each request has a separate report response. Each batch request is allowed up to 5 requests. """ - property = proto.Field( + property: str = proto.Field( proto.STRING, number=1, ) - requests = proto.RepeatedField( + requests: MutableSequence["RunReportRequest"] = proto.RepeatedField( proto.MESSAGE, number=2, message="RunReportRequest", @@ -680,7 +686,7 @@ class BatchRunReportsResponse(proto.Message): r"""The batch response containing multiple reports. Attributes: - reports (Sequence[google.analytics.data_v1beta.types.RunReportResponse]): + reports (MutableSequence[google.analytics.data_v1beta.types.RunReportResponse]): Individual responses. Each response has a separate report request. kind (str): @@ -690,12 +696,12 @@ class BatchRunReportsResponse(proto.Message): between response types in JSON. """ - reports = proto.RepeatedField( + reports: MutableSequence["RunReportResponse"] = proto.RepeatedField( proto.MESSAGE, number=1, message="RunReportResponse", ) - kind = proto.Field( + kind: str = proto.Field( proto.STRING, number=2, ) @@ -715,17 +721,17 @@ class BatchRunPivotReportsRequest(proto.Message): consistent with this property. Example: properties/1234 - requests (Sequence[google.analytics.data_v1beta.types.RunPivotReportRequest]): + requests (MutableSequence[google.analytics.data_v1beta.types.RunPivotReportRequest]): Individual requests. Each request has a separate pivot report response. Each batch request is allowed up to 5 requests. """ - property = proto.Field( + property: str = proto.Field( proto.STRING, number=1, ) - requests = proto.RepeatedField( + requests: MutableSequence["RunPivotReportRequest"] = proto.RepeatedField( proto.MESSAGE, number=2, message="RunPivotReportRequest", @@ -736,7 +742,7 @@ class BatchRunPivotReportsResponse(proto.Message): r"""The batch response containing multiple pivot reports. Attributes: - pivot_reports (Sequence[google.analytics.data_v1beta.types.RunPivotReportResponse]): + pivot_reports (MutableSequence[google.analytics.data_v1beta.types.RunPivotReportResponse]): Individual responses. Each response has a separate pivot report request. kind (str): @@ -746,12 +752,12 @@ class BatchRunPivotReportsResponse(proto.Message): between response types in JSON. """ - pivot_reports = proto.RepeatedField( + pivot_reports: MutableSequence["RunPivotReportResponse"] = proto.RepeatedField( proto.MESSAGE, number=1, message="RunPivotReportResponse", ) - kind = proto.Field( + kind: str = proto.Field( proto.STRING, number=2, ) @@ -776,7 +782,7 @@ class GetMetadataRequest(proto.Message): not return custom dimensions and metrics. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -793,9 +799,9 @@ class RunRealtimeReportRequest(proto.Message): ID `__. Example: properties/1234 - dimensions (Sequence[google.analytics.data_v1beta.types.Dimension]): + dimensions (MutableSequence[google.analytics.data_v1beta.types.Dimension]): The dimensions requested and displayed. - metrics (Sequence[google.analytics.data_v1beta.types.Metric]): + metrics (MutableSequence[google.analytics.data_v1beta.types.Metric]): The metrics requested and displayed. dimension_filter (google.analytics.data_v1beta.types.FilterExpression): The filter clause of dimensions. Metrics @@ -816,18 +822,18 @@ class RunRealtimeReportRequest(proto.Message): values for the dimension ``country``, so when reporting on only ``country``, you can't get more than 300 rows, even if you set ``limit`` to a higher value. - metric_aggregations (Sequence[google.analytics.data_v1beta.types.MetricAggregation]): + metric_aggregations (MutableSequence[google.analytics.data_v1beta.types.MetricAggregation]): Aggregation of metrics. Aggregated metric values will be shown in rows where the dimension_values are set to "RESERVED_(MetricAggregation)". - order_bys (Sequence[google.analytics.data_v1beta.types.OrderBy]): + order_bys (MutableSequence[google.analytics.data_v1beta.types.OrderBy]): Specifies how rows are ordered in the response. return_property_quota (bool): Toggles whether to return the current state of this Analytics Property's Realtime quota. Quota is returned in `PropertyQuota <#PropertyQuota>`__. - minute_ranges (Sequence[google.analytics.data_v1beta.types.MinuteRange]): + minute_ranges (MutableSequence[google.analytics.data_v1beta.types.MinuteRange]): The minute ranges of event data to read. If unspecified, one minute range for the last 30 minutes will be used. If multiple minute ranges @@ -838,49 +844,49 @@ class RunRealtimeReportRequest(proto.Message): rows for both minute ranges. """ - property = proto.Field( + property: str = proto.Field( proto.STRING, number=1, ) - dimensions = proto.RepeatedField( + dimensions: MutableSequence[data.Dimension] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.Dimension, ) - metrics = proto.RepeatedField( + metrics: MutableSequence[data.Metric] = proto.RepeatedField( proto.MESSAGE, number=3, message=data.Metric, ) - dimension_filter = proto.Field( + dimension_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=4, message=data.FilterExpression, ) - metric_filter = proto.Field( + metric_filter: data.FilterExpression = proto.Field( proto.MESSAGE, number=5, message=data.FilterExpression, ) - limit = proto.Field( + limit: int = proto.Field( proto.INT64, number=6, ) - metric_aggregations = proto.RepeatedField( + metric_aggregations: MutableSequence[data.MetricAggregation] = proto.RepeatedField( proto.ENUM, number=7, enum=data.MetricAggregation, ) - order_bys = proto.RepeatedField( + order_bys: MutableSequence[data.OrderBy] = proto.RepeatedField( proto.MESSAGE, number=8, message=data.OrderBy, ) - return_property_quota = proto.Field( + return_property_quota: bool = proto.Field( proto.BOOL, number=9, ) - minute_ranges = proto.RepeatedField( + minute_ranges: MutableSequence[data.MinuteRange] = proto.RepeatedField( proto.MESSAGE, number=10, message=data.MinuteRange, @@ -892,23 +898,23 @@ class RunRealtimeReportResponse(proto.Message): request. Attributes: - dimension_headers (Sequence[google.analytics.data_v1beta.types.DimensionHeader]): + dimension_headers (MutableSequence[google.analytics.data_v1beta.types.DimensionHeader]): Describes dimension columns. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows. - metric_headers (Sequence[google.analytics.data_v1beta.types.MetricHeader]): + metric_headers (MutableSequence[google.analytics.data_v1beta.types.MetricHeader]): Describes metric columns. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows. - rows (Sequence[google.analytics.data_v1beta.types.Row]): + rows (MutableSequence[google.analytics.data_v1beta.types.Row]): Rows of dimension value combinations and metric values in the report. - totals (Sequence[google.analytics.data_v1beta.types.Row]): + totals (MutableSequence[google.analytics.data_v1beta.types.Row]): If requested, the totaled values of metrics. - maximums (Sequence[google.analytics.data_v1beta.types.Row]): + maximums (MutableSequence[google.analytics.data_v1beta.types.Row]): If requested, the maximum values of metrics. - minimums (Sequence[google.analytics.data_v1beta.types.Row]): + minimums (MutableSequence[google.analytics.data_v1beta.types.Row]): If requested, the minimum values of metrics. row_count (int): The total number of rows in the query result. ``rowCount`` @@ -927,46 +933,46 @@ class RunRealtimeReportResponse(proto.Message): between response types in JSON. """ - dimension_headers = proto.RepeatedField( + dimension_headers: MutableSequence[data.DimensionHeader] = proto.RepeatedField( proto.MESSAGE, number=1, message=data.DimensionHeader, ) - metric_headers = proto.RepeatedField( + metric_headers: MutableSequence[data.MetricHeader] = proto.RepeatedField( proto.MESSAGE, number=2, message=data.MetricHeader, ) - rows = proto.RepeatedField( + rows: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=3, message=data.Row, ) - totals = proto.RepeatedField( + totals: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=4, message=data.Row, ) - maximums = proto.RepeatedField( + maximums: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=5, message=data.Row, ) - minimums = proto.RepeatedField( + minimums: MutableSequence[data.Row] = proto.RepeatedField( proto.MESSAGE, number=6, message=data.Row, ) - row_count = proto.Field( + row_count: int = proto.Field( proto.INT32, number=7, ) - property_quota = proto.Field( + property_quota: data.PropertyQuota = proto.Field( proto.MESSAGE, number=8, message=data.PropertyQuota, ) - kind = proto.Field( + kind: str = proto.Field( proto.STRING, number=9, ) diff --git a/google/analytics/data_v1beta/types/data.py b/google/analytics/data_v1beta/types/data.py index 20ec7ae..0a58cd8 100644 --- a/google/analytics/data_v1beta/types/data.py +++ b/google/analytics/data_v1beta/types/data.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +from typing import MutableMapping, MutableSequence + import proto # type: ignore __protobuf__ = proto.module( @@ -122,15 +124,15 @@ class DateRange(proto.Message): in the request: ``date_range_0``, ``date_range_1``, etc. """ - start_date = proto.Field( + start_date: str = proto.Field( proto.STRING, number=1, ) - end_date = proto.Field( + end_date: str = proto.Field( proto.STRING, number=2, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=3, ) @@ -177,17 +179,17 @@ class MinuteRange(proto.Message): etc. """ - start_minutes_ago = proto.Field( + start_minutes_ago: int = proto.Field( proto.INT32, number=1, optional=True, ) - end_minutes_ago = proto.Field( + end_minutes_ago: int = proto.Field( proto.INT32, number=2, optional=True, ) - name = proto.Field( + name: str = proto.Field( proto.STRING, number=3, ) @@ -223,11 +225,11 @@ class Dimension(proto.Message): ", ", city). """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - dimension_expression = proto.Field( + dimension_expression: "DimensionExpression" = proto.Field( proto.MESSAGE, number=2, message="DimensionExpression", @@ -276,7 +278,7 @@ class CaseExpression(proto.Message): to a name in dimensions field of the request. """ - dimension_name = proto.Field( + dimension_name: str = proto.Field( proto.STRING, number=1, ) @@ -285,7 +287,7 @@ class ConcatenateExpression(proto.Message): r"""Used to combine dimension values to a single dimension. Attributes: - dimension_names (Sequence[str]): + dimension_names (MutableSequence[str]): Names of dimensions. The names must refer back to names in the dimensions field of the request. @@ -300,28 +302,28 @@ class ConcatenateExpression(proto.Message): response will contain "US,FR,JP". """ - dimension_names = proto.RepeatedField( + dimension_names: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=1, ) - delimiter = proto.Field( + delimiter: str = proto.Field( proto.STRING, number=2, ) - lower_case = proto.Field( + lower_case: CaseExpression = proto.Field( proto.MESSAGE, number=4, oneof="one_expression", message=CaseExpression, ) - upper_case = proto.Field( + upper_case: CaseExpression = proto.Field( proto.MESSAGE, number=5, oneof="one_expression", message=CaseExpression, ) - concatenate = proto.Field( + concatenate: ConcatenateExpression = proto.Field( proto.MESSAGE, number=6, oneof="one_expression", @@ -360,15 +362,15 @@ class Metric(proto.Message): ``orderBys``, or a metric ``expression``. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - expression = proto.Field( + expression: str = proto.Field( proto.STRING, number=2, ) - invisible = proto.Field( + invisible: bool = proto.Field( proto.BOOL, number=3, ) @@ -408,25 +410,25 @@ class FilterExpression(proto.Message): This field is a member of `oneof`_ ``expr``. """ - and_group = proto.Field( + and_group: "FilterExpressionList" = proto.Field( proto.MESSAGE, number=1, oneof="expr", message="FilterExpressionList", ) - or_group = proto.Field( + or_group: "FilterExpressionList" = proto.Field( proto.MESSAGE, number=2, oneof="expr", message="FilterExpressionList", ) - not_expression = proto.Field( + not_expression: "FilterExpression" = proto.Field( proto.MESSAGE, number=3, oneof="expr", message="FilterExpression", ) - filter = proto.Field( + filter: "Filter" = proto.Field( proto.MESSAGE, number=4, oneof="expr", @@ -438,11 +440,11 @@ class FilterExpressionList(proto.Message): r"""A list of filter expressions. Attributes: - expressions (Sequence[google.analytics.data_v1beta.types.FilterExpression]): + expressions (MutableSequence[google.analytics.data_v1beta.types.FilterExpression]): A list of filter expressions. """ - expressions = proto.RepeatedField( + expressions: MutableSequence["FilterExpression"] = proto.RepeatedField( proto.MESSAGE, number=1, message="FilterExpression", @@ -507,16 +509,16 @@ class MatchType(proto.Enum): FULL_REGEXP = 5 PARTIAL_REGEXP = 6 - match_type = proto.Field( + match_type: "Filter.StringFilter.MatchType" = proto.Field( proto.ENUM, number=1, enum="Filter.StringFilter.MatchType", ) - value = proto.Field( + value: str = proto.Field( proto.STRING, number=2, ) - case_sensitive = proto.Field( + case_sensitive: bool = proto.Field( proto.BOOL, number=3, ) @@ -525,18 +527,18 @@ class InListFilter(proto.Message): r"""The result needs to be in a list of string values. Attributes: - values (Sequence[str]): + values (MutableSequence[str]): The list of string values. Must be non-empty. case_sensitive (bool): If true, the string value is case sensitive. """ - values = proto.RepeatedField( + values: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=1, ) - case_sensitive = proto.Field( + case_sensitive: bool = proto.Field( proto.BOOL, number=2, ) @@ -560,12 +562,12 @@ class Operation(proto.Enum): GREATER_THAN = 4 GREATER_THAN_OR_EQUAL = 5 - operation = proto.Field( + operation: "Filter.NumericFilter.Operation" = proto.Field( proto.ENUM, number=1, enum="Filter.NumericFilter.Operation", ) - value = proto.Field( + value: "NumericValue" = proto.Field( proto.MESSAGE, number=2, message="NumericValue", @@ -582,40 +584,40 @@ class BetweenFilter(proto.Message): Ends with this number. """ - from_value = proto.Field( + from_value: "NumericValue" = proto.Field( proto.MESSAGE, number=1, message="NumericValue", ) - to_value = proto.Field( + to_value: "NumericValue" = proto.Field( proto.MESSAGE, number=2, message="NumericValue", ) - field_name = proto.Field( + field_name: str = proto.Field( proto.STRING, number=1, ) - string_filter = proto.Field( + string_filter: StringFilter = proto.Field( proto.MESSAGE, number=3, oneof="one_filter", message=StringFilter, ) - in_list_filter = proto.Field( + in_list_filter: InListFilter = proto.Field( proto.MESSAGE, number=4, oneof="one_filter", message=InListFilter, ) - numeric_filter = proto.Field( + numeric_filter: NumericFilter = proto.Field( proto.MESSAGE, number=5, oneof="one_filter", message=NumericFilter, ) - between_filter = proto.Field( + between_filter: BetweenFilter = proto.Field( proto.MESSAGE, number=6, oneof="one_filter", @@ -662,7 +664,7 @@ class MetricOrderBy(proto.Message): A metric name in the request to order by. """ - metric_name = proto.Field( + metric_name: str = proto.Field( proto.STRING, number=1, ) @@ -685,11 +687,11 @@ class OrderType(proto.Enum): CASE_INSENSITIVE_ALPHANUMERIC = 2 NUMERIC = 3 - dimension_name = proto.Field( + dimension_name: str = proto.Field( proto.STRING, number=1, ) - order_type = proto.Field( + order_type: "OrderBy.DimensionOrderBy.OrderType" = proto.Field( proto.ENUM, number=2, enum="OrderBy.DimensionOrderBy.OrderType", @@ -703,7 +705,7 @@ class PivotOrderBy(proto.Message): In the response to order by, order rows by this column. Must be a metric name from the request. - pivot_selections (Sequence[google.analytics.data_v1beta.types.OrderBy.PivotOrderBy.PivotSelection]): + pivot_selections (MutableSequence[google.analytics.data_v1beta.types.OrderBy.PivotOrderBy.PivotSelection]): Used to select a dimension name and value pivot. If multiple pivot selections are given, the sort occurs on rows where all pivot @@ -739,44 +741,46 @@ class PivotSelection(proto.Message): this value. """ - dimension_name = proto.Field( + dimension_name: str = proto.Field( proto.STRING, number=1, ) - dimension_value = proto.Field( + dimension_value: str = proto.Field( proto.STRING, number=2, ) - metric_name = proto.Field( + metric_name: str = proto.Field( proto.STRING, number=1, ) - pivot_selections = proto.RepeatedField( + pivot_selections: MutableSequence[ + "OrderBy.PivotOrderBy.PivotSelection" + ] = proto.RepeatedField( proto.MESSAGE, number=2, message="OrderBy.PivotOrderBy.PivotSelection", ) - metric = proto.Field( + metric: MetricOrderBy = proto.Field( proto.MESSAGE, number=1, oneof="one_order_by", message=MetricOrderBy, ) - dimension = proto.Field( + dimension: DimensionOrderBy = proto.Field( proto.MESSAGE, number=2, oneof="one_order_by", message=DimensionOrderBy, ) - pivot = proto.Field( + pivot: PivotOrderBy = proto.Field( proto.MESSAGE, number=3, oneof="one_order_by", message=PivotOrderBy, ) - desc = proto.Field( + desc: bool = proto.Field( proto.BOOL, number=4, ) @@ -787,14 +791,14 @@ class Pivot(proto.Message): report response. Attributes: - field_names (Sequence[str]): + field_names (MutableSequence[str]): Dimension names for visible columns in the report response. Including "dateRange" produces a date range column; for each row in the response, dimension values in the date range column will indicate the corresponding date range from the request. - order_bys (Sequence[google.analytics.data_v1beta.types.OrderBy]): + order_bys (MutableSequence[google.analytics.data_v1beta.types.OrderBy]): Specifies how dimensions are ordered in the pivot. In the first Pivot, the OrderBys determine Row and PivotDimensionHeader ordering; in subsequent Pivots, the @@ -813,29 +817,29 @@ class Pivot(proto.Message): ``RunPivotReportRequest`` must not exceed 100,000. For example, a two pivot request with ``limit: 1000`` in each pivot will fail because the product is ``1,000,000``. - metric_aggregations (Sequence[google.analytics.data_v1beta.types.MetricAggregation]): + metric_aggregations (MutableSequence[google.analytics.data_v1beta.types.MetricAggregation]): Aggregate the metrics by dimensions in this pivot using the specified metric_aggregations. """ - field_names = proto.RepeatedField( + field_names: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=1, ) - order_bys = proto.RepeatedField( + order_bys: MutableSequence["OrderBy"] = proto.RepeatedField( proto.MESSAGE, number=2, message="OrderBy", ) - offset = proto.Field( + offset: int = proto.Field( proto.INT64, number=3, ) - limit = proto.Field( + limit: int = proto.Field( proto.INT64, number=4, ) - metric_aggregations = proto.RepeatedField( + metric_aggregations: MutableSequence["MetricAggregation"] = proto.RepeatedField( proto.ENUM, number=5, enum="MetricAggregation", @@ -863,7 +867,7 @@ class CohortSpec(proto.Message): separate rows in the report. Attributes: - cohorts (Sequence[google.analytics.data_v1beta.types.Cohort]): + cohorts (MutableSequence[google.analytics.data_v1beta.types.Cohort]): Defines the selection criteria to group users into cohorts. Most cohort reports define only a single cohort. @@ -878,17 +882,17 @@ class CohortSpec(proto.Message): Optional settings for a cohort report. """ - cohorts = proto.RepeatedField( + cohorts: MutableSequence["Cohort"] = proto.RepeatedField( proto.MESSAGE, number=1, message="Cohort", ) - cohorts_range = proto.Field( + cohorts_range: "CohortsRange" = proto.Field( proto.MESSAGE, number=2, message="CohortsRange", ) - cohort_report_settings = proto.Field( + cohort_report_settings: "CohortReportSettings" = proto.Field( proto.MESSAGE, number=3, message="CohortReportSettings", @@ -934,15 +938,15 @@ class Cohort(proto.Message): month. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - dimension = proto.Field( + dimension: str = proto.Field( proto.STRING, number=2, ) - date_range = proto.Field( + date_range: "DateRange" = proto.Field( proto.MESSAGE, number=3, message="DateRange", @@ -1005,16 +1009,16 @@ class Granularity(proto.Enum): WEEKLY = 2 MONTHLY = 3 - granularity = proto.Field( + granularity: Granularity = proto.Field( proto.ENUM, number=1, enum=Granularity, ) - start_offset = proto.Field( + start_offset: int = proto.Field( proto.INT32, number=2, ) - end_offset = proto.Field( + end_offset: int = proto.Field( proto.INT32, number=3, ) @@ -1029,7 +1033,7 @@ class CohortReportSettings(proto.Message): end day. Not supported in ``RunReportRequest``. """ - accumulate = proto.Field( + accumulate: bool = proto.Field( proto.BOOL, number=1, ) @@ -1099,7 +1103,7 @@ class SchemaRestrictionResponse(proto.Message): management `__. Attributes: - active_metric_restrictions (Sequence[google.analytics.data_v1beta.types.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction]): + active_metric_restrictions (MutableSequence[google.analytics.data_v1beta.types.ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction]): All restrictions actively enforced in creating the report. For example, ``purchaseRevenue`` always has the restriction type ``REVENUE_DATA``. However, this active response @@ -1115,53 +1119,57 @@ class ActiveMetricRestriction(proto.Message): The name of the restricted metric. This field is a member of `oneof`_ ``_metric_name``. - restricted_metric_types (Sequence[google.analytics.data_v1beta.types.RestrictedMetricType]): + restricted_metric_types (MutableSequence[google.analytics.data_v1beta.types.RestrictedMetricType]): The reason for this metric's restriction. """ - metric_name = proto.Field( + metric_name: str = proto.Field( proto.STRING, number=1, optional=True, ) - restricted_metric_types = proto.RepeatedField( + restricted_metric_types: MutableSequence[ + "RestrictedMetricType" + ] = proto.RepeatedField( proto.ENUM, number=2, enum="RestrictedMetricType", ) - active_metric_restrictions = proto.RepeatedField( + active_metric_restrictions: MutableSequence[ + "ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction" + ] = proto.RepeatedField( proto.MESSAGE, number=1, message="ResponseMetaData.SchemaRestrictionResponse.ActiveMetricRestriction", ) - data_loss_from_other_row = proto.Field( + data_loss_from_other_row: bool = proto.Field( proto.BOOL, number=3, ) - schema_restriction_response = proto.Field( + schema_restriction_response: SchemaRestrictionResponse = proto.Field( proto.MESSAGE, number=4, optional=True, message=SchemaRestrictionResponse, ) - currency_code = proto.Field( + currency_code: str = proto.Field( proto.STRING, number=5, optional=True, ) - time_zone = proto.Field( + time_zone: str = proto.Field( proto.STRING, number=6, optional=True, ) - empty_reason = proto.Field( + empty_reason: str = proto.Field( proto.STRING, number=7, optional=True, ) - subject_to_thresholding = proto.Field( + subject_to_thresholding: bool = proto.Field( proto.BOOL, number=8, optional=True, @@ -1180,7 +1188,7 @@ class DimensionHeader(proto.Message): The dimension's name. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) @@ -1200,11 +1208,11 @@ class MetricHeader(proto.Message): The metric's data type. """ - name = proto.Field( + name: str = proto.Field( proto.STRING, number=1, ) - type_ = proto.Field( + type_: "MetricType" = proto.Field( proto.ENUM, number=2, enum="MetricType", @@ -1215,7 +1223,7 @@ class PivotHeader(proto.Message): r"""Dimensions' values in a single pivot. Attributes: - pivot_dimension_headers (Sequence[google.analytics.data_v1beta.types.PivotDimensionHeader]): + pivot_dimension_headers (MutableSequence[google.analytics.data_v1beta.types.PivotDimensionHeader]): The size is the same as the cardinality of the corresponding dimension combinations. row_count (int): @@ -1224,12 +1232,14 @@ class PivotHeader(proto.Message): ``offset`` and ``limit`` are specified in the request. """ - pivot_dimension_headers = proto.RepeatedField( + pivot_dimension_headers: MutableSequence[ + "PivotDimensionHeader" + ] = proto.RepeatedField( proto.MESSAGE, number=1, message="PivotDimensionHeader", ) - row_count = proto.Field( + row_count: int = proto.Field( proto.INT32, number=2, ) @@ -1239,11 +1249,11 @@ class PivotDimensionHeader(proto.Message): r"""Summarizes dimension values from a row for this pivot. Attributes: - dimension_values (Sequence[google.analytics.data_v1beta.types.DimensionValue]): + dimension_values (MutableSequence[google.analytics.data_v1beta.types.DimensionValue]): Values of multiple dimensions in a pivot. """ - dimension_values = proto.RepeatedField( + dimension_values: MutableSequence["DimensionValue"] = proto.RepeatedField( proto.MESSAGE, number=1, message="DimensionValue", @@ -1289,20 +1299,20 @@ class Row(proto.Message): ] Attributes: - dimension_values (Sequence[google.analytics.data_v1beta.types.DimensionValue]): + dimension_values (MutableSequence[google.analytics.data_v1beta.types.DimensionValue]): List of requested dimension values. In a PivotReport, dimension_values are only listed for dimensions included in a pivot. - metric_values (Sequence[google.analytics.data_v1beta.types.MetricValue]): + metric_values (MutableSequence[google.analytics.data_v1beta.types.MetricValue]): List of requested visible metric values. """ - dimension_values = proto.RepeatedField( + dimension_values: MutableSequence["DimensionValue"] = proto.RepeatedField( proto.MESSAGE, number=1, message="DimensionValue", ) - metric_values = proto.RepeatedField( + metric_values: MutableSequence["MetricValue"] = proto.RepeatedField( proto.MESSAGE, number=2, message="MetricValue", @@ -1322,7 +1332,7 @@ class DimensionValue(proto.Message): This field is a member of `oneof`_ ``one_value``. """ - value = proto.Field( + value: str = proto.Field( proto.STRING, number=1, oneof="one_value", @@ -1341,7 +1351,7 @@ class MetricValue(proto.Message): This field is a member of `oneof`_ ``one_value``. """ - value = proto.Field( + value: str = proto.Field( proto.STRING, number=4, oneof="one_value", @@ -1369,12 +1379,12 @@ class NumericValue(proto.Message): This field is a member of `oneof`_ ``one_value``. """ - int64_value = proto.Field( + int64_value: int = proto.Field( proto.INT64, number=1, oneof="one_value", ) - double_value = proto.Field( + double_value: float = proto.Field( proto.DOUBLE, number=2, oneof="one_value", @@ -1428,32 +1438,32 @@ class PropertyQuota(proto.Message): hourly quotas. """ - tokens_per_day = proto.Field( + tokens_per_day: "QuotaStatus" = proto.Field( proto.MESSAGE, number=1, message="QuotaStatus", ) - tokens_per_hour = proto.Field( + tokens_per_hour: "QuotaStatus" = proto.Field( proto.MESSAGE, number=2, message="QuotaStatus", ) - concurrent_requests = proto.Field( + concurrent_requests: "QuotaStatus" = proto.Field( proto.MESSAGE, number=3, message="QuotaStatus", ) - server_errors_per_project_per_hour = proto.Field( + server_errors_per_project_per_hour: "QuotaStatus" = proto.Field( proto.MESSAGE, number=4, message="QuotaStatus", ) - potentially_thresholded_requests_per_hour = proto.Field( + potentially_thresholded_requests_per_hour: "QuotaStatus" = proto.Field( proto.MESSAGE, number=5, message="QuotaStatus", ) - tokens_per_project_per_hour = proto.Field( + tokens_per_project_per_hour: "QuotaStatus" = proto.Field( proto.MESSAGE, number=6, message="QuotaStatus", @@ -1470,11 +1480,11 @@ class QuotaStatus(proto.Message): Quota remaining after this request. """ - consumed = proto.Field( + consumed: int = proto.Field( proto.INT32, number=1, ) - remaining = proto.Field( + remaining: int = proto.Field( proto.INT32, number=2, ) @@ -1494,7 +1504,7 @@ class DimensionMetadata(proto.Message): description (str): Description of how this dimension is used and calculated. - deprecated_api_names (Sequence[str]): + deprecated_api_names (MutableSequence[str]): Still usable but deprecated names for this dimension. If populated, this dimension is available by either ``apiName`` or one of ``deprecatedApiNames`` for a period of time. After @@ -1509,27 +1519,27 @@ class DimensionMetadata(proto.Message): metrics are categorized together. """ - api_name = proto.Field( + api_name: str = proto.Field( proto.STRING, number=1, ) - ui_name = proto.Field( + ui_name: str = proto.Field( proto.STRING, number=2, ) - description = proto.Field( + description: str = proto.Field( proto.STRING, number=3, ) - deprecated_api_names = proto.RepeatedField( + deprecated_api_names: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=4, ) - custom_definition = proto.Field( + custom_definition: bool = proto.Field( proto.BOOL, number=5, ) - category = proto.Field( + category: str = proto.Field( proto.STRING, number=7, ) @@ -1548,7 +1558,7 @@ class MetricMetadata(proto.Message): description (str): Description of how this metric is used and calculated. - deprecated_api_names (Sequence[str]): + deprecated_api_names (MutableSequence[str]): Still usable but deprecated names for this metric. If populated, this metric is available by either ``apiName`` or one of ``deprecatedApiNames`` for a period of time. After @@ -1564,7 +1574,7 @@ class MetricMetadata(proto.Message): custom_definition (bool): True if the metric is a custom metric for this property. - blocked_reasons (Sequence[google.analytics.data_v1beta.types.MetricMetadata.BlockedReason]): + blocked_reasons (MutableSequence[google.analytics.data_v1beta.types.MetricMetadata.BlockedReason]): If reasons are specified, your access is blocked to this metric for this property. API requests from you to this property for this metric will succeed; however, the report @@ -1586,41 +1596,41 @@ class BlockedReason(proto.Enum): NO_REVENUE_METRICS = 1 NO_COST_METRICS = 2 - api_name = proto.Field( + api_name: str = proto.Field( proto.STRING, number=1, ) - ui_name = proto.Field( + ui_name: str = proto.Field( proto.STRING, number=2, ) - description = proto.Field( + description: str = proto.Field( proto.STRING, number=3, ) - deprecated_api_names = proto.RepeatedField( + deprecated_api_names: MutableSequence[str] = proto.RepeatedField( proto.STRING, number=4, ) - type_ = proto.Field( + type_: "MetricType" = proto.Field( proto.ENUM, number=5, enum="MetricType", ) - expression = proto.Field( + expression: str = proto.Field( proto.STRING, number=6, ) - custom_definition = proto.Field( + custom_definition: bool = proto.Field( proto.BOOL, number=7, ) - blocked_reasons = proto.RepeatedField( + blocked_reasons: MutableSequence[BlockedReason] = proto.RepeatedField( proto.ENUM, number=8, enum=BlockedReason, ) - category = proto.Field( + category: str = proto.Field( proto.STRING, number=10, ) @@ -1645,13 +1655,13 @@ class DimensionCompatibility(proto.Message): This field is a member of `oneof`_ ``_compatibility``. """ - dimension_metadata = proto.Field( + dimension_metadata: "DimensionMetadata" = proto.Field( proto.MESSAGE, number=1, optional=True, message="DimensionMetadata", ) - compatibility = proto.Field( + compatibility: "Compatibility" = proto.Field( proto.ENUM, number=2, optional=True, @@ -1678,13 +1688,13 @@ class MetricCompatibility(proto.Message): This field is a member of `oneof`_ ``_compatibility``. """ - metric_metadata = proto.Field( + metric_metadata: "MetricMetadata" = proto.Field( proto.MESSAGE, number=1, optional=True, message="MetricMetadata", ) - compatibility = proto.Field( + compatibility: "Compatibility" = proto.Field( proto.ENUM, number=2, optional=True, diff --git a/release-please-config.json b/release-please-config.json index b2a4730..5565177 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -7,12 +7,12 @@ "google/analytics/data/gapic_version.py", { "type": "json", - "path": "samples/generated_samples/snippet_metadata_data_v1alpha.json", + "path": "samples/generated_samples/snippet_metadata_google.analytics.data.v1alpha.json", "jsonpath": "$.clientLibrary.version" }, { "type": "json", - "path": "samples/generated_samples/snippet_metadata_data_v1beta.json", + "path": "samples/generated_samples/snippet_metadata_google.analytics.data.v1beta.json", "jsonpath": "$.clientLibrary.version" } ] diff --git a/samples/generated_samples/snippet_metadata_data_v1alpha.json b/samples/generated_samples/snippet_metadata_google.analytics.data.v1alpha.json similarity index 98% rename from samples/generated_samples/snippet_metadata_data_v1alpha.json rename to samples/generated_samples/snippet_metadata_google.analytics.data.v1alpha.json index fc2b532..037832d 100644 --- a/samples/generated_samples/snippet_metadata_data_v1alpha.json +++ b/samples/generated_samples/snippet_metadata_google.analytics.data.v1alpha.json @@ -7,7 +7,8 @@ } ], "language": "PYTHON", - "name": "google-analytics-data" + "name": "google-analytics-data", + "version": "0.1.0" }, "snippets": [ { diff --git a/samples/generated_samples/snippet_metadata_data_v1beta.json b/samples/generated_samples/snippet_metadata_google.analytics.data.v1beta.json similarity index 99% rename from samples/generated_samples/snippet_metadata_data_v1beta.json rename to samples/generated_samples/snippet_metadata_google.analytics.data.v1beta.json index 4e33261..b945bac 100644 --- a/samples/generated_samples/snippet_metadata_data_v1beta.json +++ b/samples/generated_samples/snippet_metadata_google.analytics.data.v1beta.json @@ -7,7 +7,8 @@ } ], "language": "PYTHON", - "name": "google-analytics-data" + "name": "google-analytics-data", + "version": "0.1.0" }, "snippets": [ { From 7b0c0d4ea40452bc96d06b1fdc82a5e69167b0d7 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 14 Nov 2022 20:35:10 -0500 Subject: [PATCH 10/17] chore: Update gapic-generator-python to v1.6.1 (#316) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: Update gapic-generator-python to v1.6.1 PiperOrigin-RevId: 488036204 Source-Link: https://github.com/googleapis/googleapis/commit/08f275f5c1c0d99056e1cb68376323414459ee19 Source-Link: https://github.com/googleapis/googleapis-gen/commit/555c0945e60649e38739ae64bc45719cdf72178f Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNTU1YzA5NDVlNjA2NDllMzg3MzlhZTY0YmM0NTcxOWNkZjcyMTc4ZiJ9 * chore: Update gapic-generator-python to v1.6.1 PiperOrigin-RevId: 488036204 Source-Link: https://github.com/googleapis/googleapis/commit/08f275f5c1c0d99056e1cb68376323414459ee19 Source-Link: https://github.com/googleapis/googleapis-gen/commit/555c0945e60649e38739ae64bc45719cdf72178f Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNTU1YzA5NDVlNjA2NDllMzg3MzlhZTY0YmM0NTcxOWNkZjcyMTc4ZiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- testing/constraints-3.7.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/testing/constraints-3.7.txt b/testing/constraints-3.7.txt index aca9f2d..6f3158c 100644 --- a/testing/constraints-3.7.txt +++ b/testing/constraints-3.7.txt @@ -4,8 +4,6 @@ # Pin the version to the lower bound. # e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", # Then this file should have google-cloud-foo==1.14.0 -# This file is intentionally left empty to test the -# latest versions of dependencies. google-api-core==1.33.2 proto-plus==1.22.0 protobuf==3.19.5 From f409cc2cd4529b3da4ac3e697a2e19893cc8b4e1 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 08:13:53 -0500 Subject: [PATCH 11/17] chore: use python 3.9 for docs builds Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/docs.yml | 4 ++-- .github/workflows/lint.yml | 2 +- .github/workflows/unittest.yml | 2 +- .kokoro/docker/docs/Dockerfile | 12 ++++++------ .kokoro/requirements.txt | 6 +++--- noxfile.py | 4 ++-- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 12edee7..237a647 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:452901c74a22f9b9a3bd02bce780b8e8805c97270d424684bff809ce5be8c2a2 + digest: sha256:6244cdf9848ec661b48e5b626123ee9f6f8eb80adc9d42d7cd3c243d4ddaea79 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7092a13..e97d89e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -12,7 +12,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.9" - name: Install nox run: | python -m pip install --upgrade setuptools pip wheel @@ -28,7 +28,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.9" - name: Install nox run: | python -m pip install --upgrade setuptools pip wheel diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d2aee5b..16d5a9e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -12,7 +12,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.8" - name: Install nox run: | python -m pip install --upgrade setuptools pip wheel diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 87ade4d..23000c0 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -41,7 +41,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.8" - name: Install coverage run: | python -m pip install --upgrade setuptools pip wheel diff --git a/.kokoro/docker/docs/Dockerfile b/.kokoro/docker/docs/Dockerfile index 238b87b..7323c42 100644 --- a/.kokoro/docker/docs/Dockerfile +++ b/.kokoro/docker/docs/Dockerfile @@ -60,16 +60,16 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* \ && rm -f /var/cache/apt/archives/*.deb -###################### Install python 3.8.11 +###################### Install python 3.9.13 -# Download python 3.8.11 -RUN wget https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tgz +# Download python 3.9.13 +RUN wget https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tgz # Extract files -RUN tar -xvf Python-3.8.11.tgz +RUN tar -xvf Python-3.9.13.tgz -# Install python 3.8.11 -RUN ./Python-3.8.11/configure --enable-optimizations +# Install python 3.9.11 +RUN ./Python-3.9.13/configure --enable-optimizations RUN make altinstall ###################### Install pip diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 31425f1..12bfbf4 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -94,9 +94,9 @@ charset-normalizer==2.1.1 \ --hash=sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845 \ --hash=sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f # via requests -click==8.0.4 \ - --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ - --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb +click==8.1.3 \ + --hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \ + --hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48 # via # gcp-docuploader # gcp-releasetool diff --git a/noxfile.py b/noxfile.py index 29d0200..d8440c0 100644 --- a/noxfile.py +++ b/noxfile.py @@ -273,7 +273,7 @@ def cover(session): session.run("coverage", "erase") -@nox.session(python=DEFAULT_PYTHON_VERSION) +@nox.session(python="3.9") def docs(session): """Build the docs for this library.""" @@ -299,7 +299,7 @@ def docs(session): ) -@nox.session(python=DEFAULT_PYTHON_VERSION) +@nox.session(python="3.9") def docfx(session): """Build the docfx yaml files for this library.""" From 485415e7fd8d6bc2d609246a74cf6d1fd344df69 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 17:12:16 +0000 Subject: [PATCH 12/17] chore(python): update release script dependencies [autoapprove] (#318) Source-Link: https://togithub.com/googleapis/synthtool/commit/25083af347468dd5f90f69627420f7d452b6c50e Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:e6cbd61f1838d9ff6a31436dfc13717f372a7482a82fc1863ca954ec47bff8c8 --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/docker/docs/Dockerfile | 2 +- .kokoro/requirements.in | 4 +- .kokoro/requirements.txt | 67 ++++++++++++++++++---------------- 4 files changed, 40 insertions(+), 35 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 237a647..3f1ccc0 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:6244cdf9848ec661b48e5b626123ee9f6f8eb80adc9d42d7cd3c243d4ddaea79 + digest: sha256:e6cbd61f1838d9ff6a31436dfc13717f372a7482a82fc1863ca954ec47bff8c8 diff --git a/.kokoro/docker/docs/Dockerfile b/.kokoro/docker/docs/Dockerfile index 7323c42..f8137d0 100644 --- a/.kokoro/docker/docs/Dockerfile +++ b/.kokoro/docker/docs/Dockerfile @@ -68,7 +68,7 @@ RUN wget https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tgz # Extract files RUN tar -xvf Python-3.9.13.tgz -# Install python 3.9.11 +# Install python 3.9.13 RUN ./Python-3.9.13/configure --enable-optimizations RUN make altinstall diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index 7718391..cbd7e77 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -5,4 +5,6 @@ typing-extensions twine wheel setuptools -nox \ No newline at end of file +nox +charset-normalizer<3 +click<8.1.0 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 12bfbf4..9c1b9be 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -93,11 +93,14 @@ cffi==1.15.1 \ charset-normalizer==2.1.1 \ --hash=sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845 \ --hash=sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f - # via requests -click==8.1.3 \ - --hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \ - --hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48 # via + # -r requirements.in + # requests +click==8.0.4 \ + --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ + --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb + # via + # -r requirements.in # gcp-docuploader # gcp-releasetool colorlog==6.7.0 \ @@ -156,9 +159,9 @@ gcp-docuploader==0.6.4 \ --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in -gcp-releasetool==1.9.1 \ - --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ - --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b +gcp-releasetool==1.10.0 \ + --hash=sha256:72a38ca91b59c24f7e699e9227c90cbe4dd71b789383cb0164b088abae294c83 \ + --hash=sha256:8c7c99320208383d4bb2b808c6880eb7a81424afe7cdba3c8d84b25f4f0e097d # via -r requirements.in google-api-core==2.10.2 \ --hash=sha256:10c06f7739fe57781f87523375e8e1a3a4674bf6392cd6131a3222182b971320 \ @@ -166,9 +169,9 @@ google-api-core==2.10.2 \ # via # google-cloud-core # google-cloud-storage -google-auth==2.14.0 \ - --hash=sha256:1ad5b0e6eba5f69645971abb3d2c197537d5914070a8c6d30299dfdb07c5c700 \ - --hash=sha256:cf24817855d874ede2efd071aa22125445f555de1685b739a9782fcf408c2a3d +google-auth==2.14.1 \ + --hash=sha256:ccaa901f31ad5cbb562615eb8b664b3dd0bf5404a67618e642307f00613eda4d \ + --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016 # via # gcp-releasetool # google-api-core @@ -178,9 +181,9 @@ google-cloud-core==2.3.2 \ --hash=sha256:8417acf6466be2fa85123441696c4badda48db314c607cf1e5d543fa8bdc22fe \ --hash=sha256:b9529ee7047fd8d4bf4a2182de619154240df17fbe60ead399078c1ae152af9a # via google-cloud-storage -google-cloud-storage==2.5.0 \ - --hash=sha256:19a26c66c317ce542cea0830b7e787e8dac2588b6bfa4d3fd3b871ba16305ab0 \ - --hash=sha256:382f34b91de2212e3c2e7b40ec079d27ee2e3dbbae99b75b1bcd8c63063ce235 +google-cloud-storage==2.6.0 \ + --hash=sha256:104ca28ae61243b637f2f01455cc8a05e8f15a2a18ced96cb587241cdd3820f5 \ + --hash=sha256:4ad0415ff61abdd8bb2ae81c1f8f7ec7d91a1011613f2db87c614c550f97bfe9 # via gcp-docuploader google-crc32c==1.5.0 \ --hash=sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a \ @@ -256,9 +259,9 @@ google-resumable-media==2.4.0 \ --hash=sha256:2aa004c16d295c8f6c33b2b4788ba59d366677c0a25ae7382436cb30f776deaa \ --hash=sha256:8d5518502f92b9ecc84ac46779bd4f09694ecb3ba38a3e7ca737a86d15cbca1f # via google-cloud-storage -googleapis-common-protos==1.56.4 \ - --hash=sha256:8eb2cbc91b69feaf23e32452a7ae60e791e09967d81d4fcc7fc388182d1bd394 \ - --hash=sha256:c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417 +googleapis-common-protos==1.57.0 \ + --hash=sha256:27a849d6205838fb6cc3c1c21cb9800707a661bb21c6ce7fb13e99eb1f8a0c46 \ + --hash=sha256:a9f4a1d7f6d9809657b7f1316a1aa527f6664891531bcfcc13b6696e685f443c # via google-api-core idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ @@ -269,6 +272,7 @@ importlib-metadata==5.0.0 \ --hash=sha256:ddb0e35065e8938f867ed4928d0ae5bf2a53b7773871bfe6bcc7e4fcdc7dea43 # via # -r requirements.in + # keyring # twine jaraco-classes==3.2.3 \ --hash=sha256:2353de3288bc6b82120752201c6b1c1a14b058267fa424ed5ce5984e3b922158 \ @@ -284,9 +288,9 @@ jinja2==3.1.2 \ --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 # via gcp-releasetool -keyring==23.9.3 \ - --hash=sha256:69732a15cb1433bdfbc3b980a8a36a04878a6cfd7cb99f497b573f31618001c0 \ - --hash=sha256:69b01dd83c42f590250fe7a1f503fc229b14de83857314b1933a3ddbf595c4a5 +keyring==23.11.0 \ + --hash=sha256:3dd30011d555f1345dec2c262f0153f2f0ca6bca041fb1dc4588349bb4c0ac1e \ + --hash=sha256:ad192263e2cdd5f12875dedc2da13534359a7e760e77f8d04b50968a821c2361 # via # gcp-releasetool # twine @@ -350,9 +354,9 @@ pkginfo==1.8.3 \ --hash=sha256:848865108ec99d4901b2f7e84058b6e7660aae8ae10164e015a6dcf5b242a594 \ --hash=sha256:a84da4318dd86f870a9447a8c98340aa06216bfc6f2b7bdc4b8766984ae1867c # via twine -platformdirs==2.5.2 \ - --hash=sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788 \ - --hash=sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19 +platformdirs==2.5.4 \ + --hash=sha256:1006647646d80f16130f052404c6b901e80ee4ed6bef6792e1f238a8969106f7 \ + --hash=sha256:af0276409f9a02373d540bf8480021a048711d572745aef4b7842dad245eba10 # via virtualenv protobuf==3.20.3 \ --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ @@ -381,7 +385,6 @@ protobuf==3.20.3 \ # gcp-docuploader # gcp-releasetool # google-api-core - # googleapis-common-protos py==1.11.0 \ --hash=sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719 \ --hash=sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378 @@ -476,17 +479,17 @@ urllib3==1.26.12 \ # via # requests # twine -virtualenv==20.16.6 \ - --hash=sha256:186ca84254abcbde98180fd17092f9628c5fe742273c02724972a1d8a2035108 \ - --hash=sha256:530b850b523c6449406dfba859d6345e48ef19b8439606c5d74d7d3c9e14d76e +virtualenv==20.16.7 \ + --hash=sha256:8691e3ff9387f743e00f6bb20f70121f5e4f596cae754531f2b3b3a1b1ac696e \ + --hash=sha256:efd66b00386fdb7dbe4822d172303f40cd05e50e01740b19ea42425cbe653e29 # via nox webencodings==0.5.1 \ --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 # via bleach -wheel==0.37.1 \ - --hash=sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a \ - --hash=sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4 +wheel==0.38.4 \ + --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \ + --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8 # via -r requirements.in zipp==3.10.0 \ --hash=sha256:4fcb6f278987a6605757302a6e40e896257570d11c51628968ccb2a47e80c6c1 \ @@ -494,7 +497,7 @@ zipp==3.10.0 \ # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: -setuptools==65.5.0 \ - --hash=sha256:512e5536220e38146176efb833d4a62aa726b7bbff82cfbc8ba9eaa3996e0b17 \ - --hash=sha256:f62ea9da9ed6289bfe868cd6845968a2c854d1427f8548d52cae02a42b4f0356 +setuptools==65.5.1 \ + --hash=sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31 \ + --hash=sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f # via -r requirements.in From ee88af6049793cce09d6401441ea291cc362dd41 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sat, 26 Nov 2022 19:16:49 -0500 Subject: [PATCH 13/17] chore(python): drop flake8-import-order in samples noxfile (#319) Source-Link: https://github.com/googleapis/synthtool/commit/6ed3a831cb9ff69ef8a504c353e098ec0192ad93 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:3abfa0f1886adaf0b83f07cb117b24a639ea1cb9cffe56d43280b977033563eb Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- samples/snippets/noxfile.py | 26 +++----------------------- 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 3f1ccc0..bb21147 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:e6cbd61f1838d9ff6a31436dfc13717f372a7482a82fc1863ca954ec47bff8c8 + digest: sha256:3abfa0f1886adaf0b83f07cb117b24a639ea1cb9cffe56d43280b977033563eb diff --git a/samples/snippets/noxfile.py b/samples/snippets/noxfile.py index c171513..0577084 100644 --- a/samples/snippets/noxfile.py +++ b/samples/snippets/noxfile.py @@ -18,7 +18,7 @@ import os from pathlib import Path import sys -from typing import Callable, Dict, List, Optional +from typing import Callable, Dict, Optional import nox @@ -108,22 +108,6 @@ def get_pytest_env_vars() -> Dict[str, str]: # -def _determine_local_import_names(start_dir: str) -> List[str]: - """Determines all import names that should be considered "local". - - This is used when running the linter to insure that import order is - properly checked. - """ - file_ext_pairs = [os.path.splitext(path) for path in os.listdir(start_dir)] - return [ - basename - for basename, extension in file_ext_pairs - if extension == ".py" - or os.path.isdir(os.path.join(start_dir, basename)) - and basename not in ("__pycache__") - ] - - # Linting with flake8. # # We ignore the following rules: @@ -138,7 +122,6 @@ def _determine_local_import_names(start_dir: str) -> List[str]: "--show-source", "--builtin=gettext", "--max-complexity=20", - "--import-order-style=google", "--exclude=.nox,.cache,env,lib,generated_pb2,*_pb2.py,*_pb2_grpc.py", "--ignore=E121,E123,E126,E203,E226,E24,E266,E501,E704,W503,W504,I202", "--max-line-length=88", @@ -148,14 +131,11 @@ def _determine_local_import_names(start_dir: str) -> List[str]: @nox.session def lint(session: nox.sessions.Session) -> None: if not TEST_CONFIG["enforce_type_hints"]: - session.install("flake8", "flake8-import-order") + session.install("flake8") else: - session.install("flake8", "flake8-import-order", "flake8-annotations") + session.install("flake8", "flake8-annotations") - local_names = _determine_local_import_names(".") args = FLAKE8_COMMON_ARGS + [ - "--application-import-names", - ",".join(local_names), ".", ] session.run("flake8", *args) From 8afd7c45c0703b5bed2f9e555ce9b01aefa58aa7 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 8 Dec 2022 19:00:41 +0000 Subject: [PATCH 14/17] build(deps): bump certifi from 2022.9.24 to 2022.12.7 [autoapprove] (#321) Source-Link: https://togithub.com/googleapis/synthtool/commit/b4fe62efb5114b6738ad4b13d6f654f2bf4b7cc0 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:3bf87e47c2173d7eed42714589dc4da2c07c3268610f1e47f8e1a30decbfc7f1 --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.txt | 6 +++--- .pre-commit-config.yaml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index bb21147..fccaa8e 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest - digest: sha256:3abfa0f1886adaf0b83f07cb117b24a639ea1cb9cffe56d43280b977033563eb + digest: sha256:3bf87e47c2173d7eed42714589dc4da2c07c3268610f1e47f8e1a30decbfc7f1 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 9c1b9be..05dc467 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -20,9 +20,9 @@ cachetools==5.2.0 \ --hash=sha256:6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757 \ --hash=sha256:f9f17d2aec496a9aa6b76f53e3b614c965223c061982d434d160f930c698a9db # via google-auth -certifi==2022.9.24 \ - --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ - --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 +certifi==2022.12.7 \ + --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ + --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 46d2371..5405cc8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,7 +25,7 @@ repos: rev: 22.3.0 hooks: - id: black -- repo: https://gitlab.com/pycqa/flake8 +- repo: https://github.com/pycqa/flake8 rev: 3.9.2 hooks: - id: flake8 From 1d2309a997a97b905329600a5c9f64fe4c91e796 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 14 Dec 2022 16:41:26 +0100 Subject: [PATCH 15/17] chore(deps): update dependency google-auth-oauthlib to v0.8.0 (#323) --- samples/snippets/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/requirements.txt b/samples/snippets/requirements.txt index ad14784..78ba6a0 100644 --- a/samples/snippets/requirements.txt +++ b/samples/snippets/requirements.txt @@ -1,2 +1,2 @@ google-analytics-data==0.14.2 -google-auth-oauthlib==0.7.1 \ No newline at end of file +google-auth-oauthlib==0.8.0 \ No newline at end of file From 4682a423266d6102b820751424482684d6d4a2b2 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 11:26:18 -0500 Subject: [PATCH 16/17] chore: Update gapic-generator-python to v1.7.1 (#320) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: Enable requesting numeric enums in "transport=rest" responses for services supporting this (Java, Go, Python, PHP, TypeScript, C#, and Ruby), even if they do not yet turn on REST transport chore: disallow "transport=rest" for services where numeric enums are not confirmed to be supported (except in PHP and Java) PiperOrigin-RevId: 493113566 Source-Link: https://github.com/googleapis/googleapis/commit/758f0d1217d9c7fe398aa5efb1057ce4b6409e55 Source-Link: https://github.com/googleapis/googleapis-gen/commit/78bd8f05e1276363eb14eae70e91fe4bc20703ab Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNzhiZDhmMDVlMTI3NjM2M2ViMTRlYWU3MGU5MWZlNGJjMjA3MDNhYiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * add gapic_version.py * fix(deps): Require google-api-core >=1.34.0, >=2.11.0 fix: Drop usage of pkg_resources fix: Fix timeout default values docs(samples): Snippetgen should call await on the operation coroutine before calling result PiperOrigin-RevId: 493260409 Source-Link: https://github.com/googleapis/googleapis/commit/fea43879f83a8d0dacc9353b3f75f8f46d37162f Source-Link: https://github.com/googleapis/googleapis-gen/commit/387b7344c7529ee44be84e613b19a820508c612b Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMzg3YjczNDRjNzUyOWVlNDRiZTg0ZTYxM2IxOWE4MjA1MDhjNjEyYiJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: Update gapic-generator-python to v1.7.1 PiperOrigin-RevId: 495049888 Source-Link: https://github.com/googleapis/googleapis/commit/bf4359caacb6583399306cd1c13c2e00b2a832f9 Source-Link: https://github.com/googleapis/googleapis-gen/commit/5ab9576eafbd4de436896f01c278757d87a24e27 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNWFiOTU3NmVhZmJkNGRlNDM2ODk2ZjAxYzI3ODc1N2Q4N2EyNGUyNyJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot Co-authored-by: Anthonios Partheniou --- .coveragerc | 5 - analytics-data-v1alpha-py.tar.gz | 0 .../analytics/data_v1alpha/gapic_version.py | 16 ++ .../alpha_analytics_data/async_client.py | 16 +- .../services/alpha_analytics_data/client.py | 19 +-- .../alpha_analytics_data/transports/base.py | 13 +- .../alpha_analytics_data/transports/rest.py | 76 +++++----- google/analytics/data_v1beta/gapic_version.py | 16 ++ .../beta_analytics_data/async_client.py | 28 ++-- .../services/beta_analytics_data/client.py | 31 ++-- .../beta_analytics_data/transports/base.py | 13 +- .../beta_analytics_data/transports/rest.py | 140 ++++++++++-------- release-please-config.json | 2 + setup.py | 2 +- testing/constraints-3.7.txt | 2 +- .../data_v1beta/test_beta_analytics_data.py | 2 +- 16 files changed, 194 insertions(+), 187 deletions(-) create mode 100644 analytics-data-v1alpha-py.tar.gz create mode 100644 google/analytics/data_v1alpha/gapic_version.py create mode 100644 google/analytics/data_v1beta/gapic_version.py diff --git a/.coveragerc b/.coveragerc index 535122d..dec1576 100644 --- a/.coveragerc +++ b/.coveragerc @@ -10,8 +10,3 @@ exclude_lines = pragma: NO COVER # Ignore debug-only repr def __repr__ - # Ignore pkg_resources exceptions. - # This is added at the module level as a safeguard for if someone - # generates the code and tries to run it without pip installing. This - # makes it virtually impossible to test properly. - except pkg_resources.DistributionNotFound diff --git a/analytics-data-v1alpha-py.tar.gz b/analytics-data-v1alpha-py.tar.gz new file mode 100644 index 0000000..e69de29 diff --git a/google/analytics/data_v1alpha/gapic_version.py b/google/analytics/data_v1alpha/gapic_version.py new file mode 100644 index 0000000..1f469e6 --- /dev/null +++ b/google/analytics/data_v1alpha/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +__version__ = "0.14.2" # {x-release-please-version} diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py index 8c01ae3..a5faa53 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/async_client.py @@ -34,7 +34,8 @@ from google.api_core.client_options import ClientOptions from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore -import pkg_resources + +from google.analytics.data_v1alpha import gapic_version as package_version try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] @@ -218,7 +219,7 @@ async def run_funnel_report( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunFunnelReportResponse: r"""Returns a customized funnel report of your Google Analytics @@ -311,14 +312,9 @@ async def __aexit__(self, exc_type, exc, tb): await self.transport.close() -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-analytics-data", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) __all__ = ("AlphaAnalyticsDataAsyncClient",) diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py index c6923e0..b49aad5 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/client.py @@ -38,7 +38,8 @@ from google.auth.transport import mtls # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore from google.oauth2 import service_account # type: ignore -import pkg_resources + +from google.analytics.data_v1alpha import gapic_version as package_version try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] @@ -338,9 +339,6 @@ def __init__( transport (Union[str, AlphaAnalyticsDataTransport]): The transport to use. If set to None, a transport is chosen automatically. - NOTE: "rest" transport functionality is currently in a - beta state (preview). We welcome your feedback via an - issue in this library's source repository. client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the client. It won't take effect if a ``transport`` instance is provided. (1) The ``api_endpoint`` property can be used to override the @@ -429,7 +427,7 @@ def run_funnel_report( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunFunnelReportResponse: r"""Returns a customized funnel report of your Google Analytics @@ -530,14 +528,9 @@ def __exit__(self, type, value, traceback): self.transport.close() -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-analytics-data", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) __all__ = ("AlphaAnalyticsDataClient",) diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py index 9cdb624..6406f88 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/base.py @@ -23,18 +23,13 @@ import google.auth # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore -import pkg_resources +from google.analytics.data_v1alpha import gapic_version as package_version from google.analytics.data_v1alpha.types import analytics_data_api -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-analytics-data", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) class AlphaAnalyticsDataTransport(abc.ABC): diff --git a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py index 0c82701..0685108 100644 --- a/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py +++ b/google/analytics/data_v1alpha/services/alpha_analytics_data/transports/rest.py @@ -63,12 +63,13 @@ class AlphaAnalyticsDataRestInterceptor: .. code-block:: python class MyCustomAlphaAnalyticsDataInterceptor(AlphaAnalyticsDataRestInterceptor): - def pre_run_funnel_report(request, metadata): + def pre_run_funnel_report(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_run_funnel_report(response): + def post_run_funnel_report(self, response): logging.log(f"Received response: {response}") + return response transport = AlphaAnalyticsDataRestTransport(interceptor=MyCustomAlphaAnalyticsDataInterceptor()) client = AlphaAnalyticsDataClient(transport=transport) @@ -118,9 +119,6 @@ class AlphaAnalyticsDataRestTransport(AlphaAnalyticsDataTransport): It sends JSON representations of protocol buffers over HTTP/1.1 - NOTE: This REST transport functionality is currently in a beta - state (preview). We welcome your feedback via an issue in this - library's source repository. Thank you! """ def __init__( @@ -140,39 +138,35 @@ def __init__( ) -> None: """Instantiate the transport. - NOTE: This REST transport functionality is currently in a beta - state (preview). We welcome your feedback via a GitHub issue in - this library's repository. Thank you! - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional(Sequence[str])): A list of scopes. This argument is - ignored if ``channel`` is provided. - client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client - certificate to configure mutual TLS HTTP channel. It is ignored - if ``channel`` is provided. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you are developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - url_scheme: the protocol scheme for the API endpoint. Normally - "https", but for testing or local servers, - "http" can be specified. + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional(Sequence[str])): A list of scopes. This argument is + ignored if ``channel`` is provided. + client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client + certificate to configure mutual TLS HTTP channel. It is ignored + if ``channel`` is provided. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you are developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + url_scheme: the protocol scheme for the API endpoint. Normally + "https", but for testing or local servers, + "http" can be specified. """ # Run the base constructor # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc. @@ -253,7 +247,7 @@ def __call__( body = json_format.MessageToJson( transcoded_request["body"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) uri = transcoded_request["uri"] method = transcoded_request["method"] @@ -263,10 +257,12 @@ def __call__( json_format.MessageToJson( transcoded_request["query_params"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) ) + query_params["$alt"] = "json;enum-encoding=int" + # Send the request headers = dict(metadata) headers["Content-Type"] = "application/json" diff --git a/google/analytics/data_v1beta/gapic_version.py b/google/analytics/data_v1beta/gapic_version.py new file mode 100644 index 0000000..1f469e6 --- /dev/null +++ b/google/analytics/data_v1beta/gapic_version.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +__version__ = "0.14.2" # {x-release-please-version} diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py b/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py index 704df48..61030b8 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/async_client.py @@ -34,7 +34,8 @@ from google.api_core.client_options import ClientOptions from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore -import pkg_resources + +from google.analytics.data_v1beta import gapic_version as package_version try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] @@ -217,7 +218,7 @@ async def run_report( request: Optional[Union[analytics_data_api.RunReportRequest, dict]] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunReportResponse: r"""Returns a customized report of your Google Analytics event data. @@ -306,7 +307,7 @@ async def run_pivot_report( request: Optional[Union[analytics_data_api.RunPivotReportRequest, dict]] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunPivotReportResponse: r"""Returns a customized pivot report of your Google @@ -392,7 +393,7 @@ async def batch_run_reports( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunReportsResponse: r"""Returns multiple reports in a batch. All reports must @@ -474,7 +475,7 @@ async def batch_run_pivot_reports( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunPivotReportsResponse: r"""Returns multiple pivot reports in a batch. All @@ -555,7 +556,7 @@ async def get_metadata( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.Metadata: r"""Returns metadata for dimensions and metrics available in @@ -678,7 +679,7 @@ async def run_realtime_report( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunRealtimeReportResponse: r"""Returns a customized report of realtime event data for your @@ -768,7 +769,7 @@ async def check_compatibility( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.CheckCompatibilityResponse: r"""This compatibility method lists dimensions and @@ -864,14 +865,9 @@ async def __aexit__(self, exc_type, exc, tb): await self.transport.close() -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-analytics-data", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) __all__ = ("BetaAnalyticsDataAsyncClient",) diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/client.py b/google/analytics/data_v1beta/services/beta_analytics_data/client.py index f20db56..84aec79 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/client.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/client.py @@ -38,7 +38,8 @@ from google.auth.transport import mtls # type: ignore from google.auth.transport.grpc import SslCredentials # type: ignore from google.oauth2 import service_account # type: ignore -import pkg_resources + +from google.analytics.data_v1beta import gapic_version as package_version try: OptionalRetry = Union[retries.Retry, gapic_v1.method._MethodDefault] @@ -353,9 +354,6 @@ def __init__( transport (Union[str, BetaAnalyticsDataTransport]): The transport to use. If set to None, a transport is chosen automatically. - NOTE: "rest" transport functionality is currently in a - beta state (preview). We welcome your feedback via an - issue in this library's source repository. client_options (Optional[Union[google.api_core.client_options.ClientOptions, dict]]): Custom options for the client. It won't take effect if a ``transport`` instance is provided. (1) The ``api_endpoint`` property can be used to override the @@ -442,7 +440,7 @@ def run_report( request: Optional[Union[analytics_data_api.RunReportRequest, dict]] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunReportResponse: r"""Returns a customized report of your Google Analytics event data. @@ -532,7 +530,7 @@ def run_pivot_report( request: Optional[Union[analytics_data_api.RunPivotReportRequest, dict]] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunPivotReportResponse: r"""Returns a customized pivot report of your Google @@ -619,7 +617,7 @@ def batch_run_reports( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunReportsResponse: r"""Returns multiple reports in a batch. All reports must @@ -702,7 +700,7 @@ def batch_run_pivot_reports( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.BatchRunPivotReportsResponse: r"""Returns multiple pivot reports in a batch. All @@ -784,7 +782,7 @@ def get_metadata( *, name: Optional[str] = None, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.Metadata: r"""Returns metadata for dimensions and metrics available in @@ -907,7 +905,7 @@ def run_realtime_report( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.RunRealtimeReportResponse: r"""Returns a customized report of realtime event data for your @@ -998,7 +996,7 @@ def check_compatibility( ] = None, *, retry: OptionalRetry = gapic_v1.method.DEFAULT, - timeout: Optional[float] = None, + timeout: Union[float, object] = gapic_v1.method.DEFAULT, metadata: Sequence[Tuple[str, str]] = (), ) -> analytics_data_api.CheckCompatibilityResponse: r"""This compatibility method lists dimensions and @@ -1102,14 +1100,9 @@ def __exit__(self, type, value, traceback): self.transport.close() -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-analytics-data", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) __all__ = ("BetaAnalyticsDataClient",) diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py index 6f710d1..5575de8 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/base.py @@ -23,18 +23,13 @@ import google.auth # type: ignore from google.auth import credentials as ga_credentials # type: ignore from google.oauth2 import service_account # type: ignore -import pkg_resources +from google.analytics.data_v1beta import gapic_version as package_version from google.analytics.data_v1beta.types import analytics_data_api -try: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( - gapic_version=pkg_resources.get_distribution( - "google-analytics-data", - ).version, - ) -except pkg_resources.DistributionNotFound: - DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo() +DEFAULT_CLIENT_INFO = gapic_v1.client_info.ClientInfo( + gapic_version=package_version.__version__ +) class BetaAnalyticsDataTransport(abc.ABC): diff --git a/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py b/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py index 248dee0..af6dc94 100644 --- a/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py +++ b/google/analytics/data_v1beta/services/beta_analytics_data/transports/rest.py @@ -63,54 +63,61 @@ class BetaAnalyticsDataRestInterceptor: .. code-block:: python class MyCustomBetaAnalyticsDataInterceptor(BetaAnalyticsDataRestInterceptor): - def pre_batch_run_pivot_reports(request, metadata): + def pre_batch_run_pivot_reports(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_batch_run_pivot_reports(response): + def post_batch_run_pivot_reports(self, response): logging.log(f"Received response: {response}") + return response - def pre_batch_run_reports(request, metadata): + def pre_batch_run_reports(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_batch_run_reports(response): + def post_batch_run_reports(self, response): logging.log(f"Received response: {response}") + return response - def pre_check_compatibility(request, metadata): + def pre_check_compatibility(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_check_compatibility(response): + def post_check_compatibility(self, response): logging.log(f"Received response: {response}") + return response - def pre_get_metadata(request, metadata): + def pre_get_metadata(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_get_metadata(response): + def post_get_metadata(self, response): logging.log(f"Received response: {response}") + return response - def pre_run_pivot_report(request, metadata): + def pre_run_pivot_report(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_run_pivot_report(response): + def post_run_pivot_report(self, response): logging.log(f"Received response: {response}") + return response - def pre_run_realtime_report(request, metadata): + def pre_run_realtime_report(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_run_realtime_report(response): + def post_run_realtime_report(self, response): logging.log(f"Received response: {response}") + return response - def pre_run_report(request, metadata): + def pre_run_report(self, request, metadata): logging.log(f"Received request: {request}") return request, metadata - def post_run_report(response): + def post_run_report(self, response): logging.log(f"Received response: {response}") + return response transport = BetaAnalyticsDataRestTransport(interceptor=MyCustomBetaAnalyticsDataInterceptor()) client = BetaAnalyticsDataClient(transport=transport) @@ -300,9 +307,6 @@ class BetaAnalyticsDataRestTransport(BetaAnalyticsDataTransport): It sends JSON representations of protocol buffers over HTTP/1.1 - NOTE: This REST transport functionality is currently in a beta - state (preview). We welcome your feedback via an issue in this - library's source repository. Thank you! """ def __init__( @@ -322,39 +326,35 @@ def __init__( ) -> None: """Instantiate the transport. - NOTE: This REST transport functionality is currently in a beta - state (preview). We welcome your feedback via a GitHub issue in - this library's repository. Thank you! - - Args: - host (Optional[str]): - The hostname to connect to. - credentials (Optional[google.auth.credentials.Credentials]): The - authorization credentials to attach to requests. These - credentials identify the application to the service; if none - are specified, the client will attempt to ascertain the - credentials from the environment. - - credentials_file (Optional[str]): A file with credentials that can - be loaded with :func:`google.auth.load_credentials_from_file`. - This argument is ignored if ``channel`` is provided. - scopes (Optional(Sequence[str])): A list of scopes. This argument is - ignored if ``channel`` is provided. - client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client - certificate to configure mutual TLS HTTP channel. It is ignored - if ``channel`` is provided. - quota_project_id (Optional[str]): An optional project to use for billing - and quota. - client_info (google.api_core.gapic_v1.client_info.ClientInfo): - The client info used to send a user-agent string along with - API requests. If ``None``, then default info will be used. - Generally, you only need to set this if you are developing - your own client library. - always_use_jwt_access (Optional[bool]): Whether self signed JWT should - be used for service account credentials. - url_scheme: the protocol scheme for the API endpoint. Normally - "https", but for testing or local servers, - "http" can be specified. + Args: + host (Optional[str]): + The hostname to connect to. + credentials (Optional[google.auth.credentials.Credentials]): The + authorization credentials to attach to requests. These + credentials identify the application to the service; if none + are specified, the client will attempt to ascertain the + credentials from the environment. + + credentials_file (Optional[str]): A file with credentials that can + be loaded with :func:`google.auth.load_credentials_from_file`. + This argument is ignored if ``channel`` is provided. + scopes (Optional(Sequence[str])): A list of scopes. This argument is + ignored if ``channel`` is provided. + client_cert_source_for_mtls (Callable[[], Tuple[bytes, bytes]]): Client + certificate to configure mutual TLS HTTP channel. It is ignored + if ``channel`` is provided. + quota_project_id (Optional[str]): An optional project to use for billing + and quota. + client_info (google.api_core.gapic_v1.client_info.ClientInfo): + The client info used to send a user-agent string along with + API requests. If ``None``, then default info will be used. + Generally, you only need to set this if you are developing + your own client library. + always_use_jwt_access (Optional[bool]): Whether self signed JWT should + be used for service account credentials. + url_scheme: the protocol scheme for the API endpoint. Normally + "https", but for testing or local servers, + "http" can be specified. """ # Run the base constructor # TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc. @@ -435,7 +435,7 @@ def __call__( body = json_format.MessageToJson( transcoded_request["body"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) uri = transcoded_request["uri"] method = transcoded_request["method"] @@ -445,10 +445,12 @@ def __call__( json_format.MessageToJson( transcoded_request["query_params"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) ) + query_params["$alt"] = "json;enum-encoding=int" + # Send the request headers = dict(metadata) headers["Content-Type"] = "application/json" @@ -523,7 +525,7 @@ def __call__( body = json_format.MessageToJson( transcoded_request["body"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) uri = transcoded_request["uri"] method = transcoded_request["method"] @@ -533,10 +535,12 @@ def __call__( json_format.MessageToJson( transcoded_request["query_params"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) ) + query_params["$alt"] = "json;enum-encoding=int" + # Send the request headers = dict(metadata) headers["Content-Type"] = "application/json" @@ -615,7 +619,7 @@ def __call__( body = json_format.MessageToJson( transcoded_request["body"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) uri = transcoded_request["uri"] method = transcoded_request["method"] @@ -625,10 +629,12 @@ def __call__( json_format.MessageToJson( transcoded_request["query_params"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) ) + query_params["$alt"] = "json;enum-encoding=int" + # Send the request headers = dict(metadata) headers["Content-Type"] = "application/json" @@ -713,11 +719,13 @@ def __call__( json_format.MessageToJson( transcoded_request["query_params"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) ) query_params.update(self._get_unset_required_fields(query_params)) + query_params["$alt"] = "json;enum-encoding=int" + # Send the request headers = dict(metadata) headers["Content-Type"] = "application/json" @@ -791,7 +799,7 @@ def __call__( body = json_format.MessageToJson( transcoded_request["body"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) uri = transcoded_request["uri"] method = transcoded_request["method"] @@ -801,10 +809,12 @@ def __call__( json_format.MessageToJson( transcoded_request["query_params"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) ) + query_params["$alt"] = "json;enum-encoding=int" + # Send the request headers = dict(metadata) headers["Content-Type"] = "application/json" @@ -879,7 +889,7 @@ def __call__( body = json_format.MessageToJson( transcoded_request["body"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) uri = transcoded_request["uri"] method = transcoded_request["method"] @@ -889,10 +899,12 @@ def __call__( json_format.MessageToJson( transcoded_request["query_params"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) ) + query_params["$alt"] = "json;enum-encoding=int" + # Send the request headers = dict(metadata) headers["Content-Type"] = "application/json" @@ -963,7 +975,7 @@ def __call__( body = json_format.MessageToJson( transcoded_request["body"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) uri = transcoded_request["uri"] method = transcoded_request["method"] @@ -973,10 +985,12 @@ def __call__( json_format.MessageToJson( transcoded_request["query_params"], including_default_value_fields=False, - use_integers_for_enums=False, + use_integers_for_enums=True, ) ) + query_params["$alt"] = "json;enum-encoding=int" + # Send the request headers = dict(metadata) headers["Content-Type"] = "application/json" diff --git a/release-please-config.json b/release-please-config.json index 5565177..8153e17 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -4,6 +4,8 @@ ".": { "release-type": "python", "extra-files": [ + "google/analytics/data_v1beta/gapic_version.py", + "google/analytics/data_v1alpha/gapic_version.py", "google/analytics/data/gapic_version.py", { "type": "json", diff --git a/setup.py b/setup.py index ea7b351..e91ba59 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,7 @@ release_status = "Development Status :: 5 - Production/Stable" dependencies = [ - "google-api-core[grpc] >= 1.33.2, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*", + "google-api-core[grpc] >= 1.34.0, <3.0.0dev,!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,!=2.5.*,!=2.6.*,!=2.7.*,!=2.8.*,!=2.9.*,!=2.10.*", "proto-plus >= 1.22.0, <2.0.0dev", "protobuf>=3.19.5,<5.0.0dev,!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5", ] diff --git a/testing/constraints-3.7.txt b/testing/constraints-3.7.txt index 6f3158c..6c44adf 100644 --- a/testing/constraints-3.7.txt +++ b/testing/constraints-3.7.txt @@ -4,6 +4,6 @@ # Pin the version to the lower bound. # e.g., if setup.py has "google-cloud-foo >= 1.14.0, < 2.0.0dev", # Then this file should have google-cloud-foo==1.14.0 -google-api-core==1.33.2 +google-api-core==1.34.0 proto-plus==1.22.0 protobuf==3.19.5 diff --git a/tests/unit/gapic/data_v1beta/test_beta_analytics_data.py b/tests/unit/gapic/data_v1beta/test_beta_analytics_data.py index fa9f6c2..30a3ab5 100644 --- a/tests/unit/gapic/data_v1beta/test_beta_analytics_data.py +++ b/tests/unit/gapic/data_v1beta/test_beta_analytics_data.py @@ -2534,7 +2534,7 @@ def test_get_metadata_rest_required_fields( response = client.get_metadata(request) - expected_params = [] + expected_params = [("$alt", "json;enum-encoding=int")] actual_params = req.call_args.kwargs["params"] assert expected_params == actual_params From e549bc1147d6168d1f17f8d3708d04ce66fd4dd3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 18:56:47 -0500 Subject: [PATCH 17/17] chore(main): release 0.15.0 (#306) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- .release-please-manifest.json | 2 +- CHANGELOG.md | 25 +++++++++++++++++++ google/analytics/data/gapic_version.py | 2 +- .../analytics/data_v1alpha/gapic_version.py | 2 +- google/analytics/data_v1beta/gapic_version.py | 2 +- ...etadata_google.analytics.data.v1alpha.json | 2 +- ...metadata_google.analytics.data.v1beta.json | 2 +- 7 files changed, 31 insertions(+), 6 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b19a3f4..f87262a 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.14.2" + ".": "0.15.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 259e602..cb52d0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## [0.15.0](https://github.com/googleapis/python-analytics-data/compare/v0.14.2...v0.15.0) (2022-12-14) + + +### Features + +* Add `subject_to_thresholding` field to `ResponseMetadata` type ([#302](https://github.com/googleapis/python-analytics-data/issues/302)) ([779da22](https://github.com/googleapis/python-analytics-data/commit/779da22b33b509219188a26f6b3a2fab707fe69e)) +* Add `tokens_per_project_per_hour` field to `PropertyQuota` type ([779da22](https://github.com/googleapis/python-analytics-data/commit/779da22b33b509219188a26f6b3a2fab707fe69e)) +* Add support for `google.analytics.data.__version__` ([3cade4a](https://github.com/googleapis/python-analytics-data/commit/3cade4a266b8647eb85c18cb6c12a08ac05a023a)) +* Add typing to proto.Message based class attributes ([a09cbdf](https://github.com/googleapis/python-analytics-data/commit/a09cbdfc78bbfc2efe7e9cbdfb9276ea48522682)) + + +### Bug Fixes + +* Add dict typing for client_options ([3cade4a](https://github.com/googleapis/python-analytics-data/commit/3cade4a266b8647eb85c18cb6c12a08ac05a023a)) +* **deps:** Require google-api-core >=1.34.0, >= 2.11.0 ([4682a42](https://github.com/googleapis/python-analytics-data/commit/4682a423266d6102b820751424482684d6d4a2b2)) +* Drop usage of pkg_resources ([4682a42](https://github.com/googleapis/python-analytics-data/commit/4682a423266d6102b820751424482684d6d4a2b2)) +* Fix timeout default values ([4682a42](https://github.com/googleapis/python-analytics-data/commit/4682a423266d6102b820751424482684d6d4a2b2)) + + +### Documentation + +* Add a sample for using minute ranges in realtime reports ([#314](https://github.com/googleapis/python-analytics-data/issues/314)) ([4f1305f](https://github.com/googleapis/python-analytics-data/commit/4f1305f95232134c487f02d22d06a0d826655ad8)) +* **samples:** Snippetgen handling of repeated enum field ([a09cbdf](https://github.com/googleapis/python-analytics-data/commit/a09cbdfc78bbfc2efe7e9cbdfb9276ea48522682)) +* **samples:** Snippetgen should call await on the operation coroutine before calling result ([4682a42](https://github.com/googleapis/python-analytics-data/commit/4682a423266d6102b820751424482684d6d4a2b2)) + ## [0.14.2](https://github.com/googleapis/python-analytics-data/compare/v0.14.1...v0.14.2) (2022-10-10) diff --git a/google/analytics/data/gapic_version.py b/google/analytics/data/gapic_version.py index 1f469e6..52f5cb7 100644 --- a/google/analytics/data/gapic_version.py +++ b/google/analytics/data/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "0.14.2" # {x-release-please-version} +__version__ = "0.15.0" # {x-release-please-version} diff --git a/google/analytics/data_v1alpha/gapic_version.py b/google/analytics/data_v1alpha/gapic_version.py index 1f469e6..52f5cb7 100644 --- a/google/analytics/data_v1alpha/gapic_version.py +++ b/google/analytics/data_v1alpha/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "0.14.2" # {x-release-please-version} +__version__ = "0.15.0" # {x-release-please-version} diff --git a/google/analytics/data_v1beta/gapic_version.py b/google/analytics/data_v1beta/gapic_version.py index 1f469e6..52f5cb7 100644 --- a/google/analytics/data_v1beta/gapic_version.py +++ b/google/analytics/data_v1beta/gapic_version.py @@ -13,4 +13,4 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "0.14.2" # {x-release-please-version} +__version__ = "0.15.0" # {x-release-please-version} diff --git a/samples/generated_samples/snippet_metadata_google.analytics.data.v1alpha.json b/samples/generated_samples/snippet_metadata_google.analytics.data.v1alpha.json index 037832d..7c81efb 100644 --- a/samples/generated_samples/snippet_metadata_google.analytics.data.v1alpha.json +++ b/samples/generated_samples/snippet_metadata_google.analytics.data.v1alpha.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-analytics-data", - "version": "0.1.0" + "version": "0.15.0" }, "snippets": [ { diff --git a/samples/generated_samples/snippet_metadata_google.analytics.data.v1beta.json b/samples/generated_samples/snippet_metadata_google.analytics.data.v1beta.json index b945bac..8cdbf2a 100644 --- a/samples/generated_samples/snippet_metadata_google.analytics.data.v1beta.json +++ b/samples/generated_samples/snippet_metadata_google.analytics.data.v1beta.json @@ -8,7 +8,7 @@ ], "language": "PYTHON", "name": "google-analytics-data", - "version": "0.1.0" + "version": "0.15.0" }, "snippets": [ {