On 14Jun2018 02:35, Tamara Berger <brg...@gmail.com> wrote:
On Thu, Jun 14, 2018 at 1:49 AM Cameron Simpson <c...@cskk.id.au> wrote:
Just as you can run your code before you install it, you can lint your code
beforehand also. In fact, you should be doing both: run and test the code
_before_ installing it, and also lint it (when you care) and test again
(because if you made lint changes you want to check they haven't done something
unwanted).

Great. So I'm using three interfaces: in my case, the text editor, the
Python shell, and the UNIX terminal. Is that right?

Possibly; I thought you were using IDLE, which is a GUI with a simple editor and a Python interpreter built in?

My setup tends to be a terminal with an editor in it, and another terminal with a UNIX shell in it. And sometimes the Python shell in the UNIX shell in the terminal when I'm testing something simple. For example:

 [~/hg/css(hg:default)]fleet*> python3
 + exec /Users/cameron/var/venv/3/bin/python3
 Python 3.6.5 (default, Mar 29 2018, 15:38:28)
 [GCC 4.2.1 Compatible Apple LLVM 7.3.0 (clang-703.0.31)] on darwin
 Type "help", "copyright", "credits" or "license" for more information.
 >>>

That's a python 3 shell run from the UNIX shell in a terminal. The "[~/hg/css(hg:default)]fleet*>" is my UNIX shell prompt, with my working directory, VCS branch and hostname. So "~/hg/css" is where I'm working, separate from where the code gets installed. For testing I run the local code, which might be arbitrarily bad. I don't do the "install" step until it seems fairly good.

Of course, the UNIX shell is there to run whatever I like. So to lint one of my Python files I might do this:

 [~/hg/css(hg:default)]fleet*> lint cs/sh.py
 + exec lint cs/sh.py
 + exec python3 -m py_compile cs/sh.py
 + exec /Users/cameron/var/venv/3/bin/python3 -m py_compile cs/sh.py
 + exec pyflakes cs/sh.py
 + exec pep8 
--ignore=E111,E114,E124,E126,E201,E202,E221,E226,E227,E265,E266,E301,E302,E501,E731,W503
 cs/sh.py
 + exec pylint --rcfile=/Users/cameron/.pylintrc 
--disable=bad-whitespace,invalid-name cs/sh.py
 Using config file /Users/cameron/.pylintrc
 ************* Module python.cs.sh
W:105, 2: Using possibly undefined loop variable 'offset' (undefined-loop-variable)

 ------------------------------------------------------------------
 Your code has been rated at 9.85/10 (previous run: 9.85/10, +0.00)

You can see my lint script doing:

 - test compile the script (no need to bother with the rest if that fails)
 - run pyflakes on it
 - run pep8 on it
 - run pylint on it

Cheers,
Cameron Simpson <c...@cskk.id.au>
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to