Update docs for configuration
[third_party/pep8] / CHANGES.txt
1 Changelog
2 =========
3
4
5 1.x (unreleased)
6 ----------------
7
8 News:
9
10 * Ian Lee <ianlee1521@gmail.com> joined the project as a maintainer.
11
12 Changes:
13
14 * Report E731 for lambda assignment. (Issue #277)
15
16 * Report E704 for one-liner def instead of E701.
17   Do not report this error in the default configuration. (Issue #277)
18
19 * Replace codes E111, E112 and E113 with codes E114, E115 and E116
20   for bad indentation of comments. (Issue #274)
21
22 * Report E266 instead of E265 when the block comment starts with
23   multiple ``#``. (Issue #270)
24
25 * Report E402 for import statements not at the top of the file. (Issue #264)
26
27 * Do not enforce whitespaces around ``**`` operator. (Issue #292)
28
29 * Strip whitespace from around paths during normalization. (Issue #339 / #343)
30
31 * Update ``--format`` documentation. (Issue #198 / Pull Request #310)
32
33 * Add ``.tox/`` to default excludes. (Issue #335)
34
35 * Do not report E121 or E126 in the default configuration. (Issues #256 / #316)
36
37 * Allow spaces around the equals sign in an annotated function. (Issue #357)
38
39 Bug fixes:
40
41 * Don't crash if Checker.build_tokens_line() returns None. (Issue #306)
42
43 * Don't crash if os.path.expanduser() throws an ImportError. (Issue #297)
44
45 * Missing space around keyword parameter equal not always reported, E251.
46   (Issue #323)
47
48 * Fix false positive E711/E712/E713. (Issues #330 and #336)
49
50 * Do not skip physical checks if the newline is escaped. (Issue #319)
51
52
53 1.5.7 (2014-05-29)
54 ------------------
55
56 Bug fixes:
57
58 * Skip the traceback on "Broken pipe" signal. (Issue #275)
59
60 * Do not exit when an option in ``setup.cfg`` or ``tox.ini``
61   is not recognized.
62
63 * Check the last line even if it does not end with a newline. (Issue #286)
64
65 * Always open files in universal newlines mode in Python 2. (Issue #288)
66
67
68 1.5.6 (2014-04-14)
69 ------------------
70
71 Bug fixes:
72
73 * Check the last line even if it has no end-of-line. (Issue #273)
74
75
76 1.5.5 (2014-04-10)
77 ------------------
78
79 Bug fixes:
80
81 * Fix regression with E22 checks and inline comments. (Issue #271)
82
83
84 1.5.4 (2014-04-07)
85 ------------------
86
87 Bug fixes:
88
89 * Fix negative offset with E303 before a multi-line docstring.
90   (Issue #269)
91
92
93 1.5.3 (2014-04-04)
94 ------------------
95
96 Bug fixes:
97
98 * Fix wrong offset computation when error is on the last char
99   of a physical line. (Issue #268)
100
101
102 1.5.2 (2014-04-04)
103 ------------------
104
105 Changes:
106
107 * Distribute a universal wheel file.
108
109 Bug fixes:
110
111 * Report correct line number for E303 with comments. (Issue #60)
112
113 * Do not allow newline after parameter equal. (Issue #252)
114
115 * Fix line number reported for multi-line strings. (Issue #220)
116
117 * Fix false positive E121/E126 with multi-line strings. (Issue #265)
118
119 * Fix E501 not detected in comments with Python 2.5.
120
121 * Fix caret position with ``--show-source`` when line contains tabs.
122
123
124 1.5.1 (2014-03-27)
125 ------------------
126
127 Bug fixes:
128
129 * Fix a crash with E125 on multi-line strings. (Issue #263)
130
131
132 1.5 (2014-03-26)
133 ----------------
134
135 Changes:
136
137 * Report E129 instead of E125 for visually indented line with same
138   indent as next logical line.  (Issue #126)
139
140 * Report E265 for space before block comment. (Issue #190)
141
142 * Report E713 and E714 when operators ``not in`` and ``is not`` are
143   recommended. (Issue #236)
144
145 * Allow long lines in multiline strings and comments if they cannot
146   be wrapped. (Issue #224).
147
148 * Optionally disable physical line checks inside multiline strings,
149   using ``# noqa``. (Issue #242)
150
151 * Change text for E121 to report "continuation line under-indented
152   for hanging indent" instead of indentation not being a
153   multiple of 4.
154
155 * Report E131 instead of E121 / E126 if the hanging indent is not
156   consistent within the same continuation block.  It helps when
157   error E121 or E126 is in the ``ignore`` list.
158
159 * Report E126 instead of E121 when the continuation line is hanging
160   with extra indentation, even if indentation is not a multiple of 4.
161
162 Bug fixes:
163
164 * Allow the checkers to report errors on empty files. (Issue #240)
165
166 * Fix ignoring too many checks when ``--select`` is used with codes
167   declared in a flake8 extension. (Issue #216)
168
169 * Fix regression with multiple brackets. (Issue #214)
170
171 * Fix ``StyleGuide`` to parse the local configuration if the
172   keyword argument ``paths`` is specified. (Issue #246)
173
174 * Fix a false positive E124 for hanging indent. (Issue #254)
175
176 * Fix a false positive E126 with embedded colon. (Issue #144)
177
178 * Fix a false positive E126 when indenting with tabs. (Issue #204)
179
180 * Fix behaviour when ``exclude`` is in the configuration file and
181   the current directory is not the project directory. (Issue #247)
182
183 * The logical checks can return ``None`` instead of an empty iterator.
184   (Issue #250)
185
186 * Do not report multiple E101 if only the first indentation starts
187   with a tab. (Issue #237)
188
189 * Fix a rare false positive W602. (Issue #34)
190
191
192 1.4.6 (2013-07-02)
193 ------------------
194
195 Changes:
196
197 * Honor ``# noqa`` for errors E711 and E712. (Issue #180)
198
199 * When both a ``tox.ini`` and a ``setup.cfg`` are present in the project
200   directory, merge their contents.  The ``tox.ini`` file takes
201   precedence (same as before). (Issue #182)
202
203 * Give priority to ``--select`` over ``--ignore``. (Issue #188)
204
205 * Compare full path when excluding a file. (Issue #186)
206
207 * New option ``--hang-closing`` to switch to the alternative style of
208   closing bracket indentation for hanging indent.  Add error E133 for
209   closing bracket which is missing indentation. (Issue #103)
210
211 * Accept both styles of closing bracket indentation for hanging indent.
212   Do not report error E123 in the default configuration. (Issue #103)
213
214 Bug fixes:
215
216 * Do not crash when running AST checks and the document contains null bytes.
217   (Issue #184)
218
219 * Correctly report other E12 errors when E123 is ignored. (Issue #103)
220
221 * Fix false positive E261/E262 when the file contains a BOM. (Issue #193)
222
223 * Fix E701, E702 and E703 not detected sometimes. (Issue #196)
224
225 * Fix E122 not detected in some cases. (Issue #201 and #208)
226
227 * Fix false positive E121 with multiple brackets. (Issue #203)
228
229
230 1.4.5 (2013-03-06)
231 ------------------
232
233 * When no path is specified, do not try to read from stdin.  The feature
234   was added in 1.4.3, but it is not supported on Windows.  Use ``-``
235   filename argument to read from stdin.  This usage is supported
236   since 1.3.4. (Issue #170)
237
238 * Do not require ``setuptools`` in setup.py.  It works around an issue
239   with ``pip`` and Python 3. (Issue #172)
240
241 * Add ``__pycache__`` to the ignore list.
242
243 * Change misleading message for E251. (Issue #171)
244
245 * Do not report false E302 when the source file has a coding cookie or a
246   comment on the first line. (Issue #174)
247
248 * Reorganize the tests and add tests for the API and for the command line
249   usage and options. (Issues #161 and #162)
250
251 * Ignore all checks which are not explicitly selected when ``select`` is
252   passed to the ``StyleGuide`` constructor.
253
254
255 1.4.4 (2013-02-24)
256 ------------------
257
258 * Report E227 or E228 instead of E225 for whitespace around bitwise, shift
259   or modulo operators. (Issue #166)
260
261 * Change the message for E226 to make clear that it is about arithmetic
262   operators.
263
264 * Fix a false positive E128 for continuation line indentation with tabs.
265
266 * Fix regression with the ``--diff`` option. (Issue #169)
267
268 * Fix the ``TestReport`` class to print the unexpected warnings and
269   errors.
270
271
272 1.4.3 (2013-02-22)
273 ------------------
274
275 * Hide the ``--doctest`` and ``--testsuite`` options when installed.
276
277 * Fix crash with AST checkers when the syntax is invalid. (Issue #160)
278
279 * Read from standard input if no path is specified.
280
281 * Initiate a graceful shutdown on ``Control+C``.
282
283 * Allow to change the ``checker_class`` for the ``StyleGuide``.
284
285
286 1.4.2 (2013-02-10)
287 ------------------
288
289 * Support AST checkers provided by third-party applications.
290
291 * Register new checkers with ``register_check(func_or_cls, codes)``.
292
293 * Allow to construct a ``StyleGuide`` with a custom parser.
294
295 * Accept visual indentation without parenthesis after the ``if``
296   statement. (Issue #151)
297
298 * Fix UnboundLocalError when using ``# noqa`` with continued lines.
299   (Issue #158)
300
301 * Re-order the lines for the ``StandardReport``.
302
303 * Expand tabs when checking E12 continuation lines. (Issue #155)
304
305 * Refactor the testing class ``TestReport`` and the specific test
306   functions into a separate test module.
307
308
309 1.4.1 (2013-01-18)
310 ------------------
311
312 * Allow sphinx.ext.autodoc syntax for comments. (Issue #110)
313
314 * Report E703 instead of E702 for the trailing semicolon. (Issue #117)
315
316 * Honor ``# noqa`` in addition to ``# nopep8``. (Issue #149)
317
318 * Expose the ``OptionParser`` factory for better extensibility.
319
320
321 1.4 (2012-12-22)
322 ----------------
323
324 * Report E226 instead of E225 for optional whitespace around common
325   operators (``*``, ``**``, ``/``, ``+`` and ``-``).  This new error
326   code is ignored in the default configuration because PEP 8 recommends
327   to "use your own judgement". (Issue #96)
328
329 * Lines with a ``# nopep8`` at the end will not issue errors on line
330   length E501 or continuation line indentation E12*. (Issue #27)
331
332 * Fix AssertionError when the source file contains an invalid line
333   ending ``"\r\r\n"``. (Issue #119)
334
335 * Read the ``[pep8]`` section of ``tox.ini`` or ``setup.cfg`` if present.
336   (Issue #93 and #141)
337
338 * Add the Sphinx-based documentation, and publish it
339   on http://pep8.readthedocs.org/. (Issue #105)
340
341
342 1.3.4 (2012-12-18)
343 ------------------
344
345 * Fix false positive E124 and E128 with comments. (Issue #100)
346
347 * Fix error on stdin when running with bpython. (Issue #101)
348
349 * Fix false positive E401. (Issue #104)
350
351 * Report E231 for nested dictionary in list. (Issue #142)
352
353 * Catch E271 at the beginning of the line. (Issue #133)
354
355 * Fix false positive E126 for multi-line comments. (Issue #138)
356
357 * Fix false positive E221 when operator is preceded by a comma. (Issue #135)
358
359 * Fix ``--diff`` failing on one-line hunk. (Issue #137)
360
361 * Fix the ``--exclude`` switch for directory paths. (Issue #111)
362
363 * Use ``-`` filename to read from standard input. (Issue #128)
364
365
366 1.3.3 (2012-06-27)
367 ------------------
368
369 * Fix regression with continuation line checker. (Issue #98)
370
371
372 1.3.2 (2012-06-26)
373 ------------------
374
375 * Revert to the previous behaviour for ``--show-pep8``:
376   do not imply ``--first``. (Issue #89)
377
378 * Add E902 for IO errors. (Issue #87)
379
380 * Fix false positive for E121, and missed E124. (Issue #92)
381
382 * Set a sensible default path for config file on Windows. (Issue #95)
383
384 * Allow ``verbose`` in the configuration file. (Issue #91)
385
386 * Show the enforced ``max-line-length`` in the error message. (Issue #86)
387
388
389 1.3.1 (2012-06-18)
390 ------------------
391
392 * Explain which configuration options are expected.  Accept and recommend
393   the options names with hyphen instead of underscore. (Issue #82)
394
395 * Do not read the user configuration when used as a module
396   (except if ``config_file=True`` is passed to the ``StyleGuide`` constructor).
397
398 * Fix wrong or missing cases for the E12 series.
399
400 * Fix cases where E122 was missed. (Issue #81)
401
402
403 1.3 (2012-06-15)
404 ----------------
405
406 .. warning::
407    The internal API is backwards incompatible.
408
409 * Remove global configuration and refactor the library around
410   a ``StyleGuide`` class; add the ability to configure various
411   reporters. (Issue #35 and #66)
412
413 * Read user configuration from ``~/.config/pep8``
414   and local configuration from ``./.pep8``. (Issue #22)
415
416 * Fix E502 for backslash embedded in multi-line string. (Issue #68)
417
418 * Fix E225 for Python 3 iterable unpacking (PEP 3132). (Issue #72)
419
420 * Enable the new checkers from the E12 series in the default
421   configuration.
422
423 * Suggest less error-prone alternatives for E712 errors.
424
425 * Rewrite checkers to run faster (E22, E251, E27).
426
427 * Fixed a crash when parsed code is invalid (too many
428   closing brackets).
429
430 * Fix E127 and E128 for continuation line indentation. (Issue #74)
431
432 * New option ``--format`` to customize the error format. (Issue #23)
433
434 * New option ``--diff`` to check only modified code.  The unified
435   diff is read from STDIN.  Example: ``hg diff | pep8 --diff``
436   (Issue #39)
437
438 * Correctly report the count of failures and set the exit code to 1
439   when the ``--doctest`` or the ``--testsuite`` fails.
440
441 * Correctly detect the encoding in Python 3. (Issue #69)
442
443 * Drop support for Python 2.3, 2.4 and 3.0. (Issue #78)
444
445
446 1.2 (2012-06-01)
447 ----------------
448
449 * Add E121 through E128 for continuation line indentation.  These
450   checks are disabled by default.  If you want to force all checks,
451   use switch ``--select=E,W``.  Patch by Sam Vilain. (Issue #64)
452
453 * Add E721 for direct type comparisons. (Issue #47)
454
455 * Add E711 and E712 for comparisons to singletons. (Issue #46)
456
457 * Fix spurious E225 and E701 for function annotations. (Issue #29)
458
459 * Add E502 for explicit line join between brackets.
460
461 * Fix E901 when printing source with ``--show-source``.
462
463 * Report all errors for each checker, instead of reporting only the
464   first occurrence for each line.
465
466 * Option ``--show-pep8`` implies ``--first``.
467
468
469 1.1 (2012-05-24)
470 ----------------
471
472 * Add E901 for syntax errors. (Issues #63 and #30)
473
474 * Add E271, E272, E273 and E274 for extraneous whitespace around
475   keywords. (Issue #57)
476
477 * Add ``tox.ini`` configuration file for tests. (Issue #61)
478
479 * Add ``.travis.yml`` configuration file for continuous integration.
480   (Issue #62)
481
482
483 1.0.1 (2012-04-06)
484 ------------------
485
486 * Fix inconsistent version numbers.
487
488
489 1.0 (2012-04-04)
490 ----------------
491
492 * Fix W602 ``raise`` to handle multi-char names. (Issue #53)
493
494
495 0.7.0 (2012-03-26)
496 ------------------
497
498 * Now ``--first`` prints only the first occurrence of each error.
499   The ``--repeat`` flag becomes obsolete because it is the default
500   behaviour. (Issue #6)
501
502 * Allow to specify ``--max-line-length``. (Issue #36)
503
504 * Make the shebang more flexible. (Issue #26)
505
506 * Add testsuite to the bundle. (Issue #25)
507
508 * Fixes for Jython. (Issue #49)
509
510 * Add PyPI classifiers. (Issue #43)
511
512 * Fix the ``--exclude`` option. (Issue #48)
513
514 * Fix W602, accept ``raise`` with 3 arguments. (Issue #34)
515
516 * Correctly select all tests if ``DEFAULT_IGNORE == ''``.
517
518
519 0.6.1 (2010-10-03)
520 ------------------
521
522 * Fix inconsistent version numbers. (Issue #21)
523
524
525 0.6.0 (2010-09-19)
526 ------------------
527
528 * Test suite reorganized and enhanced in order to check more failures
529   with fewer test files.  Read the ``run_tests`` docstring for details
530   about the syntax.
531
532 * Fix E225: accept ``print >>sys.stderr, "..."`` syntax.
533
534 * Fix E501 for lines containing multibyte encoded characters. (Issue #7)
535
536 * Fix E221, E222, E223, E224 not detected in some cases. (Issue #16)
537
538 * Fix E211 to reject ``v = dic['a'] ['b']``. (Issue #17)
539
540 * Exit code is always 1 if any error or warning is found. (Issue #10)
541
542 * ``--ignore`` checks are now really ignored, especially in
543   conjunction with ``--count``. (Issue #8)
544
545 * Blank lines with spaces yield W293 instead of W291: some developers
546   want to ignore this warning and indent the blank lines to paste their
547   code easily in the Python interpreter.
548
549 * Fix E301: do not require a blank line before an indented block. (Issue #14)
550
551 * Fix E203 to accept NumPy slice notation ``a[0, :]``. (Issue #13)
552
553 * Performance improvements.
554
555 * Fix decoding and checking non-UTF8 files in Python 3.
556
557 * Fix E225: reject ``True+False`` when running on Python 3.
558
559 * Fix an exception when the line starts with an operator.
560
561 * Allow a new line before closing ``)``, ``}`` or ``]``. (Issue #5)
562
563
564 0.5.0 (2010-02-17)
565 ------------------
566
567 * Changed the ``--count`` switch to print to sys.stderr and set
568   exit code to 1 if any error or warning is found.
569
570 * E241 and E242 are removed from the standard checks. If you want to
571   include these checks, use switch ``--select=E,W``. (Issue #4)
572
573 * Blank line is not mandatory before the first class method or nested
574   function definition, even if there's a docstring. (Issue #1)
575
576 * Add the switch ``--version``.
577
578 * Fix decoding errors with Python 3. (Issue #13 [1]_)
579
580 * Add ``--select`` option which is mirror of ``--ignore``.
581
582 * Add checks E261 and E262 for spaces before inline comments.
583
584 * New check W604 warns about deprecated usage of backticks.
585
586 * New check W603 warns about the deprecated operator ``<>``.
587
588 * Performance improvement, due to rewriting of E225.
589
590 * E225 now accepts:
591
592   - no whitespace after unary operator or similar. (Issue #9 [1]_)
593
594   - lambda function with argument unpacking or keyword defaults.
595
596 * Reserve "2 blank lines" for module-level logical blocks. (E303)
597
598 * Allow multi-line comments. (E302, issue #10 [1]_)
599
600
601 0.4.2 (2009-10-22)
602 ------------------
603
604 * Decorators on classes and class methods are OK now.
605
606
607 0.4 (2009-10-20)
608 ----------------
609
610 * Support for all versions of Python from 2.3 to 3.1.
611
612 * New and greatly expanded self tests.
613
614 * Added ``--count`` option to print the total number of errors and warnings.
615
616 * Further improvements to the handling of comments and blank lines.
617   (Issue #1 [1]_ and others changes.)
618
619 * Check all py files in directory when passed a directory (Issue
620   #2 [1]_). This also prevents an exception when traversing directories
621   with non ``*.py`` files.
622
623 * E231 should allow commas to be followed by ``)``. (Issue #3 [1]_)
624
625 * Spaces are no longer required around the equals sign for keyword
626   arguments or default parameter values.
627
628
629 .. [1] These issues refer to the `previous issue tracker`__.
630 .. __:  http://github.com/cburroughs/pep8.py/issues
631
632
633 0.3.1 (2009-09-14)
634 ------------------
635
636 * Fixes for comments: do not count them when checking for blank lines between
637   items.
638
639 * Added setup.py for pypi upload and easy_installability.
640
641
642 0.2 (2007-10-16)
643 ----------------
644
645 * Loads of fixes and improvements.
646
647
648 0.1 (2006-10-01)
649 ----------------
650
651 * First release.