{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/comments/83147379","pull_request_review_id":4007073,"id":83147379,"diff_hunk":"@@ -0,0 +1,183 @@\n+# Copyright 2016 Google Inc.\n+#\n+# Licensed under the Apache License, Version 2.0 (the \"License\");\n+# you may not use this file except in compliance with the License.\n+# You may obtain a copy of the License at\n+#\n+#     http://www.apache.org/licenses/LICENSE-2.0\n+#\n+# Unless required by applicable law or agreed to in writing, software\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+# See the License for the specific language governing permissions and\n+# limitations under the License.\n+\n+\"\"\"Helper to make Speech requests from IO stream\"\"\"\n+\n+from google.cloud.grpc.speech.v1beta1.cloud_speech_pb2 import RecognitionConfig\n+from google.cloud.grpc.speech.v1beta1.cloud_speech_pb2 import (\n+    StreamingRecognitionConfig)\n+from google.cloud.grpc.speech.v1beta1.cloud_speech_pb2 import (\n+    StreamingRecognizeRequest)\n+\n+\n+def _make_request_stream(sample, language_code=None, max_alternatives=None,\n+                         profanity_filter=None, speech_context=None,\n+                         single_utterance=None, interim_results=None):\n+    \"\"\"Generate stream of requests from sample.\n+\n+    :type sample: :class:`~google.cloud.speech.sample.Sample`\n+    :param sample: Instance of ``Sample`` containing audio information.\n+\n+    :type language_code: str\n+    :param language_code: (Optional) The language of the supplied audio as\n+                          BCP-47 language tag. Example: ``'en-GB'``.\n+                          If omitted, defaults to ``'en-US'``.\n+\n+    :type max_alternatives: int\n+    :param max_alternatives: (Optional) Maximum number of recognition\n+                             hypotheses to be returned. The server may\n+                             return fewer than maxAlternatives.\n+                             Valid values are 0-30. A value of 0 or 1\n+                             will return a maximum of 1. Defaults to 1\n+\n+    :type profanity_filter: bool\n+    :param profanity_filter: If True, the server will attempt to filter\n+                             out profanities, replacing all but the\n+                             initial character in each filtered word with\n+                             asterisks, e.g. ``'f***'``. If False or\n+                             omitted, profanities won't be filtered out.\n+\n+    :type speech_context: list\n+    :param speech_context: A list of strings (max 50) containing words and\n+                           phrases \"hints\" so that the speech recognition\n+                           is more likely to recognize them. This can be\n+                           used to improve the accuracy for specific words\n+                           and phrases. This can also be used to add new\n+                           words to the vocabulary of the recognizer.\n+\n+    :type single_utterance: boolean\n+    :param single_utterance: [Optional] If false or omitted, the recognizer\n+                             will perform continuous recognition\n+                             (continuing to process audio even if the user\n+                             pauses speaking) until the client closes the\n+                             output stream (gRPC API) or when the maximum\n+                             time limit has been reached. Multiple\n+                             SpeechRecognitionResults with the is_final\n+                             flag set to true may be returned.\n+\n+                             If true, the recognizer will detect a single\n+                             spoken utterance. When it detects that the\n+                             user has paused or stopped speaking, it will\n+                             return an END_OF_UTTERANCE event and cease\n+                             recognition. It will return no more than one\n+                             SpeechRecognitionResult with the is_final flag\n+                             set to true.\n+\n+    :type interim_results: boolean\n+    :param interim_results: [Optional] If true, interim results (tentative\n+                            hypotheses) may be returned as they become\n+                            available (these interim results are indicated\n+                            with the is_final=false flag). If false or\n+                            omitted, only is_final=true result(s) are\n+                            returned.\n+    \"\"\"\n+    config_request = _make_streaming_config(\n+        sample, language_code=language_code, max_alternatives=max_alternatives,\n+        profanity_filter=profanity_filter, speech_context=speech_context,\n+        single_utterance=single_utterance, interim_results=interim_results)\n+\n+    # The config request MUST go first and not contain any audio data.\n+    yield config_request\n+\n+    buff = b''\n+    for data in sample.stream:\n+        # Optimize the request data size to around 100ms.\n+        if len(buff) + len(data) >= sample.chunk_size:\n+            yield StreamingRecognizeRequest(audio_content=buff)\n+            buff = data\n+        else:\n+            buff += data\n+\n+    # Clear final contents of buffer.\n+    yield StreamingRecognizeRequest(audio_content=buff)","path":"speech/google/cloud/speech/streaming/request.py","position":103,"original_position":103,"commit_id":"57846bf27a75efa9c5390766c94713c29b443e4d","original_commit_id":"57846bf27a75efa9c5390766c94713c29b443e4d","user":{"login":"daspecster","id":192456,"avatar_url":"https://avatars.githubusercontent.com/u/192456?v=3","gravatar_id":"","url":"https://api.github.com/users/daspecster","html_url":"https://github.com/daspecster","followers_url":"https://api.github.com/users/daspecster/followers","following_url":"https://api.github.com/users/daspecster/following{/other_user}","gists_url":"https://api.github.com/users/daspecster/gists{/gist_id}","starred_url":"https://api.github.com/users/daspecster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daspecster/subscriptions","organizations_url":"https://api.github.com/users/daspecster/orgs","repos_url":"https://api.github.com/users/daspecster/repos","events_url":"https://api.github.com/users/daspecster/events{/privacy}","received_events_url":"https://api.github.com/users/daspecster/received_events","type":"User","site_admin":false},"body":"I've updated per your suggestion.\r\n\r\nFYI, when streaming a non-file(mic input), I found that it would return chunks much smaller than what you ask it for. Which would then cause it to issue many requests that were not the optimal ~100ms size.  But adding this doesn't really make any difference in the requests as long as the buffer is there. Obviously it should have less disk reads, which is good.","created_at":"2016-10-13T05:44:44Z","updated_at":"2016-10-13T05:44:44Z","html_url":"https://github.com/GoogleCloudPlatform/google-cloud-python/pull/2523#discussion_r83147379","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/2523","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/comments/83147379"},"html":{"href":"https://github.com/GoogleCloudPlatform/google-cloud-python/pull/2523#discussion_r83147379"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/2523"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/2523","id":88745428,"html_url":"https://github.com/GoogleCloudPlatform/google-cloud-python/pull/2523","diff_url":"https://github.com/GoogleCloudPlatform/google-cloud-python/pull/2523.diff","patch_url":"https://github.com/GoogleCloudPlatform/google-cloud-python/pull/2523.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/issues/2523","number":2523,"state":"open","locked":false,"title":"Add Speech Streaming API.","user":{"login":"daspecster","id":192456,"avatar_url":"https://avatars.githubusercontent.com/u/192456?v=3","gravatar_id":"","url":"https://api.github.com/users/daspecster","html_url":"https://github.com/daspecster","followers_url":"https://api.github.com/users/daspecster/followers","following_url":"https://api.github.com/users/daspecster/following{/other_user}","gists_url":"https://api.github.com/users/daspecster/gists{/gist_id}","starred_url":"https://api.github.com/users/daspecster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daspecster/subscriptions","organizations_url":"https://api.github.com/users/daspecster/orgs","repos_url":"https://api.github.com/users/daspecster/repos","events_url":"https://api.github.com/users/daspecster/events{/privacy}","received_events_url":"https://api.github.com/users/daspecster/received_events","type":"User","site_admin":false},"body":"One step closer to #2522.\r\n\r\nSorry this one is kind of rough.\r\n\r\nI'm really not sure how to handle the `interim_results` for this. It ends up making for some weird object handling.","created_at":"2016-10-10T23:02:48Z","updated_at":"2016-10-13T05:44:44Z","closed_at":null,"merged_at":null,"merge_commit_sha":"dd1e3b0dcc275e60249505c4ab72403add70e0b0","assignee":{"login":"tseaver","id":242750,"avatar_url":"https://avatars.githubusercontent.com/u/242750?v=3","gravatar_id":"","url":"https://api.github.com/users/tseaver","html_url":"https://github.com/tseaver","followers_url":"https://api.github.com/users/tseaver/followers","following_url":"https://api.github.com/users/tseaver/following{/other_user}","gists_url":"https://api.github.com/users/tseaver/gists{/gist_id}","starred_url":"https://api.github.com/users/tseaver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tseaver/subscriptions","organizations_url":"https://api.github.com/users/tseaver/orgs","repos_url":"https://api.github.com/users/tseaver/repos","events_url":"https://api.github.com/users/tseaver/events{/privacy}","received_events_url":"https://api.github.com/users/tseaver/received_events","type":"User","site_admin":false},"assignees":[{"login":"tseaver","id":242750,"avatar_url":"https://avatars.githubusercontent.com/u/242750?v=3","gravatar_id":"","url":"https://api.github.com/users/tseaver","html_url":"https://github.com/tseaver","followers_url":"https://api.github.com/users/tseaver/followers","following_url":"https://api.github.com/users/tseaver/following{/other_user}","gists_url":"https://api.github.com/users/tseaver/gists{/gist_id}","starred_url":"https://api.github.com/users/tseaver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tseaver/subscriptions","organizations_url":"https://api.github.com/users/tseaver/orgs","repos_url":"https://api.github.com/users/tseaver/repos","events_url":"https://api.github.com/users/tseaver/events{/privacy}","received_events_url":"https://api.github.com/users/tseaver/received_events","type":"User","site_admin":false},{"login":"dhermes","id":520669,"avatar_url":"https://avatars.githubusercontent.com/u/520669?v=3","gravatar_id":"","url":"https://api.github.com/users/dhermes","html_url":"https://github.com/dhermes","followers_url":"https://api.github.com/users/dhermes/followers","following_url":"https://api.github.com/users/dhermes/following{/other_user}","gists_url":"https://api.github.com/users/dhermes/gists{/gist_id}","starred_url":"https://api.github.com/users/dhermes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dhermes/subscriptions","organizations_url":"https://api.github.com/users/dhermes/orgs","repos_url":"https://api.github.com/users/dhermes/repos","events_url":"https://api.github.com/users/dhermes/events{/privacy}","received_events_url":"https://api.github.com/users/dhermes/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/2523/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/2523/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/issues/2523/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/statuses/57846bf27a75efa9c5390766c94713c29b443e4d","head":{"label":"daspecster:speech-streaming","ref":"speech-streaming","sha":"57846bf27a75efa9c5390766c94713c29b443e4d","user":{"login":"daspecster","id":192456,"avatar_url":"https://avatars.githubusercontent.com/u/192456?v=3","gravatar_id":"","url":"https://api.github.com/users/daspecster","html_url":"https://github.com/daspecster","followers_url":"https://api.github.com/users/daspecster/followers","following_url":"https://api.github.com/users/daspecster/following{/other_user}","gists_url":"https://api.github.com/users/daspecster/gists{/gist_id}","starred_url":"https://api.github.com/users/daspecster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daspecster/subscriptions","organizations_url":"https://api.github.com/users/daspecster/orgs","repos_url":"https://api.github.com/users/daspecster/repos","events_url":"https://api.github.com/users/daspecster/events{/privacy}","received_events_url":"https://api.github.com/users/daspecster/received_events","type":"User","site_admin":false},"repo":{"id":43923717,"name":"google-cloud-python","full_name":"daspecster/google-cloud-python","owner":{"login":"daspecster","id":192456,"avatar_url":"https://avatars.githubusercontent.com/u/192456?v=3","gravatar_id":"","url":"https://api.github.com/users/daspecster","html_url":"https://github.com/daspecster","followers_url":"https://api.github.com/users/daspecster/followers","following_url":"https://api.github.com/users/daspecster/following{/other_user}","gists_url":"https://api.github.com/users/daspecster/gists{/gist_id}","starred_url":"https://api.github.com/users/daspecster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daspecster/subscriptions","organizations_url":"https://api.github.com/users/daspecster/orgs","repos_url":"https://api.github.com/users/daspecster/repos","events_url":"https://api.github.com/users/daspecster/events{/privacy}","received_events_url":"https://api.github.com/users/daspecster/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/daspecster/google-cloud-python","description":"Google Cloud Client Library for Python","fork":true,"url":"https://api.github.com/repos/daspecster/google-cloud-python","forks_url":"https://api.github.com/repos/daspecster/google-cloud-python/forks","keys_url":"https://api.github.com/repos/daspecster/google-cloud-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/daspecster/google-cloud-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/daspecster/google-cloud-python/teams","hooks_url":"https://api.github.com/repos/daspecster/google-cloud-python/hooks","issue_events_url":"https://api.github.com/repos/daspecster/google-cloud-python/issues/events{/number}","events_url":"https://api.github.com/repos/daspecster/google-cloud-python/events","assignees_url":"https://api.github.com/repos/daspecster/google-cloud-python/assignees{/user}","branches_url":"https://api.github.com/repos/daspecster/google-cloud-python/branches{/branch}","tags_url":"https://api.github.com/repos/daspecster/google-cloud-python/tags","blobs_url":"https://api.github.com/repos/daspecster/google-cloud-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/daspecster/google-cloud-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/daspecster/google-cloud-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/daspecster/google-cloud-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/daspecster/google-cloud-python/statuses/{sha}","languages_url":"https://api.github.com/repos/daspecster/google-cloud-python/languages","stargazers_url":"https://api.github.com/repos/daspecster/google-cloud-python/stargazers","contributors_url":"https://api.github.com/repos/daspecster/google-cloud-python/contributors","subscribers_url":"https://api.github.com/repos/daspecster/google-cloud-python/subscribers","subscription_url":"https://api.github.com/repos/daspecster/google-cloud-python/subscription","commits_url":"https://api.github.com/repos/daspecster/google-cloud-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/daspecster/google-cloud-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/daspecster/google-cloud-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/daspecster/google-cloud-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/daspecster/google-cloud-python/contents/{+path}","compare_url":"https://api.github.com/repos/daspecster/google-cloud-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/daspecster/google-cloud-python/merges","archive_url":"https://api.github.com/repos/daspecster/google-cloud-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/daspecster/google-cloud-python/downloads","issues_url":"https://api.github.com/repos/daspecster/google-cloud-python/issues{/number}","pulls_url":"https://api.github.com/repos/daspecster/google-cloud-python/pulls{/number}","milestones_url":"https://api.github.com/repos/daspecster/google-cloud-python/milestones{/number}","notifications_url":"https://api.github.com/repos/daspecster/google-cloud-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/daspecster/google-cloud-python/labels{/name}","releases_url":"https://api.github.com/repos/daspecster/google-cloud-python/releases{/id}","deployments_url":"https://api.github.com/repos/daspecster/google-cloud-python/deployments","created_at":"2015-10-09T00:31:09Z","updated_at":"2016-09-08T16:00:35Z","pushed_at":"2016-10-12T21:03:59Z","git_url":"git://github.com/daspecster/google-cloud-python.git","ssh_url":"git@github.com:daspecster/google-cloud-python.git","clone_url":"https://github.com/daspecster/google-cloud-python.git","svn_url":"https://github.com/daspecster/google-cloud-python","homepage":"https://googlecloudplatform.github.io/gcloud-python/","size":73781,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"1d39cfdbbfc7a22c673c8b15fdb2c52d76358787","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":16316451,"name":"google-cloud-python","full_name":"GoogleCloudPlatform/google-cloud-python","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/google-cloud-python","description":"Google Cloud Client Library for Python","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/deployments","created_at":"2014-01-28T15:51:47Z","updated_at":"2016-10-11T20:54:18Z","pushed_at":"2016-10-12T21:28:44Z","git_url":"git://github.com/GoogleCloudPlatform/google-cloud-python.git","ssh_url":"git@github.com:GoogleCloudPlatform/google-cloud-python.git","clone_url":"https://github.com/GoogleCloudPlatform/google-cloud-python.git","svn_url":"https://github.com/GoogleCloudPlatform/google-cloud-python","homepage":"https://googlecloudplatform.github.io/google-cloud-python/","size":95349,"stargazers_count":413,"watchers_count":413,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":208,"mirror_url":null,"open_issues_count":218,"forks":208,"open_issues":218,"watchers":413,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/2523"},"html":{"href":"https://github.com/GoogleCloudPlatform/google-cloud-python/pull/2523"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/issues/2523"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/issues/2523/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/2523/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/pulls/2523/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/google-cloud-python/statuses/57846bf27a75efa9c5390766c94713c29b443e4d"}}}}
{"actor":{"display_login":"daspecster"}}