Skip to content

Conversation

@pyup-bot
Copy link

This is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge.

Close this pull request and delete the branch if you want me to start with single pull requests right away

Here's the executive summary:

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

blessed 1.14.2 » 1.14.2 PyPI | Changelog | Repo
pip 8.1.2 » 9.0.1 PyPI | Changelog | Homepage
wheel 0.29.0 » 0.30.0 PyPI | Changelog | Repo
flake8 2.6.0 » 3.5.0 PyPI | Changelog | Repo
tox 2.3.1 » 2.9.1 PyPI | Changelog | Docs
coverage 4.1 » 4.4.2 PyPI | Changelog | Repo
Sphinx 1.4.8 » 1.6.5 PyPI | Changelog | Homepage
cryptography 1.7 » 2.1.3 PyPI | Changelog | Repo
PyYAML 3.11 » 3.12 PyPI | Changelog | Homepage

Changelogs

blessed -> 1.14.2

1.14

  • bugfix: :meth:~.Terminal.wrap misbehaved for text containing newlines,
    :ghissue:74.
  • bugfix: TypeError when using PYTHONOPTIMIZE=2 environment variable,
    :ghissue:84.
  • bugfix: define blessed.__version__ value,
    :ghissue:92.
  • bugfix: detect sequences \x1b[0K and \x1b2K,
    :ghissue:95.

1.13

  • enhancement: :meth:~.Terminal.split_seqs introduced, and 4x cost
    reduction in related sequence-aware functions, :ghissue:29.
  • deprecated: blessed.sequences.measure_length function superseded by
    :func:~.iter_parse if necessary.
  • deprecated: warnings about "binary-packed capabilities" are no longer
    emitted on strange terminal types, making best effort.

1.12

  • enhancement: :meth:~.Terminal.get_location returns the (row, col)
    position of the cursor at the time of call for attached terminal.
  • enhancement: a keyboard now detected as stdin when
    :paramref:~.Terminal.__init__.stream is :obj:sys.stderr.

1.11

  • enhancement: :meth:~.Terminal.inkey can return more quickly for
    combinations such as Alt + Z when MetaSendsEscape is enabled,
    :ghissue:30.
  • enhancement: :class:~.FormattingString may now be nested, such as
    t.red('red', t.underline('rum')), :ghissue:61

1.10

  • workaround: provide sc and rc for Terminals of kind='ansi',
    repairing :meth:~.Terminal.location :ghissue:44.
  • bugfix: length of simple SGR reset sequence \x1b[m was not correctly
    determined on all terminal types, :ghissue:45.
  • deprecated: _intr_continue arguments introduced in 1.8 are now marked
    deprecated in 1.10: beginning with python 3.5, the default behavior is as
    though this argument is always True, PEP-475 <https://www.python.org/dev/peps/pep-0475/>_, blessed does the same.

1.9

  • enhancement: :paramref:~.Terminal.wrap.break_long_words now supported by
    :meth:Terminal.wrap
  • Ignore :class:curses.error message 'tparm() returned NULL':
    this occurs on win32 or other platforms using a limited curses
    implementation, such as PDCurses_, where :func:curses.tparm is
    not implemented, or no terminal capability database is available.
  • Context manager :meth:~.keypad emits sequences that enable
    "application keys" such as the diagonal keys on the numpad.
    This is equivalent to :meth:curses.window.keypad.
  • bugfix: translate keypad application keys correctly.
  • enhancement: no longer depend on the '2to3' tool for python 3 support.
  • enhancement: allow civis and cnorm (hide_cursor, normal_hide)
    to work with terminal-type ansi by emulating support by proxy.
  • enhancement: new public attribute: :attr:~.kind: the very same as given
    :paramref:Terminal.__init__.kind keyword argument. Or, when not given,
    determined by and equivalent to the TERM Environment variable.

1.8

  • enhancement: export keyboard-read function as public method getch(),
    so that it may be overridden by custom terminal implementers.
  • enhancement: allow :meth:~.inkey and :meth:~.kbhit to return early
    when interrupted by signal by passing argument _intr_continue=False.
  • enhancement: allow hpa and vpa (move_x, move_y) to work on
    tmux(1) or screen(1) by emulating support by proxy.
  • enhancement: add :meth:~.Terminal.rstrip and :meth:~.Terminal.lstrip,
    strips both sequences and trailing or leading whitespace, respectively.
  • enhancement: include wcwidth_ library support for
    :meth:~.Terminal.length: the printable width of many kinds of CJK
    (Chinese, Japanese, Korean) ideographs and various combining characters
    may now be determined.
  • enhancement: better support for detecting the length or sequences of
    externally-generated ecma-48 codes when using xterm or aixterm.
  • bugfix: when :func:locale.getpreferredencoding returns empty string or
    an encoding that is not valid for codecs.getincrementaldecoder,
    fallback to ASCII and emit a warning.
  • bugfix: ensure :class:~.FormattingString and
    :class:~.ParameterizingString may be pickled.
  • bugfix: allow ~.inkey and related to be called without a keyboard.
  • change: term.keyboard_fd is set None if stream or
    sys.stdout is not a tty, making term.inkey(), term.cbreak(),
    term.raw(), no-op.
  • bugfix: \x1bOH (KEY_HOME) was incorrectly mapped as KEY_LEFT.

1.7

  • Forked github project erikrose/blessings_ to jquast/blessed_, this
    project was previously known as blessings version 1.6 and prior.
  • introduced: context manager :meth:~.cbreak, which is equivalent to
    entering terminal state by :func:tty.setcbreak and returning
    on exit, as well as the lesser recommended :meth:~.raw,
    pairing from :func:tty.setraw.
  • introduced: :meth:~.inkey, which will return one or more characters
    received by the keyboard as a unicode sequence, with additional attributes
    :attr:~.Keystroke.code and :attr:~.Keystroke.name. This allows
    application keys (such as the up arrow, or home key) to be detected.
    Optional value :paramref:~.inkey.timeout allows for timed poll.
  • introduced: :meth:~.Terminal.center, :meth:~.Terminal.rjust,
    :meth:~.Terminal.ljust, allowing text containing sequences to be aligned
    to detected horizontal screen width, or by
    :paramref:~.Terminal.center.width specified.
  • introduced: :meth:~.wrap method. Allows text containing sequences to be
    word-wrapped without breaking mid-sequence, honoring their printable width.
  • introduced: :meth:~.Terminal.strip, strips all sequences and
    whitespace.
  • introduced: :meth:~.Terminal.strip_seqs strip only sequences.
  • introduced: :meth:~.Terminal.rstrip and :meth:~.Terminal.lstrip strips
    both sequences and trailing or leading whitespace, respectively.
  • bugfix: cannot call :func:curses.setupterm more than once per process
    (from :meth:Terminal.__init__): Previously, blessed pretended
    to support several instances of different Terminal :attr:~.kind, but was
    actually using the :attr:~.kind specified by the first instantiation of
    :class:~.Terminal. A warning is now issued. Although this is
    misbehavior is still allowed, a :class:warnings.WarningMessage is now
    emitted to notify about subsequent terminal misbehavior.
  • bugfix: resolved issue where :attr:~.number_of_colors fails when
    :attr:~.does_styling is False. Resolves issue where piping tests
    output would fail.
  • bugfix: warn and set :attr:~.does_styling to False when the given
    :attr:~.kind is not found in the terminal capability database.
  • bugfix: allow unsupported terminal capabilities to be callable just as
    supported capabilities, so that the return value of
    :attr:~.color(n) may be called on terminals without color
    capabilities.
  • bugfix: for terminals without underline, such as vt220,
    term.underline('text') would emit 'text' + term.normal.
    Now it emits only 'text'.
  • enhancement: some attributes are now properties, raise exceptions when
    assigned.
  • enhancement: pypy is now a supported python platform implementation.
  • enhancement: removed pokemon curses.error exceptions.
  • enhancement: do not ignore :class:curses.error exceptions, unhandled
    curses errors are legitimate errors and should be reported as a bug.
  • enhancement: converted nose tests to pytest, merged travis and tox.
  • enhancement: pytest fixtures, paired with a new as_subprocess
    decorator
    are used to test a multitude of terminal types.
  • enhancement: test accessories as_subprocess resolves various issues
    with different terminal types that previously went untested.
  • deprecation: python2.5 is no longer supported (as tox does not supported).

1.6

  • Add :attr:~.does_styling. This takes :attr:~.force_styling
    into account and should replace most uses of :attr:~.is_a_tty.
  • Make :attr:~.is_a_tty a read-only property like :attr:~.does_styling.
    Writing to it never would have done anything constructive.
  • Add :meth:~.fullscreen`` and :meth:hidden_cursor` to the
    auto-generated docs.

1.5.1

  • Clean up fabfile, removing the redundant test command.
  • Add Travis support.
  • Make python setup.py test work without spurious errors on 2.6.
  • Work around a tox parsing bug in its config file.
  • Make context managers clean up after themselves even if there's an
    exception (Vitja Makarov :ghpull:29).
  • Parameterizing a capability no longer crashes when there is no tty
    (Vitja Makarov :ghpull:31)

1.5

  • Add syntactic sugar and documentation for enter_fullscreen
    and exit_fullscreen.
  • Add context managers :meth:~.fullscreen and :meth:~.hidden_cursor.
  • Now you can force a :class:~.Terminal to never to emit styles by
    passing keyword argument force_styling=None.

1.4

  • Add syntactic sugar for cursor visibility control and single-space-movement
    capabilities.
  • Endorse the :meth:~.location context manager for restoring cursor
    position after a series of manual movements.
  • Fix a bug in which :meth:~.location that wouldn't do anything when
    passed zeros.
  • Allow tests to be run with python setup.py test.

1.3

  • Added :attr:~.number_of_colors, which tells you how many colors the
    terminal supports.
  • Made :attr:~.color(n) and :attr:~.on_color(n) callable to wrap a
    string, like the named colors can. Also, make them both fall back to the
    setf and setb capabilities (like the named colors do) if the
    termcap entries for setaf and setab are not available.
  • Allowed :attr:~.color to act as an unparametrized string, not just a
    callable.
  • Made :attr:~.height and :attr:~.width examine any passed-in stream
    before falling back to stdout (This rarely if ever affects actual behavior;
    it's mostly philosophical).
  • Made caching simpler and slightly more efficient.
  • Got rid of a reference cycle between :class:~.Terminal and
    :class:~.FormattingString.
  • Updated docs to reflect that terminal addressing (as in :meth:~location)
    is 0-based.

1.2

  • Added support for Python 3! We need 3.2.3 or greater, because the curses
    library couldn't decide whether to accept strs or bytes before that
    (http://bugs.python.org/issue10570).
  • Everything that comes out of the library is now unicode. This lets us
    support Python 3 without making a mess of the code, and Python 2 should
    continue to work unless you were testing types (and badly). Please file a
    bug if this causes trouble for you.
  • Changed to the MIT License for better world domination.
  • Added Sphinx docs.

1.1

  • Added nicely named attributes for colors.
  • Introduced compound formatting.
  • Added wrapper behavior for styling and colors.
  • Let you force capabilities to be non-empty, even if the output stream is
    not a terminal.
  • Added :attr:~.is_a_tty to determine whether the output stream is a
    terminal.
  • Sugared the remaining interesting string capabilities.
  • Allow :meth:~.location to operate on just an x or y coordinate.

1.0

  • Extracted Blessed from nose-progressive_.

.. _nose-progressive: http://pypi.python.org/pypi/nose-progressive/
.. _erikrose/blessings: https://github.com/erikrose/blessings
.. _jquast/blessed: https://github.com/jquast/blessed
.. _issue tracker: https://github.com/jquast/blessed/issues/
.. _curses: https://docs.python.org/library/curses.html
.. _couleur: https://pypi.python.org/pypi/couleur
.. _colorama: https://pypi.python.org/pypi/colorama
.. _wcwidth: https://pypi.python.org/pypi/wcwidth
.. _cbreak(3): http://www.openbsd.org/cgi-bin/man.cgi?query=cbreak&apropos=0&sektion=3
.. _curs_getch(3): http://www.openbsd.org/cgi-bin/man.cgi?query=curs_getch&apropos=0&sektion=3
.. _termios(4): http://www.openbsd.org/cgi-bin/man.cgi?query=termios&apropos=0&sektion=4
.. _terminfo(5): http://www.openbsd.org/cgi-bin/man.cgi?query=terminfo&apropos=0&sektion=5
.. _tigetstr: http://www.openbsd.org/cgi-bin/man.cgi?query=tigetstr&sektion=3
.. _tparm: http://www.openbsd.org/cgi-bin/man.cgi?query=tparm&sektion=3
.. _SIGWINCH: https://en.wikipedia.org/wiki/SIGWINCH
.. _API Documentation: http://blessed.rtfd.org
.. _PDCurses: http://www.lfd.uci.edu/~gohlke/pythonlibs/curses
.. _ansi: https://github.com/tehmaze/ansi

0.1.0

blessed

The features demonstrated in the above gif element transparency/shadow and
border docking.

New useful options for your typewriter application:

  • transparent option - Lower element opacity to 50%. This will display
    dimmed elements and content behind the foreground element using a naive color
    blending function (good enough for a terminal's limited amount of colors).
    works best with 256color terminals. (see widget-shadow.js)
  • shadow option - Give the element a translucent shadow. Automatically
    darkens the background behind it. (see widget-shadow.js)
  • dockBorders option - Element borders will automatically "dock" to each
    other. Instead of overlapping the borders end up connecting. (see
    widget-dock.js)
  • autoPadding default - Auto padding is now enabled by default, meaning
    blessed will automatically position elements inside their parent's border.
  • rleft property - Relative offsets are now default element properties
    (left instead of rleft).
  • draggable property - Make any element draggable with the mouse. (see
    widget-shadow.js or widget-dock.js)
  • Table and ListTable elements - Tables with a high quality rendering.
    (see widget-table.js and widget-listtable.js)
  • Log element - A top to bottom logger box with scrollback and other
    features. (see widget-log.js)
  • Obscurable borders - In addition to docking borders, it's possible to
    obscure borders by sliding them off the screen with negative offsets. (see
    widget-dock.js)
  • Percentage expressions - Like CSS, arithmetic can now be performed on
    percentages. e.g. width: '50%-1'. This is useful for overlapping borders on
    elements with a percentage width. (see widget-dock.js)

Other features that weren't mentioned before:

  • setHover option - Set a hover text box to follow cursor on mouseover,
    similar to how a web browser handles the "title" attribute. (see widget.js)
  • Terminal element - Spin up a pseudo terminal as a blessed element.
    useful for writing a terminal multiplexer. (requires term.js and pty.js as
    optional dependencies). (see example/multiplex.js)
  • Image element - Uses w3mimgdisplay to draw real images your terminal.
    this is much easier than calling w3mimgdisplay by hand. Image elements behave
    like any other element, although it is wise to use width: 'shrink', height: 'shrink'. (see widget-image.js)

The major things that justified the 0.1.0 release were fixes and stabilization
of api (autoPadding/rleft/left). Scrolling boxes were almost completely
revamped to work a bit smarter.


Things yet to come:

  • secrettriangle's improvements for
    textareas
    - This allows for real text navigation.
  • Gravity and margin layouts

This is something that's been in the idea bin for a while. Every element could
potentially have properties like:

 gravity: 'bottomleft',
 margin: 5,
``

In other words, just a more complex float system than what the CSSOM is used
to.

pip 8.1.2 -> 9.0.1

9.0.1

==================

  • Correct the deprecation message when not specifying a --format so that it
    uses the correct setting name (format) rather than the incorrect one
    (list_format). (4058)
  • Fix pip check to check all available distributions and not just the
    local ones. (4083)
  • Fix a crash on non ASCII characters from lsb_release. (4062)
  • Fix an SyntaxError in an unused module of a vendored dependency. (4059)
  • Fix UNC paths on Windows. (4064)

9.0.0

==================

  • BACKWARD INCOMPATIBLE Remove the attempted autodetection of requirement
    names from URLs, URLs must include a name via egg=.
  • DEPRECATION pip install --egg have been deprecated and will be
    removed in the future. This "feature" has a long list of drawbacks which
    break nearly all of pip's other features in subtle and hard-to-diagnose
    ways.
  • DEPRECATION --default-vcs option. (4052)
  • WARNING pip 9 cache can break forward compatibility with previous pip
    versions if your package repository allows chunked responses. (4078)
  • Add a pip check command to check installed packages dependencies. (3750)
  • Add option allowing user to abort pip operation if file/directory exists
  • Add Appveyor CI
  • Uninstall existing packages when performing an editable installation of
    the same packages. (1548)
  • pip show is less verbose by default. --verbose prints multiline
    fields. (3858)
  • Add optional column formatting to pip list. (3651)
  • Add --not-required option to pip list, which lists packages that are
    not dependencies of other packages.
  • Fix builds on systems with symlinked /tmp directory for custom
    builds such as numpy. (3701)
  • Fix regression in pip freeze: when there is more than one git remote,
    priority is given to the remote named origin. (3708, 3616).
  • Fix crash when calling pip freeze with invalid requirement installed.
    (3704, 3681)
  • Allow multiple --requirement files in pip freeze. (3703)
  • Implementation of pep-503 data-requires-python. When this field is
    present for a release link, pip will ignore the download when
    installing to a Python version that doesn't satisfy the requirement.
  • pip wheel now works on editable packages too (it was only working on
    editable dependencies before); this allows running pip wheel on the result
    of pip freeze in presence of editable requirements. (3695, 3291)
  • Load credentials from .netrc files. (3715, 3569)
  • Add --platform, --python-version, --implementation and --abi
    parameters to pip download. These allow utilities and advanced users to
    gather distributions for interpreters other than the one pip is being run on.
    (3760)
  • Skip scanning virtual environments, even when venv/bin/python is a dangling
    symlink.
  • Added pip completion support for the fish shell.
  • Fix problems on Windows on Python 2 when username or hostname contains
    non-ASCII characters. (3463, 3970, 4000)
  • Use git fetch --tags to fetch tags in addition to everything else that
    is normally fetched; this is necessary in case a git requirement url
    points to a tag or commit that is not on a branch. (3791)
  • Normalize package names before using in pip show (3976)
  • Raise when Requires-Python do not match the running version and add
    --ignore-requires-python option as escape hatch. (3846)
  • Report the correct installed version when performing an upgrade in some
    corner cases. (2382
  • Add -i shorthand for --index flag in pip search.
  • Do not optionally load C dependencies in requests. (1840, 2930, 3024)
  • Strip authentication from SVN url prior to passing it to svn.
    (3697, 3209)
  • Also install in platlib with --target option. (3694, 3682)
  • Restore the ability to use inline comments in requirements files passed to
    pip freeze. (3680)

wheel 0.29.0 -> 0.30.0

0.30.0

======

  • Added py-limited-api {cp32|cp33|cp34|...} flag to produce cpNN.abi3.{arch}
    tags on CPython 3.
  • Documented the license_file metadata key
  • Improved Python, abi tagging for wheel convert. Thanks Ales Erjavec.
  • Fixed > being prepended to lines starting with "From" in the long description
  • Added support for specifying a build number (as per PEP 427).
    Thanks Ian Cordasco.
  • Made the order of files in generated ZIP files deterministic.
    Thanks Matthias Bach.
  • Made the order of requirements in metadata deterministic. Thanks Chris Lamb.
  • Fixed wheel install clobbering existing files
  • Improved the error message when trying to verify an unsigned wheel file
  • Removed support for Python 2.6, 3.2 and 3.3.

flake8 2.6.0 -> 3.5.0

3.5.0


You can view the 3.5.0 milestone_ on GitLab for more details.

New Dependency Information

  • Allow for PyFlakes 1.6.0 (See also GitLab359_)
  • Start using new PyCodestyle checks for bare excepts and ambiguous identifier
    (See also GitLab361_)

Features

  • Print out information about configuring VCS hooks (See also GitLab335_)
  • Allow users to develop plugins "local" to a repository without using
    setuptools. See our documentation on local plugins for more information.
    (See also GitLab357_)

Bugs Fixed

  • Catch and helpfully report UnicodeDecodeError\ s when parsing
    configuration files. (See also GitLab358_)

.. all links
.. _3.5.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/20

.. issue links
.. _GitLab335:
https://gitlab.com/pycqa/flake8/issues/335
.. _GitLab357:
https://gitlab.com/pycqa/flake8/issues/357
.. _GitLab358:
https://gitlab.com/pycqa/flake8/issues/358
.. _GitLab359:
https://gitlab.com/pycqa/flake8/issues/359
.. _GitLab361:
https://gitlab.com/pycqa/flake8/issues/361

.. merge request links

3.4.1


You can view the 3.4.1 milestone_ on GitLab for more details.

  • Fix minor regression when users specify only a --select list with items
    in the enabled/extended select list. (See also GitLab354_)

.. all links
.. _3.4.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/19

.. issue links
.. _GitLab354:
https://gitlab.com/pycqa/flake8/issues/354

.. merge request links

3.4.0


You can view the 3.4.0 milestone_ on GitLab for more details.

  • Refine logic around --select and --ignore when combined with the
    default values for each. (See also GitLab318_)
  • Handle spaces as an alternate separate for error codes, e.g.,
    --ignore 'E123 E234'. (See also GitLab329_)
  • Filter out empty select and ignore codes, e.g., --ignore E123,,E234.
    (See also GitLab330_)
  • Specify dependencies appropriately in setup.py (See also Gitlab341_)
  • Fix bug in parsing --quiet and --verbose from config files.
    (See also GitLab!193_)
  • Remove unused import of os in the git hook template (See also
    GitLab!194_)

.. all links
.. _3.4.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/18

.. issue links
.. _GitLab318:
https://gitlab.com/pycqa/flake8/issues/318
.. _GitLab329:
https://gitlab.com/pycqa/flake8/issues/329
.. _GitLab330:
https://gitlab.com/pycqa/flake8/issues/330
.. _GitLab341:
https://gitlab.com/pycqa/flake8/issues/341

.. merge request links
.. _GitLab!193:
https://gitlab.com/pycqa/flake8/merge_requests/193
.. _GitLab!194:
https://gitlab.com/pycqa/flake8/merge_requests/194

3.3.0


You can view the 3.3.0 milestone_ on GitLab for more details.

  • Add support for Python 3.6 (via dependencies). Note Flake8 does not
    guarantee that all plugins will support Python 3.6.
  • Added unique error codes for all missing PyFlakes messages. (14 new
    codes, see "Error / Violation Codes")
  • Dramatically improve the performance of Flake8. (See also GitLab!156_)
  • Display the local file path instead of the temporary file path when
    using the git hook. (See also GitLab244_)
  • Add methods to Report class that will be called when Flake8 starts and
    finishes processing a file. (See also GitLab251_)
  • Fix problem where hooks should only check *.py files. (See also
    GitLab268_)
  • Fix handling of SyntaxErrors that do not include physical line information.
    (See also GitLab279_)
  • Update upper bound on PyFlakes to allow for PyFlakes 1.5.0. (See also
    GitLab290_)
  • Update setuptools integration to less eagerly deduplicate packages.
    (See also GitLab295_)
  • Force flake8 --version to be repeatable between invocations. (See also
    GitLab297_)

.. all links
.. _3.3.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/16

.. issue links
.. _GitLab244:
https://gitlab.com/pycqa/flake8/issues/244
.. _GitLab251:
https://gitlab.com/pycqa/flake8/issues/251
.. _GitLab268:
https://gitlab.com/pycqa/flake8/issues/268
.. _GitLab279:
https://gitlab.com/pycqa/flake8/issues/279
.. _GitLab290:
https://gitlab.com/pycqa/flake8/issues/290
.. _GitLab295:
https://gitlab.com/pycqa/flake8/issues/295
.. _GitLab297:
https://gitlab.com/pycqa/flake8/issues/297

.. merge request links
.. _GitLab!156:
https://gitlab.com/pycqa/flake8/merge_requests/156

3.2.1


You can view the 3.2.1 milestone_ on GitLab for more details.

  • Fix subtle bug when deciding whether to report an on-by-default's violation
    (See also GitLab257_)
  • Fix another bug around SyntaxErrors not being reported at the right column
    and row (See also GitLab259_ and GitLab237_ for a related, previously
    fixed bug)
  • Fix regression from 2.x where we run checks against explicitly provided
    files, even if they don't match the filename patterns. (See also
    GitLab266_)

.. links
.. _3.2.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/15
.. _GitLab237:
https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab257:
https://gitlab.com/pycqa/flake8/issues/257
.. _GitLab259:
https://gitlab.com/pycqa/flake8/issues/259
.. _GitLab266:
https://gitlab.com/pycqa/flake8/issues/266

3.2.0


You can view the 3.2.0 milestone_ on GitLab for more details.

  • Allow for pycodestyle 2.2.0 which fixes a bug in E305 (See also
    GitLab256_)

.. links
.. _3.2.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/14
.. _GitLab256:
https://gitlab.com/pycqa/flake8/issues/256

3.1.1


You can view the 3.1.1 milestone_ on GitLab for more details.

  • Do not attempt to install/distribute a man file with the Python package;
    leave this for others to do. (See also GitLab254_)
  • Fix packaging bug where wheel version constraints specified in setup.cfg did
    not match the constraints in setup.py. (See also GitLab255_)

.. links
.. _3.1.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/13
.. _GitLab254:
https://gitlab.com/pycqa/flake8/issues/254
.. _GitLab255:
https://gitlab.com/pycqa/flake8/issues/255

3.1.0


You can view the 3.1.0 milestone_ on GitLab for more details.

  • Add --bug-report flag to make issue reporters' lives easier.
  • Collect configuration files from the current directory when using our Git
    hook. (See also GitLab210, GitLab218, GitLab223_)
  • Avoid unhandled exceptions when dealing with SyntaxErrors. (See also
    GitLab214, GitLab238)
  • Exit early if the value for --diff is empty. (See also GitLab226_)
  • Handle empty --stdin-display-name values. (See also GitLab235_)
  • Properly report the column number of Syntax Errors. We were assuming that
    all reports of column numbers were 0-indexed, however, SyntaxErrors report
    the column number as 1-indexed. This caused us to report a column number
    that was 1 past the actual position. Further, when combined with
    SyntaxErrors that occur at a newline, this caused the position to be
    visually off by two. (See also GitLab237_)
  • Fix the behaviour of --enable-extensions. Previously, items specified
    here were still ignored due to the fact that the off-by-default extension
    codes were being left in the ignore list. (See also GitLab239_)
  • Fix problems around --select and --ignore behaviour that prevented
    codes that were neither explicitly selected nor explicitly ignored from
    being reported. (See also GitLab242_)
  • Truly be quiet when the user specifies -q one or more times. Previously,
    we were showing the if the user specified -q and --show-source. We
    have fixed this bug. (See also GitLab245_)
  • Add new File Processor attribute, previous_unindented_logical_line to
    accommodate pycodestyle 2.1.0. (See also GitLab246_)
  • When something goes wrong, exit non-zero. (See also GitLab248,
    GitLab209
    )
  • Add --tee as an option to allow use of --output-file and printing to
    standard out.
  • Allow the git plugin to actually be lazy when collecting files.
  • Allow for pycodestyle 2.1 series and pyflakes 1.3 series.

.. links
.. _3.1.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/12
.. _GitLab209:
https://gitlab.com/pycqa/flake8/issues/209
.. _GitLab210:
https://gitlab.com/pycqa/flake8/issues/210
.. _GitLab214:
https://gitlab.com/pycqa/flake8/issues/214
.. _GitLab218:
https://gitlab.com/pycqa/flake8/issues/218
.. _GitLab223:
https://gitlab.com/pycqa/flake8/issues/223
.. _GitLab226:
https://gitlab.com/pycqa/flake8/issues/226
.. _GitLab235:
https://gitlab.com/pycqa/flake8/issues/235
.. _GitLab237:
https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab238:
https://gitlab.com/pycqa/flake8/issues/238
.. _GitLab239:
https://gitlab.com/pycqa/flake8/issues/239
.. _GitLab242:
https://gitlab.com/pycqa/flake8/issues/242
.. _GitLab245:
https://gitlab.com/pycqa/flake8/issues/245
.. _GitLab246:
https://gitlab.com/pycqa/flake8/issues/246
.. _GitLab248:
https://gitlab.com/pycqa/flake8/issues/248

3.0.4


  • Side-step a Pickling Error when using Flake8 with multiprocessing on Unix
    systems. (See also GitLab164_)
  • Fix an Attribute Error raised when dealing with Invalid Syntax. (See also
    GitLab203_)
  • Fix an unhandled Syntax Error when tokenizing files. (See also
    GitLab205_)

.. links
.. _GitLab164:
https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab203:
https://gitlab.com/pycqa/flake8/issues/203
.. _GitLab205:
https://gitlab.com/pycqa/flake8/issues/205

3.0.3


  • Disable --jobs for any version of Python on Windows.
    (See also this Python bug report_)
  • Raise exception when entry_point in plugin not callable.
    This raises an informative error when a plugin fails to load because its
    entry_point is not callable, which can happen with a plugin which is buggy or
    not updated for the current version of flake8. This is nicer than raising a
    PicklingError about failing to pickle a module (See also GitLab164_)
  • Fix noqa comments followed by a : and explanation broken by
    3.0.0 (See also GitLab178_)
  • Always open our output file in append mode so we do not overwrite log
    messages. (See also GitLab193_)
  • When normalizing path values read from configuration, keep in context the
    directory where the configuration was found so that relative paths work.
    (See also GitLab194_)
  • Fix issue where users were unable to ignore plugin errors that were on
    by default. (See also GitLab195_)
  • Fix our legacy API StyleGuide's init_report method to actually override
    the previous formatter. (See also GitLab200_)

.. links
.. _GitLab164:
https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab178:
https://gitlab.com/pycqa/flake8/issues/178
.. _GitLab193:
https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab194:
https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab195:
https://gitlab.com/pycqa/flake8/issues/195
.. _GitLab200:
https://gitlab.com/pycqa/flake8/issues/200
.. _this Python bug report:
https://bugs.python.org/issue27649

3.0.2


  • Fix local config file discovery. (See also GitLab181_)
  • Fix indexing of column numbers. We accidentally were starting column indices
    at 0 instead of 1.
  • Fix regression in handling of errors like E402 that rely on a combination of
    attributes. (See also GitLab186_)

.. links
.. _GitLab181:
https://gitlab.com/pycqa/flake8/issues/181
.. _GitLab186:
https://gitlab.com/pycqa/flake8/issues/186

3.0.1


  • Fix regression in handling of noqa for multiline strings.
    (See also GitLab177_)
  • Fix regression in handling of --output-file when not also using
    --verbose. (See also GitLab180_)
  • Fix regression in handling of --quiet. (See also GitLab180_)
  • Fix regression in handling of --statistics. (See also GitLab180_)

.. links
.. _GitLab177:
https://gitlab.com/pycqa/flake8/issues/177
.. _GitLab180:
https://gitlab.com/pycqa/flake8/issues/180

3.0.0


  • Drop explicit support for Pythons 2.6, 3.2, and 3.3.
  • Remove dependence on pep8/pycodestyle for file processing, plugin
    dispatching, and more. We now control all of this while keeping backwards
    compatibility.
  • --select and --ignore can now both be specified and try to find the
    most specific rule from each. For example, if you do --select E --ignore E123 then we will report everything that starts with E except for
    E123. Previously, you would have had to do --ignore E123,F,W which
    will also still work, but the former should be far more intuitive.
  • Add support for in-line noqa comments to specify only the error
    codes to be ignored, e.g., noqa: E123,W503
  • Add entry-point for formatters as well as a base class that new formatters
    can inherit from. See the documentation for more details.
  • Add detailed verbose output using the standard library logging module.
  • Enhance our usage of optparse for plugin developers by adding new parameters
    to the add_option that plugins use to register new options.
  • Update --install-hook to require the name of version control system hook
    you wish to install a Flake8.
  • Stop checking sub-directories more than once via the setuptools command
  • When passing a file on standard-in, allow the caller to specify
    --stdin-display-name so the output is properly formatted
  • The Git hook now uses sys.executable to format the shebang line.
    This allows Flake8 to install a hook script from a virtualenv that points to
    that virtualenv's Flake8 as opposed to a global one (without the virtualenv
    being sourced).
  • Print results in a deterministic and consistent ordering when used with
    multiprocessing
  • When using --count, the output is no longer written to stderr.
  • AST plugins can either be functions or classes and all plugins can now
    register options so long as there are callable attributes named as we
    expect.
  • Stop forcibly re-adding .tox, .eggs, and *.eggs to
    --exclude. Flake8 2.x started always appending those three patterns
    to any exclude list (including the default and any user supplied list).
    Flake8 3 has stopped adding these in, so you may see errors when upgrading
    due to these patterns no longer being forcibly excluded by default if you
    have your own exclude patterns specified.

To fix this, add the appropriate patterns to your exclude patterns list.

.. note::

 This item was added in November of 2016, as a result of a bug
 report.

2.6.2


  • Bug Fix packaging error during release process.

2.6.1


  • Bug Update the config files to search for to include setup.cfg and
    tox.ini. This was broken in 2.5.5 when we stopped passing
    config_file to our Style Guide

tox 2.3.1 -> 2.9.1

2.9.1


Misc
^^^^

  • integrated new release process and fixed changelog rendering for pypi.org -
    by obestwalter <https://github.com/obestwalter>_.

2.9

2.9.0


Features
^^^^^^^^

  • tox --version now shows information about all registered plugins - by
    obestwalter <https://github.com/obestwalter>_
    (544 <https://github.com/tox-dev/tox/issues/544>_)

Bugfixes
^^^^^^^^

  • skip_install overrides usedevelop (usedevelop is an option to
    choose the installation type if the package is installed and skip_install
    determines if it should be installed at all) - by ferdonline <https://github.com/ferdonline>_
    (571 <https://github.com/tox-dev/tox/issues/571>_)

Misc
^^^^

  • 635 <https://github.com/tox-dev/tox/issues/635>_ inherit from correct exception -
    by obestwalter <https://github.com/obestwalter>_
    (635 <https://github.com/tox-dev/tox/issues/635>_).
  • spelling and escape sequence fixes - by scoop <https://github.com/scoop>_
    (637 <https://github.com/tox-dev/tox/issues/637>_ and
    638 <https://github.com/tox-dev/tox/issues/638>_).
  • add a badge to show build status of documentation on readthedocs.io -
    by obestwalter <https://github.com/obestwalter>_.

Improved Documentation
^^^^^^^^^^^^^^^^^^^^^^

  • add towncrier <https://github.com/hawkowl/towncrier>_ to allow adding
    changelog entries with the pull requests without generating merge conflicts;
    with this release notes are now grouped into four distinct collections:
    Features, Bugfixes, Improved Documentation and Deprecations and Removals. (614 <https://github.com/tox-dev/tox/issues/614>_)

2.8.2


  • 466 <https://github.com/tox-dev/tox/issues/466>_: stop env var leakage if popen failed with resultjson or redirect

2.8.1


  • pull request 599 <https://github.com/tox-dev/tox/pull/599>: fix problems with implementation of 515 <https://github.com/tox-dev/tox/issues/515>.
    Substitutions from other sections were not made anymore if they were not in envlist.
    Thanks to Clark Boylan (cboylan <https://github.com/cboylan>) for helping to get this fixed (pull request 597 <https://github.com/tox-dev/tox/pull/597>).

2.8

..
Everything below here is generated by towncrier <https://pypi.python.org/pypi/towncrier>_.
It is generated once as part of the release process rendering fragments from the changelog
folder. If necessary, the generated text can be edited afterwards to e.g. merge rc changes
into the final release notes.

.. towncrier release notes start

2.8.0


  • 276 <https://github.com/tox-dev/tox/issues/276>: Remove easy_install from docs (TL;DR: use pip). Thanks Martin Andrysík (sifuraz <https://github.com/sifuraz>).
  • 301 <https://github.com/tox-dev/tox/issues/301>: Expand nested substitutions in tox.ini. Thanks vlaci <https://github.com/vlaci>. Thanks to Eli Collins
    (eli-collins <https://github.com/eli-collins>_) for creating a reproducer.
  • 315 <https://github.com/tox-dev/tox/issues/315>: add --help and --version to helptox-quickstart. Thanks vlaci <https://github.com/vlaci>.
  • 326 <https://github.com/tox-dev/tox/issues/326>: Fix OSError 'Not a directory' when creating env on Jython 2.7.0. Thanks Nick Douma (LordGaav <https://github.com/LordGaav>).
  • 429 <https://github.com/tox-dev/tox/issues/429>: Forward MSYSTEM by default on Windows. Thanks Marius Gedminas (mgedmin <https://github.com/mgedmin>) for reporting this.
  • 449 <https://github.com/tox-dev/tox/issues/449>: add multi platform example to the docs. Thanks Aleks Bunin (sashkab <https://github.com/sashkab>) and rndr <https://github.com/rndr>_.
  • 474 <https://github.com/tox-dev/tox/issues/474>_: Start using setuptools_scm for tag based versioning.
  • 484 <https://github.com/tox-dev/tox/issues/484>: Renamed py.test to pytest throughout the project. Thanks Slam (3lnc <https://github.com/3lnc>).
  • 504 <https://github.com/tox-dev/tox/issues/504>: With -a: do not show additional environments header if there are none. Thanks rndr <https://github.com/rndr>.
  • 515 <https://github.com/tox-dev/tox/issues/515>: Don't require environment variables in test environments where they are not used.
    Thanks André Caron (AndreLouisCaron <https://github.com/AndreLouisCaron>
    ).
  • 517 <https://github.com/tox-dev/tox/issues/517>: Forward NUMBER_OF_PROCESSORS by default on Windows to fix multiprocessor.cpu_count().
    Thanks André Caron (AndreLouisCaron <https://github.com/AndreLouisCaron>
    ).
  • 518 <https://github.com/tox-dev/tox/issues/518>: Forward USERPROFILE by default on Windows. Thanks André Caron (AndreLouisCaron <https://github.com/AndreLouisCaron>).
  • pull request 528 <https://github.com/tox-dev/tox/pull/528>: Fix some of the warnings displayed by pytest 3.1.0. Thanks Bruno Oliveira (nicoddemus <https://github.com/nicoddemus>).
  • pull request 547 <https://github.com/tox-dev/tox/pull/547>: Add regression test for 137 <https://github.com/tox-dev/tox/issues/137>. Thanks Martin Andrysík (sifuraz <https://github.com/sifuraz>_).
  • pull request 553 <https://github.com/tox-dev/tox/pull/553>: Add an XFAIL test to reproduce upstream bug 203 <https://github.com/tox-dev/tox/issues/203>. Thanks
    Bartolomé Sánchez Salado (bartsanchez <https://github.com/bartsanchez>_).
  • pull request 556 <https://github.com/tox-dev/tox/pull/556>: Report more meaningful errors on why virtualenv creation failed. Thanks vlaci <https://github.com/vlaci>.
    Also thanks to Igor Sadchenko (igor-sadchenko <https://github.com/igor-sadchenko>_) for pointing out a problem with that PR
    before it hit the masses ☺
  • pull request 575 <https://github.com/tox-dev/tox/pull/575>_: Add announcement doc to end all announcement docs
    (using only CHANGELOG and Github issues since 2.5 already).
  • pull request 580 <https://github.com/tox-dev/tox/pull/580>: Do not ignore Sphinx warnings anymore. Thanks Bernát Gábor (gaborbernat <https://github.com/gaborbernat>).
  • pull request 585 <https://github.com/tox-dev/tox/pull/585>: Expand documentation to explain pass through of flags from deps to pip
    (e.g. -rrequirements.txt, -cconstraints.txt). Thanks Alexander Loechel (loechel <https://github.com/loechel>
    ).
  • pull request 588 <https://github.com/tox-dev/tox/pull/588>_: Run pytest wit xfail_strict and adapt affected tests.

2.7.0


  • pull request 450 <https://github.com/tox-dev/tox/pull/450>: Stop after the first installdeps and first testenv create hooks
    succeed. This changes the default behaviour of tox_testenv_create
    and tox_testenv_install_deps to not execute other registered hooks when
    the first hook returns a result that is not None.
    Thanks Anthony Sottile (asottile <https://github.com/asottile>
    ).
  • 271 <https://github.com/tox-dev/tox/issues/271>_ and 464 <https://github.com/tox-dev/tox/issues/464>_: Improve environment information for users.

New command line parameter: -a show all defined environments -
not just the ones defined in (or generated from) envlist.

New verbosity settings for -l and -a: show user defined descriptions
of the environments. This also works for generated environments from factors
by concatenating factor descriptions into a complete description.

Note that for backwards compatibility with scripts using the output of -l
it's output remains unchanged.

Thanks Bernát Gábor (gaborbernat <https://github.com/gaborbernat>_).

  • 464 <https://github.com/tox-dev/tox/issues/464>: Fix incorrect egg-info location for modified package_dir in setup.py.
    Thanks Selim Belhaouane (selimb <https://github.com/selimb>
    ).
  • 431 <https://github.com/tox-dev/tox/issues/431>: Add 'LANGUAGE' to default passed environment variables.
    Thanks Paweł Adamczak (pawelad <https://github.com/pawelad>
    ).
  • 455 <https://github.com/tox-dev/tox/issues/455>: Add a Vagrantfile with a customized Arch Linux box for local testing.
    Thanks Oliver Bestwalter (obestwalter <https://github.com/obestwalter>
    ).
  • 454 <https://github.com/tox-dev/tox/issues/454>: Revert pull request 407 <https://github.com/tox-dev/tox/pull/407>, empty commands is not treated as an error.
    Thanks Anthony Sottile (asottile <https://github.com/asottile>_).
  • 446 <https://github.com/tox-dev/tox/issues/446>: (infrastructure) Travis CI tests for tox now also run on OS X now.
    Thanks Jason R. Coombs (jaraco <https://github.com/jaraco>
    ).

2.6.0


  • add "alwayscopy" config option to instruct virtualenv to always copy
    files instead of symlinking. Thanks Igor Duarte Cardoso (igordcard <https://github.com/igordcard>_).
  • pass setenv variables to setup.py during a usedevelop install.
    Thanks Eli Collins (eli-collins <https://github.com/eli-collins>_).
  • replace all references to testrun.org with readthedocs ones.
    Thanks Oliver Bestwalter (obestwalter <https://github.com/obestwalter>_).
  • fix 323 <https://github.com/tox-dev/tox/issues/323>_ by avoiding virtualenv14 is not used on py32
    (although we don't officially support py32).
    Thanks Jason R. Coombs (jaraco <https://github.com/jaraco>_).
  • add Python 3.6 to envlist and CI.
    Thanks Andrii Soldatenko (andriisoldatenko <https://github.com/andriisoldatenko>_).
  • fix glob resolution from TOX_TESTENV_PASSENV env variable
    Thanks Allan Feldman (a-feld <https://github.com/a-feld>_).

2.5.0


  • slightly backward incompatible: fix 310 <https://github.com/tox-dev/tox/issues/310>: the {posargs} substitution
    now properly preserves the tox command line positional arguments. Positional
    arguments with spaces are now properly handled.
    NOTE: if your tox invocation previously used extra quoting for positional arguments to
    work around 310 <https://github.com/tox-dev/tox/issues/310>
    , you need to remove the quoting. Example:
    tox -- "'some string'" has to now be written simply as
    tox -- "some string"
    thanks holger krekel. You can set minversion = 2.5.0 in the [tox]
    section of tox.ini to make sure people using your tox.ini use the correct version.
  • fix 359 <https://github.com/tox-dev/tox/issues/359>: add COMSPEC to default passenv on windows. Thanks
    anthrotype <https://github.com/anthrotype>
    .
  • add support for py36 and py37 and add py36-dev and py37(nightly) to
    travis builds of tox. Thanks John Vandenberg.
  • fix 348 <https://github.com/tox-dev/tox/issues/348>: add py2 and py3 as default environments pointing to
    "python2" and "python3" basepython executables. Also fix 347 <https://github.com/tox-dev/tox/issues/347>
    by
    updating the list of default envs in the tox basic example.
    Thanks Tobias McNulty.
  • make "-h" and "--help-ini" options work even if there is no tox.ini,
    thanks holger krekel.
  • add {:} substitution, which is replaced with os-specific path
    separator, thanks Lukasz Rogalski.
  • fix 305 <https://github.com/tox-dev/tox/issues/305>_: downloadcache test env config is now ignored as pip-8
    does caching by default. Thanks holger krekel.
  • output from install command in verbose (-vv) mode is now printed to console instead of
    being redirected to file, thanks Lukasz Rogalski
  • fix 399 <https://github.com/tox-dev/tox/issues/399>_. Make sure {envtmpdir} is created if it doesn't exist at the
    start of a testenvironment run. Thanks Manuel Jacob.
  • fix 316 <https://github.com/tox-dev/tox/issues/316>_: Lack of commands key in ini file is now treated as an error.
    Reported virtualenv status is 'nothing to do' instead of 'commands
    succeeded', with relevant error message displayed. Thanks Lukasz Rogalski.

2.4.1


  • fix 380 <https://github.com/tox-dev/tox/issues/380>_: properly perform substitution again. Thanks Ian
    Cordasco.

2.4.0


  • remove PYTHONPATH from environment during the install phase because a
    tox-run should not have hidden dependencies and the test commands will also
    not see a PYTHONPATH. If this causes unforeseen problems it may be
    reverted in a bugfix release. Thanks Jason R. Coombs.
  • fix 352 <https://github.com/tox-dev/tox/issues/352>_: prevent a configuration where envdir==toxinidir and
    refine docs to warn people about changing "envdir". Thanks Oliver Bestwalter and holger krekel.
  • fix 375 <https://github.com/tox-dev/tox/issues/375>, fix 330 <https://github.com/tox-dev/tox/issues/330>: warn against tox-setup.py integration as
    "setup.py test" should really just test with the current interpreter. Thanks Ronny Pfannschmidt.
  • fix 302 <https://github.com/tox-dev/tox/issues/302>_: allow cross-testenv substitution where we substitute
    with {x,y} generative syntax. Thanks Andrew Pashkin.
  • fix 212 <https://github.com/tox-dev/tox/issues/212>_: allow escaping curly brace chars "{" and "}" if you need the
    chars "{" and "}" to appear in your commands or other ini values.
    Thanks John Vandenberg.
  • addresses 66 <https://github.com/tox-dev/tox/issues/66>_: add --workdir option to override where tox stores its ".tox" directory
    and all of the virtualenv environment. Thanks Danring.
  • introduce per-venv list_dependencies_command which defaults
    to "pip freeze" to obtain the list of installed packages.
    Thanks Ted Shaw, Holger Krekel.
  • close 66 <https://github.com/tox-dev/tox/issues/66>_: add documentation to jenkins page on how to avoid
    "too long shebang" lines when calling pip from tox. Note that we
    can not use "python -m pip install X" by default because the latter
    adds the CWD and pip will think X is installed if it is there.
    "pip install X" does not do that.
  • new list_dependencies_command to influence how tox determines
    which dependencies are installed in a testenv.
  • (experimental) New feature: When a search for a config file fails, tox tries loading
    setup.cfg with a section prefix of "tox".
  • fix 275 <https://github.com/tox-dev/tox/issues/275>_: Introduce hooks tox_runtest_pre``` and tox_runtest_post`` which run before and after the tests of a venv,
    respectively. Thanks to Matthew Schinckel and itxaka serrano.
  • fix 317 <https://github.com/tox-dev/tox/issues/317>_: evaluate minversion before tox config is parsed completely.
    Thanks Sachi King for the PR.
  • added the "extras" environment option to specify the extras to use when doing the
    sdist or develop install. Contributed by Alex Grönholm.
  • use pytest-catchlog instead of pytest-capturelog (latter is not
    maintained, uses deprecated pytest API)

2.3.2


  • fix 314 <https://github.com/tox-dev/tox/issues/314>_: fix command invocation with .py scripts on windows.
  • fix 279 <https://github.com/tox-dev/tox/issues/279>_: allow cross-section substitution when the value contains
    posargs. Thanks Sachi King for the PR.

coverage 4.1 -> 4.4.2

4.4.2


  • Support for Python 3.7. In some cases, class and module docstrings are no
    longer counted in statement totals, which could slightly change your total
    results.
  • Specifying both --source and --include no longer silently ignores the
    include setting, instead it displays a warning. Thanks, Loïc Dachary. Closes
    issue 265_ and issue 101_.
  • Fixed a race condition when saving data and multiple threads are tracing
    (issue 581_). It could produce a "dictionary changed size during iteration"
    RuntimeError. I believe this mostly but not entirely fixes the race
    condition. A true fix would likely be too expensive. Thanks, Peter Baughman
    for the debugging, and Olivier Grisel for the fix with tests.
  • Configuration values which are file paths will now apply tilde-expansion,
    closing issue 589_.
  • Now secondary config files like tox.ini and setup.cfg can be specified
    explicitly, and prefixed sections like [coverage:run] will be read. Fixes
    issue 588_.
  • Be more flexible about the command name displayed by help, fixing
    issue 600_. Thanks, Ben Finney.

.. _issue 101: https://bitbucket.org/ned/coveragepy/issues/101/settings-under-report-affect-running
.. _issue 581: https://bitbucket.org/ned/coveragepy/issues/581/race-condition-when-saving-data-under
.. _issue 588: https://bitbucket.org/ned/coveragepy/issues/588/using-rcfile-path-to-toxini-uses-run
.. _issue 589: https://bitbucket.org/ned/coveragepy/issues/589/allow-expansion-in-coveragerc
.. _issue 600: https://bitbucket.org/ned/coveragepy/issues/600/get-program-name-from-command-line-when

.. _changes_441:

4.4.1


  • No code changes: just corrected packaging for Python 2.7 Linux wheels.

.. _changes_44:

4.4


  • Reports could produce the wrong file names for packages, reporting pkg.py
    instead of the correct pkg/__init__.py. This is now fixed. Thanks, Dirk
    Thomas.
  • XML reports could produce <source> and <class> lines that together
    didn't specify a valid source file path. This is now fixed. (issue 526_)
  • Namespace packages are no longer warned as having no code. (issue 572_)
  • Code that uses sys.settrace(sys.gettrace()) in a file that wasn't being
    coverage-measured would prevent correct coverage measurement in following
    code. An example of this was running doctests programmatically. This is now
    fixed. (issue 575_)
  • Errors printed by the coverage command now go to stderr instead of
    stdout.
  • Running coverage xml in a directory named with non-ASCII characters would
    fail under Python 2. This is now fixed. (issue 573_)

.. _issue 526: https://bitbucket.org/ned/coveragepy/issues/526/generated-xml-invalid-paths-for-cobertura
.. _issue 572: https://bitbucket.org/ned/coveragepy/issues/572/no-python-source-warning-for-namespace
.. _issue 573: https://bitbucket.org/ned/coveragepy/issues/573/cant-generate-xml-report-if-some-source
.. _issue 575: https://bitbucket.org/ned/coveragepy/issues/575/running-doctest-prevents-complete-coverage

4.4b1


  • Some warnings can now be individually disabled. Warnings that can be
    disabled have a short name appended. The [run] disable_warnings setting
    takes a list of these warning names to disable. Closes both issue 96_ and
    issue 355_.
  • The XML report now includes attributes from version 4 of the Cobertura XML
    format, fixing issue 570_.
  • In previous versions, calling a method that used collected data would prevent
    further collection. For example, save(), report(), html_report(), and
    others would all stop collection. An explicit start() was needed to get it
    going again. This is no longer true. Now you can use the collected data and
    also continue measurement. Both issue 79_ and issue 448_ described this
    problem, and have been fixed.
  • Plugins can now find unexecuted files if they choose, by implementing the
    find_executable_files method. Thanks, Emil Madsen.
  • Minimal IronPython support. You should be able to run IronPython programs
    under coverage run, though you will still have to do the reporting phase
    with CPython.
  • Coverage.py has long had a special hack to support CPython's need to measure
    the coverage of the standard library tests. This code was not installed by
    kitted versions of coverage.py. Now it is.

.. _issue 79: https://bitbucket.org/ned/coveragepy/issues/79/save-prevents-harvesting-on-stop
.. _issue 96: https://bitbucket.org/ned/coveragepy/issues/96/unhelpful-warnings-produced-when-using
.. _issue 355: https://bitbucket.org/ned/coveragepy/issues/355/warnings-should-be-suppressable
.. _issue 448: https://bitbucket.org/ned/coveragepy/issues/448/save-and-html_report-prevent-further
.. _issue 570: https://bitbucket.org/ned/coveragepy/issues/570/cobertura-coverage-04dtd-support

.. _changes_434:

4.3.4


  • Fixing 2.6 in version 4.3.3 broke other things, because the too-tricky
    exception wasn't properly derived from Exception, described in issue 556_.
    A newb mistake; it hasn't been a good few days.

.. _issue 556: https://bitbucket.org/ned/coveragepy/issues/556/43-fails-if-there-are-html-files-in-the

.. _changes_433:

4.3.3


  • Python 2.6 support was broken due to a testing exception imported for the
    benefit of the coverage.py test suite. Properly conditionalizing it fixed
    issue 554_ so that Python 2.6 works again.

.. _issue 554: https://bitbucket.org/ned/coveragepy/issues/554/traceback-on-python-26-starting-with-432

.. _changes_432:

4.3.2


  • Using the --skip-covered option on an HTML report with 100% coverage
    would cause a "No data to report" error, as reported in issue 549_. This is
    now fixed; thanks, Loïc Dachary.
  • If-statements can be optimized away during compilation, for example, if 0:
    or if __debug__:. Coverage.py had problems properly understanding these
    statements which existed in the source, but not in the compiled bytecode.
    This problem, reported in issue 522_, is now fixed.
  • If you specified --source as a directory, then coverage.py would look for
    importable Python files in that directory, and could identify ones that had
    never been executed at all. But if you specified it as a package name, that
    detection wasn't performed. Now it is, closing issue 426_. Thanks to Loïc
    Dachary for the fix.
  • If you started and stopped coverage measurement thousands of times in your
    process, you could crash Python with a "Fatal Python error: deallocating
    None" error. This is now fixed. Thanks to Alex Groce for the bug report.
  • On PyPy, measuring coverage in subprocesses could produce a warning: "Trace
    function changed, measurement is likely wrong: None". This was spurious, and
    has been suppressed.
  • Previously, coverage.py couldn't start on Jython, due to that implementation
    missing the multiprocessing module (issue 551). This problem has now been
    fixed. Also, issue 322
    about not being able to invoke coverage
    conveniently, seems much better: jython -m coverage run myprog.py works
    properly.
  • Let's say you ran the HTML report over and over again in the same output
    directory, with --skip-covered. And imagine due to your heroic
    test-writing efforts, a file just acheived the goal of 100% coverage. With
    coverage.py 4.3, the old HTML file with the less-than-100% coverage would be
    left behind. This file is now properly deleted.

.. _issue 322: https://bitbucket.org/ned/coveragepy/issues/322/cannot-use-coverage-with-jython
.. issue 426: https://bitbucket.org/ned/coveragepy/issues/426/difference-between-coverage-results-with
.. issue 522: https://bitbucket.org/ned/coveragepy/issues/522/incorrect-branch-reporting-with-__debug

.. _issue 549: https://bitbucket.org/ned/coveragepy/issues/549/skip-covered-with-100-coverage-throws-a-no
.. _issue 551: https://bitbucket.org/ned/coveragepy/issues/551/coveragepy-cannot-be-imported-in-jython27

.. _changes_431:

4.3.1


  • Some environments couldn't install 4.3, as described in issue 540_. This is
    now fixed.
  • The check for conflicting --source and --include was too simple in a
    few different ways, breaking a few perfectly reasonable use cases, described
    in issue 541. The check has been reverted while we re-think the fix for
    issue 265
    .

.. _issue 540: https://bitbucket.org/ned/coveragepy/issues/540/cant-install-coverage-v43-into-under
.. _issue 541: https://bit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants