Skip to content
This repository was archived by the owner on Dec 31, 2023. It is now read-only.

Commit bec9e87

Browse files
fix: remove gRPC send/recv limits and expose client transport (#62)
1 parent 2976654 commit bec9e87

56 files changed

Lines changed: 2009 additions & 1224 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.flake8

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ exclude =
2626
*_pb2.py
2727

2828
# Standard linting exemptions.
29+
**/.nox/**
2930
__pycache__,
3031
.git,
3132
*.pyc,

.kokoro/docker/docs/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from ubuntu:20.10
15+
from ubuntu:20.04
1616

1717
ENV DEBIAN_FRONTEND noninteractive
1818

.kokoro/docs/common.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ env_vars: {
3030

3131
env_vars: {
3232
key: "V2_STAGING_BUCKET"
33-
value: "docs-staging-v2-staging"
33+
value: "docs-staging-v2"
3434
}
3535

3636
# It will upload the docker image after successful builds.

.kokoro/test-samples.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then
2828
git checkout $LATEST_RELEASE
2929
fi
3030

31+
# Exit early if samples directory doesn't exist
32+
if [ ! -d "./samples" ]; then
33+
echo "No tests run. `./samples` not found"
34+
exit 0
35+
fi
36+
3137
# Disable buffering, so that the logs stream through.
3238
export PYTHONUNBUFFERED=1
3339

@@ -101,4 +107,4 @@ cd "$ROOT"
101107
# Workaround for Kokoro permissions issue: delete secrets
102108
rm testing/{test-env.sh,client-secrets.json,service-account.json}
103109

104-
exit "$RTN"
110+
exit "$RTN"

.pre-commit-config.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# See https://pre-commit.com for more information
2+
# See https://pre-commit.com/hooks.html for more hooks
3+
repos:
4+
- repo: https://github.com/pre-commit/pre-commit-hooks
5+
rev: v3.4.0
6+
hooks:
7+
- id: trailing-whitespace
8+
- id: end-of-file-fixer
9+
- id: check-yaml
10+
- repo: https://github.com/psf/black
11+
rev: 19.10b0
12+
hooks:
13+
- id: black
14+
- repo: https://gitlab.com/pycqa/flake8
15+
rev: 3.8.4
16+
hooks:
17+
- id: flake8

CODE_OF_CONDUCT.md

Lines changed: 87 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,95 @@
11
<!-- # Generated by synthtool. DO NOT EDIT! !-->
2-
# Contributor Code of Conduct
2+
# Code of Conduct
33

4-
As contributors and maintainers of this project,
5-
and in the interest of fostering an open and welcoming community,
6-
we pledge to respect all people who contribute through reporting issues,
7-
posting feature requests, updating documentation,
8-
submitting pull requests or patches, and other activities.
4+
## Our Pledge
95

10-
We are committed to making participation in this project
11-
a harassment-free experience for everyone,
12-
regardless of level of experience, gender, gender identity and expression,
13-
sexual orientation, disability, personal appearance,
14-
body size, race, ethnicity, age, religion, or nationality.
6+
In the interest of fostering an open and welcoming environment, we as
7+
contributors and maintainers pledge to making participation in our project and
8+
our community a harassment-free experience for everyone, regardless of age, body
9+
size, disability, ethnicity, gender identity and expression, level of
10+
experience, education, socio-economic status, nationality, personal appearance,
11+
race, religion, or sexual identity and orientation.
12+
13+
## Our Standards
14+
15+
Examples of behavior that contributes to creating a positive environment
16+
include:
17+
18+
* Using welcoming and inclusive language
19+
* Being respectful of differing viewpoints and experiences
20+
* Gracefully accepting constructive criticism
21+
* Focusing on what is best for the community
22+
* Showing empathy towards other community members
1523

1624
Examples of unacceptable behavior by participants include:
1725

18-
* The use of sexualized language or imagery
19-
* Personal attacks
20-
* Trolling or insulting/derogatory comments
21-
* Public or private harassment
22-
* Publishing other's private information,
23-
such as physical or electronic
24-
addresses, without explicit permission
25-
* Other unethical or unprofessional conduct.
26+
* The use of sexualized language or imagery and unwelcome sexual attention or
27+
advances
28+
* Trolling, insulting/derogatory comments, and personal or political attacks
29+
* Public or private harassment
30+
* Publishing others' private information, such as a physical or electronic
31+
address, without explicit permission
32+
* Other conduct which could reasonably be considered inappropriate in a
33+
professional setting
34+
35+
## Our Responsibilities
36+
37+
Project maintainers are responsible for clarifying the standards of acceptable
38+
behavior and are expected to take appropriate and fair corrective action in
39+
response to any instances of unacceptable behavior.
2640

2741
Project maintainers have the right and responsibility to remove, edit, or reject
28-
comments, commits, code, wiki edits, issues, and other contributions
29-
that are not aligned to this Code of Conduct.
30-
By adopting this Code of Conduct,
31-
project maintainers commit themselves to fairly and consistently
32-
applying these principles to every aspect of managing this project.
33-
Project maintainers who do not follow or enforce the Code of Conduct
34-
may be permanently removed from the project team.
35-
36-
This code of conduct applies both within project spaces and in public spaces
37-
when an individual is representing the project or its community.
38-
39-
Instances of abusive, harassing, or otherwise unacceptable behavior
40-
may be reported by opening an issue
41-
or contacting one or more of the project maintainers.
42-
43-
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
44-
available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
42+
comments, commits, code, wiki edits, issues, and other contributions that are
43+
not aligned to this Code of Conduct, or to ban temporarily or permanently any
44+
contributor for other behaviors that they deem inappropriate, threatening,
45+
offensive, or harmful.
46+
47+
## Scope
48+
49+
This Code of Conduct applies both within project spaces and in public spaces
50+
when an individual is representing the project or its community. Examples of
51+
representing a project or community include using an official project e-mail
52+
address, posting via an official social media account, or acting as an appointed
53+
representative at an online or offline event. Representation of a project may be
54+
further defined and clarified by project maintainers.
55+
56+
This Code of Conduct also applies outside the project spaces when the Project
57+
Steward has a reasonable belief that an individual's behavior may have a
58+
negative impact on the project or its community.
59+
60+
## Conflict Resolution
61+
62+
We do not believe that all conflict is bad; healthy debate and disagreement
63+
often yield positive results. However, it is never okay to be disrespectful or
64+
to engage in behavior that violates the project’s code of conduct.
65+
66+
If you see someone violating the code of conduct, you are encouraged to address
67+
the behavior directly with those involved. Many issues can be resolved quickly
68+
and easily, and this gives people more control over the outcome of their
69+
dispute. If you are unable to resolve the matter for any reason, or if the
70+
behavior is threatening or harassing, report it. We are dedicated to providing
71+
an environment where participants feel welcome and safe.
72+
73+
74+
Reports should be directed to *googleapis-stewards@google.com*, the
75+
Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to
76+
receive and address reported violations of the code of conduct. They will then
77+
work with a committee consisting of representatives from the Open Source
78+
Programs Office and the Google Open Source Strategy team. If for any reason you
79+
are uncomfortable reaching out to the Project Steward, please email
80+
opensource@google.com.
81+
82+
We will investigate every complaint, but you may not receive a direct response.
83+
We will use our discretion in determining when and how to follow up on reported
84+
incidents, which may range from not taking action to permanent expulsion from
85+
the project and project-sponsored spaces. We will notify the accused of the
86+
report and provide them an opportunity to discuss it before any action is taken.
87+
The identity of the reporter will be omitted from the details of the report
88+
supplied to the accused. In potentially harmful situations, such as ongoing
89+
harassment or threats to anyone's safety, we may take action without notice.
90+
91+
## Attribution
92+
93+
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
94+
available at
95+
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

CONTRIBUTING.rst

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ In order to add a feature:
2121
- The feature must be documented in both the API and narrative
2222
documentation.
2323

24-
- The feature must work fully on the following CPython versions: 2.7,
25-
3.5, 3.6, 3.7 and 3.8 on both UNIX and Windows.
24+
- The feature must work fully on the following CPython versions:
25+
3.6, 3.7, 3.8 and 3.9 on both UNIX and Windows.
2626

2727
- The feature must not add unnecessary dependencies (where
2828
"unnecessary" is of course subjective, but new dependencies should
@@ -111,6 +111,16 @@ Coding Style
111111
should point to the official ``googleapis`` checkout and the
112112
the branch should be the main branch on that remote (``master``).
113113

114+
- This repository contains configuration for the
115+
`pre-commit <https://pre-commit.com/>`__ tool, which automates checking
116+
our linters during a commit. If you have it installed on your ``$PATH``,
117+
you can enable enforcing those checks via:
118+
119+
.. code-block:: bash
120+
121+
$ pre-commit install
122+
pre-commit installed at .git/hooks/pre-commit
123+
114124
Exceptions to PEP8:
115125

116126
- Many unit tests use a helper method, ``_call_fut`` ("FUT" is short for
@@ -192,25 +202,24 @@ Supported Python Versions
192202

193203
We support:
194204

195-
- `Python 3.5`_
196205
- `Python 3.6`_
197206
- `Python 3.7`_
198207
- `Python 3.8`_
208+
- `Python 3.9`_
199209

200-
.. _Python 3.5: https://docs.python.org/3.5/
201210
.. _Python 3.6: https://docs.python.org/3.6/
202211
.. _Python 3.7: https://docs.python.org/3.7/
203212
.. _Python 3.8: https://docs.python.org/3.8/
213+
.. _Python 3.9: https://docs.python.org/3.9/
204214

205215

206216
Supported versions can be found in our ``noxfile.py`` `config`_.
207217

208218
.. _config: https://github.com/googleapis/python-monitoring/blob/master/noxfile.py
209219

210-
Python 2.7 support is deprecated. All code changes should maintain Python 2.7 compatibility until January 1, 2020.
211220

212221
We also explicitly decided to support Python 3 beginning with version
213-
3.5. Reasons for this include:
222+
3.6. Reasons for this include:
214223

215224
- Encouraging use of newest versions of Python 3
216225
- Taking the lead of `prominent`_ open-source `projects`_

docs/conf.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -345,10 +345,11 @@
345345

346346
# Example configuration for intersphinx: refer to the Python standard library.
347347
intersphinx_mapping = {
348-
"python": ("http://python.readthedocs.org/en/latest/", None),
349-
"google-auth": ("https://google-auth.readthedocs.io/en/stable", None),
348+
"python": ("https://python.readthedocs.org/en/latest/", None),
349+
"google-auth": ("https://googleapis.dev/python/google-auth/latest/", None),
350350
"google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None,),
351-
"grpc": ("https://grpc.io/grpc/python/", None),
351+
"grpc": ("https://grpc.github.io/grpc/python/", None),
352+
"proto-plus": ("https://proto-plus-python.readthedocs.io/en/latest/", None),
352353
}
353354

354355

docs/monitoring_v3/types.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ Types for Google Cloud Monitoring v3 API
33

44
.. automodule:: google.cloud.monitoring_v3.types
55
:members:
6+
:show-inheritance:

google/cloud/monitoring_v3/services/alert_policy_service/async_client.py

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -69,28 +69,28 @@ class AlertPolicyServiceAsyncClient:
6969
AlertPolicyServiceClient.parse_alert_policy_condition_path
7070
)
7171

72-
common_project_path = staticmethod(AlertPolicyServiceClient.common_project_path)
73-
parse_common_project_path = staticmethod(
74-
AlertPolicyServiceClient.parse_common_project_path
75-
)
76-
77-
common_organization_path = staticmethod(
78-
AlertPolicyServiceClient.common_organization_path
72+
common_billing_account_path = staticmethod(
73+
AlertPolicyServiceClient.common_billing_account_path
7974
)
80-
parse_common_organization_path = staticmethod(
81-
AlertPolicyServiceClient.parse_common_organization_path
75+
parse_common_billing_account_path = staticmethod(
76+
AlertPolicyServiceClient.parse_common_billing_account_path
8277
)
8378

8479
common_folder_path = staticmethod(AlertPolicyServiceClient.common_folder_path)
8580
parse_common_folder_path = staticmethod(
8681
AlertPolicyServiceClient.parse_common_folder_path
8782
)
8883

89-
common_billing_account_path = staticmethod(
90-
AlertPolicyServiceClient.common_billing_account_path
84+
common_organization_path = staticmethod(
85+
AlertPolicyServiceClient.common_organization_path
9186
)
92-
parse_common_billing_account_path = staticmethod(
93-
AlertPolicyServiceClient.parse_common_billing_account_path
87+
parse_common_organization_path = staticmethod(
88+
AlertPolicyServiceClient.parse_common_organization_path
89+
)
90+
91+
common_project_path = staticmethod(AlertPolicyServiceClient.common_project_path)
92+
parse_common_project_path = staticmethod(
93+
AlertPolicyServiceClient.parse_common_project_path
9494
)
9595

9696
common_location_path = staticmethod(AlertPolicyServiceClient.common_location_path)
@@ -101,6 +101,15 @@ class AlertPolicyServiceAsyncClient:
101101
from_service_account_file = AlertPolicyServiceClient.from_service_account_file
102102
from_service_account_json = from_service_account_file
103103

104+
@property
105+
def transport(self) -> AlertPolicyServiceTransport:
106+
"""Return the transport used by the client instance.
107+
108+
Returns:
109+
AlertPolicyServiceTransport: The transport used by the client instance.
110+
"""
111+
return self._client.transport
112+
104113
get_transport_class = functools.partial(
105114
type(AlertPolicyServiceClient).get_transport_class,
106115
type(AlertPolicyServiceClient),
@@ -203,7 +212,8 @@ async def list_alert_policies(
203212
# Create or coerce a protobuf request object.
204213
# Sanity check: If we got a request object, we should *not* have
205214
# gotten any keyword arguments that map to the request.
206-
if request is not None and any([name]):
215+
has_flattened_params = any([name])
216+
if request is not None and has_flattened_params:
207217
raise ValueError(
208218
"If the `request` argument is set, then none of "
209219
"the individual field arguments should be set."
@@ -295,7 +305,8 @@ async def get_alert_policy(
295305
# Create or coerce a protobuf request object.
296306
# Sanity check: If we got a request object, we should *not* have
297307
# gotten any keyword arguments that map to the request.
298-
if request is not None and any([name]):
308+
has_flattened_params = any([name])
309+
if request is not None and has_flattened_params:
299310
raise ValueError(
300311
"If the `request` argument is set, then none of "
301312
"the individual field arguments should be set."
@@ -398,7 +409,8 @@ async def create_alert_policy(
398409
# Create or coerce a protobuf request object.
399410
# Sanity check: If we got a request object, we should *not* have
400411
# gotten any keyword arguments that map to the request.
401-
if request is not None and any([name, alert_policy]):
412+
has_flattened_params = any([name, alert_policy])
413+
if request is not None and has_flattened_params:
402414
raise ValueError(
403415
"If the `request` argument is set, then none of "
404416
"the individual field arguments should be set."
@@ -471,7 +483,8 @@ async def delete_alert_policy(
471483
# Create or coerce a protobuf request object.
472484
# Sanity check: If we got a request object, we should *not* have
473485
# gotten any keyword arguments that map to the request.
474-
if request is not None and any([name]):
486+
has_flattened_params = any([name])
487+
if request is not None and has_flattened_params:
475488
raise ValueError(
476489
"If the `request` argument is set, then none of "
477490
"the individual field arguments should be set."
@@ -590,7 +603,8 @@ async def update_alert_policy(
590603
# Create or coerce a protobuf request object.
591604
# Sanity check: If we got a request object, we should *not* have
592605
# gotten any keyword arguments that map to the request.
593-
if request is not None and any([update_mask, alert_policy]):
606+
has_flattened_params = any([update_mask, alert_policy])
607+
if request is not None and has_flattened_params:
594608
raise ValueError(
595609
"If the `request` argument is set, then none of "
596610
"the individual field arguments should be set."

0 commit comments

Comments
 (0)