-
Notifications
You must be signed in to change notification settings - Fork 28.5k
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
[SPARK-2627] [PySpark] have the build enforce PEP 8 automatically #1744
Conversation
The RAT and PEP8 checks don’t print a blank line after successful runs. The scalastyle check shouldn’t either.
This guy just runs the pep8 utility on all code in the python directory, minus cloudpickle, which is a 3rd-party library.
This guy just calls scalastyle.
QA tests have started for PR 1744. This patch merges cleanly. |
QA results for PR 1744: |
Mostly done using autopep8, plus some hand fixes.
QA tests have started for PR 1744. This patch DID NOT merge cleanly! |
Hey nick - thanks for taking a crack at this. It's great to see us adding more automated code quality checks. Couple things:
|
QA results for PR 1744: |
*fingers crossed* I admit I’m not exactly sure how this works… Let’s see if I did the right thing.
Hey Pat!
By the way, I'm not sure I resolved my merge conflicts in the best way. Does it look good to you? |
merge upstream changes
QA tests have started for PR 1744. This patch merges cleanly. |
QA results for PR 1744: |
QA tests have started for PR 1744. This patch merges cleanly. |
Minor, I know.
QA tests have started for PR 1744. This patch merges cleanly. |
QA results for PR 1744: |
QA results for PR 1744: |
Everything looks cramped and it’s hard to tell at a glance where sections begin. Adding a blank line between sections should fix that.
See the discussion here: #1744 (comment) Get the pep8 utility at runtime so that it’s not required to be installed on the build server.
Patrick, I believe I've addressed the issues you called out. I'm not sure if the approach I took to getting |
QA tests have started for PR 1744. This patch merges cleanly. |
Don’t just assume curl got the file alright. Check and exit properly if there were any problems.
This looks good to me. What do you think, @JoshRosen / @davies ? |
One question (maybe too late), could we customize the lint tool to relax some rules? Such as change line width to 100, or change indent to 2 spaces. Recently, I found that it's not easy to write the code to fit with 4 spaces and 80 chars, always needed to break the line, and finally, the code became not easy to read, especially when you have several levels of structures, such as class, function, function, if and so on. If we can have a tool to format the code to follow pep8 that will even better. |
The line length is already 100 in this PR. |
"""General PySpark tests that depend on numpy """ | ||
|
||
def test_statcounter_array(self): | ||
x = self.sc.parallelize([np.array([1.0,1.0]), np.array([2.0,2.0]), np.array([3.0,3.0])]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this line has 96 characters, need break?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, no need for the break. I'll fix this. (It's actually 99 characters without the break, I believe.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
... and it's now 99 characters (as opposed to the original 96) because PEP 8 wants you to put spaces after your commas:
./python/pyspark/tests.py:1018:47: E231 missing whitespace after ','
@davies The line length to check for is set to 100 in |
Oh, sorry, I saw it break some lines which does not have more than 100 characters. LTGM now, but i'm have some questions about the changes in this PR. Maybe it's not enforced by pep8, just changed to make the code looks better? |
LGTM. no more comments. |
The only changes that should be like that are the ones related to the indentation of some of the The remainder of the whitespace changes are indeed mandated by PEP 8. |
Ah yeah, that happened because of a mistake I made when I called |
I've made one new commit to address @davies's comments. |
Jenkins, retest this please. |
QA tests have started for PR 1744. This patch merges cleanly. |
QA results for PR 1744: |
Ok I'm merging this in master. Thanks, @nchammas. |
And branch-1.1 too. |
As described in [SPARK-2627](https://issues.apache.org/jira/browse/SPARK-2627), we'd like Python code to automatically be checked for PEP 8 compliance by Jenkins. This pull request aims to do that. Notes: * We may need to install [`pep8`](https://pypi.python.org/pypi/pep8) on the build server. * I'm expecting tests to fail now that PEP 8 compliance is being checked as part of the build. I'm fine with cleaning up any remaining PEP 8 violations as part of this pull request. * I did not understand why the RAT and scalastyle reports are saved to text files. I did the same for the PEP 8 check, but only so that the console output style can match those for the RAT and scalastyle checks. The PEP 8 report is removed right after the check is complete. * Updates to the ["Contributing to Spark"](https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark) guide will be submitted elsewhere, as I don't believe that text is part of the Spark repo. Author: Nicholas Chammas <nicholas.chammas@gmail.com> Author: nchammas <nicholas.chammas@gmail.com> Closes #1744 from nchammas/master and squashes the following commits: 274b238 [Nicholas Chammas] [SPARK-2627] [PySpark] minor indentation changes 983d963 [nchammas] Merge pull request #5 from apache/master 1db5314 [nchammas] Merge pull request #4 from apache/master 0e0245f [Nicholas Chammas] [SPARK-2627] undo erroneous whitespace fixes bf30942 [Nicholas Chammas] [SPARK-2627] PEP8: comment spacing 6db9a44 [nchammas] Merge pull request #3 from apache/master 7b4750e [Nicholas Chammas] merge upstream changes 91b7584 [Nicholas Chammas] [SPARK-2627] undo unnecessary line breaks 44e3e56 [Nicholas Chammas] [SPARK-2627] use tox.ini to exclude files b09fae2 [Nicholas Chammas] don't wrap comments unnecessarily bfb9f9f [Nicholas Chammas] [SPARK-2627] keep up with the PEP 8 fixes 9da347f [nchammas] Merge pull request #2 from apache/master aa5b4b5 [Nicholas Chammas] [SPARK-2627] follow Spark bash style for if blocks d0a83b9 [Nicholas Chammas] [SPARK-2627] check that pep8 downloaded fine dffb5dd [Nicholas Chammas] [SPARK-2627] download pep8 at runtime a1ce7ae [Nicholas Chammas] [SPARK-2627] space out test report sections 21da538 [Nicholas Chammas] [SPARK-2627] it's PEP 8, not PEP8 6f4900b [Nicholas Chammas] [SPARK-2627] more misc PEP 8 fixes fe57ed0 [Nicholas Chammas] removing merge conflict backups 9c01d4c [nchammas] Merge pull request #1 from apache/master 9a66cb0 [Nicholas Chammas] resolving merge conflicts a31ccc4 [Nicholas Chammas] [SPARK-2627] miscellaneous PEP 8 fixes beaa9ac [Nicholas Chammas] [SPARK-2627] fail check on non-zero status 723ed39 [Nicholas Chammas] always delete the report file 0541ebb [Nicholas Chammas] [SPARK-2627] call Python linter from run-tests 12440fa [Nicholas Chammas] [SPARK-2627] add Scala linter 61c07b9 [Nicholas Chammas] [SPARK-2627] add Python linter 75ad552 [Nicholas Chammas] make check output style consistent (cherry picked from commit d614967) Signed-off-by: Reynold Xin <rxin@apache.org>
Thank you @davies @pwendell @JoshRosen and @rxin for reviewing this PR. |
As described in [SPARK-2627](https://issues.apache.org/jira/browse/SPARK-2627), we'd like Python code to automatically be checked for PEP 8 compliance by Jenkins. This pull request aims to do that. Notes: * We may need to install [`pep8`](https://pypi.python.org/pypi/pep8) on the build server. * I'm expecting tests to fail now that PEP 8 compliance is being checked as part of the build. I'm fine with cleaning up any remaining PEP 8 violations as part of this pull request. * I did not understand why the RAT and scalastyle reports are saved to text files. I did the same for the PEP 8 check, but only so that the console output style can match those for the RAT and scalastyle checks. The PEP 8 report is removed right after the check is complete. * Updates to the ["Contributing to Spark"](https://cwiki.apache.org/confluence/display/SPARK/Contributing+to+Spark) guide will be submitted elsewhere, as I don't believe that text is part of the Spark repo. Author: Nicholas Chammas <nicholas.chammas@gmail.com> Author: nchammas <nicholas.chammas@gmail.com> Closes apache#1744 from nchammas/master and squashes the following commits: 274b238 [Nicholas Chammas] [SPARK-2627] [PySpark] minor indentation changes 983d963 [nchammas] Merge pull request apache#5 from apache/master 1db5314 [nchammas] Merge pull request apache#4 from apache/master 0e0245f [Nicholas Chammas] [SPARK-2627] undo erroneous whitespace fixes bf30942 [Nicholas Chammas] [SPARK-2627] PEP8: comment spacing 6db9a44 [nchammas] Merge pull request apache#3 from apache/master 7b4750e [Nicholas Chammas] merge upstream changes 91b7584 [Nicholas Chammas] [SPARK-2627] undo unnecessary line breaks 44e3e56 [Nicholas Chammas] [SPARK-2627] use tox.ini to exclude files b09fae2 [Nicholas Chammas] don't wrap comments unnecessarily bfb9f9f [Nicholas Chammas] [SPARK-2627] keep up with the PEP 8 fixes 9da347f [nchammas] Merge pull request apache#2 from apache/master aa5b4b5 [Nicholas Chammas] [SPARK-2627] follow Spark bash style for if blocks d0a83b9 [Nicholas Chammas] [SPARK-2627] check that pep8 downloaded fine dffb5dd [Nicholas Chammas] [SPARK-2627] download pep8 at runtime a1ce7ae [Nicholas Chammas] [SPARK-2627] space out test report sections 21da538 [Nicholas Chammas] [SPARK-2627] it's PEP 8, not PEP8 6f4900b [Nicholas Chammas] [SPARK-2627] more misc PEP 8 fixes fe57ed0 [Nicholas Chammas] removing merge conflict backups 9c01d4c [nchammas] Merge pull request apache#1 from apache/master 9a66cb0 [Nicholas Chammas] resolving merge conflicts a31ccc4 [Nicholas Chammas] [SPARK-2627] miscellaneous PEP 8 fixes beaa9ac [Nicholas Chammas] [SPARK-2627] fail check on non-zero status 723ed39 [Nicholas Chammas] always delete the report file 0541ebb [Nicholas Chammas] [SPARK-2627] call Python linter from run-tests 12440fa [Nicholas Chammas] [SPARK-2627] add Scala linter 61c07b9 [Nicholas Chammas] [SPARK-2627] add Python linter 75ad552 [Nicholas Chammas] make check output style consistent
…#1744) This PR bumps Boson version to `0.3.2`. Patch list https://github.pie.apple.com/pie/boson/compare/658ed31...9bc6c75
As described in SPARK-2627, we'd like Python code to automatically be checked for PEP 8 compliance by Jenkins. This pull request aims to do that.
Notes:
pep8
on the build server.