From b585a288431681bbb9fcfa7d8b75f31688d8d28f Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Mon, 27 Aug 2018 15:53:59 -0700 Subject: [PATCH 01/10] Generated sample: language_sentiment_text FYI generated from the following YAML GAPIC config: sample_value_sets: - id: analyze_sentiment title: "Analyzing Sentiment" description: "Proof of concept for analyzing sentiment" parameters: defaults: - document.type=PLAIN_TEXT - document.content="Your text to analyze, e.g. Hello, world!" attributes: - parameter: document.content sample_argument: true on_success: - define: sentiment=$resp.document_sentiment - print: - "Score: %s" - sentiment.score - print: - "Magnitude: %s" - sentiment.magnitude samples: standalone: - calling_forms: ".*" value_sets: analyze_sentiment region_tag: language_sentiment_text --- .../generated-samples/v1/analyze_sentiment.py | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 language/generated-samples/v1/analyze_sentiment.py diff --git a/language/generated-samples/v1/analyze_sentiment.py b/language/generated-samples/v1/analyze_sentiment.py new file mode 100644 index 000000000000..9dc5fb73e265 --- /dev/null +++ b/language/generated-samples/v1/analyze_sentiment.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2018 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 +# +# https://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. + +#### DO NOT EDIT! This is a generated sample ("Request", "analyze_sentiment") + +# To run with the published packages, execute the following before running this code: +# pip install google-cloud-language + +# [START language_sentiment_text] + +from google.cloud import language_v1 +from google.cloud.language_v1 import enums + + +def sample_analyze_sentiment(content): + # [START language_sentiment_text_core] + + client = language_v1.LanguageServiceClient() + + # content = 'Your text to analyze, e.g. Hello, world!' + + type_ = enums.Document.Type.PLAIN_TEXT + document = {'type': type_, 'content': content} + + response = client.analyze_sentiment(document) + sentiment = response.document_sentiment + print('Score: {}'.format(sentiment.score)) + print('Magnitude: {}'.format(sentiment.magnitude)) + + # [END language_sentiment_text_core] + + +# [END language_sentiment_text] + + +def main(): + import sys + sample_analyze_sentiment(*sys.argv[1:]) + + +if __name__ == '__main__': + main() From 7ed0cabd2ef0b4e5b44b9b353e01ac128f5769cf Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Mon, 27 Aug 2018 15:55:13 -0700 Subject: [PATCH 02/10] Add requirements.txt (not currently generated) --- language/generated-samples/v1/requirements.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 language/generated-samples/v1/requirements.txt diff --git a/language/generated-samples/v1/requirements.txt b/language/generated-samples/v1/requirements.txt new file mode 100644 index 000000000000..2cbc37eb15b1 --- /dev/null +++ b/language/generated-samples/v1/requirements.txt @@ -0,0 +1 @@ +google-cloud-language==1.0.2 From 3f11bff8958888214053f64882e1b7e755c63e46 Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Mon, 27 Aug 2018 15:55:31 -0700 Subject: [PATCH 03/10] Add test for language_sentiment_text (not currently generated) --- .../v1/analyze_sentiment_test.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 language/generated-samples/v1/analyze_sentiment_test.py diff --git a/language/generated-samples/v1/analyze_sentiment_test.py b/language/generated-samples/v1/analyze_sentiment_test.py new file mode 100644 index 000000000000..2141a0bafe43 --- /dev/null +++ b/language/generated-samples/v1/analyze_sentiment_test.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 Google, Inc. +# +# 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 analyze_sentiment + +def test_analyze_sentiment_text_positive(capsys): + analyze_sentiment.sample_analyze_sentiment('Happy Happy Joy Joy') + out, _ = capsys.readouterr() + assert 'Score: 0.' in out + +def test_analyze_sentiment_text_negative(capsys): + analyze_sentiment.sample_analyze_sentiment('Angry Angry Sad Sad') + out, _ = capsys.readouterr() + assert 'Score: -0.' in out From 29809fa14636165eaebd444de238f4f812aee0c7 Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Mon, 27 Aug 2018 16:21:40 -0700 Subject: [PATCH 04/10] Move language_python_migration_document_text Move language_python_migration_document_text so it uses a different snippet in preparation for deprecation of existing language_sentiment_text sample --- language/cloud-client/v1/snippets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/language/cloud-client/v1/snippets.py b/language/cloud-client/v1/snippets.py index 3b1c02f9c68f..a41c7cb3ccc6 100644 --- a/language/cloud-client/v1/snippets.py +++ b/language/cloud-client/v1/snippets.py @@ -39,12 +39,10 @@ def sentiment_text(text): text = text.decode('utf-8') # Instantiates a plain text document. - # [START language_python_migration_document_text] # [START language_python_migration_sentiment_text] document = types.Document( content=text, type=enums.Document.Type.PLAIN_TEXT) - # [END language_python_migration_document_text] # Detects sentiment in the document. You can also analyze HTML with: # document.type == enums.Document.Type.HTML @@ -87,9 +85,11 @@ def entities_text(text): # Instantiates a plain text document. # [START language_python_migration_entities_text] + # [START language_python_migration_document_text] document = types.Document( content=text, type=enums.Document.Type.PLAIN_TEXT) + # [END language_python_migration_document_text] # Detects entities in the document. You can also analyze HTML with: # document.type == enums.Document.Type.HTML From 48bb1138c7f4796dc433f452a83a06f46f27781c Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Mon, 27 Aug 2018 17:09:53 -0700 Subject: [PATCH 05/10] Rename generated snippets so filename == region tag --- .../v1/{analyze_sentiment.py => language_sentiment_text.py} | 0 ...nalyze_sentiment_test.py => language_sentiment_text_test.py} | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename language/generated-samples/v1/{analyze_sentiment.py => language_sentiment_text.py} (100%) rename language/generated-samples/v1/{analyze_sentiment_test.py => language_sentiment_text_test.py} (96%) diff --git a/language/generated-samples/v1/analyze_sentiment.py b/language/generated-samples/v1/language_sentiment_text.py similarity index 100% rename from language/generated-samples/v1/analyze_sentiment.py rename to language/generated-samples/v1/language_sentiment_text.py diff --git a/language/generated-samples/v1/analyze_sentiment_test.py b/language/generated-samples/v1/language_sentiment_text_test.py similarity index 96% rename from language/generated-samples/v1/analyze_sentiment_test.py rename to language/generated-samples/v1/language_sentiment_text_test.py index 2141a0bafe43..c39dd53d20f4 100644 --- a/language/generated-samples/v1/analyze_sentiment_test.py +++ b/language/generated-samples/v1/language_sentiment_text_test.py @@ -15,7 +15,7 @@ import os -import analyze_sentiment +import language_sentiment_text def test_analyze_sentiment_text_positive(capsys): analyze_sentiment.sample_analyze_sentiment('Happy Happy Joy Joy') From df7005173b869245d63a057016409cbd587898e1 Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Mon, 27 Aug 2018 17:12:20 -0700 Subject: [PATCH 06/10] Fix test for generated code sample (file rename to match region tag) --- language/generated-samples/v1/language_sentiment_text_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/language/generated-samples/v1/language_sentiment_text_test.py b/language/generated-samples/v1/language_sentiment_text_test.py index c39dd53d20f4..07121a3072cd 100644 --- a/language/generated-samples/v1/language_sentiment_text_test.py +++ b/language/generated-samples/v1/language_sentiment_text_test.py @@ -18,11 +18,11 @@ import language_sentiment_text def test_analyze_sentiment_text_positive(capsys): - analyze_sentiment.sample_analyze_sentiment('Happy Happy Joy Joy') + language_sentiment_text.sample_analyze_sentiment('Happy Happy Joy Joy') out, _ = capsys.readouterr() assert 'Score: 0.' in out def test_analyze_sentiment_text_negative(capsys): - analyze_sentiment.sample_analyze_sentiment('Angry Angry Sad Sad') + language_sentiment_text.sample_analyze_sentiment('Angry Angry Sad Sad') out, _ = capsys.readouterr() assert 'Score: -0.' in out From 1ac1bb195cac8f0120810288cae73c265d179871 Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Mon, 27 Aug 2018 17:23:48 -0700 Subject: [PATCH 07/10] Update Copyright year to 2018 in new hand-written file --- language/generated-samples/v1/language_sentiment_text_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language/generated-samples/v1/language_sentiment_text_test.py b/language/generated-samples/v1/language_sentiment_text_test.py index 07121a3072cd..a98fd86161b0 100644 --- a/language/generated-samples/v1/language_sentiment_text_test.py +++ b/language/generated-samples/v1/language_sentiment_text_test.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2017 Google, Inc. +# Copyright 2018 Google, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From dabc4cd85655fd1b2fcc3d3b5e6f0ac1f96b18fa Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Tue, 28 Aug 2018 10:24:33 -0700 Subject: [PATCH 08/10] Fix lint errors of #language_sentiment_text test --- language/generated-samples/v1/language_sentiment_text_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/language/generated-samples/v1/language_sentiment_text_test.py b/language/generated-samples/v1/language_sentiment_text_test.py index a98fd86161b0..e1876da27525 100644 --- a/language/generated-samples/v1/language_sentiment_text_test.py +++ b/language/generated-samples/v1/language_sentiment_text_test.py @@ -13,15 +13,15 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os - import language_sentiment_text + def test_analyze_sentiment_text_positive(capsys): language_sentiment_text.sample_analyze_sentiment('Happy Happy Joy Joy') out, _ = capsys.readouterr() assert 'Score: 0.' in out + def test_analyze_sentiment_text_negative(capsys): language_sentiment_text.sample_analyze_sentiment('Angry Angry Sad Sad') out, _ = capsys.readouterr() From c62ac9d093e524e062b33e6cab593e9ad8b33b19 Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Wed, 29 Aug 2018 12:07:18 -0700 Subject: [PATCH 09/10] Regenerate #language_sentiment_text to fix lint errors (updated Python sample template) --- language/generated-samples/v1/language_sentiment_text.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/language/generated-samples/v1/language_sentiment_text.py b/language/generated-samples/v1/language_sentiment_text.py index 9dc5fb73e265..84d2e41f4386 100644 --- a/language/generated-samples/v1/language_sentiment_text.py +++ b/language/generated-samples/v1/language_sentiment_text.py @@ -14,11 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -#### DO NOT EDIT! This is a generated sample ("Request", "analyze_sentiment") +# DO NOT EDIT! This is a generated sample ("Request", "analyze_sentiment") -# To run with the published packages, execute the following before running this code: +# To install the latest published package dependency, execute the following: # pip install google-cloud-language +import sys + # [START language_sentiment_text] from google.cloud import language_v1 @@ -47,7 +49,7 @@ def sample_analyze_sentiment(content): def main(): - import sys + # FIXME: Convert argv from strings to the correct types. sample_analyze_sentiment(*sys.argv[1:]) From 1b9aa96e74bb897292642b6dfea5b16f8bddf69e Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Thu, 30 Aug 2018 15:27:32 -0700 Subject: [PATCH 10/10] Binary string support in samples! From PR https://github.com/googleapis/gapic-generator/pull/2272 --- language/generated-samples/v1/language_sentiment_text.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/language/generated-samples/v1/language_sentiment_text.py b/language/generated-samples/v1/language_sentiment_text.py index 84d2e41f4386..d99f5d09c3a6 100644 --- a/language/generated-samples/v1/language_sentiment_text.py +++ b/language/generated-samples/v1/language_sentiment_text.py @@ -25,6 +25,7 @@ from google.cloud import language_v1 from google.cloud.language_v1 import enums +import six def sample_analyze_sentiment(content): @@ -34,6 +35,9 @@ def sample_analyze_sentiment(content): # content = 'Your text to analyze, e.g. Hello, world!' + if isinstance(content, six.binary_type): + content = content.decode('utf-8') + type_ = enums.Document.Type.PLAIN_TEXT document = {'type': type_, 'content': content}