On Thu, Jan 8, 2015 at 2:55 PM, Jason Killen <jsnk...@gmail.com> wrote: > Thanks again Ian. I think I've tracked down the problem in the pep8 code. > I realize you're not the pep8 developer but I could use a second set of > eyes. If you don't mind can you verify that what I'm seeing is the same as > what you have. In pep8.py in the fuction read_config near line 1852. I've > got this: > user_conf = options.config > if user_conf and os.path.isfile(user_conf): > if options.verbose: > print('user configuration: %s' % user_conf) > config.read(user_conf) > > local_dir = os.curdir > parent = tail = args and os.path.abspath(os.path.commonprefix(args)) > while tail: > if config.read([os.path.join(parent, fn) for fn in PROJECT_CONFIG]): > local_dir = parent > if options.verbose: > print('local configuration: in %s' % parent) > break > (parent, tail) = os.path.split(parent) > > What's happening here is it's reading my defined config file then > over-reading it with files found further up the directory tree. I started > playing with flake8 on a project level then took a left turn and started > wanting to define config files on the command line, so I've got a setup.cfg > a few directories up. I did some tests after adding an else after the if so > pep8 only looks for files in the tree if the user defined file doesn't > exist. That seems to be working much better.
I saw you filed an issue and pull request against pep8. I'll respond there when I have a chance to look at them. > On Fri, Jan 2, 2015 at 10:55 AM, Ian Cordasco <graffatcolmin...@gmail.com> > wrote: >> >> I'm beginning to think this is a problem with the ConfigParser module >> on Python 2.7.1. Can you upgrade your system installation of Python? >> >> ~ mktmpenv >> New python executable in tmp-e6c7d5624589670b/bin/python2.7 >> Also creating executable in tmp-e6c7d5624589670b/bin/python >> Installing setuptools, pip...done. >> This is a temporary environment. It will be deleted when you run >> 'deactivate'. >> (tmp-e6c7d5624589670b)~/virtualenv/tmp-e6c7d5624589670b vl ex.py >> (tmp-e6c7d5624589670b)~/virtualenv/tmp-e6c7d5624589670b pip install >> flake8 >> Collecting flake8 >> Using cached flake8-2.2.5.tar.gz >> Collecting pyflakes>=0.8.1 (from flake8) >> Using cached pyflakes-0.8.1-py2.py3-none-any.whl >> Collecting pep8>=1.5.7 (from flake8) >> Using cached pep8-1.5.7-py2.py3-none-any.whl >> Collecting mccabe>=0.2.1 (from flake8) >> Using cached mccabe-0.3-py2.py3-none-any.whl >> Installing collected packages: mccabe, pep8, pyflakes, flake8 >> >> >> >> Running setup.py install for flake8 >> Installing flake8 script to ~/virtualenv/tmp-e6c7d5624589670b/bin >> Successfully installed flake8-2.2.5 mccabe-0.3 pep8-1.5.7 pyflakes-0.8.1 >> (tmp-e6c7d5624589670b)~/virtualenv/tmp-e6c7d5624589670b vl config.cfg >> (tmp-e6c7d5624589670b)~/virtualenv/tmp-e6c7d5624589670b flake8 >> --config config.cfg ex.py >> ex.py:1:21: W291 trailing whitespace >> ex.py:3:4: F821 undefined name 'x' >> ex.py:3:9: F821 undefined name 'y' >> ex.py:6:4: F821 undefined name 'j' >> ex.py:6:6: E711 comparison to None should be 'if cond is None:' >> (tmp-e6c7d5624589670b)~/virtualenv/tmp-e6c7d5624589670b flake8 --version >> 2.2.5 (pep8: 1.5.7, pyflakes: 0.8.1, mccabe: 0.3) CPython 2.7.9 on Darwin >> >> (output https://gist.github.com/sigmavirus24/bb5ff3b11de0d40bc7c2 in >> the event it's easier to read for some people) >> >> On Fri, Jan 2, 2015 at 9:41 AM, Jason Killen <jsnk...@gmail.com> wrote: >> > Thanks for you help. Couple of things: >> > 1) The --help for flake8 says config files should go in flake8: >> > --config=path user config file location (default: >> > /Users/jkillen/.config/flake8) >> > My reading of your first reply is that they should go in ~/.config/pep8. >> > I >> > don't care where they go it's just confusing. >> > Also, I find the help text a little confusing, I'm not sure if I'm >> > defining >> > the directory to search for setup.cfg or tox.ini or an actual file >> > itself. >> > It looks like you're defining the actual file so I'll go with that. >> > That's >> > good because that's what I wanted in the first place. >> > >> > 2) Here are some more details, and weirdness, for the code I'm testing >> > with, >> > I've removed flake8-debugger: >> > $ flake8 --version >> > 2.2.5 (pep8: 1.5.7, pyflakes: 0.8.1, mccabe: 0.3) CPython 2.7.1 on >> > Darwin >> > >> > The actual code: >> > $ cat ex.py >> > print("hello world") >> > #comment >> > if x == y: >> > print("x") >> > >> > if j == None: >> > print("It's None") >> > >> > My config file: >> > $ cat config.cfg >> > [flake8] >> > ignore = E265,E111 >> > >> > Running with a specified config file, doesn't seem to ignore E265,E111: >> > $ flake8 --config config.cfg ex.py >> > ex.py:2:1: E265 block comment should start with '# ' >> > ex.py:3:4: F821 undefined name 'x' >> > ex.py:3:9: F821 undefined name 'y' >> > ex.py:4:3: E111 indentation is not a multiple of four >> > ex.py:6:4: F821 undefined name 'j' >> > >> > Running with --ignore, ignores E111,E265 but includes errors not seen >> > before: >> > $ flake8 --ignore=E111,E265 ex.py >> > ex.py:1:21: W291 trailing whitespace >> > ex.py:3:4: F821 undefined name 'x' >> > ex.py:3:9: F821 undefined name 'y' >> > ex.py:6:4: F821 undefined name 'j' >> > ex.py:6:6: E711 comparison to None should be 'if cond is None:' >> > >> > I did step through flake8 looking for where it opened the config file >> > and >> > got completely lost a few lines in. I'm pretty new to python. Since >> > you >> > mention that's handled by pep8 I'll take another stab at it >> > concentrating on >> > the pep8 code. >> > >> > Thanks for your help. >> > >> > On Mon, Dec 29, 2014 at 4:27 PM, Ian Cordasco >> > <graffatcolmin...@gmail.com> >> > wrote: >> >> >> >> On Mon, Dec 29, 2014 at 3:08 PM, Ian Cordasco >> >> <graffatcolmin...@gmail.com> wrote: >> >> > On Mon, Dec 29, 2014 at 1:57 PM, Jason Killen <jsnk...@gmail.com> >> >> > wrote: >> >> >> I've just started using flake8. I'm using 2.2.5 (pep8: 1.5.7, >> >> >> pyflakes: >> >> >> 0.8.1, mccabe: 0.3, flake8-debugger: 1.3.2) CPython 2.7.1 on Darwin >> >> >> >> >> >> Config files don't seem to be being read in. I've tried defining it >> >> >> (config.cfg) using --config, putting it in ., putting it in >> >> >> everything >> >> >> up >> >> >> from ., and putting it in ~/.config/flake8. No matter what I try >> >> >> flake8 >> >> >> doesn't seem to be picking them up. Using --ignore works fine. >> >> >> >> >> >> Here's my config file: >> >> >> [flake8] >> >> >> max-line-length = 200 >> >> >> # E251 unexpected spaces around keyword / parameter equals >> >> >> # E711 comparison to None should be if cond is not None >> >> >> # E501 line too long (203 > 200 characters) >> >> >> # E303 too many blank lines (2) >> >> >> # E712 comparison to True should be 'if cond is not True:' or 'if >> >> >> not >> >> >> cond:' >> >> >> # E302 expected 2 blank lines, found 1 >> >> >> # E226 missing whitespace around arithmetic operator >> >> >> # W291 trailing whitespace >> >> >> # W293 blank line contains whitespace >> >> >> # W391 blank line at end of file >> >> >> # E111 indentation is not a multiple of four >> >> >> # E702 multiple statements on one line (semicolon) >> >> >> ignore = >> >> >> E251,E711,E501,E303,E712,E302,E226,W291,W293,W391,E111,E702,E265 >> >> >> >> >> >> Help please? >> >> > >> >> > Hey Jason, >> >> > >> >> > pep8 handles discovery and parsing of config files for flake8. >> >> > Looking >> >> > at what pep8 tries to find, your options are ~/.config/pep8, >> >> > ./tox.ini, and ./setup.cfg. As for why using --config doesn't work, I >> >> > haven't tried that but that would also be a bug found in pep8. I'll >> >> > see if I can reproduce that though. >> >> > >> >> > Cheers, >> >> > Ian >> >> > flake8 maintainer >> >> >> >> So I just did the following: >> >> >> >> $ mktmpenv >> >> $ pip install flake8 flake8-docstrings >> >> $ flake8 --version >> >> 2.2.5 (pep8: 1.5.7, pyflakes: 0.8.1, pep257: 0.2.1, mccabe: 0.3) >> >> CPython 2.7.9 on Darwin >> >> $ cd ~/sandbox/github3.py >> >> >> >> I know my project has a lot of docstring (pep257) violations and that >> >> one of the common ones is D100 so I wrote >> >> >> >> [flake8] >> >> ignore = D100 >> >> >> >> In test.cfg and did >> >> >> >> $ flake8 | wc -l >> >> 881 >> >> $ flake8 --config test.cfg | wc -l >> >> 868 >> >> >> >> So I think that --config is working just fine. >> >> >> >> If I update test.cfg to >> >> >> >> [flake8] >> >> ignore = D100,D101,D102 >> >> >> >> $ flake8 --config test.cfg | wc -l >> >> 422 >> >> >> >> >> >> My final iteration of test.cfg is >> >> >> >> [flake8] >> >> max-line-length = 100 >> >> # Comment >> >> ignore = D100,D101,D102 >> >> >> >> And that also works just fine. >> >> >> >> Can you share the exact commands you're running? Perhaps this is some >> >> weird side-effect of flake8-debugger. >> > >> > >> > >> > >> > -- >> > Jason Killen jsnk...@gmail.com >> > Pain is inevitable, misery is optional. > > > > > -- > Jason Killen jsnk...@gmail.com > Pain is inevitable, misery is optional. _______________________________________________ code-quality mailing list code-quality@python.org https://mail.python.org/mailman/listinfo/code-quality