diff --git a/docs/index.rst b/docs/index.rst index ec1ea380c7e8c..2329d842094ca 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -147,6 +147,7 @@ :caption: Vision vision-usage + vision-client .. toctree:: :maxdepth: 0 diff --git a/docs/json/json/master/toc.json b/docs/json/json/master/toc.json index 007b45e23edbc..9170bb87c0b4c 100644 --- a/docs/json/json/master/toc.json +++ b/docs/json/json/master/toc.json @@ -465,6 +465,15 @@ "title": "Util" } ] - } +}, { + "title": "Vision", + "type": "gcloud/vision", + "nav": [ + { + "type": "gcloud/vision/connection/connection", + "title": "Connection" + } + ] +} ] } diff --git a/docs/vision-client.rst b/docs/vision-client.rst new file mode 100644 index 0000000000000..cc9a2ee9af9fa --- /dev/null +++ b/docs/vision-client.rst @@ -0,0 +1,10 @@ +Vision Client +================ + +Connection +~~~~~~~~~~ + +.. automodule:: gcloud.vision.connection + :members: + :undoc-members: + :show-inheritance: diff --git a/gcloud/vision/__init__.py b/gcloud/vision/__init__.py new file mode 100644 index 0000000000000..fb7f2dfc2d0a5 --- /dev/null +++ b/gcloud/vision/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2016 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. + +"""Google Cloud Vision API package.""" diff --git a/gcloud/vision/connection.py b/gcloud/vision/connection.py new file mode 100644 index 0000000000000..8dfb739be7c66 --- /dev/null +++ b/gcloud/vision/connection.py @@ -0,0 +1,47 @@ +# Copyright 2016 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. + + +"""Create / interact with gcloud Vision connections.""" + + +from gcloud import connection as base_connection + + +class Connection(base_connection.JSONConnection): + """A connection to Google Cloud Vision via the JSON REST API. + + :type credentials: :class:`oauth2client.client.OAuth2Credentials` + :param credentials: (Optional) The OAuth2 Credentials to use for this + connection. + + :type http: :class:`httplib2.Http` or class that defines ``request()``. + :param http: (Optional) HTTP object to make requests. + + :type api_base_url: string + :param api_base_url: The base of the API call URL. Defaults to the value + :attr:`Connection.API_BASE_URL`. + """ + + API_BASE_URL = 'https://vision.googleapis.com' + """The base of the API call URL.""" + + API_VERSION = 'v1' + """The version of the API, used in building the API call's URL.""" + + API_URL_TEMPLATE = '{api_base_url}/{api_version}{path}' + """A template for the URL of a particular API call.""" + + SCOPE = ('https://www.googleapis.com/auth/cloud-platform',) + """The scopes required for authenticating as a Cloud Vision consumer.""" diff --git a/gcloud/vision/test_connection.py b/gcloud/vision/test_connection.py new file mode 100644 index 0000000000000..630d39c1c9171 --- /dev/null +++ b/gcloud/vision/test_connection.py @@ -0,0 +1,44 @@ +# Copyright 2016 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. + +import unittest + + +class TestConnection(unittest.TestCase): + + def _getTargetClass(self): + from gcloud.vision.connection import Connection + return Connection + + def _makeOne(self, *args, **kw): + return self._getTargetClass()(*args, **kw) + + def test_default_url(self): + creds = _Credentials() + conn = self._makeOne(creds) + klass = self._getTargetClass() + self.assertEqual(conn.credentials._scopes, klass.SCOPE) + + +class _Credentials(object): + + _scopes = None + + @staticmethod + def create_scoped_required(): + return True + + def create_scoped(self, scope): + self._scopes = scope + return self diff --git a/scripts/generate_json_docs.py b/scripts/generate_json_docs.py index 130c7eccee7a2..f1257f4b7c47c 100644 --- a/scripts/generate_json_docs.py +++ b/scripts/generate_json_docs.py @@ -629,7 +629,8 @@ def main(): 'resource_manager': [], 'storage': [], 'streaming': [], - 'translate': [] + 'translate': [], + 'vision': [], } } diff --git a/scripts/verify_included_modules.py b/scripts/verify_included_modules.py index d351592ad9cf1..7aa5c4bbc8b07 100644 --- a/scripts/verify_included_modules.py +++ b/scripts/verify_included_modules.py @@ -52,6 +52,7 @@ 'gcloud.streaming.transfer', 'gcloud.streaming.util', 'gcloud.translate.__init__', + 'gcloud.vision.__init__', ])