# Copyright 2016 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.
"""Safe search class for information returned from annotating an image."""
from google.cloud.vision.likelihood import Likelihood
[docs]class SafeSearchAnnotation(object):
"""Representation of a SafeSearchAnnotation.
:type adult_likelihood: :class:`~google.cloud.vision.likelihood.Likelihood`
:param adult_likelihood: Likelihood that image contains adult material.
:type spoof_likelihood: :class:`~google.cloud.vision.likelihood.Likelihood`
:param spoof_likelihood: Likelihood that image is a spoof.
:type medical_likelihood:
:class:`~google.cloud.vision.likelihood.Likelihood`
:param medical_likelihood: Likelihood that image contains medical material.
:type violence_likelihood:
:class:`~google.cloud.vision.likelihood.Likelihood`
:param violence_likelihood: Likelihood that image contains violence.
"""
def __init__(self, adult_likelihood, spoof_likelihood, medical_likelihood,
violence_likelihood):
self._adult_likelihood = adult_likelihood
self._spoof_likelihood = spoof_likelihood
self._medical_likeliehood = medical_likelihood
self._violence_likelihood = violence_likelihood
@classmethod
[docs] def from_api_repr(cls, response):
"""Factory: construct SafeSearchAnnotation from Vision API response.
:type response: dict
:param response: Dictionary response from Vision API with safe search
data.
:rtype: :class:`~google.cloud.vision.safe.SafeSearchAnnotation`
:returns: Instance of ``SafeSearchAnnotation``.
"""
adult_likelihood = getattr(Likelihood, response['adult'])
spoof_likelihood = getattr(Likelihood, response['spoof'])
medical_likelihood = getattr(Likelihood, response['medical'])
violence_likelihood = getattr(Likelihood, response['violence'])
return cls(adult_likelihood, spoof_likelihood, medical_likelihood,
violence_likelihood)
@property
def adult(self):
"""Represents the adult contents likelihood for the image.
:rtype: :class:`~google.cloud.vision.likelihood.Likelihood`
:returns: ``Likelihood`` of the image containing adult content.
"""
return self._adult_likelihood
@property
def spoof(self):
"""The likelihood that an obvious modification was made to the image.
:rtype: :class:`~google.cloud.vision.likelihood.Likelihood`
:returns: The ``Likelihood`` that an obvious modification was made to
the image's canonical version to make it appear funny or
offensive.
"""
return self._spoof_likelihood
@property
def medical(self):
"""Likelihood this is a medical image.
:rtype: :class:`~google.cloud.vision.likelihood.Likelihood`
:returns: The ``Likelihood`` that the image is medical in origin.
"""
return self._medical_likeliehood
@property
def violence(self):
"""Likeliehood that this image contains violence.
:rtype: :class:`~google.cloud.vision.likelihood.Likelihood`
:returns: The ``Likelihood`` that the image contains violence.
"""
return self._violence_likelihood