Skip to content

Commit

Permalink
PubSub: Document batch settings, make synth operations idempotent (#8448
Browse files Browse the repository at this point in the history
)

* Make synth operations on PubSub types idempotent

This commit assures that the code block for injecting FlowControl docs
is not added on every synth tool run - it is only added if one does not
exist yet.

* Document PubSub BatchSettings

* Document PubSub types directly (i.e. w/o synth)
  • Loading branch information
plamut authored Jun 20, 2019
1 parent a1201f3 commit d7a1e50
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 113 deletions.
82 changes: 16 additions & 66 deletions pubsub/google/cloud/pubsub_v1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,22 @@
1000, # max_messages: 1,000
)

if sys.version_info >= (3, 5):
BatchSettings.__doc__ = "The settings for batch publishing the messages."
BatchSettings.max_bytes.__doc__ = (
"The maximum total size of the messages to collect before automatically "
"publishing the batch."
)
BatchSettings.max_latency.__doc__ = (
"The maximum number of seconds to wait for additional messages before "
"automatically publishing the batch."
)
BatchSettings.max_messages.__doc__ = (
"The maximum number of messages to collect before automatically "
"publishing the batch."
)


# Define the type class and default values for flow control settings.
#
# This class is used when creating a publisher or subscriber client, and
Expand Down Expand Up @@ -104,72 +120,6 @@
)


if sys.version_info >= (3, 5):
FlowControl.__doc__ = (
"The settings for controlling the rate at which messages are pulled "
"with an asynchronous subscription."
)
FlowControl.max_bytes.__doc__ = (
"The maximum total size of received - but not yet processed - messages "
"before pausing the message stream."
)
FlowControl.max_messages.__doc__ = (
"The maximum number of received - but not yet processed - messages before "
"pausing the message stream."
)
FlowControl.resume_threshold.__doc__ = (
"The relative threshold of the ``max_bytes`` and ``max_messages`` limits "
"below which to resume the message stream. Must be a positive number not "
"greater than ``1.0``."
)
FlowControl.max_requests.__doc__ = "Currently not in use."
FlowControl.max_request_batch_size.__doc__ = (
"The maximum number of requests scheduled by callbacks to process and "
"dispatch at a time."
)
FlowControl.max_request_batch_latency.__doc__ = (
"The maximum amount of time in seconds to wait for additional request "
"items before processing the next batch of requests."
)
FlowControl.max_lease_duration.__doc__ = (
"The maximum amount of time in seconds to hold a lease on a message "
"before dropping it from the lease management."
)


if sys.version_info >= (3, 5):
FlowControl.__doc__ = (
"The settings for controlling the rate at which messages are pulled "
"with an asynchronous subscription."
)
FlowControl.max_bytes.__doc__ = (
"The maximum total size of received - but not yet processed - messages "
"before pausing the message stream."
)
FlowControl.max_messages.__doc__ = (
"The maximum number of received - but not yet processed - messages before "
"pausing the message stream."
)
FlowControl.resume_threshold.__doc__ = (
"The relative threshold of the ``max_bytes`` and ``max_messages`` limits "
"below which to resume the message stream. Must be a positive number not "
"greater than ``1.0``."
)
FlowControl.max_requests.__doc__ = "Currently not in use."
FlowControl.max_request_batch_size.__doc__ = (
"The maximum number of requests scheduled by callbacks to process and "
"dispatch at a time."
)
FlowControl.max_request_batch_latency.__doc__ = (
"The maximum amount of time in seconds to wait for additional request "
"items before processing the next batch of requests."
)
FlowControl.max_lease_duration.__doc__ = (
"The maximum amount of time in seconds to hold a lease on a message "
"before dropping it from the lease management."
)


_shared_modules = [
http_pb2,
iam_policy_pb2,
Expand Down
10 changes: 5 additions & 5 deletions pubsub/synth.metadata
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
{
"updateTime": "2019-06-19T12:19:44.898368Z",
"updateTime": "2019-06-20T16:24:11.087131Z",
"sources": [
{
"generator": {
"name": "artman",
"version": "0.28.0",
"dockerImage": "googleapis/artman@sha256:6ced5a36b08b82a328c69844e629300d58c14067f25cadab47f52542bdef7daf"
"version": "0.29.0",
"dockerImage": "googleapis/artman@sha256:b79c8c20ee51e5302686c9d1294672d59290df1489be93749ef17d0172cc508d"
}
},
{
"git": {
"name": "googleapis",
"remote": "https://github.com/googleapis/googleapis.git",
"sha": "ac13167e31a20314aa05cc9911c95df250880485",
"internalRef": "253867808"
"sha": "45e125f9e30dc5d45b52752b3ab78dd4f6084f2d",
"internalRef": "254026509"
}
},
{
Expand Down
42 changes: 0 additions & 42 deletions pubsub/synth.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,48 +167,6 @@ def _merge_dict(d1, d2):
"""
)

# document FlowControl settings in Python 3.5+
s.replace(
"google/cloud/pubsub_v1/types.py",
"FlowControl.__new__.__defaults__ = \(.*?\)",
textwrap.dedent("""\
\g<0>
if sys.version_info >= (3, 5):
FlowControl.__doc__ = (
"The settings for controlling the rate at which messages are pulled "
"with an asynchronous subscription."
)
FlowControl.max_bytes.__doc__ = (
"The maximum total size of received - but not yet processed - messages "
"before pausing the message stream."
)
FlowControl.max_messages.__doc__ = (
"The maximum number of received - but not yet processed - messages before "
"pausing the message stream."
)
FlowControl.resume_threshold.__doc__ = (
"The relative threshold of the ``max_bytes`` and ``max_messages`` limits "
"below which to resume the message stream. Must be a positive number not "
"greater than ``1.0``."
)
FlowControl.max_requests.__doc__ = "Currently not in use."
FlowControl.max_request_batch_size.__doc__ = (
"The maximum number of requests scheduled by callbacks to process and "
"dispatch at a time."
)
FlowControl.max_request_batch_latency.__doc__ = (
"The maximum amount of time in seconds to wait for additional request "
"items before processing the next batch of requests."
)
FlowControl.max_lease_duration.__doc__ = (
"The maximum amount of time in seconds to hold a lease on a message "
"before dropping it from the lease management."
)
"""),
flags=re.DOTALL,
)

# ----------------------------------------------------------------------------
# Add templated files
# ----------------------------------------------------------------------------
Expand Down

0 comments on commit d7a1e50

Please sign in to comment.