Skip to content
This repository has been archived by the owner on Feb 13, 2024. It is now read-only.

feat(v1): add text detection params; fix: remove client side recv limits #82

Merged
merged 18 commits into from Dec 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
7053ab2
changes without context
yoshi-automation Dec 12, 2020
052d2f1
chore(python): use BUILD_SPECIFIC_GCLOUD_PROJECT for samples
yoshi-automation Dec 12, 2020
8d060a1
chore(python): use 'setup.py' to detect repo root
yoshi-automation Dec 12, 2020
ace2d41
build(python): samples tests should pass if no samples exist
yoshi-automation Dec 12, 2020
83414a2
chore(python_library): change the docs bucket name
yoshi-automation Dec 12, 2020
ab918ce
chore(docs): update code of conduct of synthtool and templates
yoshi-automation Dec 12, 2020
38bb07b
docs: add proto-plus to intersphinx mapping
yoshi-automation Dec 12, 2020
06eafcf
fix(python_library): fix external unit test dependencies
yoshi-automation Dec 12, 2020
6d56a99
chore: add type hint check
yoshi-automation Dec 12, 2020
f995926
chore: add blacken to template
yoshi-automation Dec 12, 2020
3e8ae27
fix: address lint issues
yoshi-automation Dec 12, 2020
4b8b1a6
docs(python): update intersphinx for grpc and auth
yoshi-automation Dec 12, 2020
0b5869b
docs(python): fix intersphinx link for google-auth
yoshi-automation Dec 12, 2020
989184f
chore: add config / docs for 'pre-commit' support
yoshi-automation Dec 12, 2020
a85f0e8
chore(deps): update precommit hook pre-commit/pre-commit-hooks to v3.3.0
yoshi-automation Dec 12, 2020
033b6f8
test(python): give filesystem paths to pytest-cov
yoshi-automation Dec 12, 2020
456c8b0
chore: update noxfile.py.j2
yoshi-automation Dec 12, 2020
2478749
Merge branch 'master' into autosynth-synthtool
dinagraves Dec 22, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .kokoro/docs/common.cfg
Expand Up @@ -30,7 +30,7 @@ env_vars: {

env_vars: {
key: "V2_STAGING_BUCKET"
value: "docs-staging-v2-staging"
value: "docs-staging-v2"
}

# It will upload the docker image after successful builds.
Expand Down
6 changes: 6 additions & 0 deletions .kokoro/samples/python3.6/common.cfg
Expand Up @@ -13,6 +13,12 @@ env_vars: {
value: "py-3.6"
}

# Declare build specific Cloud project.
env_vars: {
key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
value: "python-docs-samples-tests-py36"
}

env_vars: {
key: "TRAMPOLINE_BUILD_FILE"
value: "github/python-vision/.kokoro/test-samples.sh"
Expand Down
6 changes: 6 additions & 0 deletions .kokoro/samples/python3.7/common.cfg
Expand Up @@ -13,6 +13,12 @@ env_vars: {
value: "py-3.7"
}

# Declare build specific Cloud project.
env_vars: {
key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
value: "python-docs-samples-tests-py37"
}

env_vars: {
key: "TRAMPOLINE_BUILD_FILE"
value: "github/python-vision/.kokoro/test-samples.sh"
Expand Down
6 changes: 6 additions & 0 deletions .kokoro/samples/python3.8/common.cfg
Expand Up @@ -13,6 +13,12 @@ env_vars: {
value: "py-3.8"
}

# Declare build specific Cloud project.
env_vars: {
key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
value: "python-docs-samples-tests-py38"
}

env_vars: {
key: "TRAMPOLINE_BUILD_FILE"
value: "github/python-vision/.kokoro/test-samples.sh"
Expand Down
8 changes: 7 additions & 1 deletion .kokoro/test-samples.sh
Expand Up @@ -28,6 +28,12 @@ if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then
git checkout $LATEST_RELEASE
fi

# Exit early if samples directory doesn't exist
if [ ! -d "./samples" ]; then
echo "No tests run. `./samples` not found"
exit 0
fi

# Disable buffering, so that the logs stream through.
export PYTHONUNBUFFERED=1

Expand Down Expand Up @@ -101,4 +107,4 @@ cd "$ROOT"
# Workaround for Kokoro permissions issue: delete secrets
rm testing/{test-env.sh,client-secrets.json,service-account.json}

exit "$RTN"
exit "$RTN"
17 changes: 17 additions & 0 deletions .pre-commit-config.yaml
@@ -0,0 +1,17 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.3.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- repo: https://github.com/psf/black
rev: 19.10b0
hooks:
- id: black
- repo: https://gitlab.com/pycqa/flake8
rev: 3.8.4
hooks:
- id: flake8
123 changes: 87 additions & 36 deletions CODE_OF_CONDUCT.md
@@ -1,44 +1,95 @@
<!-- # Generated by synthtool. DO NOT EDIT! !-->
# Contributor Code of Conduct
# Code of Conduct

As contributors and maintainers of this project,
and in the interest of fostering an open and welcoming community,
we pledge to respect all people who contribute through reporting issues,
posting feature requests, updating documentation,
submitting pull requests or patches, and other activities.
## Our Pledge

We are committed to making participation in this project
a harassment-free experience for everyone,
regardless of level of experience, gender, gender identity and expression,
sexual orientation, disability, personal appearance,
body size, race, ethnicity, age, religion, or nationality.
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of
experience, education, socio-economic status, nationality, personal appearance,
race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery
* Personal attacks
* Trolling or insulting/derogatory comments
* Public or private harassment
* Publishing other's private information,
such as physical or electronic
addresses, without explicit permission
* Other unethical or unprofessional conduct.
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct.
By adopting this Code of Conduct,
project maintainers commit themselves to fairly and consistently
applying these principles to every aspect of managing this project.
Project maintainers who do not follow or enforce the Code of Conduct
may be permanently removed from the project team.

This code of conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community.

Instances of abusive, harassing, or otherwise unacceptable behavior
may be reported by opening an issue
or contacting one or more of the project maintainers.

This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, or to ban temporarily or permanently any
contributor for other behaviors that they deem inappropriate, threatening,
offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

This Code of Conduct also applies outside the project spaces when the Project
Steward has a reasonable belief that an individual's behavior may have a
negative impact on the project or its community.

## Conflict Resolution

We do not believe that all conflict is bad; healthy debate and disagreement
often yield positive results. However, it is never okay to be disrespectful or
to engage in behavior that violates the project鈥檚 code of conduct.

If you see someone violating the code of conduct, you are encouraged to address
the behavior directly with those involved. Many issues can be resolved quickly
and easily, and this gives people more control over the outcome of their
dispute. If you are unable to resolve the matter for any reason, or if the
behavior is threatening or harassing, report it. We are dedicated to providing
an environment where participants feel welcome and safe.


Reports should be directed to *googleapis-stewards@google.com*, the
Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward鈥檚 duty to
receive and address reported violations of the code of conduct. They will then
work with a committee consisting of representatives from the Open Source
Programs Office and the Google Open Source Strategy team. If for any reason you
are uncomfortable reaching out to the Project Steward, please email
opensource@google.com.

We will investigate every complaint, but you may not receive a direct response.
We will use our discretion in determining when and how to follow up on reported
incidents, which may range from not taking action to permanent expulsion from
the project and project-sponsored spaces. We will notify the accused of the
report and provide them an opportunity to discuss it before any action is taken.
The identity of the reporter will be omitted from the details of the report
supplied to the accused. In potentially harmful situations, such as ongoing
harassment or threats to anyone's safety, we may take action without notice.

## Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
available at
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
10 changes: 10 additions & 0 deletions CONTRIBUTING.rst
Expand Up @@ -111,6 +111,16 @@ Coding Style
should point to the official ``googleapis`` checkout and the
the branch should be the main branch on that remote (``master``).

- This repository contains configuration for the
`pre-commit <https://pre-commit.com/>`__ tool, which automates checking
our linters during a commit. If you have it installed on your ``$PATH``,
you can enable enforcing those checks via:

.. code-block:: bash

$ pre-commit install
pre-commit installed at .git/hooks/pre-commit

Exceptions to PEP8:

- Many unit tests use a helper method, ``_call_fut`` ("FUT" is short for
Expand Down
7 changes: 4 additions & 3 deletions docs/conf.py
Expand Up @@ -345,10 +345,11 @@

# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {
"python": ("http://python.readthedocs.org/en/latest/", None),
"google-auth": ("https://google-auth.readthedocs.io/en/stable", None),
"python": ("https://python.readthedocs.org/en/latest/", None),
"google-auth": ("https://googleapis.dev/python/google-auth/latest/", None),
"google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None,),
"grpc": ("https://grpc.io/grpc/python/", None),
"grpc": ("https://grpc.github.io/grpc/python/", None),
"proto-plus": ("https://proto-plus-python.readthedocs.io/en/latest/", None),
}


Expand Down
1 change: 1 addition & 0 deletions docs/vision_v1/types.rst
Expand Up @@ -3,3 +3,4 @@ Types for Google Cloud Vision v1 API

.. automodule:: google.cloud.vision_v1.types
:members:
:show-inheritance:
1 change: 1 addition & 0 deletions docs/vision_v1p2beta1/types.rst
Expand Up @@ -3,3 +3,4 @@ Types for Google Cloud Vision v1p2beta1 API

.. automodule:: google.cloud.vision_v1p2beta1.types
:members:
:show-inheritance:
1 change: 1 addition & 0 deletions docs/vision_v1p3beta1/types.rst
Expand Up @@ -3,3 +3,4 @@ Types for Google Cloud Vision v1p3beta1 API

.. automodule:: google.cloud.vision_v1p3beta1.types
:members:
:show-inheritance:
1 change: 1 addition & 0 deletions docs/vision_v1p4beta1/types.rst
Expand Up @@ -3,3 +3,4 @@ Types for Google Cloud Vision v1p4beta1 API

.. automodule:: google.cloud.vision_v1p4beta1.types
:members:
:show-inheritance:
2 changes: 2 additions & 0 deletions google/cloud/vision/__init__.py
Expand Up @@ -67,6 +67,7 @@
from google.cloud.vision_v1.types.image_annotator import OutputConfig
from google.cloud.vision_v1.types.image_annotator import Property
from google.cloud.vision_v1.types.image_annotator import SafeSearchAnnotation
from google.cloud.vision_v1.types.image_annotator import TextDetectionParams
from google.cloud.vision_v1.types.image_annotator import WebDetectionParams
from google.cloud.vision_v1.types.product_search import ProductSearchParams
from google.cloud.vision_v1.types.product_search import ProductSearchResults
Expand Down Expand Up @@ -213,6 +214,7 @@
"SafeSearchAnnotation",
"Symbol",
"TextAnnotation",
"TextDetectionParams",
"UpdateProductRequest",
"UpdateProductSetRequest",
"Vertex",
Expand Down
2 changes: 2 additions & 0 deletions google/cloud/vision_v1/__init__.py
Expand Up @@ -62,6 +62,7 @@
from .types.image_annotator import OutputConfig
from .types.image_annotator import Property
from .types.image_annotator import SafeSearchAnnotation
from .types.image_annotator import TextDetectionParams
from .types.image_annotator import WebDetectionParams
from .types.product_search import ProductSearchParams
from .types.product_search import ProductSearchResults
Expand Down Expand Up @@ -190,6 +191,7 @@ class ImageAnnotatorClient(VisionHelpers, IacImageAnnotatorClient):
"SafeSearchAnnotation",
"Symbol",
"TextAnnotation",
"TextDetectionParams",
"UpdateProductRequest",
"UpdateProductSetRequest",
"Vertex",
Expand Down
13 changes: 13 additions & 0 deletions google/cloud/vision_v1/proto/image_annotator.proto
Expand Up @@ -664,6 +664,16 @@ message WebDetectionParams {
bool include_geo_results = 2;
}

// Parameters for text detections. This is used to control TEXT_DETECTION and
// DOCUMENT_TEXT_DETECTION features.
message TextDetectionParams {

// By default, Cloud Vision API only includes confidence score for
// DOCUMENT_TEXT_DETECTION result. Set the flag to true to include confidence
// score for TEXT_DETECTION as well.
bool enable_text_detection_confidence_score = 9;
}

// Image context and/or feature-specific parameters.
message ImageContext {
// Not used.
Expand All @@ -687,6 +697,9 @@ message ImageContext {

// Parameters for web detection.
WebDetectionParams web_detection_params = 6;

// Parameters for text detection and document text detection.
TextDetectionParams text_detection_params = 12;
}

// Request for performing Google Cloud Vision API tasks over a user-provided
Expand Down