From 98fc9e270329ecfe315844c65cb1a68a35330110 Mon Sep 17 00:00:00 2001 From: Gus Class Date: Thu, 25 May 2017 14:52:39 -0700 Subject: [PATCH] Adds quickstart [(#964)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/964) --- samples/quickstart/README.rst | 102 ++++++++++++++++++++++++++ samples/quickstart/README.rst.in | 19 +++++ samples/quickstart/quickstart.py | 67 +++++++++++++++++ samples/quickstart/quickstart_test.py | 26 +++++++ samples/quickstart/requirements.txt | 1 + 5 files changed, 215 insertions(+) create mode 100644 samples/quickstart/README.rst create mode 100644 samples/quickstart/README.rst.in create mode 100644 samples/quickstart/quickstart.py create mode 100644 samples/quickstart/quickstart_test.py create mode 100644 samples/quickstart/requirements.txt diff --git a/samples/quickstart/README.rst b/samples/quickstart/README.rst new file mode 100644 index 00000000..2064dafe --- /dev/null +++ b/samples/quickstart/README.rst @@ -0,0 +1,102 @@ +.. This file is automatically generated. Do not edit this file directly. + +Google Cloud Video Intelligence API Python Samples +=============================================================================== + +This directory contains samples for Google Cloud Video Intelligence API. `Google Cloud Video Intelligence API`_ allows developers to easily integrate feature detection in video. + + + + +.. _Google Cloud Video Intelligence API: https://cloud.google.com/video-intelligence/docs + +Setup +------------------------------------------------------------------------------- + + +Authentication +++++++++++++++ + +Authentication is typically done through `Application Default Credentials`_, +which means you do not have to change the code to authenticate as long as +your environment has credentials. You have a few options for setting up +authentication: + +#. When running locally, use the `Google Cloud SDK`_ + + .. code-block:: bash + + gcloud auth application-default login + + +#. When running on App Engine or Compute Engine, credentials are already + set-up. However, you may need to configure your Compute Engine instance + with `additional scopes`_. + +#. You can create a `Service Account key file`_. This file can be used to + authenticate to Google Cloud Platform services from any environment. To use + the file, set the ``GOOGLE_APPLICATION_CREDENTIALS`` environment variable to + the path to the key file, for example: + + .. code-block:: bash + + export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service_account.json + +.. _Application Default Credentials: https://cloud.google.com/docs/authentication#getting_credentials_for_server-centric_flow +.. _additional scopes: https://cloud.google.com/compute/docs/authentication#using +.. _Service Account key file: https://developers.google.com/identity/protocols/OAuth2ServiceAccount#creatinganaccount + +Install Dependencies +++++++++++++++++++++ + +#. Install `pip`_ and `virtualenv`_ if you do not already have them. + +#. Create a virtualenv. Samples are compatible with Python 2.7 and 3.4+. + + .. code-block:: bash + + $ virtualenv env + $ source env/bin/activate + +#. Install the dependencies needed to run the samples. + + .. code-block:: bash + + $ pip install -r requirements.txt + +.. _pip: https://pip.pypa.io/ +.. _virtualenv: https://virtualenv.pypa.io/ + +Samples +------------------------------------------------------------------------------- + +quickstart ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + +To run this sample: + +.. code-block:: bash + + $ python quickstart.py + + + + +The client library +------------------------------------------------------------------------------- + +This sample uses the `Google Cloud Client Library for Python`_. +You can read the documentation for more details on API usage and use GitHub +to `browse the source`_ and `report issues`_. + +.. _Google Cloud Client Library for Python: + https://googlecloudplatform.github.io/google-cloud-python/ +.. _browse the source: + https://github.com/GoogleCloudPlatform/google-cloud-python +.. _report issues: + https://github.com/GoogleCloudPlatform/google-cloud-python/issues + + +.. _Google Cloud SDK: https://cloud.google.com/sdk/ \ No newline at end of file diff --git a/samples/quickstart/README.rst.in b/samples/quickstart/README.rst.in new file mode 100644 index 00000000..59014b4d --- /dev/null +++ b/samples/quickstart/README.rst.in @@ -0,0 +1,19 @@ +# This file is used to generate README.rst + +product: + name: Google Cloud Video Intelligence API + short_name: Cloud Video Intelligence API + url: https://cloud.google.com/video-intelligence/docs + description: > + `Google Cloud Video Intelligence API`_ allows developers to easily + integrate feature detection in video. + +setup: +- auth +- install_deps + +samples: +- name: quickstart + file: quickstart.py + +cloud_client_library: true diff --git a/samples/quickstart/quickstart.py b/samples/quickstart/quickstart.py new file mode 100644 index 00000000..bfb5bca9 --- /dev/null +++ b/samples/quickstart/quickstart.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python + +# Copyright 2017 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. + +"""This application demonstrates label detection using the Google Cloud API. + +Usage: + python quickstart.py +""" + + +def run_quickstart(): + # [START videointelligence_quickstart] + import sys + import time + + from google.cloud.gapic.videointelligence.v1beta1 import enums + from google.cloud.gapic.videointelligence.v1beta1 import ( + video_intelligence_service_client) + + video_client = (video_intelligence_service_client. + VideoIntelligenceServiceClient()) + features = [enums.Feature.LABEL_DETECTION] + operation = video_client.annotate_video('gs://demomaker/cat.mp4', features) + print('\nProcessing video for label annotations:') + + while not operation.done(): + sys.stdout.write('.') + sys.stdout.flush() + time.sleep(15) + + print('\nFinished processing.') + + # first result is retrieved because a single video was processed + results = operation.result().annotation_results[0] + + for label in results.label_annotations: + print('Label description: {}'.format(label.description)) + print('Locations:') + + for l, location in enumerate(label.locations): + positions = 'Entire video' + if (location.segment.start_time_offset != -1 or + location.segment.end_time_offset != -1): + positions = '{} to {}'.format( + location.segment.start_time_offset / 1000000.0, + location.segment.end_time_offset / 1000000.0) + print('\t{}: {}'.format(l, positions)) + + print('\n') + # [END videointelligence_quickstart] + + +if __name__ == '__main__': + run_quickstart() diff --git a/samples/quickstart/quickstart_test.py b/samples/quickstart/quickstart_test.py new file mode 100644 index 00000000..9712f410 --- /dev/null +++ b/samples/quickstart/quickstart_test.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python + +# 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 pytest + +import quickstart + + +@pytest.mark.slow +def test_quickstart(capsys): + quickstart.run_quickstart() + out, _ = capsys.readouterr() + assert 'Whiskers' in out diff --git a/samples/quickstart/requirements.txt b/samples/quickstart/requirements.txt new file mode 100644 index 00000000..b2aa05b6 --- /dev/null +++ b/samples/quickstart/requirements.txt @@ -0,0 +1 @@ +google-cloud-videointelligence==0.25.0