Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undefined name: 'r' --> 'response' #1442

Merged
merged 1 commit into from
Feb 14, 2020
Merged

Conversation

cclauss
Copy link
Contributor

@cclauss cclauss commented Feb 14, 2020

flake8 testing of https://github.com/SeldonIO/seldon-core on Python 3.8.0

$ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics

./examples/models/openvino_imagenet_ensemble/resources/model/Prediction.py:48:17: F821 undefined name 'boto3'
    s3_client = boto3.client('s3', endpoint_url=s3_endpoint)
                ^
./examples/models/openvino_imagenet_ensemble/resources/model/Prediction.py:53:19: F821 undefined name 'boto3'
    s3_transfer = boto3.s3.transfer.S3Transfer(s3_client)
                  ^
./examples/models/templates/ModelName.py:1:6: E999 SyntaxError: invalid syntax
from <your_loading_library> import <your_loading_function>
     ^
./util/loadtester/scripts/mnist_grpc_locust.py:148:32: F821 undefined name 'r'
                j = json.loads(r.content)
                               ^
1     E999 SyntaxError: invalid syntax
3     F821 undefined name 'boto3'
4

https://flake8.pycqa.org/en/latest/user/error-codes.html

On the flake8 test selection, this PR does not focus on "style violations" (the majority of flake8 error codes that psf/black can autocorrect). Instead these tests are focus on runtime safety and correctness:

  • E9 tests are about Python syntax errors usually raised because flake8 can not build an Abstract Syntax Tree (AST). Often these issues are a sign of unused code or code that has not been ported to Python 3. These would be compile-time errors in a compiled language but in a dynamic language like Python they result in the script halting/crashing on the user.
  • F63 tests are usually about the confusion between identity and equality in Python. Use ==/!= to compare str, bytes, and int literals is the classic case. These are areas where a == b is True but a is b is False (or vice versa). Python >= 3.8 will raise SyntaxWarnings on these instances.
  • F7 tests logic errors and syntax errors in type hints
  • F82 tests are almost always undefined names which are usually a sign of a typo, missing imports, or code that has not been ported to Python 3. These also would be compile-time errors in a compiled language but in Python a NameError is raised which will halt/crash the script on the user.

[flake8](http://flake8.pycqa.org) testing of https://github.com/SeldonIO/seldon-core on Python 3.8.0

$ __flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics__
```
./examples/models/openvino_imagenet_ensemble/resources/model/Prediction.py:48:17: F821 undefined name 'boto3'
    s3_client = boto3.client('s3', endpoint_url=s3_endpoint)
                ^
./examples/models/openvino_imagenet_ensemble/resources/model/Prediction.py:53:19: F821 undefined name 'boto3'
    s3_transfer = boto3.s3.transfer.S3Transfer(s3_client)
                  ^
./examples/models/templates/ModelName.py:1:6: E999 SyntaxError: invalid syntax
from <your_loading_library> import <your_loading_function>
     ^
./util/loadtester/scripts/mnist_grpc_locust.py:148:32: F821 undefined name 'r'
                j = json.loads(r.content)
                               ^
1     E999 SyntaxError: invalid syntax
3     F821 undefined name 'boto3'
4
```
https://flake8.pycqa.org/en/latest/user/error-codes.html

On the flake8 test selection, this PR does _not_ focus on "_style violations_" (the majority of flake8 error codes that [__psf/black__](https://github.com/psf/black) can autocorrect).  Instead these tests are focus on runtime safety and correctness:
* E9 tests are about Python syntax errors usually raised because flake8 can not build an Abstract Syntax Tree (AST).  Often these issues are a sign of unused code or code that has not been ported to Python 3.  These would be compile-time errors in a compiled language but in a dynamic language like Python they result in the script halting/crashing on the user.
* F63 tests are usually about the confusion between identity and equality in Python.  Use ==/!= to compare str, bytes, and int literals is the classic case.  These are areas where __a == b__ is True but __a is b__ is False (or vice versa).  Python >= 3.8 will raise SyntaxWarnings on these instances.
* F7 tests logic errors and syntax errors in type hints
* F82 tests are almost always _undefined names_ which are usually a sign of a typo, missing imports, or code that has not been ported to Python 3.  These also would be compile-time errors in a compiled language but in Python a __NameError__ is raised which will halt/crash the script on the user.
@seldondev
Copy link
Collaborator

Hi @cclauss. Thanks for your PR.

I'm waiting for a SeldonIO member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

cclauss added a commit to cclauss/seldon-core that referenced this pull request Feb 14, 2020
@axsaucedo
Copy link
Contributor

/approve
/lgtm
/ok-to-test

@seldondev
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: axsaucedo

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@seldondev
Copy link
Collaborator

Fri Feb 14 11:42:31 UTC 2020
The logs for [lint] [2] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-1442/2.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-1442 --build=2

@seldondev
Copy link
Collaborator

Fri Feb 14 11:42:34 UTC 2020
The logs for [pr-build] [1] will show after the pipeline context has finished.
https://github.com/SeldonIO/seldon-core/blob/gh-pages/jenkins-x/logs/SeldonIO/seldon-core/PR-1442/1.log

impatient try
jx get build logs SeldonIO/seldon-core/PR-1442 --build=1

@seldondev seldondev merged commit 048d87f into SeldonIO:master Feb 14, 2020
@cclauss cclauss deleted the patch-2 branch February 14, 2020 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants